从零手写学生管理系统(Java实现)
一、项目全景解析
1.1 系统架构图
主界面
添加学生
删除学生
修改学生
查询学生
忘记密码
退出系统
1.2 核心功能清单
功能模块 实现要点 添加学生 学号查重、数据校验 删除学生 学号存在性检查 修改学生 定位+覆盖写入 查询学生 模糊匹配/精确查找 密码管理 加密存储、找回流程
二、手把手搭建基础版
2.1 控制台界面设计
public static void mainMenu ( ) {
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 ( "6. 退出" ) ;
System . out. print ( "请输入选择:" ) ;
}
2.2 数据结构设计
public class Student {
private String id;
private String name;
private int age;
private String address;
}
2.3 核心操作实现
添加学生(防重复逻辑)
public static void addStudent ( ArrayList < Student > list) {
Scanner sc = new Scanner ( System . in) ;
String id;
while ( true ) {
System . out. print ( "请输入学号:" ) ;
id = sc. next ( ) ;
if ( isExist ( list, id) ) {
System . out. println ( "学号重复,请重新输入!" ) ;
} else {
break ;
}
}
}
删除学生(安全校验)
public static void deleteStudent ( ArrayList < Student > list) {
System . out. print ( "请输入要删除的学号:" ) ;
String id = sc. next ( ) ;
if ( ! isExist ( list, id) ) {
System . out. println ( "查无此人!" ) ;
return ;
}
for ( int i = 0 ; i < list. size ( ) ; i++ ) {
if ( list. get ( i) . getId ( ) . equals ( id) ) {
list. remove ( i) ;
System . out. println ( "删除成功!" ) ;
break ;
}
}
}
三、进阶加强版开发
3.1 封装思想实践
public class User {
private String username;
private String password;
private String idCard;
private String phone;
public boolean checkInfo ( String inputIdCard, String inputPhone) {
return this . idCard. equals ( inputIdCard)
&& this . phone. equals ( inputPhone) ;
}
}
3.2 忘记密码流程
用户 系统 输入用户名 检查用户名是否存在 输入身份证和手机号 验证身份信息 输入新密码 更新密码成功 用户 系统
3.3 登录模块实现
public static boolean login ( ) {
Scanner sc = new Scanner ( System . in) ;
System . out. print ( "用户名:" ) ;
String username = sc. next ( ) ;
System . out. print ( "密码:" ) ;
String password = sc. next ( ) ;
for ( User user : userList) {
if ( user. getUsername ( ) . equals ( username)
&& user. getPassword ( ) . equals ( encrypt ( password) ) ) {
return true ;
}
}
return false ;
}
四、避坑指南
4.1 常见错误排查表
问题现象 可能原因 解决方案 删除后索引错乱 正序遍历删除元素 使用倒序遍历删除 密码验证失败 未加密存储 使用MD5/SHA加密 中文乱码 控制台编码不匹配 设置UTF-8编码
4.2 性能优化技巧
批量操作 :使用ArrayList
的addAll()
方法快速查找 :改用HashMap<String, Student>
存储数据持久化 :使用文件存储代替内存存储
五、扩展升级方向
5.1 功能增强建议
添加分页查询功能 实现Excel导入导出 增加权限管理系统(管理员/学生)
5.2 技术升级路线
六、小问
ArrayList < String > list = new ArrayList < > ( ) ;
list. add ( "A" ) ;
list. add ( 1 , "B" ) ;
System . out. println ( list. size ( ) ) ;
(答案:抛出IndexOutOfBoundsException,思考为什么?欢迎大家在评论区讨论哦👇😀)