教師管理系統

大概功能:

1.顯示所有教師 2.按姓名查找教師 3.按工號查找教師 4.增加教師 5.刪除教師 6.退出

數據會保存到 txt 文件里面

姓名:必須是中文

手機號碼:必須是11位,必須是數字

效果展示:

代碼展示:

TeacherSystem類:

package TEACHERSYSTEM;import java.io.*;
import java.util.ArrayList;
import java.util.Objects;
import java.util.Random;
import java.util.Scanner;public class TeacherSystem {public static void main(String[] args) {ArrayList<User> list = new ArrayList<>();User u1 = new User("1238", "張三", "18716699212", "35612341243123@qq.com", 701);User u2 = new User("1234", "李四", "18716699212", "35612341243123@qq.com", 801);User u3 = new User("12345", "王五", "18716699212", "35612341243123@qq.com", 901);list.add(u1);list.add(u2);list.add(u3);// 從文件加載數據LoadFromFile(list);// 啟動登錄流程login(list);// 保存數據到文件SaveToFile(list);}private static void login(ArrayList<User> list) {Scanner sc = new Scanner(System.in);System.out.println("請輸入工號:");while (true) {String inputID = sc.next();boolean found = false;for (User user : list) {if (user.getId().equals(inputID)) {found = true;break;}}if (found) {break;} else {System.out.println("賬號 " + inputID + " 不存在,請重新輸入");}}System.out.println("請輸入姓名:");while (true) {String inputName = sc.next();boolean found = false;for (User user : list) {if (Objects.equals(user.getName(), inputName)) {found = true;break;}}if (found) {break;} else {System.out.println("姓名 " + inputName + " 不存在,請重新輸入");}}// 獲取驗證碼while (true) {String rightCode = getCode();System.out.println("當前正確的驗證碼為:" + rightCode);System.out.print("請輸入驗證碼:");String code = sc.next();if (code.equalsIgnoreCase(rightCode)) {System.out.println("驗證碼正確");OperaterTeacher(list);break;} else {System.out.println("驗證碼錯誤,請重新輸入");}}sc.close();}public static void OperaterTeacher(ArrayList<User> list) {Scanner sc = new Scanner(System.in);while (true) {System.out.println("---------------------------------------------------------------------");System.out.println("Welcome to the use 教師管理系統");System.out.println("請選擇你需要進行的操作:1.顯示所有教師 2.按姓名查找教師 3.按工號查找教師 4.增加教師 5.刪除教師 6.退出");System.out.println("---------------------------------------------------------------------");int choose = sc.nextInt();switch (choose) {case 1:ShowAllTeacher(list);break;case 2:SeekName(list);break;case 3:SeekId(list);break;case 4:AddTeacher(list);break;case 5:DeleteTeacher(list);break;case 6:System.out.println("退出管理員操作頁面");return;default:System.out.println("沒有該選項");}}}public static void ShowAllTeacher(ArrayList<User> list) {System.out.println("工號\t\t\t姓名\t\t\t電話\t\t\t\t郵箱\t\t\t\t\t班級");for (User user : list) {System.out.println(user.getId() + "\t\t\t" + user.getName() + "\t\t\t" + user.getPhoneNumber() + "\t\t\t" + user.getLetterbox() + "\t\t" + user.getClassNumber());}}public static void SeekName(ArrayList<User> list) {Scanner sc = new Scanner(System.in);while (true) {System.out.println("請輸入姓名:");String inputName = sc.next();boolean found = false;for (User user : list) {if (user.getName().equals(inputName)) {System.out.println("工號\t\t\t姓名\t\t\t電話\t\t\t\t郵箱\t\t\t\t班級");System.out.println(user.getId() + "\t\t\t" + user.getName() + "\t\t\t" + user.getPhoneNumber() + "\t\t\t" + user.getLetterbox() + "\t\t" + user.getClassNumber());found = true;}}if (!found) {System.out.println("輸入的姓名不存在,請重新輸入");} else {return; // 如果找到教師信息,退出循環}}}public static void SeekId(ArrayList<User> list) {Scanner sc = new Scanner(System.in);while (true) {System.out.println("請輸入工號:");String inputID = sc.next();boolean found = false;for (User user : list) {if (user.getId().equals(inputID)) {System.out.println("工號\t\t\t姓名\t\t\t電話\t\t\t\t郵箱\t\t\t\t班級");System.out.println(user.getId() + "\t\t\t" + user.getName() + "\t\t\t" + user.getPhoneNumber() + "\t\t\t" + user.getLetterbox() + "\t\t" + user.getClassNumber());found = true;}}if (!found) {System.out.println("輸入的工號不存在,請重新輸入");} else {return;}}}public static void AddTeacher(ArrayList<User> list) {Scanner sc = new Scanner(System.in);System.out.println("請輸入新教師工號:");String newID = sc.next();if (contain(list, newID)) {System.out.println("該工號已經存在,請選擇其他工號");return;}String newName;while (true) {System.out.println("請輸入新教師的姓名:");newName = sc.next();if (checkChineseName(newName)) {break;} else {System.out.println("輸入無效,請輸入中文姓名。");}}String newPhone;while (true) {System.out.println("請輸入新教師的手機號碼:");sc.nextLine();newPhone = sc.nextLine();boolean flag = checkPhoneNumber(newPhone);if (flag) {break;} else {System.out.println("手機號碼格式錯誤,請重新輸入");}}System.out.println("請輸入新教師的郵箱賬號:");String newLetterBox = sc.next();System.out.println("請輸入新教師的所在班級:");int newClassNumber = Integer.parseInt(sc.next());User newUser = new User(newID, newName, newPhone, newLetterBox, newClassNumber);list.add(newUser);System.out.println("教師添加成功");}public static void DeleteTeacher(ArrayList<User> list) {Scanner sc = new Scanner(System.in);System.out.println("請輸入要刪除的工號:");String IDToDelete = sc.next();User AimUser = findUserByAccount(list, IDToDelete);if (AimUser == null) {System.out.println("用戶賬號不存在");return;}list.remove(AimUser);System.out.println("用戶刪除成功");}private static boolean checkChineseName(String name) {return name.matches("^[\\u4e00-\\u9fa5]+$"); // 判斷是否全為中文}private static boolean checkPhoneNumber(String phoneNumber) {int len = phoneNumber.length();// 檢查手機號碼長度并且只包含數字return len == 11 && phoneNumber.matches("\\d+");}// 用戶者尋找用戶private static User findUserByAccount(ArrayList<User> list, String ID) {for (User user : list) {if (user.getId().equals(ID)) {return user;}}return null;}public static boolean contain(ArrayList<User> list, String ID) {for (User user : list) {if (ID.equals(user.getId())) {return true;}}return false;}private static String getCode() {ArrayList<Character> list = new ArrayList<>();for (int i = 0; i < 26; i++) {list.add((char) ('a' + i));list.add((char) ('A' + i));}Random r = new Random();StringBuilder sb = new StringBuilder();for (int i = 0; i < 4; i++) {int index = r.nextInt(list.size());char c = list.get(index);sb.append(c);}int number = r.nextInt(10);sb.append(number);char[] arr = sb.toString().toCharArray();int randomIndex = r.nextInt(arr.length);char temp = arr[randomIndex];arr[randomIndex] = arr[arr.length - 1];arr[arr.length - 1] = temp;return new String(arr);}private static void LoadFromFile(ArrayList<User> list) {try (BufferedReader br = new BufferedReader(new FileReader("teachers.txt"))) {String line;line = br.readLine(); // 讀取并忽略第一行標題while ((line = br.readLine()) != null) {String[] parts = line.split(",");if (parts.length == 5) {String id = parts[0];String name = parts[1];String phone = parts[2];String email = parts[3];int classNumber = Integer.parseInt(parts[4]);User user = new User(id, name, phone, email, classNumber);list.add(user);}}} catch (IOException e) {System.out.println("加載文件失敗,可能是文件不存在。");}}private static void SaveToFile(ArrayList<User> list) {try (BufferedWriter bw = new BufferedWriter(new FileWriter("teachers.txt"))) {bw.write("工號\t\t\t姓名\t\t\t電話\t\t\t\t郵箱\t\t\t\t\t班級");bw.newLine();for (User user : list) {bw.write(user.getId() + "\t\t\t" + user.getName() + "\t\t\t" + user.getPhoneNumber() + "\t\t\t" + user.getLetterbox() + "\t\t" + user.getClassNumber());bw.newLine();}} catch (IOException e) {System.out.println("保存文件失敗");}}
}

User類:

package TEACHERSYSTEM;public class User {private String id;private String name;private String PhoneNumber;private String Letterbox;private int ClassNumber;public User(){}public User(String id, String name, String phoneNumber, String letterbox, int classNumber) {this.id = id;this.name = name;PhoneNumber = phoneNumber;Letterbox = letterbox;ClassNumber = classNumber;}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 getPhoneNumber() {return PhoneNumber;}public void setPhoneNumber(String phoneNumber) {PhoneNumber = phoneNumber;}public String getLetterbox() {return Letterbox;}public void setLetterbox(String letterbox) {Letterbox = letterbox;}public int getClassNumber() {return ClassNumber;}public void setClassNumber(int classNumber) {ClassNumber = classNumber;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64367.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64367.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64367.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小程序配置文件 —— 14 全局配置 - tabbar配置

全局配置 - tabBar配置 tabBar 字段&#xff1a;定義小程序頂部、底部 tab 欄&#xff0c;用以實現頁面之間的快速切換&#xff1b;可以通過 tabBar 配置項指定 tab 欄的表現&#xff0c;以及 tab 切換時顯示的對應頁面&#xff1b; 在上面圖中&#xff0c;標注了一些 tabBar …

[Wireshark] 使用Wireshark抓包https數據包并顯示為明文、配置SSLKEYLOGFILE變量(附下載鏈接)

wireshark 下載鏈接&#xff1a;https://pan.quark.cn/s/eab7f1e963be 提取碼&#xff1a;rRAg 鏈接失效&#xff08;可能會被官方和諧&#xff09;可評論或私信我重發 chrome與firefox在訪問https網站的時候會將密鑰寫入這個環境變量SSLKEYLOGFILE中&#xff0c;在wireshark…

Android筆記(四十一):TabLayout內的tab不滾動問題

背景 假設二級頁面是上面圖片的布局&#xff0c;當進來時TabLayout和ViewPager2綁定完就馬上調setCustomItem&#xff0c;跳轉到最后一個tab頁面時&#xff0c;會發現tab不滾動&#xff0c;手動滑一下ViewPager2時才會滾動tab到正確的位置 原因分析 調用TabLayoutMediator.at…

【Spring】 Bean 注入 HttpServletRequest 能保證線程安全的原理

文章目錄 前言1. 圖示2. 源碼坐標后記 前言 今天看了一段老業務代碼&#xff0c;HttpServletRequest 被注入后直接用于業務邏輯。 好奇Spring是如何解決線程安全問題。 Controller public class TestController {ResourceHttpServletRequest request;ResponseBodyGetMapping(…

CSS面試題|[2024-12-24]

1.說一下CSS的盒模型 在HTML頁面中的所有元素都可以看成是一個盒子 盒子的組成&#xff1a;內容content、內邊距padding、邊框border、外邊距margin 盒模型的類型&#xff1a; 標準盒模型 margin border padding content IE盒模型 margin content&#xff08;包括border p…

Unity中如何修改Sprite的渲染網格

首先打開SpriteEditor 選擇Custom OutLine,點擊Genrate 則在圖片邊緣會出現邊緣線&#xff0c;調整白色小方塊可以調整邊緣 調整后&#xff0c;Sprite就會按照調整后的網格渲染了。 如何在UI中使用&#xff1f; 只要在UI的Image組件中選擇Use Sprite Mesh 即可 結果&#xff1…

【Artificial Intelligence篇】AI 前沿探秘:開啟智能學習的超維征程

目錄 一、人工智能的蓬勃發展與智能學習的重要性: 二、數據的表示與處理 —— 智能學習的基石: 三、構建一個簡單的感知機模型 —— 智能學習的初步探索: 四、神經網絡 —— 開啟超維征程的關鍵一步: 五、超維挑戰與優化 —— 探索智能學習的深度: 六、可視化與交互 —— …

docker-compos mysql5.7主從配置

docker-compos mysql5.7主從配置 docker-compose目錄結構 配置文件 master/my.cnf [client] port 3306 socket /var/run/mysqld/mysqld.sock[mysqld_safe] pid-file /var/run/mysqld/mysqld.pid socket /var/run/mysqld/mysqld.sock nice 0…

開源輕量級文件分享服務Go File本地Docker部署與遠程訪問

???歡迎來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學習,不斷總結,共同進步,活到老學到老…

路過石巖浪心古村

周末常去的七彩城堡兒童樂園附近經常有老房子&#xff0c;沒想到老房子最多的地方還是浪心古村。而且越看越有歷史。 見到一座寫著《序西書室》的房子&#xff0c;我最開始以為是一個古代的學校。但是查了百度更加不知道什么意思了哈。?“序西書室”?是指《文心雕龍》中的一個…

面經hwl

線程進程協程區別 線程、進程和協程是計算機編程中常見的三個并發模型&#xff0c;它們各自有不同的特點和應用場景&#xff1a; 1. 進程 (Process) 定義: 進程是操作系統中資源分配的基本單位&#xff0c;代表一個正在運行的程序實例。特點: 獨立性: 每個進程有自己獨立的內…

【每日學點鴻蒙知識】PersistentStorage持久化、插槽方法、相對布局、上拉加載下拉刷新、List聯動滑動

1、HarmonyOS 使用PersistentStorage持久化用戶信息無效&#xff1f; 在首頁通過StorageLink(‘userInfoTest’) userInfoTest: string 獲取&#xff0c;獲不到&#xff0c;返回undefind。是什么原因呢&#xff1f; 首先在首頁時&#xff0c;在Entry外聲明PersistentStorage…

torch.tensor

torch.tensor 通過復制數據構造一個張量 &#xff08;構造出的張量是一個沒有自動微分&#xff08;autograd &#xff09;歷史的張量&#xff0c;也稱為葉張量&#xff0c;參考Autograd mechanics&#xff09;。 torch.tensor(data, *, dtypeNone, deviceNone, requires_gra…

探索PyTorch:從入門到實踐的demo全解析

探索PyTorch:從入門到實踐的demo全解析 一、環境搭建:PyTorch的基石(一)選擇你的“利器”:安裝方式解析(二)步步為營:詳細安裝步驟指南二、基礎入門demo:點亮第一盞燈(一)張量操作:深度學習的“積木”(二)自動求導:模型學習的“幕后英雄”三、數據處理demo:喂飽…

SpringMVC學習(二)——RESTful API、攔截器、異常處理、數據類型轉換

一、RESTful (一)RESTful概述 RESTful是一種軟件架構風格&#xff0c;用于設計網絡應用程序。REST是“Representational State Transfer”的縮寫&#xff0c;中文意思是“表現層狀態轉移”。它基于客戶端-服務器模型和無狀態操作&#xff0c;以及使用HTTP請求來處理數據。RES…

Windows中安裝Python3

Windows中安裝Python3 1. 下載Python安裝包 首先&#xff0c;訪問Python的官方網站 Python.org&#xff0c;選擇適合你Windows版本的Python安裝包。 2. 運行安裝包 下載完成.exe文件后&#xff0c;雙擊運行安裝包。在安裝過程中&#xff0c;有一些關鍵的選項需要特別注意&a…

JS數值類型中特殊數值NaN(Not-a-Number)理解和應用場景

NaN 的含義 在 JavaScript 中&#xff0c;NaN 是一種特殊的數值類型&#xff0c;表示 “Not-a-Number”。它通常用于標識數學運算或類型轉換的結果無法產生有效數值的情況。 特性 類型為數值&#xff1a; console.log(typeof NaN); // "number"盡管 NaN 表示 “不是…

虛幻引擎結構之UWorld

Uworld -> Ulevel ->Actors -> AActor 在虛幻引擎中&#xff0c;UWorld 類扮演著至關重要的角色&#xff0c;它就像是游戲世界的總指揮。作為游戲世界的核心容器&#xff0c;UWorld 包含了構成游戲體驗的眾多元素&#xff0c;從游戲實體到關卡設計&#xff0c;再到物…

java中logback怎么開啟異步功能

在Java中使用Logback時&#xff0c;開啟異步日志記錄功能可以通過配置AsyncAppender來實現。異步日志記錄可以顯著提高應用程序的性能&#xff0c;因為它將日志記錄操作從主線程移到了后臺線程執行&#xff0c;從而減少了主線程的阻塞時間。 步驟 1: 添加 Logback 配置文件 確…

2024第一屆Solar杯應急響應挑戰賽

日志流量 日志流量-1 直接放到D盾分析 解碼 flag{A7b4_X9zK_2v8N_wL5q4} 日志流量-2 哥斯拉流量 工具解一下 flag{sA4hP_89dFh_x09tY_lL4SI4} 日志流量-3 tcp流6復制data流 解碼 改pdf flag{dD7g_jk90_jnVm_aPkcs} 內存取證 內存取證-1 vol.py -f 123.raw --profileWin…