Java简单无数据库学生管理系统,和一个bug

写了一个不基于数据库的Java的学生管理系统,发现了一个问题,scanner.next()函数输入中文时会发生NoElementException异常,换成输入英文就好了。经测试,的确就是中英文的问题。(待解决)
代码:

import java.util.*;

public class StudentManager {
    public static Scanner scanner = new Scanner(System.in);
    private Vector<Student> StudentVector = new Vector<Student>();

    public static void main(String[] args) {
        StudentManager manager = new StudentManager();
        manager.run();
        scanner.close();

    }

    public void run() {
        while (true) {
            showmainWindow();
            int option;
            option = scanner.nextInt();

            switch (option) {
                case 1:
                    showAllStudent();
                    break;
                case 2:
                    addStudent();
                    break;
                case 3:
                    deleteStudent();
                    break;
                case 4:
                    reviveStudent();
                    break;

                case 5:
                    findStudent();
                    break;
                case 6:
                    deleteAllStudent();
                    break;
                /*
                 * case 7: sortAllStudent(); break;
                 */
                case 0:
                    return;
                default:
                    break;
            }
            System.out.println();

        }

    }

    public class Student {
        private 
        int number = 0;
        String name = null;
        int grade = 0;

        public void setnumber(int num) {
            number = num;
        }

        void setname(String nam) {
            name = nam;
        }

        void setgrade(int grad) {
            grade = grad;
        }

        void shownumber(){
            System.out.print("" + number + "\t");
        }

        void showname(){
            System.out.print("" + name + "\t");
        }

        void showgrade(){
            System.out.print("" + grade + "\t");
        }

        int getnumber() {
            return number;
        }

        int getgrade() {
            return grade;
        }

        String getname() {
            return name;
        }

        Student(int num, String nam, int grad) {
            setnumber(num);
            setname(nam);
            setgrade(grad);
        }
    }

    public void showmainWindow() {
        System.out.println("please select your option:");
        System.out.println("1.showAllStudent");
        System.out.println("2.addStudent");
        System.out.println("3.deleteStudent");
        System.out.println("4.reviveStudent");
        System.out.println("5.findStudent");
        System.out.println("6.deleteAllStudent");
        // System.out.println("7.sortAllStudent");
        System.out.println("0.close the process");
        System.out.println("otherKeys.back to mainWindow");
    }

    public void showAllStudent() {
        if (StudentVector.isEmpty()) {
            System.out.println("No Student!");
            return;
        }
        for (Student stu : StudentVector) {
            stu.shownumber();
            stu.showname();
            stu.showgrade();
            System.out.println();
        }
    }

    public void addStudent() {
        System.out.println("Input number name grade of the student:");
        int num = scanner.nextInt();
        String nam = scanner.next();
        int grad = scanner.nextInt();
        Student temp = new Student(num, nam, grad);
        StudentVector.addElement(temp);
        System.out.println("Added!");
    }

    public void deleteStudent() {
        System.out.println("Input the number of the student:");
        int num = scanner.nextInt();
        System.out.println("finding the student...");
        int index = -1;
        for (Student stu : StudentVector) {
            if (stu.getnumber() == num) {
                index = StudentVector.indexOf(stu);
                System.out.println("Found at index:" + index);
                StudentVector.remove(stu);
                System.out.println("Deleted!");
                break;
            }
        }
        if (index == -1)
            System.out.println("not Found!");
    }

    public void reviveStudent() {
        System.out.println("Input the number of the student:");
        int num = scanner.nextInt();
        System.out.println("finding the student...");
        int index = -1;
        for (Student stu : StudentVector) {
            if (stu.getnumber() == num) {
                index = StudentVector.indexOf(stu);
                System.out.println("Found at index:" + index);
                System.out.println("Input name grade:");
                String nam = scanner.next();
                int grad = scanner.nextInt();
                stu.setname(nam);
                stu.setgrade(grad);
                StudentVector.setElementAt(stu, index);
                System.out.println("Revived!");
                break;
            }
        }
        if (index == -1)
            System.out.println("not Found!");
    }

    public void findStudent() {
        System.out.println("Input the number of the student:");
        int num = scanner.nextInt();
        System.out.println("finding the student...");
        int index = -1;
        for (Student stu : StudentVector) {
            if (stu.getnumber() == num) {
                index = StudentVector.indexOf(stu);
                System.out.println("Found at index:" + index);
                stu.shownumber();
                stu.showname();
                stu.showgrade();
                System.out.println();
                break;
            }
        }
        if (index == -1)
            System.out.println("not Found!");
    }

    public void deleteAllStudent() {
        StudentVector.clear();
        System.out.println("All Cleared!");
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值