無Bug,Java實現簡單的學生信息管理系統,用到List集合類

無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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章