無Bug,Java實現簡單的學生信息管理系統,用到List集合類
源代碼
學生對象類
package JuyThirteenthJStuMangeSys;
/**
* @date 2018/7/13
* @author HCQ
* @see 學生信息管理系統
*/
//實現Comparable接口,重寫CompareTo方法,用於功能菜單中的“1、查詢所有學生信息”,根據學號進行排序
public class StudentH implements Comparable<StudentH>{
//屬性和構造方法可以根據題目需求進行更改
private int id; //學號
private String name; //姓名
private String classNum; //班級
public StudentH() {
}
public StudentH(int id, String name, String classNum) {
this.id = id;
this.name = name;
this.classNum = classNum;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getClassNum() {
return classNum;
}
public void setClassNum(String classNum) {
this.classNum = classNum;
}
@Override
public String toString() { //重寫一下toString方法進行打印輸出方法
return "學生"+id+" [學號=" + id + ", 姓名=" + name + ", 班級=" + classNum + "]";
}
@Override
public int compareTo(StudentH o) { //重寫一下compareTo方法根據學號進行排序
// TODO Auto-generated method stub
return this.id - o.getId();
}
}
學生信息管理系統類
package JuyThirteenthJStuMangeSys;
import java.util.ArrayList;
import java.util.Collections;
import java.util.InputMismatchException;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
/**
* @date 2018/7/13
* @author HCQ
* @see 學生信息管理系統
*/
public class StudentManageSystem {
private static Scanner sc;
public static void main(String[] args) {
//簡單的歡迎界面
System.out.println("---------------------------------");
System.out.println("\t" + "歡迎進入學生管理系統 ");
System.out.println("---------------------------------");
List<StudentH> list = new LinkedList<StudentH>();
sc = new Scanner(System.in);
int id = 0;
try {
while (true) {
//功能菜單界面,每次使用一個功能時,都會把功能菜單打印一次,便於使用者查詢功能對應的數字
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("6、退出系統");
System.out.println("(提示:爲了您的使用方便,請在使用系統前,最大化控制檯。)");
System.out.println("----------------------------------");
System.out.print("請輸入對應的數字進行操作:");
int input = sc.nextInt(); //輸入數字選擇功能
if(input>0 && input<7) { //輸入的數字在1-6時,能執行功能,否則系統退出
System.out.println("---------------------------------");
// 3、增加學生信息
if (input == 3) {
System.out.print("請輸入你要添加幾個學生信息:");
int num = sc.nextInt();
System.out.println("----------------------------------");
for (int w = 0; w < num; w++) {
System.out.println("請添加學生信息");
System.out.println("----------------------------------");
id++;
System.out.print("請輸入學生姓名:");
String name = sc.next();
System.out.print("請輸入學生班級:");
String classNum = sc.next();
list.add(new StudentH(id, name, classNum));
System.out.println("添加成功。");
System.out.println("---------------------------------");
}
}
// 1、查詢所有學生信息
if (input == 1) {
if (list.isEmpty() == true) { //判斷集合內是否存在學生對象的信息
System.out.println("您還沒有添加學生信息。");
} else {
System.out.println("學生信息表");
System.out.println("---------------------------------");
for (int j = 0; j < list.size(); j++) {
//自然排序,實現了Comparable接口並重寫了CompareTo方法才能調用此方法
Collections.sort(list);
//比較排序,必須定義另外一個自定義的比較類,這裏比較類的類名爲MyComparator
// Collections.sort(list, new MyComparator());
System.out.println(list.get(j).toString());
}
}
System.out.println("---------------------------------");
}
// 2、根據學號查詢信息
if (input == 2) {
if (list.isEmpty() == true) {
System.out.println("您還沒有添加學生信息。");
} else {
System.out.print("請輸入你要查找的學生學號:");
int index = sc.nextInt();
List<Integer> listID = new ArrayList<Integer>();
for (int c = 0; c < list.size(); c++) {
listID.add(list.get(c).getId());
}
for (int q = 0; q < list.size(); q++) {
if (listID.contains(index)) {
if (index == list.get(q).getId()) {
System.out.println(list.get(q).toString());
break;
} else {
continue;
}
} else {
System.out.println("沒有該學生信息。");
break;
}
}
}
System.out.println("---------------------------------");
}
// 4、刪除學生信息
if (input == 4) {
if (list.isEmpty() == true) {
System.out.println("您還沒有添加學生信息。");
} else {
System.out.print("請輸入你要刪除的學生學號:");
int index = sc.nextInt();
List<Integer> listID = new ArrayList<Integer>();
for (int c = 0; c < list.size(); c++) {
listID.add(list.get(c).getId());
}
for (int q = 0; q < list.size(); q++) {
if (listID.contains(index)) {
if (index == list.get(q).getId()) {
list.remove(q);
System.out.println("刪除成功。");
break;
} else {
continue;
}
} else {
System.out.println("沒有該學生信息。");
break;
}
}
}
System.out.println("---------------------------------");
}
// 5、修改學生信息
if (input == 5) {
if (list.isEmpty() == true) {
System.out.println("您還沒有添加學生信息。");
} else {
System.out.print("請輸入你要修改的學生學號:");
int index = sc.nextInt();
List<Integer> listID = new ArrayList<Integer>();
for (int c = 0; c < list.size(); c++) {
listID.add(list.get(c).getId());
}
for (int q = 0; q < list.size(); q++) {
if (listID.contains(index)) {
if (index == list.get(q).getId()) {
System.out.print("此學生原信息:");
//打印要修改的學生信息的原信息
System.out.println(list.get(q).toString());
System.out.println("請修改此學生信息:");
System.out.println("----------------------------------");
System.out.print("請重新輸入學生姓名:");
String name = sc.next();
System.out.print("請重新輸入學生班級:");
String classNum = sc.next();
list.remove(q); //先刪除該學生所有的信息
id = index;
//重新添加該學生信息
list.add(new StudentH(id, name, classNum));
System.out.println("修改成功。");
break;
} else {
continue;
}
} else {
System.out.println("沒有該學生信息。");
break;
}
}
}
System.out.println("----------------------------------");
}
// 6、退出系統
if (input == 6) {
System.out.println("系統已退出,歡迎下次使用。。。");
System.exit(0);
}
} else {
System.out.println("----------------------------------");
System.out.println("輸入有誤,系統退出。");
System.exit(0);
}
}
//輸入時,如果輸入的不是數字,會捕捉InputMismatchException異常並提示“輸入有誤,系統退出”
} catch(InputMismatchException e) {
System.out.println("----------------------------------");
System.out.println("輸入有誤,系統退出。");
} catch(Exception e) {
System.out.println("----------------------------------");
System.out.println("其他錯誤。");
e.printStackTrace();
} finally {
System.exit(0); //退出系統
}
}
}
自定義的比較類,MyComparator
package JuyThirteenthJStuMangeSys;
import java.util.Comparator;
/**
* @date 2018/7/13
* @author HCQ
* @see 學生信息管理系統
*/
//如果進行比較排序,需要自定義一個比較類,見學生信息管理系統類的“1、查詢所有學生信息”的具體代碼
public class MyComparator implements Comparator<StudentH>{
public int compare(StudentH o1, StudentH o2) {
return o1.getId() - o2.getId();
}
}
代碼僅供參考,如有問題請留言,謝謝。
2018/8/5