基础入门Java项目实战,手把手教你从零搭建完整的学生管理系统!
✨ 项目亮点抢先看
🚀 完整项目体验 - 从登录注册到数据管理,真实项目流程
🔐 安全认证机制 - 密码保护、验证码验证、输入校验
📱 用户友好交互 - 清晰菜单导航,操作简单直观
💾 数据管理核心 - 增删改查一应俱全
🎯 适合初学者 - 代码注释详细,逻辑清晰易懂
🎯 为什么选择这个项目?
如果你是:
Java初学者想找实战项目
需要课程设计或毕业设计灵感
想理解完整的管理系统开发流程
对用户认证和数据管理感兴趣
那么这个项目就是为你量身定制的!让我们一起来探索这个有趣的学生管理系统吧!
🏗️ 项目整体架构
核心类文件说明
📁 com.yq.studentsystem
├── 📄 App.java # 程序入口,用户认证模块
├── 📄 User.java # 用户数据模型
├── 📄 Student.java # 学生数据模型
└── 📄 StudentSystem.java # 学生管理业务逻辑🔐 用户认证系统详解
用户实体类 - 数据的基石
public class User {
private String username; // 用户名
private String password; // 密码
private String personid; // 身份证号
private String phoneNumber; // 手机号
// 构造方法
public User(String username, String password, String personid, String phoneNumber) {
this.username = username;
this.password = password;
this.personid = personid;
this.phoneNumber = phoneNumber;
}
// Getter和Setter方法(保障数据安全)
public String getUsername() { return username; }
public void setUsername(String username) { this.username = username; }
// ... 其他getter和setter
}主程序入口 - 系统的指挥中心
public class App {
public static void main(String[] args) {
ArrayList<User> 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("没有这个选项, 请重新输入");
}
}
}
}用户注册 - 严格的数据验证
public static void register(ArrayList<User> list) {
Scanner sc = new Scanner(System.in);
String username, password, personid, phoneNumber;
// 1. 用户名验证(3-15位,字母数字组合)
while (true) {
System.out.println("请输入用户名: ");
username = sc.next();
boolean formatValid = checkUsername(username); // 格式检查
boolean exists = contains(list, username); // 唯一性检查
if (!formatValid) {
System.out.println("用户格式不满足条件(3-15位字母数字组合)");
} else if (exists) {
System.out.println("用户名已存在,请重新输入");
} else {
System.out.println("用户名可用!");
break;
}
}
// 2. 密码确认(两次输入必须一致)
while (true) {
System.out.println("请输入密码: ");
password = sc.next();
System.out.println("请再次输入密码: ");
String passwordAgain = sc.next();
if (!password.equals(passwordAgain)) {
System.out.println("两次密码不一致,请重新输入");
} else {
break;
}
}
// 3. 身份证验证(18位格式)
// 4. 手机号验证(11位数字)
// ... 具体验证代码
// 创建用户并保存
User newUser = new User(username, password, personid, phoneNumber);
list.add(newUser);
System.out.println("注册成功!🎉");
}智能登录 - 多重安全保护
public static void login(ArrayList<User> list) {
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 3; i++) { // 最多尝试3次
System.out.println("请输入用户名: ");
String username = sc.next();
// 检查用户是否存在
if (!contains(list, username)) {
System.out.println("用户未注册,请先注册");
return;
}
System.out.println("请输入密码: ");
String password = sc.next();
// 验证码校验(防止暴力破解)
String rightCode = getCode();
System.out.println("验证码: " + rightCode);
System.out.println("请输入验证码: ");
String inputCode = sc.next();
if (!inputCode.equalsIgnoreCase(rightCode)) {
System.out.println("验证码错误!");
continue;
}
// 用户密码验证
User loginUser = new User(username, password, null, null);
if (checkUserInfo(list, loginUser)) {
System.out.println("登录成功!🚀");
// 进入学生管理系统
StudentSystem ss = new StudentSystem();
ss.startStudentSystem();
break;
} else {
System.out.println("用户名或密码错误");
System.out.println("剩余尝试次数: " + (2 - i));
}
}
}📚 学生管理系统核心
学生数据模型
public class Student {
private String id; // 学号
private String name; // 姓名
private int age; // 年龄
private String address; // 地址
public Student(String id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
// Getter和Setter方法
public String getId() { return id; }
public void setId(String id) { this.id = id; }
// ... 其他方法
}系统主界面 - 清晰的功能导航
public static void startStudentSystem() {
ArrayList<Student> studentList = new ArrayList<>();
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.退出");
Scanner sc = new Scanner(System.in);
String choice = sc.next();
switch (choice) {
case "1" -> addStudent(studentList); // 添加学生
case "2" -> deleteStudent(studentList); // 删除学生
case "3" -> updateStudent(studentList); // 修改信息
case "4" -> queryStudent(studentList); // 查询学生
case "5" -> {
System.out.println("感谢使用,再见!👋");
System.exit(0);
}
default -> System.out.println("请输入正确选项!");
}
}
}核心功能展示
添加学生 - 智能防重复
public static void addStudent(ArrayList<Student> list) {
Student student = new Student();
Scanner sc = new Scanner(System.in);
// 学号验证(确保唯一性)
String id;
while (true) {
System.out.println("请输入学生学号: ");
id = sc.next();
if (contains(list, id)) {
System.out.println("学号已存在,请重新输入!");
} else {
student.setId(id);
break;
}
}
System.out.println("请输入学生姓名: ");
student.setName(sc.next());
System.out.println("请输入学生年龄: ");
student.setAge(sc.nextInt());
System.out.println("请输入学生地址: ");
student.setAddress(sc.next());
list.add(student);
System.out.println("✅ 学生添加成功!");
}查询学生 - 清晰的数据展示
public static void queryStudent(ArrayList<Student> list) {
if (list.isEmpty()) {
System.out.println("当前没有学生信息,请先添加学生");
return;
}
System.out.println("学号\t\t姓名\t年龄\t地址");
System.out.println("----------------------------------------");
for (Student student : list) {
System.out.println(student.getId() + "\t" +
student.getName() + "\t" +
student.getAge() + "\t" +
student.getAddress());
}
}🔧 实用工具方法
验证码生成器 - 提升安全性
public static String getCode() {
// 生成包含所有字母的集合
ArrayList<Character> letters = new ArrayList<>();
for (char c = 'a'; c <= 'z'; c++) letters.add(c);
for (char c = 'A'; c <= 'Z'; c++) letters.add(c);
Random random = new Random();
StringBuilder code = new StringBuilder();
// 随机选择4个字母
for (int i = 0; i < 4; i++) {
code.append(letters.get(random.nextInt(letters.size())));
}
// 添加1个数字并随机插入
code.append(random.nextInt(10));
char[] codeArray = code.toString().toCharArray();
// 随机交换位置(增强安全性)
int randomIndex = random.nextInt(codeArray.length);
char temp = codeArray[randomIndex];
codeArray[randomIndex] = codeArray[codeArray.length - 1];
codeArray[codeArray.length - 1] = temp;
return new String(codeArray);
}🎓 学习收获
通过这个项目,你将掌握:
✅ Java面向对象编程思想
✅ 集合框架(ArrayList)的实际应用
✅ 用户输入处理和验证
✅ 业务逻辑分层设计
✅ 控制台交互界面开发
✅ 数据验证和安全防护
🚀 快速开始
环境要求:JDK 8+,任何Java开发环境
运行步骤:
创建
com.yq.studentsystem包依次创建四个Java类文件
运行
App.java的main方法
立即体验:按照控制台提示操作即可!
💡 小贴士:建议边学边做,亲手敲一遍代码,理解会更深刻!遇到问题欢迎在评论区讨论~
🎉 恭喜你!完成这个项目后,你就具备了开发完整Java应用程序的能力!继续加油!
📎 获取完整源码
👉 点击 `阅读原文` 👈
评论区