教师管理系统

打印 上一主题 下一主题

主题 859|帖子 859|积分 2577

大概功能:


1.表现所有教师 2.按姓名查找教师 3.按工号查找教师 4.增加教师 5.删除教师 6.退出

数据会保存到 txt 文件内里
姓名:必须是中文
手机号码:必须是11位,必须是数字

结果展示:






代码展示:

TeacherSystem类:

  1. package TEACHERSYSTEM;
  2. import java.io.*;
  3. import java.util.ArrayList;
  4. import java.util.Objects;
  5. import java.util.Random;
  6. import java.util.Scanner;
  7. public class TeacherSystem {
  8.     public static void main(String[] args) {
  9.         ArrayList<User> list = new ArrayList<>();
  10.         User u1 = new User("1238", "张三", "18716699212", "35612341243123@qq.com", 701);
  11.         User u2 = new User("1234", "李四", "18716699212", "35612341243123@qq.com", 801);
  12.         User u3 = new User("12345", "王五", "18716699212", "35612341243123@qq.com", 901);
  13.         list.add(u1);
  14.         list.add(u2);
  15.         list.add(u3);
  16.         // 从文件加载数据
  17.         LoadFromFile(list);
  18.         // 启动登录流程
  19.         login(list);
  20.         // 保存数据到文件
  21.         SaveToFile(list);
  22.     }
  23.     private static void login(ArrayList<User> list) {
  24.         Scanner sc = new Scanner(System.in);
  25.         System.out.println("请输入工号:");
  26.         while (true) {
  27.             String inputID = sc.next();
  28.             boolean found = false;
  29.             for (User user : list) {
  30.                 if (user.getId().equals(inputID)) {
  31.                     found = true;
  32.                     break;
  33.                 }
  34.             }
  35.             if (found) {
  36.                 break;
  37.             } else {
  38.                 System.out.println("账号 " + inputID + " 不存在,请重新输入");
  39.             }
  40.         }
  41.         System.out.println("请输入姓名:");
  42.         while (true) {
  43.             String inputName = sc.next();
  44.             boolean found = false;
  45.             for (User user : list) {
  46.                 if (Objects.equals(user.getName(), inputName)) {
  47.                     found = true;
  48.                     break;
  49.                 }
  50.             }
  51.             if (found) {
  52.                 break;
  53.             } else {
  54.                 System.out.println("姓名 " + inputName + " 不存在,请重新输入");
  55.             }
  56.         }
  57.         // 获取验证码
  58.         while (true) {
  59.             String rightCode = getCode();
  60.             System.out.println("当前正确的验证码为:" + rightCode);
  61.             System.out.print("请输入验证码:");
  62.             String code = sc.next();
  63.             if (code.equalsIgnoreCase(rightCode)) {
  64.                 System.out.println("验证码正确");
  65.                 OperaterTeacher(list);
  66.                 break;
  67.             } else {
  68.                 System.out.println("验证码错误,请重新输入");
  69.             }
  70.         }
  71.         sc.close();
  72.     }
  73.     public static void OperaterTeacher(ArrayList<User> list) {
  74.         Scanner sc = new Scanner(System.in);
  75.         while (true) {
  76.             System.out.println("---------------------------------------------------------------------");
  77.             System.out.println("Welcome to the use 教师管理系统");
  78.             System.out.println("请选择你需要进行的操作:1.显示所有教师 2.按姓名查找教师 3.按工号查找教师 4.增加教师 5.删除教师 6.退出");
  79.             System.out.println("---------------------------------------------------------------------");
  80.             int choose = sc.nextInt();
  81.             switch (choose) {
  82.                 case 1:
  83.                     ShowAllTeacher(list);
  84.                     break;
  85.                 case 2:
  86.                     SeekName(list);
  87.                     break;
  88.                 case 3:
  89.                     SeekId(list);
  90.                     break;
  91.                 case 4:
  92.                     AddTeacher(list);
  93.                     break;
  94.                 case 5:
  95.                     DeleteTeacher(list);
  96.                     break;
  97.                 case 6:
  98.                     System.out.println("退出管理员操作页面");
  99.                     return;
  100.                 default:
  101.                     System.out.println("没有该选项");
  102.             }
  103.         }
  104.     }
  105.     public static void ShowAllTeacher(ArrayList<User> list) {
  106.         System.out.println("工号\t\t\t姓名\t\t\t电话\t\t\t\t邮箱\t\t\t\t\t班级");
  107.         for (User user : list) {
  108.             System.out.println(user.getId() + "\t\t\t" + user.getName() + "\t\t\t" + user.getPhoneNumber() + "\t\t\t" + user.getLetterbox() + "\t\t" + user.getClassNumber());
  109.         }
  110.     }
  111.     public static void SeekName(ArrayList<User> list) {
  112.         Scanner sc = new Scanner(System.in);
  113.         while (true) {
  114.             System.out.println("请输入姓名:");
  115.             String inputName = sc.next();
  116.             boolean found = false;
  117.             for (User user : list) {
  118.                 if (user.getName().equals(inputName)) {
  119.                     System.out.println("工号\t\t\t姓名\t\t\t电话\t\t\t\t邮箱\t\t\t\t班级");
  120.                     System.out.println(user.getId() + "\t\t\t" + user.getName() + "\t\t\t" + user.getPhoneNumber() + "\t\t\t" + user.getLetterbox() + "\t\t" + user.getClassNumber());
  121.                     found = true;
  122.                 }
  123.             }
  124.             if (!found) {
  125.                 System.out.println("输入的姓名不存在,请重新输入");
  126.             } else {
  127.                 return; // 如果找到教师信息,退出循环
  128.             }
  129.         }
  130.     }
  131.     public static void SeekId(ArrayList<User> list) {
  132.         Scanner sc = new Scanner(System.in);
  133.         while (true) {
  134.             System.out.println("请输入工号:");
  135.             String inputID = sc.next();
  136.             boolean found = false;
  137.             for (User user : list) {
  138.                 if (user.getId().equals(inputID)) {
  139.                     System.out.println("工号\t\t\t姓名\t\t\t电话\t\t\t\t邮箱\t\t\t\t班级");
  140.                     System.out.println(user.getId() + "\t\t\t" + user.getName() + "\t\t\t" + user.getPhoneNumber() + "\t\t\t" + user.getLetterbox() + "\t\t" + user.getClassNumber());
  141.                     found = true;
  142.                 }
  143.             }
  144.             if (!found) {
  145.                 System.out.println("输入的工号不存在,请重新输入");
  146.             } else {
  147.                 return;
  148.             }
  149.         }
  150.     }
  151.     public static void AddTeacher(ArrayList<User> list) {
  152.         Scanner sc = new Scanner(System.in);
  153.         System.out.println("请输入新教师工号:");
  154.         String newID = sc.next();
  155.         if (contain(list, newID)) {
  156.             System.out.println("该工号已经存在,请选择其他工号");
  157.             return;
  158.         }
  159.         String newName;
  160.         while (true) {
  161.             System.out.println("请输入新教师的姓名:");
  162.             newName = sc.next();
  163.             if (checkChineseName(newName)) {
  164.                 break;
  165.             } else {
  166.                 System.out.println("输入无效,请输入中文姓名。");
  167.             }
  168.         }
  169.         String newPhone;
  170.         while (true) {
  171.             System.out.println("请输入新教师的手机号码:");
  172.             sc.nextLine();
  173.             newPhone = sc.nextLine();
  174.             boolean flag = checkPhoneNumber(newPhone);
  175.             if (flag) {
  176.                 break;
  177.             } else {
  178.                 System.out.println("手机号码格式错误,请重新输入");
  179.             }
  180.         }
  181.         System.out.println("请输入新教师的邮箱账号:");
  182.         String newLetterBox = sc.next();
  183.         System.out.println("请输入新教师的所在班级:");
  184.         int newClassNumber = Integer.parseInt(sc.next());
  185.         User newUser = new User(newID, newName, newPhone, newLetterBox, newClassNumber);
  186.         list.add(newUser);
  187.         System.out.println("教师添加成功");
  188.     }
  189.     public static void DeleteTeacher(ArrayList<User> list) {
  190.         Scanner sc = new Scanner(System.in);
  191.         System.out.println("请输入要删除的工号:");
  192.         String IDToDelete = sc.next();
  193.         User AimUser = findUserByAccount(list, IDToDelete);
  194.         if (AimUser == null) {
  195.             System.out.println("用户账号不存在");
  196.             return;
  197.         }
  198.         list.remove(AimUser);
  199.         System.out.println("用户删除成功");
  200.     }
  201.     private static boolean checkChineseName(String name) {
  202.         return name.matches("^[\\u4e00-\\u9fa5]+$"); // 判断是否全为中文
  203.     }
  204.     private static boolean checkPhoneNumber(String phoneNumber) {
  205.         int len = phoneNumber.length();
  206.         // 检查手机号码长度并且只包含数字
  207.         return len == 11 && phoneNumber.matches("\\d+");
  208.     }
  209.     // 用户者寻找用户
  210.     private static User findUserByAccount(ArrayList<User> list, String ID) {
  211.         for (User user : list) {
  212.             if (user.getId().equals(ID)) {
  213.                 return user;
  214.             }
  215.         }
  216.         return null;
  217.     }
  218.     public static boolean contain(ArrayList<User> list, String ID) {
  219.         for (User user : list) {
  220.             if (ID.equals(user.getId())) {
  221.                 return true;
  222.             }
  223.         }
  224.         return false;
  225.     }
  226.     private static String getCode() {
  227.         ArrayList<Character> list = new ArrayList<>();
  228.         for (int i = 0; i < 26; i++) {
  229.             list.add((char) ('a' + i));
  230.             list.add((char) ('A' + i));
  231.         }
  232.         Random r = new Random();
  233.         StringBuilder sb = new StringBuilder();
  234.         for (int i = 0; i < 4; i++) {
  235.             int index = r.nextInt(list.size());
  236.             char c = list.get(index);
  237.             sb.append(c);
  238.         }
  239.         int number = r.nextInt(10);
  240.         sb.append(number);
  241.         char[] arr = sb.toString().toCharArray();
  242.         int randomIndex = r.nextInt(arr.length);
  243.         char temp = arr[randomIndex];
  244.         arr[randomIndex] = arr[arr.length - 1];
  245.         arr[arr.length - 1] = temp;
  246.         return new String(arr);
  247.     }
  248.     private static void LoadFromFile(ArrayList<User> list) {
  249.         try (BufferedReader br = new BufferedReader(new FileReader("teachers.txt"))) {
  250.             String line;
  251.             line = br.readLine(); // 读取并忽略第一行标题
  252.             while ((line = br.readLine()) != null) {
  253.                 String[] parts = line.split(",");
  254.                 if (parts.length == 5) {
  255.                     String id = parts[0];
  256.                     String name = parts[1];
  257.                     String phone = parts[2];
  258.                     String email = parts[3];
  259.                     int classNumber = Integer.parseInt(parts[4]);
  260.                     User user = new User(id, name, phone, email, classNumber);
  261.                     list.add(user);
  262.                 }
  263.             }
  264.         } catch (IOException e) {
  265.             System.out.println("加载文件失败,可能是文件不存在。");
  266.         }
  267.     }
  268.     private static void SaveToFile(ArrayList<User> list) {
  269.         try (BufferedWriter bw = new BufferedWriter(new FileWriter("teachers.txt"))) {
  270.             bw.write("工号\t\t\t姓名\t\t\t电话\t\t\t\t邮箱\t\t\t\t\t班级");
  271.             bw.newLine();
  272.             for (User user : list) {
  273.                 bw.write(user.getId() + "\t\t\t" + user.getName() + "\t\t\t" + user.getPhoneNumber() + "\t\t\t" + user.getLetterbox() + "\t\t" + user.getClassNumber());
  274.                 bw.newLine();
  275.             }
  276.         } catch (IOException e) {
  277.             System.out.println("保存文件失败");
  278.         }
  279.     }
  280. }
复制代码
User类:

  1. package TEACHERSYSTEM;
  2. public class User {
  3.     private String id;
  4.     private String name;
  5.     private String PhoneNumber;
  6.     private String Letterbox;
  7.     private int ClassNumber;
  8.     public User(){}
  9.     public User(String id, String name, String phoneNumber, String letterbox, int classNumber) {
  10.         this.id = id;
  11.         this.name = name;
  12.         PhoneNumber = phoneNumber;
  13.         Letterbox = letterbox;
  14.         ClassNumber = classNumber;
  15.     }
  16.     public String getId() {
  17.         return id;
  18.     }
  19.     public void setId(String id) {
  20.         this.id = id;
  21.     }
  22.     public String getName() {
  23.         return name;
  24.     }
  25.     public void setName(String name) {
  26.         this.name = name;
  27.     }
  28.     public String getPhoneNumber() {
  29.         return PhoneNumber;
  30.     }
  31.     public void setPhoneNumber(String phoneNumber) {
  32.         PhoneNumber = phoneNumber;
  33.     }
  34.     public String getLetterbox() {
  35.         return Letterbox;
  36.     }
  37.     public void setLetterbox(String letterbox) {
  38.         Letterbox = letterbox;
  39.     }
  40.     public int getClassNumber() {
  41.         return ClassNumber;
  42.     }
  43.     public void setClassNumber(int classNumber) {
  44.         ClassNumber = classNumber;
  45.     }
  46. }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

尚未崩坏

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表