Java—学生信息管理系统(简单、详细)
作者:mmseoamin日期:2024-02-04

文章目录

  • 一、主界面展示
  • 二、学生类
  • 三、系统功能方法
    • 3.1 main()方法
    • 3.2 添加学生信息
    • 3.3 删除学生信息
    • 3.4 修改学生信息
    • 3.5 查看所有学生信息
    • 四、完整代码
      • 4.1 Student .Java
      • 4.2 StudentManger.Java

          前言:本案例在实现时使用了Java语言中的ArrayList集合来储存数据。我把整个项目分成了Student .Java、StudentManger.Java 两个部分,实现了简单的学生信息管理系统。文章先分部讲解代码,最后附上完整的项目代码。

        Java—学生信息管理系统(简单、详细),在这里插入图片描述,第1张


        一、主界面展示

        Java—学生信息管理系统(简单、详细),在这里插入图片描述,第2张

        二、学生类

         我们首先创建学生类和构造方法:

        • 成员变量:学号(sid)、姓名(name)、年龄(age)、居住地(address)。
        • 构造方法:无参构造和带四个参数的构造。
        • 成员方法:每个成员变量对应给出get/set方法。
          public class Student {
              //学号
              private String sid;
              //姓名
              private String name;
              //年龄
              private String age;
              //地址
              private String address;
              public String getSid() {
                  return sid;
              }
              public void setSid(String sid) {
                  this.sid = sid;
              }
              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;
              }
          }
          

          三、系统功能方法

          3.1 main()方法

           思路:

          • 用输出语句完成主界面编写。
          • 用Scanner实现键盘录入数据。
          • 用switch语句完成操作的选择。
          • 用循环完成再次回到主界面。
                public static void main(String[] args){
                    //创建集合对象,用于存储学生数据
                    ArrayList array=new ArrayList();
                    //用循环完成再次回到主界面
                    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实现键盘录入数据
                        Scanner sc = new Scanner(System.in);
                        String line = sc.nextLine();
                        //用switch语句完成操作选择
                        switch (line) {
                            case "1":
                                addStudent(array);
                                break;
                            case "2":
                                deleteStudent(array);
                                break;
                            case "3":
                                updateStudent(array);
                                break;
                            case "4":
                                finalAllStudent(array);
                                break;
                            case "5":
                                System.out.println("已退出,谢谢使用");
                                System.exit(0); //退出虚拟机
                        }
                    }
                }
            

            3.2 添加学生信息

             思路:

            • 显示提示信息,提示要输入何种信息。
            • 键盘录入学生对象所需要的数据。
            • 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量。
            • 将学生对象添加到集合中(保存)。
            • 给出添加成功提示。

              注意:学生信息中姓名最好为3个字、年龄最好为2位数。如:赵四四 20。

                  public static void addStudent(ArrayList array){
                      Scanner sc=new Scanner(System.in);
                      String sid;
                      while(true) {
                          System.out.println("请输入学生的学号:");
                          sid = sc.nextLine();
                          boolean flag = isUsed(array, sid);
                          if (flag) {
                              System.out.println("你输入的学号已被占用,请重新输入:");
                          }
                          else{
                              break;
                          }
                      }
                      System.out.println("请输入学生的姓名:");
                      String name=sc.nextLine();
                      System.out.println("请输入学生的年龄:");
                      String age=sc.nextLine();
                      System.out.println("请输入学生的居住地:");
                      String address=sc.nextLine();
                      //创建学生对象,将键盘录入的数据赋值给学生对象的成员变量
                      Student s=new Student();
                      s.setSid(sid);
                      s.setName(name);
                      s.setAge(age);
                      s.setAddress(address);
                      //将学生对象添加到集合中
                      array.add(s);
                      //给出添加成功提示
                      System.out.println("添加学生成功");
                  }
              

              3.3 删除学生信息

               思路:

              • 显示提示信息。
              • 键盘录入要删除的学生学号。
              • 遍历集合将对应学生对象从集合中删除。
              • 给出删除成功提示。
                    public static void deleteStudent(ArrayList array){
                        Scanner sc=new Scanner(System.in);
                        System.out.println("请输入你要删除的学生的学号:");
                        String sid=sc.nextLine();
                        //遍历集合将对应的学生对象从集合中删除
                        for(int i=0; i< array.size(); i++){
                            Student s=array.get(i);
                            if(s.getSid().equals(sid)){
                                array.remove(i);
                                break;
                            }
                        }
                        System.out.println("删除该学生信息成功");
                    }
                

                3.4 修改学生信息

                 思路:

                • 显示提示信息。
                • 键盘录入要修改的学生学号。
                • 键盘录入要修改的学生信息。
                • 遍历集合修改对应的学生信息。
                • 给出修改成功提示。
                      public static void updateStudent(ArrayList array){
                          Scanner sc=new Scanner(System.in);
                          System.out.println("请输入你要修改的学生的学号:");
                          String sid=sc.nextLine();
                          //键盘录入要修改的学生信息
                          System.out.println("请输入学生的新姓名:");
                          String name=sc.nextLine();
                          System.out.println("请输入学生的新年龄:");
                          String age=sc.nextLine();
                          System.out.println("请输入学生的新居住地:");
                          String address=sc.nextLine();
                          //创建学生对象
                          Student s=new Student();
                          s.setSid(sid);
                          s.setName(name);
                          s.setAge(age);
                          s.setAddress(address);
                          //遍历集合修改对应的学生信息
                          for(int i=0; i
                              Student student=array.get(i);
                              if(student.getSid().equals(sid)){
                                  array.set(i,s);  //把修改后的student s赋值给i的位置
                                  break;
                              }
                          }
                          //给出修改成功提示
                          System.out.println("修改学生信息成功");
                      }
                  }
                  

                  3.5 查看所有学生信息

                   思路:

                  • 显示表头信息。
                  • 将集合中的数据取出按照对应格式显示学生信息,年龄显示补充“ 岁 ”。
                        public static void finalAllStudent(ArrayList array){
                            //判断集合是否有数据,如果没有显示提示信息
                            if(array.size()==0){
                                System.out.println("无信息,请先添加信息再查询");
                                //为了让程序不再往下执行
                                return;
                            }
                            //显示表头信息
                            System.out.println("学号\t\t\t姓名\t\t\t年龄\t\t居住地");
                            for(int i=0; i
                                Student s=array.get(i);
                                System.out.println(s.getSid()+"\t\t"+s.getName()+"\t\t"+s.getAge()+"岁\t"+s.getAddress());
                            }
                        }
                    

                    四、完整代码

                    4.1 Student .Java

                    public class Student {
                        //学号
                        private String sid;
                        //姓名
                        private String name;
                        //年龄
                        private String age;
                        //地址
                        private String address;
                        public String getSid() {
                            return sid;
                        }
                        public void setSid(String sid) {
                            this.sid = sid;
                        }
                        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;
                        }
                    }
                    

                    4.2 StudentManger.Java

                    package mypackage;
                    import java.util.ArrayList;
                    import java.util.Scanner;
                    public class StudentManger {
                        public static void main(String[] args){
                            //创建集合对象,用于存储学生数据
                            ArrayList array=new ArrayList();
                            //用循环完成再次回到主界面
                            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实现键盘录入数据
                                Scanner sc = new Scanner(System.in);
                                String line = sc.nextLine();
                                //用switch语句完成操作选择
                                switch (line) {
                                    case "1":
                                        addStudent(array);
                                        break;
                                    case "2":
                                        deleteStudent(array);
                                        break;
                                    case "3":
                                        updateStudent(array);
                                        break;
                                    case "4":
                                        finalAllStudent(array);
                                        break;
                                    case "5":
                                        System.out.println("已退出,谢谢使用");
                                        System.exit(0); //退出虚拟机
                                }
                            }
                        }
                        //定义添加学生信息的方法
                        public static void addStudent(ArrayList array){
                            Scanner sc=new Scanner(System.in);
                            String sid;
                            while(true) {
                                System.out.println("请输入学生的学号:");
                                sid = sc.nextLine();
                                boolean flag = isUsed(array, sid);
                                if (flag) {
                                    System.out.println("你输入的学号已被占用,请重新输入:");
                                }
                                else{
                                    break;
                                }
                            }
                            System.out.println("请输入学生的姓名:");
                            String name=sc.nextLine();
                            System.out.println("请输入学生的年龄:");
                            String age=sc.nextLine();
                            System.out.println("请输入学生的居住地:");
                            String address=sc.nextLine();
                            //创建学生对象,将键盘录入的数据赋值给学生对象的成员变量
                            Student s=new Student();
                            s.setSid(sid);
                            s.setName(name);
                            s.setAge(age);
                            s.setAddress(address);
                            //将学生对象添加到集合中
                            array.add(s);
                            //给出添加成功提示
                            System.out.println("添加学生成功");
                        }
                        //定义判断学号是否被占用方法
                        public static boolean isUsed(ArrayList array, String sid){
                            boolean flag=false;
                            for(int i=0; i< array.size(); i++){
                                Student s= array.get(i);
                                if(s.getSid().equals(sid)){
                                    flag=true;
                                    break;
                                }
                            }
                            return  flag;
                        }
                        //定义查看所有学生信息的方法
                        public static void finalAllStudent(ArrayList array){
                            //判断集合是否有数据,如果没有显示提示信息
                            if(array.size()==0){
                                System.out.println("无信息,请先添加信息再查询");
                                //为了让程序不再往下执行
                                return;
                            }
                            //显示表头信息
                            System.out.println("学号\t\t\t姓名\t\t\t年龄\t\t居住地");
                            for(int i=0; i
                                Student s=array.get(i);
                                System.out.println(s.getSid()+"\t\t"+s.getName()+"\t\t"+s.getAge()+"岁\t"+s.getAddress());
                            }
                        }
                        //定义删除学生信息的方法
                        public static void deleteStudent(ArrayList array){
                            Scanner sc=new Scanner(System.in);
                            System.out.println("请输入你要删除的学生的学号:");
                            String sid=sc.nextLine();
                            //遍历集合将对应的学生对象从集合中删除
                            for(int i=0; i< array.size(); i++){
                                Student s=array.get(i);
                                if(s.getSid().equals(sid)){
                                    array.remove(i);
                                    break;
                                }
                            }
                            System.out.println("删除该学生信息成功");
                        }
                        //定义修改学生信息的方法
                        public static void updateStudent(ArrayList array){
                            Scanner sc=new Scanner(System.in);
                            System.out.println("请输入你要修改的学生的学号:");
                            String sid=sc.nextLine();
                            //键盘录入要修改的学生信息
                            System.out.println("请输入学生的新姓名:");
                            String name=sc.nextLine();
                            System.out.println("请输入学生的新年龄:");
                            String age=sc.nextLine();
                            System.out.println("请输入学生的新居住地:");
                            String address=sc.nextLine();
                            //创建学生对象
                            Student s=new Student();
                            s.setSid(sid);
                            s.setName(name);
                            s.setAge(age);
                            s.setAddress(address);
                            //遍历集合修改对应的学生信息
                            for(int i=0; i
                                Student student=array.get(i);
                                if(student.getSid().equals(sid)){
                                    array.set(i,s);  //把修改后的student s赋值给i的位置
                                    break;
                                }
                            }
                            //给出修改成功提示
                            System.out.println("修改学生信息成功");
                        }
                    }