目錄
- 定義學生類
- 主界面
- 添加學生
- 檢視學生
- 删除學生
- 修改學生
- 兩個注意事項
定義學生類
- 定義成員變量
private String id;//學号
private String name;//姓名
private String age;//年齡
private String gender;//性别
private String addr;//居住位址
- 定義構造方法
(1)一個無參構造方法
public Student() {
}
(2)帶四個參數的構造方法
public Student(String id, String name, String age, String gender, String addr) {
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
this.addr = addr;
}
-
定義成員方法
每個成員變量對應給出get/set方法
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
主界面
- 輸出語句完成主界面的編寫
System.out.println("歡迎來到學生資訊管理系統……");
System.out.println("1 添加學生");
System.out.println("2 删除學生");
System.out.println("3 修改學生");
System.out.println("4 檢視所有學生");
System.out.println("5 退出系統");
System.out.println("請選擇需要的操作:");
- 用Scanner實作鍵盤錄入資料
//鍵盤輸入
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
- 用switch完成功能選擇操作
//用switch完成選擇判斷
switch (line) {
case "1":
System.out.println("添加學生");
break;
case "2":
System.out.println("删除學生");
break;
case "3":
System.out.println("修改學生");
break;
case "4":
System.out.println("檢視所有學生");
break;
case "5":
System.out.println("謝謝使用");
//break;
System.exit(0);//JVM退出
}
- 循環再次回到主界面
while (true) {
……
}
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP35EeVpWT1cGROBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL1ETO3ADO1IjM1EjMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
添加學生
- 鍵盤錄入選擇添加學生
case "1":
System.out.println("添加學生");
break;
-
定義方法用于添加學生
(1)顯示提示輸入何種資訊,鍵盤輸入要添加的學生資訊
Scanner sc = new Scanner(System.in);
System.out.println("請輸入學生學号:");
String id = sc.nextLine();
System.out.println("請輸入學生姓名:");
String name = sc.nextLine();
System.out.println("請輸入學生年齡:");
String age = sc.nextLine();
System.out.println("請輸入學生性别:");
String gender = sc.nextLine();
System.out.println("請輸入學生居住位址:");
String addr = sc.nextLine();
(2)建立學生對象,把鍵盤輸入的資料指派
//建立學生對象
Student s = new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setGender(gender);
s.setAddr(addr);
(3)将學生對象添加到集合中
//将學生對象添加到集合中
array.add(s);
(4)給出添加成功提示
//提示添加成功
System.out.println("學生添加成功");
- 方法調用
檢視學生
- 鍵盤錄入選擇檢視學生
case "4":
//System.out.println("檢視所有學生");
findAllStudent(array);
break;
- 定義檢視學生方法
(1)判斷集合中是否有資料,若沒有給出提示資訊
//判斷集合中是否有資料,若沒有顯示提示資訊
if (array.size() == 0) {
System.out.println("無資訊,請添加資訊");
return;
}
(2)顯示表頭資訊
//顯示表頭資訊
System.out.println("學号\t姓名\t性别\t年齡\t居住位址");
(3)将集合中對應資訊顯示出來,年齡補充“歲”
/顯示集合中的資料
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getId() + "\t\t" + s.getName() + "\t" + s.getGender() + "\t\t" + s.getAge() + "歲\t" + s.getAddr());
}
- 方法調用
删除學生
- 鍵盤錄入選擇删除學生
case "2":
//System.out.println("删除學生");
deleteStudent(array);
break;
-
定義删除學生方法
(1)顯示提示資訊,鍵盤輸入要删除學生的學号
//鍵盤錄入需要删除學生的學号
Scanner sc = new Scanner(System.in);
System.out.println("請輸入需要删除學生的學号:");
String id = sc.nextLine();
(2)周遊集合将對應學生資訊删除
//周遊集合将對應學生對象從集合中删除
for(int i=0; i<array.size(); i++) {
Student s = array.get(i);
if(s.getSid().equals(sid)) {
array.remove(i);
break;
}
}
(3)給出删除成功的提示
//給出删除成功提示
System.out.println("删除學生成功");
- 方法調用
修改學生
- 鍵盤錄入選擇删除學生
case "3":
//System.out.println("修改學生");
updateStudent(array);
break;
-
定義修改學生資訊方法
(1)鍵盤錄入需修改學生的學号,顯示提示資訊
//鍵盤錄入需修改的學生學号
Scanner sc = new Scanner(System.in);
System.out.println("請輸入需修改學生的學号:");
String id = sc.nextLine();
(2)鍵盤錄入需修改的學生資訊
//給出修改的提示
System.out.println("請輸入學生的新姓名:");
String name = sc.nextLine();
System.out.println("請輸入學生的新年齡:");
String age = sc.nextLine();
System.out.println("請輸入學生的新性别:");
String gender = sc.nextLine();
System.out.println("請輸入學生的新位址:");
String addr = sc.nextLine();
(3)建立學生對象
//建立學生對象
Student s = new Student();
s.setId(id);
s.setName(name);
s.setGender(gender);
s.setAge(age);
s.setAddr(addr);
(4)周遊集合修改對應學生資訊
//周遊集合修改對應的學生資訊
for (int i = 0; i < array.size(); i++) {
Student student = array.get(i);
if (student.getId().equals(id)) {
array.set(i, s);
break;
}
}
(5) 給出修改成功提示
//給出修改成功提示
System.out.println("修改學生成功");
- 方法調用
兩個注意事項
-
學号不存在問題
在删除/修改學生資訊之前,對學号進行判斷,如果不存在,給出提示資訊,如果存在,則執行相應操作
改進代碼如下:
//删除學生
public static void deleteStudent(ArrayList<Student> array) {
//鍵盤錄入需要删除學生的學号
Scanner sc = new Scanner(System.in);
System.out.println("請輸入需要删除學生的學号:");
String id = sc.nextLine();
//周遊集合,選中對應學生将其删除
int index = -1;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getId().equals(id)) {
index = i;
//array.remove(i);
break;
}
}
if (index == -1) {
System.out.println("該學生資訊不存在,請重新輸入:");
} else {
array.remove(index);
System.out.println("删除成功");
}
//System.out.println("删除成功");
}
-
學号重複問題
在添加學生資訊的過程中,若添加了已存在的學生學号,給出提示資訊,若沒有,則繼續執行該操作。
檢視學号是否重複代碼:
//檢視學号是否重複
public static boolean isUsed(ArrayList<Student> array, String id) {
//如果與集合中的某一個學生學号相同,傳回true;如果都不相同,傳回false
boolean flag = false;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getId().equals(id)) {
flag = true;
break;
}
}
return flag;
}
添加學生代碼改進:
String id;
while (true) {
System.out.println("請輸入學生學号:");
id = sc.nextLine();
boolean flag = isUsed(array, id);
if (flag) {
System.out.println("你輸入的學号已經被使用,請重新輸入");
} else {
break;
}
}
至此,一個小型的學生資訊管理系統初步實作。