学生信息管理系统改版

javaDevelopPro.java

public class javaDevelopPro {
    public static void main(String[] args) {
        ArrayList<User> list = new ArrayList<>();
        Scanner sc1 = new Scanner(System.in);
        Loop:while(true) {
            System.out.println("欢迎来到学生管理系统");
            System.out.println("请选择操作1登录 2注册 3忘记密码");
            switch (sc1.nextInt()) {
                case 1:
                    if(list.size() > 0) {
                        System.out.println("请输入用户名:");
                        String username = sc1.next();
                        System.out.println("请输入密码:");
                        String password = sc1.next();
                        if (login(list, username, password)) {
                            break Loop;
                        }else{
                            System.out.println("登录失败,请检查账号或密码是否正确!");
                        }
                    }else{
                        System.out.println("不存在用户,请先注册!");
                    }
                    break;
                case 2:
                    list.add(addUser(list));
                    break;
                case 3:
                    System.out.println("请输入要修改的用户名");
                    String name = sc1.next();
                    if(forgetUser(list,name)){
                        System.out.println("修改密码成功!请重新登录");
                        break;
                    }else{
                        System.out.println("修改失败!");
                    }
                default:
                    System.out.println("输入错误!");
                    break;
            }
        }

        ArrayList<Student> studentList = new ArrayList<>();
        do{
            System.out.printf("-------------欢迎来到QC学生管理系统----------------\n" +
                                "1:添加学生\n" +
                                "2:删除学生\n" +
                                "3:修改学生\n" +
                                "4:查询学生\n" +
                                "5:退出\n" +
                                "请输入您的选择:");
        }while(mainLoop(studentList,sc1.nextInt()));

    }
    public static boolean mainLoop(ArrayList<Student> list,int choose){
        Scanner sc2 = new Scanner(System.in);
        switch(choose){
            case 1:
                list.add(addStudent(list));
                if(list.get(list.size() - 1) == null){
                    list.remove(list.size() - 1);
                }
                break;
            case 2:
                System.out.println("请输入需要删除的学生id:");
                if(removeStudent(list,sc2.nextInt())){
                    System.out.println("已经成功删除该id对应的学生");
                    break;
            }else{
                    System.out.println("删除失败,id不存在!");
                    break;
                }
            case 3:
                System.out.println("请输入需要修改的id:");
                if(changeStudent(list,sc2.nextInt())){
                    System.out.println("修改成功");
                    break;
                }else{
                    System.out.println("修改失败,id不存在!");
                    break;
                }
            case 4:
                if(list.size() > 0) {
                    System.out.printf("ID\t\t姓名\t年龄\t家庭住址\n");
                    for (int i = 0; i < list.size(); i++) {
                        System.out.printf("%d\t\t%s\t\t%d\t\t%s\n", list.get(i).getId(), list.get(i).getName(), list.get(i).getAge(), list.get(i).getLocation());
                    }
                }else{
                    System.out.println("你还未录入信息,请录入后重试");
                }
                break;
            case 5:
                return false;
            default:
                System.out.println("命令不存在,请重试!");
                break;
        }
        return true;
    }
    public static Student addStudent(ArrayList<Student> list){
        Scanner sc3 = new Scanner(System.in);
        Student student = new Student();
        System.out.println("请输入id:");
        int id = sc3.nextInt();
        if(checkId(list,id) == -1) {
            student.setId(id);
            System.out.println("请输入姓名:");
            student.setName(sc3.next());
            System.out.println("请输入年龄:");
            student.setAge(sc3.nextInt());
            System.out.println("请输入家庭住址:");
            student.setLocation(sc3.next());
            return student;
        }else{
            System.out.println("该ID已存在!");
            return null;
        }
    }
    public static User addUser(ArrayList<User> list){
        Scanner sc3 = new Scanner(System.in);
        User user = new User();
        System.out.println("请输入用户名:");
        String name = sc3.next();
        if(checkUser(list,name) == -1) {
            user.setUsername(name);
            set:while(true) {
                System.out.println("请输入密码:");
                user.setPassword(sc3.next());
                System.out.println("请再次确认密码:");
                String password = sc3.next();
                if (password.equals(user.getPassword())) {
                    break set;
                }
                System.out.println("两次密码不相同,请重新输入!");
            }
            System.out.println("请输入身份证号码:");
            user.setIdNumber(sc3.next());
            System.out.println("请输入手机号码:");
            user.setPhoneNumber(sc3.next());
            return user;
        }else{
            System.out.println("该ID已存在!");
            return null;
        }
    }
    public static boolean removeStudent(ArrayList<Student> list,int id){
        int index = checkId(list,id);
        if(index >= 0){
            list.remove(index);
            return true;
        }
        return false;
    }
    public static boolean changeStudent(ArrayList<Student> list,int id){
        int index  = checkId(list,id);
        if(index == -1){
            return false;
        }else {
            Scanner sc3 = new Scanner(System.in);
            do {
                System.out.println("请输入修改后的id:");
                int changeID = sc3.nextInt();
                if(checkId(list,changeID) == -1){
                    list.get(index).setId(changeID);
                    break;
                }else{
                    System.out.println("这个id已经存在,请更换id后重试!");
                }
            }while(true);
            System.out.println("请输入修改后的姓名:");
            list.get(index).setName(sc3.next());
            System.out.println("请输入修改后的年龄:");
            list.get(index).setAge(sc3.nextInt());
            System.out.println("请输入修改后的家庭住址:");
            list.get(index).setLocation(sc3.next());
            return true;
        }
    }
    public static int checkId(ArrayList<Student> list, int id){
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getId() == id){
                return i;
            }
        }
        return -1;
    }
    public static int checkUser(ArrayList<User> list, String name){
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i) != null) {
                if (list.get(i).getUsername().equals(name)) {
                    return i;
                }
            }else{
                return -1;
            }
        }
        return -1;
    }
    public static boolean login(ArrayList<User> list,String username,String password){
        if(checkUser(list,username) >= 0) {
            if (list.get(checkUser(list, username)).getPassword().equals(password)) {
                return true;
            }
        }
        return false;
    }
    public static boolean forgetUser(ArrayList<User> list,String name){
        int index = checkUser(list,name);
        if (index >= 0) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入手机号:");
            if(list.get(index).getPhoneNumber().equals(scanner.next())){
                System.out.println("请输入身份证号码:");
                if(list.get(index).getIdNumber().equals(scanner.next())){
                    System.out.println("验证成功,请输入新的密码:");
                    list.get(index).setPassword(scanner.next());
                    return true;
                }else{
                    System.out.println("身份证号码验证错误!");
                    return false;
                }
            }else{
                System.out.println("手机号错误!");
                return false;
            }
        }else{
            System.out.println("账户不存在!");
            return false;
        }
    }
}

Student.java

public class Student {
    private int id;
    private String name;
    private int age;
    private String location;

    public Student(int id, String name, int age, String location) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.location = location;
    }

    public Student() {
    }

    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 int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }
}

User.java

public class User {
    private String username;
    private String password;
    private String idNumber;
    private String phoneNumber;

    public User(String username, String password, String idNumber, String phoneNumber) {
        this.username = username;
        this.password = password;
        this.idNumber = idNumber;
        this.phoneNumber = phoneNumber;
    }

    public User() {
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getIdNumber() {
        return idNumber;
    }

    public void setIdNumber(String idNumber) {
        this.idNumber = idNumber;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
}