学生管理系统无图形界面版(源码见文末)

学生管理系统效果展示

主界面

添加功能测试

修改功能测试

遍历功能测试

删除功能测试

学号不重复测试

学生管理系统实现思路

  1. 定义学生类

    思路

    学生类:
    ​ Student

    成员变量:
    ​ 学号:id
    ​ 姓名:name
    ​ 年龄:age
    ​ 居住地:address

    构造方法以及get/set方法

    源代码

    Student.java

    package com.zeng;
    
    /**
     * 学生类
     * Alt+Insert 可以快速添加构造方法以及get/set方法
     */
    public class Student {
    
    //    学号
        private String id;
    //    姓名
        private String name;
    //    年龄
        private int age;
    //    住址
        private String address;
    
        public Student() {
        }
    
        public Student(String id, String name, int 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 int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    }
    
  2. 主界面的代码编写

    思路

    1. 用输出语句完成主界面的编写
    2. 用Scanner实现键盘录入数据
    3. 用switch语句完成操作的选择
    4. 用循环完成再次回到主界面

    源代码

    StudentManager.java

    package com.zeng;
    
    import java.util.Scanner;
    
    public class StudentManager {
        public static void main(String[] args) {
    //        创建集合对象,用于存储学生数据
            ArrayList<Student> stuList =  new ArrayList<Student>();
    //        用循环完成再次回到主界面
            while(true) {
    
    //          用输出语句完成主界面的编写
                System.out.println("--------欢迎来到学生管理系统--------");
                System.out.println("1 添加学生");
                System.out.println("2 删除学生");
                System.out.println("3 修改学生");
                System.out.println("4 遍历学生");
                System.out.println("0 退出系统");
                System.out.println("请输入你的选择:");
    
    //          用Scanner实现键盘录入数据
                Scanner sc = new Scanner(System.in);
                String choice = sc.next();
    
    //          用switch语句完成操作的选择
                switch (choice) {
                    case "1":
                        System.out.println("添加学生");
                        break;
                    case "2":
                        System.out.println("删除学生");
                        break;
                    case "3":
                        System.out.println("修改学生");
                        break;
                    case "4":
                        System.out.println("遍历学生");
                        break;
                    case "0":
                        System.out.println("谢谢使用");
    //                    JVM退出
                        System.exit(0);
                }
            }
        }
    
    
  3. 添加学生的代码编写

    思路

    1. 用键盘录入选择添加学生
    2. 定义一个方法,用于添加学生
      1. 显示提示信息,提示要输入何种信息
      2. 键盘录入学生对象所需要的数据
      3. 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
      4. 将学生对象添加到集合中(保存)
      5. 给出添加成功提示
    3. 调用方法

    源代码

    StudentManager.java

        public static  void addStudent(ArrayList<Student> stuArray) {
    //        键盘录入学生对象所需要的数据
            Scanner sc = new Scanner(System.in);
    
            System.out.println("请输入学生学号");
            String id = sc.next();
            System.out.println("请输入学生姓名");
            String name = sc.next();
            System.out.println("请输入学生年龄");
            int age = sc.nextInt();
            System.out.println("请输入学生住址");
            String address = sc.next();
    
    //        创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
            Student stu = new Student();
            stu.setId(id);
            stu.setName(name);
            stu.setAge(age);
            stu.setAddress(address);
    
    //        将学生对象添加到集合中(保存)
            stuArray.add(stu);
    
    //        给出添加成功提示
            System.out.println("添加学生成功!");
        }
    
  4. 查看学生的代码编写

    思路

    1. 用键盘录入选择查看遍历学生信息
    2. 定义一个方法,用于遍历学生信息
      1. 判定集合中是否有数据,如果没有显示提示信息
      2. 显示表头信息
      3. 将集合中数据按照对应格式显示学生信息,年龄显示补充“岁”
    3. 调用方法

    源代码:

    StudentManager.java

    //    遍历学生
        public static void findAllStudent(ArrayList<Student> stuList) {
    //        判定集合中是否有数据,如果没有显示提示信息
            if (stuList.size() == 0) {
                System.out.println("无信息,请先添加信息在查询!");
                return;
            }
    
    //        显示表头信息
            System.out.println("学号\t\t姓名\t\t年龄\t\t住址");
    
    //        将集合中数据按照对应格式显示学生信息,年龄显示补充“岁”
            for (int i = 0; i < stuList.size(); i++) {
                Student stu = stuList.get(i);
                System.out.println(stu.getId() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getAddress());
            }
        }
    
  5. 删除学生的代码编写

    思路:

    1. 用键盘录入选择删除学生信息
    2. 定义一个方法,用于删除学生信息
      1. 显示提示信息
      2. 键盘录入要删除的学生学号,如果学号不存在,则显示提示信息
      3. 遍历集合将对应学生对象从集合中删除
      4. 给出删除成功提示
    3. 调用方法

    源代码:

    StudentManager.java

    //    删除学生
        public static void deleteStudent(ArrayList<Student> stuList) {
    //        键盘录入要删除的学生学号,显示提示信息
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要删除的学生的学号:");
            String stuId = sc.next();
    
    //        用于记录删除元素的下标
            int index = -1;
    
    //        遍历集合将对应学生对象从集合中删除
            for (int i = 0; i < stuList.size(); i++) {
                Student stu = stuList.get(i);
                if (stu.getId().equals(stuId)) {
                    index = i;
                    break;
                }
            }
    
            if (index == -1) {
                System.out.println("该学号不存在,请重新输入");
            } else {
                stuList.remove(index);
                System.out.println("删除学生成功!");
            }
        }
    
  6. 修改学生的代码编写

    思路:

    1. 用键盘录入选择修改学生信息
    2. 定义一个方法,用于修改学生信息
      1. 显示提示信息
      2. 键盘录入要修改的学生学号
      3. 键盘录入要修改的学生信息
      4. 遍历集合修改对应的学生信息
      5. 给出修改成功提示
    3. 调用方法

    源代码:

    StudentManager.java

    //    修改学生
        public static void updateStudent(ArrayList<Student> stuList) {
    //        键盘录入要修改的学生学号,显示提示信息
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要修改的学生的学号:");
            String id = sc.next();
    
    //        用于记录修改元素的下标
            int index = -1;
    
    //        键盘录入要修改的学生信息
            System.out.println("请输入学生新姓名:");
            String name = sc.next();
            System.out.println("请输入学生新年龄:");
            int age = sc.nextInt();
            System.out.println("请输入学生新住址:");
            String address = sc.next();
    
    //        创建学生对象
            Student stu = new Student();
            stu.setId(id);
            stu.setName(name);
            stu.setAge(age);
            stu.setAddress(address);
    
    //        集合遍历修改对应的学生信息
            for (int i = 0; i < stuList.size(); i++) {
                Student temp = stuList.get(i);
                if (temp.getId().equals(id)) {
                    index = i;
                    break;
                }
            }
    
            if (index == -1) {
                System.out.println("该学号不存在,请重新输入!");
            } else {
                stuList.set(index, stu);
                System.out.println("修改学生成功!");
            }
        }
    

    解决添加学生学号重复问题

    思路:

    1. 定义一个方法,对学号是否被使用进行判断

      如果与集合中的某一个学生学号相同,返回true

      如果都不相同,返回false

    2. 在添加学生录入学号后调用该方法

      1. 如果返回true,弹出提示,重新输入学号
      2. 如果返回false,正常添加学生对象

    源代码:

    StudentManager.java

    //    判断学号是否被使用
        public static boolean isUesd(ArrayList<Student> stuList, String id) {
            boolean flag = false;
            for (int i = 0; i < stuList.size(); i++) {
                Student stu = stuList.get(i);
                if (stu.getId().equals(id)) {
                    flag = true;
                    break;
                }
            }
            return flag;
        }
    
    //改进addStudent()方法, 上面的被弃用
    //    添加学生
        public static  void addStudent(ArrayList<Student> stuArray) {
    //        键盘录入学生对象所需要的数据
            Scanner sc = new Scanner(System.in);
    
            String id;
    
            while (true) {
                System.out.println("请输入学生学号:");
                id = sc.next();
    
                boolean flag = isUesd(stuArray, id);
                if (flag) {
                    System.out.println("你输入的学号已经被舒勇,请重新输入");
                } else {
                    break;
                }
            }
    
            System.out.println("请输入学生姓名:");
            String name = sc.next();
            System.out.println("请输入学生年龄:");
            int age = sc.nextInt();
            System.out.println("请输入学生住址:");
            String address = sc.next();
    
    //        创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
            Student stu = new Student();
            stu.setId(id);
            stu.setName(name);
            stu.setAge(age);
            stu.setAddress(address);
    
    //        将学生对象添加到集合中(保存)
            stuArray.add(stu);
    
    //        给出添加成功提示
            System.out.println("添加学生成功!");
        }
    

源码:https://gitee.com/dwadzxd_1812806483/student-management-system.git

posted @   我的奇妙之旅  阅读(101)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示