學生管理系統
步驟如下:
A:定義學生類
B:學生管理系統的主界面的代碼編寫
C:學生管理系統的檢視所有學生的代碼編寫
D:學生管理系統的添加學生的代碼編寫
E:學生管理系統的删除學生的代碼編寫
F:學生管理系統的修改學生的代碼編寫
Student類
package StudentManager;
public class Student {
//定義成員變量
private String id;
private String name;
private String age;
private String address;
//生成無參構造方法
public Student() {
// super();
// TODO Auto-generated constructor stub
}
//生成有參構造方法
public Student(String id, String name, String age, String address) {
// super();
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
//生成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 getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Test類
package StudentManager;
import java.sql.Array;
import java.util.ArrayList;
import java.util.Scanner;
/*
步驟如下:
A:定義學生類
B:學生管理系統的主界面的代碼編寫
C:學生管理系統的檢視所有學生的代碼編寫
D:學生管理系統的添加學生的代碼編寫
E:學生管理系統的删除學生的代碼編寫
F:學生管理系統的修改學生的代碼編寫
*/
public class StudentMannagerTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 建立集合對象,用于存儲學生資料
ArrayList<Student> array = new ArrayList<Student>();
// 使用循環,讓程式回到主界面
while (true) {
// 學生管理系統主界面
System.out.println("**************");
System.out.println("* 學生管理系統 *");
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 sc = new Scanner(System.in);
String choiceString = sc.nextLine();
// switch語句在jdk1.7之後表達式的位置可以放一個字元串
switch (choiceString) {
case "1":
// 檢視所有學生
findAllStudent(array);
break;
case "2":
// 添加學生學生
addStudent(array);
break;
case "3":
// 删除學生
deleteStudent(array);
break;
case "4":
// 修改學生
updateStudent(array);
break;
case "5":
// 退出
System.out.println("謝謝你的使用 ...");// case穿透:這兩行可以省略。
System.exit(0);
break;
default:
System.out.println("謝謝你的使用 ...");
System.exit(0);// JVM退出
break;// 結束switch
}
} // true
}
// 修改學生
private static void updateStudent(ArrayList<Student> array) {
// TODO Auto-generated method stub
// 修改學生的思路:鍵盤錄入一個學号,到集合中去查找,看是否有學生使用的是該學号,如果有就修改該學生
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要修改的學生的學号:");
String id = sc.nextLine();
// 判斷錄入的學号是否存在
// 定義一個索引
int index = -1;
// 周遊集合
for (int x = 0; x < array.size(); x++) {
// 擷取每一個學生對象
Student s = array.get(x);
// 拿學生對象的學号和鍵盤錄入的學号進行比較
if (s.getId().equals(id)) {
index = x;
break;
}
}
if (index == -1) {
System.out.println("不好意思,你要修改的學号對應的學生資訊不存在,請回去重新你的選擇 ...");
} else {
System.out.println("請輸入學生新姓名:");
String name = sc.nextLine();
System.out.println("請輸入學生新年齡:");
String age = sc.nextLine();
System.out.println("請輸入學生新居住地:");
String address = sc.nextLine();
// 建立學生對象
Student s = new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
// 修改集合中的學生對象***********
array.set(index, s);
// 給出提示
System.out.println("修改學生成功");
}
}
// 删除學生
private static void deleteStudent(ArrayList<Student> array) {
// TODO Auto-generated method stub
// 删除學生的思路:鍵盤錄入一個學号,到集合中去查找,看是否有學生使用的是該學号,如果有就删除該學生
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要删除的學生的學号:");
String id = sc.nextLine();
/*
* //周遊集合 for(int x=0; x<array.size(); x++) { //擷取到每一個學生對象 Student s =
* array.get(x); //拿這個學生對象的學号和鍵盤錄入的學号進行比較 if(s.getId().equals(id)) {
* array.remove(x); //根據索引删除 break;//學号不重複 } } //給出提示
* System.out.println("删除學生成功");
*/
// 給出學号不存在的時候的提示*****改鍵代碼
// 定義一個索引
int index = -1;
// 周遊集合
for (int x = 0; x < array.size(); x++) {
// 擷取到每一個學生對象
Student s = array.get(x);
// 拿這個學生對象的學号和鍵盤錄入的學号進行比較
if (s.getId().equals(id)) {
index = x;
break;
}
}
if (index == -1) {
System.out.println("不好意思,你要删除的學号對應的學生資訊不存在,請回去重新你的選擇 ...");
} else {
array.remove(index);
System.out.println("删除學生成功");
}
}
// 添加學生
private static void addStudent(ArrayList<Student> array) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
// 為了讓id能夠被通路到,把id定義在了循環的外面
String id;
// 為了讓代碼能夠回到這裡,用循環
while (true) {
System.out.println("請輸入學生學号:");// 如果被占用,回到這一行
// String id = sc.nextLine();
id = sc.nextLine();
// 判斷學号有沒有被人占用
// 定義标記
boolean flag = false;
// 周遊集合,得到每一個學生
for (int x = 0; x < array.size(); x++) {
Student s = array.get(x);
// 擷取該學生的學号,和鍵盤錄入的學号進行比較
if (s.getId().equals(id)) {
flag = true; // flag被修改為true,說明學号被占用了
break;
}
}
if (flag) {
System.out.println("你輸入的學号已經被占用,請重新輸入 ...");// 如果被占用
} else {
break; // 結束while循環
}
}
// 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 address = sc.nextLine();
// 建立學生對象
Student s = new Student();
s.setId(id);// 指派
s.setName(name);
s.setAge(age);
s.setAddress(address);
// 把學生對象作為元素添加到集合
array.add(s);
// 給出提示
System.out.println("添加學生成功");
}
// 檢視所有學生
private static void findAllStudent(ArrayList<Student> array) {
// TODO Auto-generated method stub
// 首先來判斷集合中是否有資料,如果沒有資料,就給出提示,并讓該方法不繼續往下執行
if (array.size() == 0) {
System.out.println("不好意思,目前沒有學生資訊可供查詢,請回去重新選擇你的操作 ...");
return;// 方法不繼續執行
}
// 周遊集合
System.out.println("學号\t姓名\t年齡\t居住地");
for (int x = 0; x < array.size(); x++) {
Student s = array.get(x);
System.out.println(s.getId() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getAddress());
}
}
}
結果:
**************
* 學生管理系統 *
**************
1檢視所有學生
2添加學生
3删除學生
4修改學生
5退出
請輸入你的選擇:
1
不好意思,目前沒有學生資訊可供查詢,請回去重新選擇你的操作 ...
**************
* 學生管理系統 *
**************
1檢視所有學生
2添加學生
3删除學生
4修改學生
5退出
請輸入你的選擇:
2
請輸入學生學号:
123456
請輸入學生姓名:
張三
請輸入學生年齡:
20
請輸入學生居住地:
北京
添加學生成功
**************
* 學生管理系統 *
**************
1檢視所有學生
2添加學生
3删除學生
4修改學生
5退出
請輸入你的選擇:
2
請輸入學生學号:
1234567
請輸入學生姓名:
王二
請輸入學生年齡:
21
請輸入學生居住地:
西安
添加學生成功
**************
* 學生管理系統 *
**************
1檢視所有學生
2添加學生
3删除學生
4修改學生
5退出
請輸入你的選擇:
1
學号 姓名 年齡 居住地
123456 張三 20 北京
1234567 王二 21 西安
**************
* 學生管理系統 *
**************
1檢視所有學生
2添加學生
3删除學生
4修改學生
5退出
請輸入你的選擇:
4
請輸入你要修改的學生的學号:
1234567
請輸入學生新姓名:
李四
請輸入學生新年齡:
22
請輸入學生新居住地:
北京
修改學生成功
**************
* 學生管理系統 *
**************
1檢視所有學生
2添加學生
3删除學生
4修改學生
5退出
請輸入你的選擇:
1
學号 姓名 年齡 居住地
123456 張三 20 北京
1234567 李四 22 北京
**************
* 學生管理系統 *
**************
1檢視所有學生
2添加學生
3删除學生
4修改學生
5退出
請輸入你的選擇:
5
謝謝你的使用 ...