記憶體上的學生資訊管理系統
阿新 • • 發佈:2021-07-16
完成一個學生(姓名、年齡、性別、學號)管理系統:
1、可以新增學生.
2、可以按照學號修改學生資訊.
3、可以按照學號刪除學生資訊.
4、可以通過學號查詢學生資訊.
實體節點類
package com.csoracle.練習; import java.util.Objects; public class StudentNode { private String name; private Integer age; private String sex; private Integer number; public StudentNode(String name, Integer age, String sex, Integer number) { this.name = name; this.age = age; this.sex = sex; this.number = number; } public StudentNode() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getNumber() { return number; } public void setNumber(Integer number) { this.number = number; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; StudentNode that = (StudentNode) o; return Objects.equals(name, that.name) && Objects.equals(age, that.age) && Objects.equals(sex, that.sex) && Objects.equals(number, that.number); } @Override public int hashCode() { return Objects.hash(name, age, sex, number); } @Override public String toString() { return "StudentNode{" + "name='" + name + '\'' + ", age=" + age + ", sex='" + sex + '\'' + ", number=" + number + '}'; } }
實現方法類
package com.csoracle.練習; import java.util.HashMap; import java.util.Scanner; import java.util.Set; public class StudentSystem { private static final HashMap students = new HashMap(); private static final Scanner sc = new Scanner(System.in); public void start() { System.out.println(">>>>>>>>>>>>>>>>>歡迎來到J09的學生管理系統<<<<<<<<<<<<<<<<<<"); wecome(); } public void wecome() { System.out.println("請你選擇需要執行的操作:"); System.out.print("0、按學號查詢學生資訊,"); System.out.print("1、新增學生的個人資訊,"); System.out.print("2、按學號刪除學生資訊" + "\n"); System.out.print("3、按學號更改學生資訊,"); System.out.print("4、檢視所以的學生資訊,"); System.out.println("5、退出資訊管理系統.."); System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<"); choose(); } public void choose() { System.out.print("請選擇操作:"); int i = sc.nextInt(); while (true) { change(i); } } public void change(int i) { switch (i) { case 0: System.out.println("按學號查詢學生資訊"); showIndex(); wecome(); case 1: System.out.println("新增學生的個人資訊"); add(); wecome(); break; case 2: System.out.println("按學號刪除學生資訊"); remove(); wecome(); break; case 3: System.out.println("按學號更改學生資訊"); changeStu(); wecome(); break; case 4: System.out.println("檢視所以的學生資訊"); showAll(); wecome(); break; case 5: System.out.println("退出資訊管理系統中.."); System.out.println("退出成功!"); System.exit(0); break; default: System.out.println("輸入不合法"); wecome(); break; } } public void add() { StudentNode student = new StudentNode(); System.out.print("輸入學號:"); student.setNumber(sc.nextInt()); System.out.print("輸入名字:"); student.setName(sc.next()); System.out.print("輸入年齡:"); student.setAge(sc.nextInt()); System.out.print("輸入性別:"); student.setSex(sc.next()); if (students.containsKey(student.getNumber())) { System.out.print("該學號已有學生,是否繼續:(y/n)"); String isContinue = sc.next(); if ("n".equals(isContinue)) { System.out.println("新增失敗"); return; } } students.put(student.getNumber(), student); System.out.println("新增成功:" + student); } public void changeStu() { StudentNode student = new StudentNode(); System.out.print("輸入要更改學生資訊的學號:"); int index = sc.nextInt(); StudentNumberJudgment(index); student.setNumber(index); System.out.print("輸入名字:"); student.setName(sc.next()); System.out.print("輸入年齡:"); student.setAge(sc.nextInt()); System.out.print("輸入性別:"); student.setSex(sc.next()); students.put(student.getNumber(), student); System.out.println("修改成功!"); } // fast-tail public void remove() { System.out.print("輸入要刪除學生資訊的學號:"); int index = sc.nextInt(); StudentNumberJudgment(index); /*Set set = students.keySet(); for (Object o : set) { if(o.equals(index)){ students.remove(index); } }*/ //很大的可能報錯,因為在迭代的時候,不允許增加刪除操作,會引起執行緒異常、不安全 students.remove(index); System.out.println("刪除成功"); } public void showAll() { Set set = students.entrySet(); for (Object o : set) { System.out.println(o); } } public void showIndex() { System.out.print("輸入要查詢學生資訊的學號:"); int index = sc.nextInt(); StudentNumberJudgment(index); Object o = students.get(index); System.out.println(o); } public void StudentNumberJudgment(int index) { if (!students.containsKey(index)) { System.out.println("您輸入的學號不存在"); wecome(); } else { return; } } }
測試類
package com.csoracle.練習;
public class Test01 {
public static void main(String[] args) {
StudentSystem studentSystem = new StudentSystem();
studentSystem.start();
}
}