1. 程式人生 > >物件陣列增刪練習之《學生資訊管理系統(使用ArrayList)》

物件陣列增刪練習之《學生資訊管理系統(使用ArrayList)》

//請完善實驗給定程式碼,使得工程可以完成學生資訊的管理功能,主要功能包括:新增學生資料、列印學生名單、刪除學生資料三個功能。
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;

public class StudentManage1 {

	public static void main(String[] args) throws IOException {  //throws IOException是使用BufferedReader必需加的宣告
		StuManage sm=new StuManage();
		Scanner sc = new Scanner(System.in);
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = 0;
		
		do{
			System.out.println("************************************************");
			System.out.println("請選擇需要的功能:");
			System.out.println("1.新增學生資料");
			System.out.println("2.列印學生名單");
			System.out.println("3.刪除學生資訊");
			System.out.println("************************************************");
			n = sc.nextInt();
			
			//因為要輸入中文名稱,使用空格,所以scanner不合適,改用BufferedReader讀取輸入
			 switch(n){    
		    	case 1 : {
		    	System.out.print("名字:");
		        String name=br.readLine();
		    	System.out.print("學號:");
		        String stuNum=br.readLine();
		        System.out.print("性別:");
		        String sex=br.readLine();
		        System.out.print("年齡:");
		        String age=br.readLine();
		        
		        Stu stu=new Stu(name,stuNum,sex,age);
		        sm.addStu(stu);}break;
		    	case 2 : sm.showStu();break;
		    	case 3 : {
		    		System.out.println("請輸入需要刪除的學生的學號:");
		        String stuNum=sc.next();
		        if(sm.delStu(stuNum))
		        		System.out.println("操作成功");
		        else
		        	System.out.println("操作失敗");
		        }break;
			}
				}
		while(true);
	}
	
}	
   class Stu{  //學生類
	 
	String name ; 
	String stuNum ;
	String sex  ;
	String age ;
	public String getName() {
		  return name;
		 }

	public String getStuNum() {
		  return stuNum;
		 }

		 
		 public String getSex() {
		  return sex;
		 }

			 public String getAge() {
			  return age;
			 }
		 
		 //建構函式
		 public  Stu(String name,String stuNum,String sex,String age){
		  this.name = name;
		  this.stuNum = stuNum;
		  this.sex = sex;
		  this.age = age;
		 }	
}
   
class StuManage{  //學生管理類
	private ArrayList<Object> a= new ArrayList();
	
	public void addStu(Stu student){  //新增學生資訊
		  a.add(student);
		  System.out.println("操作成功");
		 }
	
	public void showStu(){  //列印學生資訊
		  
		System.out.println("學號            姓名       性別      年齡");
		  for(int i=0;i<a.size();i++){
		   Stu student=(Stu) a.get(i);
		    System.out.println(student.getStuNum() + "    " + student.getName()+"  " +student.getSex() +"  "+ student.getAge());
		    
		  }	 
	}
	
	public boolean delStu(String stuNum){  //刪除學生資訊
		  
		  for(int i=0;i<a.size();i++){
		   Stu student=(Stu)a.get(i);
		   if(student.stuNum.equals(stuNum)){
		       a.remove(i);
		       return true;
		      }
		  }
		return false;
		 }
	}