1. 程式人生 > >用ArrayList<E>實現簡單學生管理系統

用ArrayList<E>實現簡單學生管理系統

package ArrayTest;
/*
 * 用arrayList<E>去實現學生管理系統
 */

import java.util.ArrayList;
import java.util.Scanner;

public class StudentSystemList {
	//建立arrayList<E>物件,存放學生列表
	static ArrayList<String> arrList = new ArrayList<>();
	//建立鍵盤錄入物件
	static Scanner sc = new Scanner(System.in);
	public static void main(String[] args) {
		//建立並呼叫選擇專案的方法
		select();
	}
	
	//選擇專案的方法
	/*
	 * 兩個明確:1、返回值型別:void
	 *		  2.引數列表:無
	 */
	public static void select() {
		System.out.println("歡迎進入學生管理系統:");
		
		//加入迴圈
		while(true) {
			System.out.println("\t" +" 請根據下面的選項選擇需要的專案:");
			System.out.println("1. 新增學生  2.刪除學生  3.修改學生  4.學生列表  5.查詢學生  6.退出系統");
			System.out.println("請輸入選項:");
			//判斷輸入的是哪個選項
			int num = sc.nextInt();
			if(num==1) {
				//呼叫新增學生的方法
				addStudent();
			}else if(num==2) {
				//呼叫刪除學生的方法
				delStudent();
			}else if(num==3) {
				updateStudent();
				//呼叫修改學生的方法
			}else if(num==4) {
				//呼叫列印集合的方法
				bianli();
			}else if(num==5) {
				selStudent();
				//操作集合,按內容查詢學生
			}else if(num==6) {
				System.out.println("歡迎下次使用");
				break;
			}else {
				System.out.println("輸入有誤");
			}
		}
	}
	/*
	 * 查詢學生
	 */
	public static void selStudent() {
		System.out.println("請輸入學生姓名:");
		String name = sc.next();
		//判斷是否存在該學生
		if(arrList.indexOf(name)==-1) {
			System.out.println("沒有該學生");
		}else {
			//考慮不止一個該學生,則迴圈
			System.out.println("[");
			for(int i=0;i<arrList.size();i++) {
				if(arrList.get(i)==name) {
					System.out.print(arrList.get(i)+" ");
				}
			}
			System.out.println("]");
		}
	}
	
	
	
	/*
	 * 修改學生
	 * 		明確:雙無
	 */
	public static void updateStudent() {
		System.out.println("請輸入要修改的學生姓名:");
		String name = sc.next();
		//先判斷是否存在
		if(arrList.indexOf(name)==-1) {
			System.out.println("沒有該學生");
		}else {
			//考慮不止一個該學生,則迴圈
			while(true) {
				if(arrList.indexOf(name)==-1) {
					//等於-1則修改完成
					break;
				}else {
					//如果有獲取該下標
					int x = arrList.indexOf(name);
					//輸入修改後的姓名
					System.out.println("請輸入修改後的姓名:");
					String name001 = sc.next();
					//將對應下標的元素修改
					arrList.set(x, name001);
				}
			}
			System.out.println("修改成功");
		}
	}
	
	
	/*
	 * 刪除學生
	 * 		明確:1、雙無
	 */
	public static void delStudent() {
		System.out.println("請輸入刪除學生的姓名:");
		String name = sc.next();
		//先判斷是否有該學生
		if(arrList.indexOf(name)==-1) {
			System.out.println("沒有該學生");
		}else {
			//判斷集合中是否有該學生,遍歷,迴圈判斷
			while(true) {
				if(arrList.indexOf(name)==-1) {
					//等於-1則刪完了
					break;
				}else {
					//如果有找到該學生對應的下標並刪除
					int x = arrList.indexOf(name);
					arrList.remove(x);
				}
			}
			System.out.println("刪除成功");
		}		
	}
	
	
	/*
	 * 列印學生:明確:雙無
	 */
	public static void bianli() {
		if(arrList.size()==0) {
			System.out.println("沒有學生");
		}else {
			System.out.print("[");
			for(int i=0;i<arrList.size();i++) {
				if(i==arrList.size()-1) {
					System.out.print(arrList.get(i));
				}else {
					System.out.print(arrList.get(i)+", ");
				}			
			}
			System.out.println("]");
		}		
	}
	
	//新增學生的方法
	/*
	 * 兩個明確:1.返回值型別: void
	 *        2.引數列表:無
	 */
	public static void addStudent() {
		System.out.println("請輸入學生姓名:");
		String name = sc.next();
		//將輸入的學生姓名放入集合中
		arrList.add(name);
		System.out.println("新增成功");
	}
}