物件陣列增刪練習之《學生資訊管理系統(使用ArrayList)》
阿新 • • 發佈:2019-01-04
//請完善實驗給定程式碼,使得工程可以完成學生資訊的管理功能,主要功能包括:新增學生資料、列印學生名單、刪除學生資料三個功能。
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; } }