ArrayList实现学生管理系统

题目要求:

注:以下代码皆为自己所想所写,尽我所能完善输入判断之类的,所以部分代码大概率会重复,恳请各位多多指教。

Main方法

public class StudentsManageTest {
    public static void main(String[] args) {

        // 新建集合存放学生信息
        ArrayList<StudentsManage> list = new ArrayList<>();

        // 创建学生信息
        StudentsManage student1 = new StudentsManage("001", "Test1", "18", "Test1");
        StudentsManage student2 = new StudentsManage("002", "Test2", "17", "Test2");
        StudentsManage student3 = new StudentsManage("003", "Test3", "19", "Test3");
        StudentsManage student4 = new StudentsManage("004", "Test4", "16", "Test4");
        StudentsManage student5 = new StudentsManage("005", "Test5", "17", "Test2");

        // 添加学生信息
        list.add(student1);
        list.add(student2);
        list.add(student3);
        list.add(student4);
        list.add(student5);

        Scanner scanner = new Scanner(System.in);
        while (true) {
            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("请输入您的选择:");
            int choice = getChoice();
            switch (choice) {
                // 添加功能
                // 键盘录入每一个学生信息并添加,需要满足以下要求:
                // id唯一
                case 1 -> {
                    addStu(list);
                    continue;
                }

                // 删除功能
                // 键盘录入要删除的学生id,需要满足以下要求:
                // id存在删除
                // id不存在,需要提示不存在,并回到初始菜单
                case 2 -> {
                    removeStu(list);
                    continue;
                }

                // 修改功能:
                // 键盘录入要修改的学生id,需要满足以下要求
                // id存在,继续录入其他信息
                // id不存在,需要提示不存在,并回到初始菜单
                case 3 -> {
                    changeStu(list);
                    continue;
                }

                // 查询功能
                // 打印所有的学生信息,需要满足以下要求
                // 如果没有学生信息,提示:当前无学生信息,请添加后再查询
                // 如果有学生信息,需要按照以下格式输出。(不用过于纠结对齐的问题)
                case 4 -> {
                    getStu(list);
                    continue;
                }

                case 5 -> {
                    System.out.println("您已成功退出学生管理系统");
                }
            }
            break;
        }
    }
}

 方法编写

public static int getChoice() {
        int choice;
        Scanner scanner = new Scanner(System.in);
        // 输入的数字合法性检查
        while (true) {
            choice = scanner.nextInt();
            if (choice >= 1 && choice <= 5) {
                break;
            } else {
                System.out.println("输入有误,请重新输入:");
            }
        }
        return choice;
    }

    // id查询
    // 查询到相同id返回true
    // 查询不到id则返回false
    public static boolean containsId(ArrayList<StudentsManage> list, String id) {
        for (StudentsManage studentsManage : list) {
            if (id.equals(studentsManage.getId())) {
                return true;
            }
        }
        return false;
    }

    public static boolean containsName(ArrayList<StudentsManage> list, String name) {
        for (int i = 0; i < list.size(); i++) {
            if (name.equals(list.get(i).getName())) {
                return true;
            }
        }
        return false;
    }

    public static boolean containsAge(ArrayList<StudentsManage> list, String age) {
        for (int i = 0; i < list.size(); i++) {
            if (age.equals(list.get(i).getAge())) {
                return true;
            }
        }
        return false;
    }

    public static boolean containsAddress(ArrayList<StudentsManage> list, String address) {
        for (StudentsManage studentsManage : list) {
            if (address.equals(studentsManage.getAddress())) {
                return true;
            }
        }
        return false;
    }

    // 检查id输入是否带有其他字符
    public static boolean checkId(String id) {
        int len = id.length();
        boolean flag = checkIdLength(id);
        if (!flag) {
            return false;
        }
        int count = 0;// 统计字母个数
        for (int i = 0; i < len; i++) {
            char str = id.charAt(i);
            if (str > '9' || str < '0') {
                count++;
            }
        }
        // 字符串中有非法字符则返回false
        if (count != 0) {
            return false;
        }
        return true;
    }

    // 如果id长度不等于 3 则返回长度(可按需修改)
    public static boolean checkIdLength(String id) {
        if (id.length() != 3) {
            return false;
        }
        return true;
    }


    public static boolean checkAge(String age) {
        int count = 0;
        int len = age.length();
        for (int i = 0; i < len; i++) {
            char c = age.charAt(i);
            if (c > '9' || c < '0') {
                count++;
            }
        }
        // 字符串中有非法字符则返回false
        if (count != 0) {
            return false;
        }
        return true;

    }

    public static void addStu(ArrayList<StudentsManage> list) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请输入你要添加的学生id:");
            String id = scanner.next();
            boolean flagId = containsId(list, id);
            if (!flagId) {// 如果false则继续判断
                if (!checkId(id)) {
                    System.out.println("id输入不合法,请重新输入:");
                } else {
                    System.out.println("请输入学生姓名:");
                    String name = scanner.next();
                    String age;
                    while (true) {
                        System.out.println("请输入学生年龄:");
                        age = scanner.next();
                        boolean flagAge = checkAge(age);
                        if (!flagAge) {
                            System.out.println("年龄输入不合法,请重新输入:");
                        } else {
                            break;
                        }
                    }
                    System.out.println("请输入学生家庭住址:");
                    String address = scanner.next();

                    StudentsManage stu = new StudentsManage(id, name, age, address);
                    list.add(stu);
                    System.out.println("添加成功");
                    break;
                }
            } else {
                System.out.println("学号重复,请重新输入:");
            }
        }
    }

    public static void removeStu(ArrayList<StudentsManage> list) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请输入你要删除的学生id:");
            String id = scanner.next();
            boolean flagId = containsId(list, id);
            if (!flagId) {// 如果false则继续判断
                System.out.println("id不存在");
                break;
            } else {
                for (int i = 0; i < list.size(); i++) {
                    StudentsManage stu = list.get(i);
                    if (id.equals(stu.getId())) {
                        list.remove(i);
                        System.out.println("删除成功");
                        break;
                    }
                }
            }
            break;
        }
    }

    public static void changeStu(ArrayList<StudentsManage> list) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请输入你要修改的学生id:");
            String id = scanner.next();
            boolean flagId = containsId(list, id);
            if (!flagId) {// 如果false则继续判断
                System.out.println("id不存在");
                break;
            }
            if (!checkId(id)) {
                System.out.println("id输入不合法,请重新输入:");
            } else {
                System.out.println("请输入学生姓名:");
                String name = scanner.next();
                String age;
                while (true) {
                    System.out.println("请输入学生年龄:");
                    age = scanner.next();
                    boolean flagAge = checkAge(age);
                    if (!flagAge) {
                        System.out.println("年龄输入不合法,请重新输入:");
                    } else {
                        break;
                    }
                }
                System.out.println("请输入学生家庭住址:");
                String address = scanner.next();

                for (StudentsManage stu : list) {
                    if (id.equals(stu.getId())) {
                        stu.setId(id);
                        stu.setName(name);
                        stu.setAge(age);
                        stu.setAddress(address);
                        System.out.println("修改成功");
                        break;
                    }
                }
                break;
            }
        }
    }

    public static void getStu(ArrayList<StudentsManage> list) {
        Scanner scanner = new Scanner(System.in);
        int choice;
        int count = 0;
        while (true) {
            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);
            // 输入的数字合法性检查
            while (true) {
                choice = sc.nextInt();
                if (choice >= 1 && choice <= 5) {
                    break;
                } else {
                    System.out.println("输入有误,请重新输入:");
                }
            }
            switch (choice) {
                case 1 -> {
                    System.out.println("请输入你要查询的学生id:");
                    String id = scanner.next();
                    boolean flagId = containsId(list, id);
                    if (!flagId) {// 如果false则继续判断
                        System.out.println("当前无该学生信息,请添加后再查询");
                    } else {
                        for (StudentsManage stu : list) {
                            if (id.equals(stu.getId())) {
                                if (count == 0) {
                                    System.out.println("id      姓名       年龄    地址     ");
                                }
                                System.out.println(stu.getId() + "     " + stu.getName() + "     " + stu.getAge() + "     " + stu.getAddress());
                                break;
                            }

                        }
                    }
                }
                case 2 -> {
                    System.out.println("请输入你要查询的学生姓名:");
                    String name = scanner.next();
                    boolean flagName = containsName(list, name);
                    if (!flagName) {// 如果false则继续判断
                        System.out.println("当前无该学生信息,请添加后再查询");
                    } else {
                        for (StudentsManage stu : list) {
                            if (name.equals(stu.getName())) {
                                if (count == 0) {
                                    System.out.println("id      姓名       年龄    地址     ");
                                }
                                System.out.println(stu.getId() + "     " + stu.getName() + "     " + stu.getAge() + "     " + stu.getAddress());
                                count++;
                            }
                        }
                        count = 0;
                    }
                }
                case 3 -> {
                    System.out.println("请输入你要查询的学生年龄:");
                    String age = scanner.next();
                    boolean flagAge = containsAge(list, age);
                    if (!flagAge) {// 如果false则继续判断
                        System.out.println("当前无该学生信息,请添加后再查询");
                    } else {
                        for (StudentsManage stu : list) {
                            if (age.equals(stu.getAge())) {
                                if (count == 0) {
                                    System.out.println("id      姓名       年龄    地址     ");
                                }
                                System.out.println(stu.getId() + "     " + stu.getName() + "     " + stu.getAge() + "     " + stu.getAddress());
                                count++;
                            }
                        }
                        count = 0;
                    }
                    continue;
                }
                case 4 -> {
                    System.out.println("请输入你要查询的学生地址:");
                    String address = scanner.next();
                    boolean flagAddress = containsAddress(list, address);
                    if (!flagAddress) {// 如果false则继续判断
                        System.out.println("当前无该学生信息,请添加后再查询");
                        break;
                    } else {
                        for (StudentsManage stu : list) {
                            if (address.equals(stu.getAddress())) {
                                if (count == 0) {
                                    System.out.println("id      姓名       年龄    地址     ");
                                }
                                System.out.println(stu.getId() + "     " + stu.getName() + "     " + stu.getAge() + "     " + stu.getAddress());
                                count++;
                            }
                        }
                        count = 0;
                    }
                }
                case 5 -> {
                    System.out.println("您已成功退出学生查询系统");
                }
            }
            break;
        }
    }

JavaBean

public class StudentsManage {
    private String id;
    private String name;
    private String age;
    private String address;

    public StudentsManage() {
    }

    public StudentsManage(String id, String name, String age, String address) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    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;
    }
}

运行效果

-------------欢迎使用学生管理系统----------------
1:添加学生
2:删除学生
3:修改学生
4:查询学生
5:退出学生管理系统
请输入您的选择:
-------------欢迎使用学生查询系统----------------
1:按学号查询
2:按姓名查询
3:按年龄查询
4:按地址查询
5:退出查询系统
请输入您的选择:

欢迎各位大佬指点问题

  • 14
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值