Java项目:学生管理系统

06-21 1463阅读

Java项目:学生管理系统

  • 一、学生管理系统基础版
    • 需求
      • 1. 初始菜单
      • 2. 学生类:
      • 3. 添加功能:
      • 4. 删除功能:
      • 5. 修改功能:
      • 6. 查询功能:
      • 代码
        • 1. 学生类
        • 2. 测试类
        • 输出结果
            • a. 添加
            • b. 删除
            • c. 修改
            • d. 查询
            • e. 退出
            • 二、学生管理系统升级版
              • 需求:
                • 1. 登录界面:
                • 2. 用户类:
                • 3. 注册功能:
                • 4. 登录功能:
                • 5. 忘记密码:
                • 6. 验证码规则:
                • 代码
                  • 1. 学生类
                  • 2. 用户类
                  • 3. 学生管理系统类
                  • 4. App入口
                  • 输出结果
                    • a. 注册
                    • b. 登录
                    • c. 忘记密码
                    • d. 退出

                      一、学生管理系统基础版

                      需求

                      ​ 采取控制台的方式去书写学生管理系统。

                      1. 初始菜单

                      "-------------欢迎来到黑马学生管理系统----------------"
                      "1:添加学生"
                      "2:删除学生"
                      "3:修改学生"
                      "4:查询学生"
                      "5:退出"
                      "请输入您的选择:"
                      

                      2. 学生类:

                      ​ 属性:id、姓名、年龄、家庭住址

                      3. 添加功能:

                      ​ 键盘录入每一个学生信息并添加,需要满足以下要求:

                      • id唯一

                        4. 删除功能:

                        ​ 键盘录入要删除的学生id,需要满足以下要求:

                        • id存在删除
                        • id不存在,需要提示不存在,并回到初始菜单

                          5. 修改功能:

                          ​ 键盘录入要修改的学生id,需要满足以下要求

                          • id存在,继续录入其他信息
                          • id不存在,需要提示不存在,并回到初始菜单

                            6. 查询功能:

                            ​ 打印所有的学生信息,需要满足以下要求

                            • 如果没有学生信息,提示:当前无学生信息,请添加后再查询
                            • 如果有学生信息,需要按照以下格式输出。(不用过于纠结对齐的问题)
                              id          姓名      年龄      家庭住址
                              heima001    张三      23       南京
                              heima002    李四      24       北京
                              heima003    王五      25       广州
                              heima004    赵六      26       深圳
                              

                              代码

                              1. 学生类

                              package day11;
                              public class Student {
                                  private String id;
                                  private String name;
                                  private int age;
                                  private String position;
                                  public Student() {
                                  }
                                  public Student(String id, String name, int age, String position) {
                                      this.id = id;
                                      this.name = name;
                                      this.age = age;
                                      this.position = position;
                                  }
                                  /**
                                   * 获取
                                   * @return id
                                   */
                                  public String getId() {
                                      return id;
                                  }
                                  /**
                                   * 设置
                                   * @param id
                                   */
                                  public void setId(String id) {
                                      this.id = id;
                                  }
                                  /**
                                   * 获取
                                   * @return name
                                   */
                                  public String getName() {
                                      return name;
                                  }
                                  /**
                                   * 设置
                                   * @param name
                                   */
                                  public void setName(String name) {
                                      this.name = name;
                                  }
                                  /**
                                   * 获取
                                   * @return age
                                   */
                                  public int getAge() {
                                      return age;
                                  }
                                  /**
                                   * 设置
                                   * @param age
                                   */
                                  public void setAge(int age) {
                                      this.age = age;
                                  }
                                  /**
                                   * 获取
                                   * @return position
                                   */
                                  public String getPosition() {
                                      return position;
                                  }
                                  /**
                                   * 设置
                                   * @param position
                                   */
                                  public void setPosition(String position) {
                                      this.position = position;
                                  }
                                  public String toString() {
                                      return "Student{id = " + id + ", name = " + name + ", age = " + age + ", position = " + position + "}";
                                  }
                              }
                              

                              2. 测试类

                              package day11;
                              import java.util.ArrayList;
                              import java.util.Scanner;
                              public class StudentSystem {
                                  public static void main(String[] args) {
                                      ArrayList students = new ArrayList();
                                      Scanner sc = 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.print("请输入您的选择: ");
                                          String choose = sc.next();
                                          switch (choose) {
                                              case "1":
                                                  addStudent(students);
                                                  break;
                                              case "2":
                                                  deleteStudent(students);
                                                  break;
                                              case "3":
                                                  updateStudent(students);
                                                  break;
                                              case "4":
                                                  queryStudent(students);
                                                  break;
                                              case "5":
                                                  System.out.println("谢谢光临");
                                                  System.exit(0);
                                              default:
                                                  System.out.println("没有这个选项");
                                                  break;
                                          }
                                      }
                                  }
                                  public static void addStudent(ArrayList students) {
                                      Scanner sc = new Scanner(System.in);
                                      Student newStu = new Student();
                                      // 判断id是否存在
                                      String id = null;
                                      while (true) {
                                          System.out.println("请输入学生ID");
                                          id = sc.next();
                                          boolean flag = contains(students, id);
                                          if (flag) {
                                              System.out.println("id已存在,请重新输入");
                                          } else {
                                              newStu.setId(id);
                                              break;
                                          }
                                      }
                                      System.out.println("请输入学生姓名");
                                      String name = sc.next();
                                      newStu.setName(name);
                                      System.out.println("请输入学生年龄");
                                      int age = sc.nextInt();
                                      newStu.setAge(age);
                                      System.out.println("请输入学生家庭住址");
                                      String position = sc.next();
                                      newStu.setPosition(position);
                                      students.add(newStu);
                                      System.out.println("学生信息添加成功");
                                  }
                                  public static void deleteStudent(ArrayList students) {
                                      Scanner sc = new Scanner(System.in);
                                      System.out.println("请输入要删除的id");
                                      String id = sc.next();
                                      int index = getIndex(students, id);
                                      if (index >= 0) {
                                          students.remove(index);
                                          System.out.println("id为" + id + "的学生删除成功");
                                      } else {
                                          System.out.println("要删除的id:" + id + "不存在,请重新输入");
                                      }
                                  }
                                  public static void updateStudent(ArrayList students) {
                                      Scanner sc = new Scanner(System.in);
                                      System.out.println("请输入要修改学生的id");
                                      String id = sc.next();
                                      int index = getIndex(students, id);
                                      if (index == -1) {
                                          System.out.println("要修改的id:" + id + "不存在,请重新输入");
                                          return;
                                      }
                                      Student stu = students.get(index);
                                      System.out.println("请输入要修改的学生姓名");
                                      String newName = sc.next();
                                      stu.setName(newName);
                                      System.out.println("请输入要修改的学生年龄");
                                      int newAge = sc.nextInt();
                                      stu.setAge(newAge);
                                      System.out.println("请输入要修改的学生家庭住址");
                                      String newPosition = sc.next();
                                      stu.setPosition(newPosition);
                                      System.out.println("学生信息修改成功");
                                  }
                                  public static void queryStudent(ArrayList students) {
                                      if (students.size() == 0) {
                                          System.out.println("当前无学生信息,请添加后再查询");
                                          return;
                                      }
                                      System.out.println("id\t\t姓名\t年龄\t家庭地址");
                                      for (int i = 0; i = 0;
                                  }
                                  /**
                                   * 通过id获得索引
                                   *
                                   * @param students 学生集合
                                   * @param id       学生id
                                   * @return 存在则返回索引值,不存在返回-1
                                   */
                                  public static int getIndex(ArrayList students, String id) {
                                      for (int i = 0; i  
                              

                              输出结果

                              a. 添加

                              Java项目:学生管理系统

                              Java项目:学生管理系统

                              b. 删除

                              Java项目:学生管理系统

                              Java项目:学生管理系统

                              c. 修改

                              Java项目:学生管理系统

                              Java项目:学生管理系统

                              d. 查询

                              Java项目:学生管理系统

                              e. 退出

                              Java项目:学生管理系统

                              二、学生管理系统升级版

                              需求:

                              ​ 为学生管理系统书写一个登陆、注册、忘记密码的功能。

                              ​ 只有用户登录成功之后,才能进入到学生管理系统中进行增删改查操作。

                              1. 登录界面:

                              System.out.println("欢迎来到学生管理系统");
                              System.out.println("请选择操作1登录 2注册 3忘记密码");
                              

                              2. 用户类:

                              ​ 属性:用户名、密码、身份证号码、手机号码

                              3. 注册功能:

                              1. 用户名需要满足以下要求:

                                • 用户名唯一
                                • 用户名长度必须在3~15位之间
                                • 只能是字母加数字的组合,但是不能是纯数字
                                • 密码键盘输入两次,两次一致才可以进行注册。

                                • 身份证号码需要满足以下要求:

                                  • 长度为18位
                                  • 不能以0为开头
                                  • 前17位,必须都是数字
                                  • 最为一位可以是数字,也可以是大写X或小写x
                                  • 手机号需要满足以下要求:

                                    • 长度为11位
                                    • 不能以0为开头
                                    • 必须都是数字

                              4. 登录功能:

                              1. 键盘录入用户名
                              2. 键盘录入密码
                              3. 键盘录入验证码
                              • 验证要求:
                                • 用户名如果未注册,直接结束方法,并提示:用户名未注册,请先注册
                                • 判断验证码是否正确,如不正确,重新输入
                                • 再判断用户名和密码是否正确,有3次机会

                                  5. 忘记密码:

                                  1. 键盘录入用户名,判断当前用户名是否存在,如不存在,直接结束方法,并提示:未注册
                                  2. 键盘录入身份证号码和手机号码
                                  3. 判断当前用户的身份证号码和手机号码是否一致,如果一致,则提示输入密码,进行修改。如果不一致,则提示:账号信息不匹配,修改失败。

                                  6. 验证码规则:

                                  1. 长度为5
                                  2. 由4位大写或者小写字母和1位数字组成,同一个字母可重复
                                  3. 数字可以出现在任意位置。比如:aQa1K。

                                  代码

                                  1. 学生类

                                  package day11;
                                  public class Student {
                                      private String id;
                                      private String name;
                                      private int age;
                                      private String position;
                                      public Student() {
                                      }
                                      public Student(String id, String name, int age, String position) {
                                          this.id = id;
                                          this.name = name;
                                          this.age = age;
                                          this.position = position;
                                      }
                                      /**
                                       * 获取
                                       * @return id
                                       */
                                      public String getId() {
                                          return id;
                                      }
                                      /**
                                       * 设置
                                       * @param id
                                       */
                                      public void setId(String id) {
                                          this.id = id;
                                      }
                                      /**
                                       * 获取
                                       * @return name
                                       */
                                      public String getName() {
                                          return name;
                                      }
                                      /**
                                       * 设置
                                       * @param name
                                       */
                                      public void setName(String name) {
                                          this.name = name;
                                      }
                                      /**
                                       * 获取
                                       * @return age
                                       */
                                      public int getAge() {
                                          return age;
                                      }
                                      /**
                                       * 设置
                                       * @param age
                                       */
                                      public void setAge(int age) {
                                          this.age = age;
                                      }
                                      /**
                                       * 获取
                                       * @return position
                                       */
                                      public String getPosition() {
                                          return position;
                                      }
                                      /**
                                       * 设置
                                       * @param position
                                       */
                                      public void setPosition(String position) {
                                          this.position = position;
                                      }
                                      public String toString() {
                                          return "Student{id = " + id + ", name = " + name + ", age = " + age + ", position = " + position + "}";
                                      }
                                  }
                                  

                                  2. 用户类

                                  package day11;
                                  public class User {
                                      private String username;
                                      private String pd;
                                      private String userId;
                                      private String phoneNumber;
                                      public User() {
                                      }
                                      public User(String username, String pd, String userId, String phoneNumber) {
                                          this.username = username;
                                          this.pd = pd;
                                          this.userId = userId;
                                          this.phoneNumber = phoneNumber;
                                      }
                                      /**
                                       * 获取
                                       * @return username
                                       */
                                      public String getUsername() {
                                          return username;
                                      }
                                      /**
                                       * 设置
                                       * @param username
                                       */
                                      public void setUsername(String username) {
                                          this.username = username;
                                      }
                                      /**
                                       * 获取
                                       * @return pd
                                       */
                                      public String getPd() {
                                          return pd;
                                      }
                                      /**
                                       * 设置
                                       * @param pd
                                       */
                                      public void setPd(String pd) {
                                          this.pd = pd;
                                      }
                                      /**
                                       * 获取
                                       * @return userId
                                       */
                                      public String getUserId() {
                                          return userId;
                                      }
                                      /**
                                       * 设置
                                       * @param userId
                                       */
                                      public void setUserId(String userId) {
                                          this.userId = userId;
                                      }
                                      /**
                                       * 获取
                                       * @return phoneNumber
                                       */
                                      public String getPhoneNumber() {
                                          return phoneNumber;
                                      }
                                      /**
                                       * 设置
                                       * @param phoneNumber
                                       */
                                      public void setPhoneNumber(String phoneNumber) {
                                          this.phoneNumber = phoneNumber;
                                      }
                                      public String toString() {
                                          return "User{username = " + username + ", pd = " + pd + ", userId = " + userId + ", phoneNumber = " + phoneNumber + "}";
                                      }
                                  }
                                  

                                  3. 学生管理系统类

                                  package day11;
                                  import java.util.ArrayList;
                                  import java.util.Scanner;
                                  public class StudentSystem {
                                      public static void startStudentSystem() {
                                          ArrayList students = new ArrayList();
                                          Scanner sc = new Scanner(System.in);
                                          loop:
                                          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.print("请输入您的选择: ");
                                              String choose = sc.next();
                                              switch (choose) {
                                                  case "1":
                                                      addStudent(students);
                                                      break;
                                                  case "2":
                                                      deleteStudent(students);
                                                      break;
                                                  case "3":
                                                      updateStudent(students);
                                                      break;
                                                  case "4":
                                                      queryStudent(students);
                                                      break;
                                                  case "5":
                                                      System.out.println("谢谢光临");
                                                      break loop;
                                                  // System.exit(0);
                                                  default:
                                                      System.out.println("没有这个选项");
                                                      break;
                                              }
                                          }
                                      }
                                      public static void addStudent(ArrayList students) {
                                          Scanner sc = new Scanner(System.in);
                                          Student newStu = new Student();
                                          // 判断id是否存在
                                          String id = null;
                                          while (true) {
                                              System.out.println("请输入学生ID");
                                              id = sc.next();
                                              boolean flag = contains(students, id);
                                              if (flag) {
                                                  System.out.println("id已存在,请重新输入");
                                              } else {
                                                  newStu.setId(id);
                                                  break;
                                              }
                                          }
                                          System.out.println("请输入学生姓名");
                                          String name = sc.next();
                                          newStu.setName(name);
                                          System.out.println("请输入学生年龄");
                                          int age = sc.nextInt();
                                          newStu.setAge(age);
                                          System.out.println("请输入学生家庭住址");
                                          String position = sc.next();
                                          newStu.setPosition(position);
                                          students.add(newStu);
                                          System.out.println("学生信息添加成功");
                                      }
                                      public static void deleteStudent(ArrayList students) {
                                          Scanner sc = new Scanner(System.in);
                                          System.out.println("请输入要删除的id");
                                          String id = sc.next();
                                          int index = getIndex(students, id);
                                          if (index >= 0) {
                                              students.remove(index);
                                              System.out.println("id为" + id + "的学生删除成功");
                                          } else {
                                              System.out.println("要删除的id:" + id + "不存在,请重新输入");
                                          }
                                      }
                                      public static void updateStudent(ArrayList students) {
                                          Scanner sc = new Scanner(System.in);
                                          System.out.println("请输入要修改学生的id");
                                          String id = sc.next();
                                          int index = getIndex(students, id);
                                          if (index == -1) {
                                              System.out.println("要修改的id:" + id + "不存在,请重新输入");
                                              return;
                                          }
                                          Student stu = students.get(index);
                                          System.out.println("请输入要修改的学生姓名");
                                          String newName = sc.next();
                                          stu.setName(newName);
                                          System.out.println("请输入要修改的学生年龄");
                                          int newAge = sc.nextInt();
                                          stu.setAge(newAge);
                                          System.out.println("请输入要修改的学生家庭住址");
                                          String newPosition = sc.next();
                                          stu.setPosition(newPosition);
                                          System.out.println("学生信息修改成功");
                                      }
                                      public static void queryStudent(ArrayList students) {
                                          if (students.size() == 0) {
                                              System.out.println("当前无学生信息,请添加后再查询");
                                              return;
                                          }
                                          System.out.println("id\t\t姓名\t年龄\t家庭地址");
                                          for (int i = 0; i = 0;
                                      }
                                      /**
                                       * 通过id获得索引
                                       *
                                       * @param students 学生集合
                                       * @param id       学生id
                                       * @return 存在则返回索引值,不存在返回-1
                                       */
                                      public static int getIndex(ArrayList students, String id) {
                                          for (int i = 0; i  
                                  

                                  4. App入口

                                  package day11;
                                  import java.util.ArrayList;
                                  import java.util.Random;
                                  import java.util.Scanner;
                                  public class App {
                                      public static void main(String[] args) {
                                          Scanner sc = new Scanner(System.in);
                                          ArrayList users = new ArrayList();
                                          while (true) {
                                              System.out.println("欢迎来到学生管理系统");
                                              System.out.println("请选择操作 1、登录 2、注册 3、忘记密码 按其他键退出");
                                              String choose = sc.next();
                                              switch (choose) {
                                                  case "1":
                                                      login(users);
                                                      break;
                                                  case "2":
                                                      register(users);
                                                      break;
                                                  case "3":
                                                      forgetPd(users);
                                                      break;
                                                  default:
                                                      System.out.println("谢谢使用,再见");
                                                      System.exit(0);
                                                      break;
                                              }
                                          }
                                      }
                                      /**
                                       * 忘记密码
                                       *
                                       * @param users 用户集合
                                       */
                                      private static void forgetPd(ArrayList users) {
                                          Scanner sc = new Scanner(System.in);
                                          System.out.println("请输入用户名");
                                          String username = sc.next();
                                          // 判断用户名是否注册
                                          boolean flag = contains(users, username);
                                          if (!flag) {
                                              System.out.println("当前用户" + username + "未注册,请先注册");
                                          }
                                          System.out.println("请输入身份证号码");
                                          String userId = sc.next();
                                          System.out.println("请输入手机号码");
                                          String phoneNumber = sc.next();
                                          int index = findIndex(users, username);
                                          User user = users.get(index);
                                          if (!(user.getUserId().equalsIgnoreCase(userId) && user.getPhoneNumber().equals(phoneNumber))) {
                                              System.out.println("身份证号码或手机号码输入有误,不能修改密码");
                                              return;
                                          }
                                          String pd;
                                          while (true) {
                                              System.out.println("请输入新的密码");
                                              pd = sc.next();
                                              System.out.println("请再次输入新的密码");
                                              String againPd = sc.next();
                                              if (pd.equals(againPd)) {
                                                  System.out.println("两次密码一致");
                                                  break;
                                              } else {
                                                  System.out.println("两次密码不一致,请重新输入");
                                              }
                                          }
                                          user.setPd(pd);
                                          System.out.println("密码修改成功");
                                      }
                                      /**
                                       * 查找用户名在用户集合中的索引值
                                       *
                                       * @param users    用户集合
                                       * @param username 用户名
                                       * @return 存在返回索引值,不存在返回-1
                                       */
                                      private static int findIndex(ArrayList users, String username) {
                                          for (int i = 0; i = '0' && c 
                                                  return false;
                                              }
                                          }
                                          return true;
                                      }
                                      /**
                                       * 验证身份证号码格式
                                       *
                                       * @param userId 身份证号码
                                       * @return 符合规范返回true,否则返回false
                                       */
                                      private static boolean checkUserId(String userId) {
                                          if (userId.length() != 18) {
                                              return false;
                                          }
                                          if (userId.startsWith("0")) {
                                              return false;
                                          }
                                          // 前17位必须是数字
                                          for (int i = 0; i  15) {
                                              return false;
                                          }
                                          // 必须是字母加数字
                                          for (int i = 0; i = 'a' && c = 'A' && c = '0' && c 
                                                  return false;
                                              }
                                          }
                                          // 统计在用户名中,有多少个字母和数字
                                          int charCount = 0;
                                          int numCount = 0;
                                          for (int i = 0; i 
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]