JAVA学习日记(第九天)

张开发
2026/4/9 8:54:44 15 分钟阅读

分享文章

JAVA学习日记(第九天)
学生系统(升级版)这个代码我花了一个下午来写,麻了,总共521行,嘻嘻package com.itheima.loopdemo; import javax.sound.midi.SysexMessage; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Random; import java.util.Scanner; import java.util.Stack; public class App { public static void main(String[] args) { ArrayListUser list new ArrayList(); Scanner sc new Scanner(System.in); while (true) { System.out.println(欢迎来到学生管理系统); System.out.println(请选择操作:1.登录 2.注册 3.忘记密码4.退出); String choose sc.next(); switch (choose) { case 1 - login(list); case 2 - register(list); case 3 - forgetPassword(list); case 4 - { System.out.println(谢谢使用,再见); System.exit(0); } default - System.out.println(没有这个选项); } } } private static boolean checkUserInfo(ArrayListUser list, User useInfo) { for (int i 0; i list.size(); i) { User user list.get(i); if (user.getUsername().equals(useInfo.getUsername()) user.getPassword().equals(useInfo.getPassword())) { return true; } } return false; } private static void register(ArrayListUser list) { System.out.println(注册); Scanner sc new Scanner(System.in); String username; while (true) { System.out.println(请输入用户名); username sc.next(); boolean flag1 checkUsername(username); if (flag1) { System.out.println(用户名格式不满足条件,需要重新输入); continue; } boolean flag2 contains(list, username); if (flag2) { System.out.println(用户名 username 已存在,请重新输入); } else { System.out.println(用户名 username 可用); break; } } String password; while (true) { System.out.println(请输入要注册的密码); password sc.next(); System.out.println(请再次输入要注册的密码); String againPassword sc.next(); if (!password.equals(againPassword)) { System.out.println(两次密码输入不一致,请重新输入); continue; } else { System.out.println(两次密码一致,继续录入其他数据); break; } } String personID; while (true) { System.out.println(请输入身份证号码); personID sc.next(); boolean flag checkPersonID(personID); if (flag) { System.out.println(身份证号码满足要求); break; } else { System.out.println(身份证号码格式有误,请重新输入); continue; } } String phoneNumber; while (true) { System.out.println(请输入手机号码); phoneNumber sc.next(); boolean flag checkPhoneNumber(phoneNumber); if (flag) { System.out.println(手机号码格式正确); break; } else { System.out.println(手机号码格式有误,请重新输入); continue; } } User u new User(username, password, personID, phoneNumber); list.add(u); System.out.println(注册成功); } private static boolean checkPhoneNumber(String phoneNumber) { if (phoneNumber.length() ! 11) { return false; } if (phoneNumber.startsWith(0)) { return false; } for (int i 0; i phoneNumber.length(); i) { char c phoneNumber.charAt(i); if (!(c 0 c 9)) { return false; } } return true; } private static boolean checkPersonID(String personID) { if (personID.length() ! 18) { return false; } if (personID.startsWith(0)) { return false; } for (int i 0; i personID.length() - 1; i) { char c personID.charAt(i); if (!(c 0 c 9)) { return false; } } char endChar personID.charAt(personID.length() - 1); return (endChar 0 endChar 9) || (endChar x) || (endChar X); } private static boolean contains(ArrayListUser list, String username) { for (int i 0; i list.size(); i) { User user list.get(i); String rightUsername user.getUsername(); if (rightUsername.equals(username)) { return true; } } return false; } private static boolean checkUsername(String username) { int len username.length(); if (len 3 || len 15) { return false; } for (int i 0; i username.length(); i) { char c username.charAt(i); if (!((c a c z) || (c A c Z) || (c 0 c 9))) { return false; } } int count 0; for (int i 0; i username.length(); i) { char c username.charAt(i); if ((c a c z) || (c A c Z)) { count; break; } } return false; } private static String getCode() { ArrayListCharacter list new ArrayList(); for (int i 0; i 26; i) { list.add((char) (a i)); list.add((char) (A i)); } StringBuilder sb new StringBuilder(); Random r new Random(); 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 login(ArrayListUser list) { System.out.println(登录); Scanner sc new Scanner(System.in); System.out.println(请输入用户名); String username sc.next(); boolean flag contains(list, username); if (!flag) { System.out.println(用户名 username 未注册,请先注册再登录); return; } System.out.println(请输入密码); String password sc.next(); while (true) { String rightCode getCode(); System.out.println(当前正确的验证码为: rightCode); System.out.println(请输入验证码); String code sc.next(); if (code.equalsIgnoreCase(rightCode)) { System.out.println(验证码正确); break; } else { System.out.println(验证码错误); continue; } } User useInfo new User(username, password, null, null); boolean result checkUserInfo(list, useInfo); if (result) { System.out.println(登录成功,可以开始使用学生管理系统了); StudentSystem ss new StudentSystem(); ss.startStudentSystem(); } else { System.out.println(登陆失败,用户名或密码错误); int i 0; if (i 2) { System.out.println(当前帐号 username 被锁定,请联系客服XXX-XXXX); } else { System.out.println(用户名或密码错误,还剩下 (2 - i) 次机会); } } } private static void forgetPassword(ArrayListUser list) { System.out.println(忘记密码); Scanner sc new Scanner(System.in); System.out.println(请输入用户名); String username sc.next(); boolean flag contains(list, username); if (!flag) { System.out.println(当前用户 username 未注册,请先登录); return; } System.out.println(请输入身份证号码); String personID sc.next(); System.out.println(请输入手机号码); String phoneNumber sc.next(); int index findIndex(list, username); User user list.get(index); if (!(user.getPersonID().equalsIgnoreCase(personID) user.getPhoneNumber().equals(phoneNumber))) { System.out.println(身份证号码或者手机号码输入有误,不能修改密码); return; } String password ; while (true) { System.out.println(请输入新的密码); password sc.next(); System.out.println(请再次输入新的密码); String againPassword sc.next(); if (password.equals(againPassword)) { System.out.println(两次密码输入一致); break; } else { System.out.println(两次密码输入不一致,请重新输入); continue; } } user.setPassword(password); System.out.println(密码修改成功); } private static int findIndex(ArrayListUser list, String username) { for (int i 0; i list.size(); i) { User user list.get(i); if (user.getUsername().equals(username)) { return i; } } return -1; } }package com.itheima.loopdemo; public class User { private String username; private String password; private String personID; private String phoneNumber; public User() { } public User(String username, String password, String personID, String phoneNumber) { this.username username; this.password password; this.personID personID; this.phoneNumber phoneNumber; } public String getUsername() { return username; } public void setUsername(String username) { this.username username; } public String getPassword() { return password; } public void setPassword(String password) { this.password password; } public String getPersonID() { return personID; } public void setPersonID(String personID) { this.personID personID; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber phoneNumber; } public String toString() { return User{username username , password password , personID personID , phoneNumber phoneNumber }; } }package com.itheima.loopdemo; 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; } public String toString() { return Student{id id , name name , age age , address address }; } }package com.itheima.loopdemo; import java.util.ArrayList; import java.util.Scanner; public class StudentSystem { public static void startStudentSystem() { ArrayListStudent list new ArrayList(); 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(请输出您的选择:); Scanner sc new Scanner(System.in); String choose sc.next(); switch (choose) { case 1 - addStudent(list); case 2 - deleteStudent(list); case 3 - updateStudent(list); case 4 - queryStudent(list); case 5 - { System.out.println(退出); break loop; //或者System.exit(0); //停止虚拟机运行 } default - System.out.println(没有这个选项); } } } public static void addStudent(ArrayListStudent list) { System.out.println(添加学生); Student s new Student(); Scanner sc new Scanner(System.in); String id null; while (true) { System.out.println(请输入学生的id); id sc.next(); boolean flag contains(list, id); if (flag) { System.out.println(id已经存在,请重新录入); } else { s.setId(id); break; } } System.out.println(请输入学生的姓名); String name sc.next(); s.setName(name); System.out.println(请输入学生的年龄); int newAge sc.nextInt(); s.setAge(newAge); System.out.println(请输入学生的家庭住址); String address sc.next(); s.setAddress(address); list.add(s); System.out.println(学生信息添加成功); } public static void deleteStudent(ArrayListStudent list) { System.out.println(删除学生); Scanner sc new Scanner(System.in); System.out.println(请输入要删除的id); String id sc.next(); int index getIndex(list, id); if (index 0) { list.remove(index); System.out.println(id为: id 的学生删除成功); } else { System.out.println(id不存在,删除失败); } } public static newAge void updateStudent(ArrayListStudent list) { System.out.println(修改学生); Scanner sc new Scanner(System.in); System.out.println(请输入要修改学生的id); String id sc.next(); int index getIndex(list, id); if (index -1) { System.out.println(要修改的id id 不存在,请重新输入); return; } Student stu list.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 newAddress sc.next(); stu.setAddress(newAddress); System.out.println(学生信息修改成功); } public static void queryStudent(ArrayListStudent list) { System.out.println(查询学生); if (list.size() 0) { System.out.println(当前无学生信息,请添加后再查询); return; } System.out.println(id\t\t姓名\t\t年龄\t\t家庭住址); for (int i 0; i list.size(); i) { Student stu list.get(i); System.out.println(stu.getId() \t\t stu.getName() \t\t stu.getAge() \t\t stu.getAddress()); } } public static Boolean contains(ArrayListStudent list, String id) { return getIndex(list, id) 0; } public static int getIndex(ArrayListStudent list, String id) { for (int i 0; i list.size(); i) { Student stu list.get(i); String sid stu.getId(); if (sid.equals(id)) { return i; } } return -1; } }D:\java\bin\java.exe -javaagent:D:\IDEA\IntelliJ IDEA 2025.3.3\lib\idea_rt.jar52214 -Dfile.encodingUTF-8 -classpath D:\IDEA\IDEAprojects\test\out\production\test com.itheima.loopdemo.App 欢迎来到学生管理系统 请选择操作:1.登录 2.注册 3.忘记密码4.退出 2 注册 请输入用户名 a 用户名a可用 请输入要注册的密码 123123 请再次输入要注册的密码 123123 两次密码一致,继续录入其他数据 请输入身份证号码 111111111111111111 身份证号码满足要求 请输入手机号码 11111111111 手机号码格式正确 注册成功 欢迎来到学生管理系统 请选择操作:1.登录 2.注册 3.忘记密码4.退出 1 登录 请输入用户名 a 请输入密码 123123 当前正确的验证码为:9VJDt 请输入验证码 9vjdt 验证码正确 登录成功,可以开始使用学生管理系统了 ---------------------欢迎来学生管理系统--------------------- 1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.退出学生系统 请输出您的选择:4 查询学生 当前无学生信息,请添加后再查询 ---------------------欢迎来学生管理系统--------------------- 1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.退出学生系统 请输出您的选择:1 添加学生 请输入学生的id 001 请输入学生的姓名 a 请输入学生的年龄 10 请输入学生的家庭住址 anhui 学生信息添加成功 ---------------------欢迎来学生管理系统--------------------- 1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.退出学生系统 请输出您的选择:4 查询学生 id 姓名 年龄 家庭住址 001 a 10 anhui ---------------------欢迎来学生管理系统--------------------- 1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.退出学生系统 请输出您的选择:3 修改学生 请输入要修改学生的id 001 请输入要修改的学生姓名 aa 请输入要修改的学生年龄 10 请输入要修改的学生家庭住址 anhui 学生信息修改成功 ---------------------欢迎来学生管理系统--------------------- 1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.退出学生系统 请输出您的选择:4 查询学生 id 姓名 年龄 家庭住址 001 aa 10 anhui ---------------------欢迎来学生管理系统--------------------- 1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.退出学生系统 请输出您的选择:2 删除学生 请输入要删除的id 001 id为:001的学生删除成功 ---------------------欢迎来学生管理系统--------------------- 1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.退出学生系统 请输出您的选择:4 查询学生 当前无学生信息,请添加后再查询 ---------------------欢迎来学生管理系统--------------------- 1.添加学生 2.删除学生 3.修改学生 4.查询学生 5.退出学生系统 请输出您的选择:5 退出 欢迎来到学生管理系统 请选择操作:1.登录 2.注册 3.忘记密码4.退出 4 谢谢使用,再见 进程已结束退出代码为 0面向对象进阶static继承继承的特点成员方法的访问特点方法的重写构造方法的访问特点this和super使用总结

更多文章