案例3:Java 基础——实现学生信息管理系统(简单版)
2026-03-06 09:34 更新
案例3:Java 基础——实现学生信息管理系统(简单版)
需求描述
用Java实现一个简单的学生信息管理系统,支持3个功能:添加学生信息(姓名、学号、年龄)、查询所有学生信息、删除学生信息(根据学号删除),要求使用控制台交互,代码结构清晰,使用面向对象思想,附带注释,可直接运行,处理输入非数字、学号重复、删除不存在学号等异常情况。
Claude 输入
“用Java实现一个简单的学生信息管理系统,需求如下:
- 功能:添加学生(姓名、学号、年龄)、查询所有学生、根据学号删除学生;
- 控制台交互,显示菜单,用户输入对应数字选择功能;
- 使用面向对象思想,创建Student类存储学生信息;
- 代码结构清晰,附带详细注释,可直接运行;
- 处理简单异常:输入非数字、学号重复、删除不存在的学号、年龄为负数;
- 学生信息查询时,按学号升序排序。”
生成代码(参考)
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;
// 学生类:存储学生信息(面向对象思想)
class Student {
// 成员变量:学号、姓名、年龄
private String studentId;
private String name;
private int age;
// 构造方法:初始化学生信息
public Student(String studentId, String name, int age) {
this.studentId = studentId;
this.name = name;
this.age = age;
}
// getter方法:获取成员变量的值(用于查询学生信息)
public String getStudentId() {
return studentId;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
// 重写toString方法:方便打印学生信息
@Override
public String toString() {
return "学号:" + studentId + ",姓名:" + name + ",年龄:" + age;
}
}
// 学生信息管理系统主类
public class StudentManagementSystem {
// 用于存储所有学生信息的集合
private static ArrayList<Student> studentList = new ArrayList<>();
// 控制台输入对象
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
// 系统主菜单,循环显示,直到用户选择退出
while (true) {
System.out.println("===== 学生信息管理系统 =====");
System.out.println("1. 添加学生信息");
System.out.println("2. 查询所有学生信息");
System.out.println("3. 根据学号删除学生信息");
System.out.println("4. 退出系统");
System.out.print("请输入您的选择(1-4):");
// 处理输入异常,防止用户输入非数字
int choice;
try {
choice = scanner.nextInt();
scanner.nextLine(); // 吸收换行符,避免后续输入异常
} catch (Exception e) {
System.out.println("输入错误!请输入1-4之间的数字。");
scanner.nextLine(); // 清空输入缓冲区
continue;
}
// 根据用户选择执行对应功能
switch (choice) {
case 1:
addStudent(); // 添加学生
break;
case 2:
queryAllStudents(); // 查询所有学生
break;
case 3:
deleteStudentByStudentId(); // 根据学号删除学生
break;
case 4:
System.out.println("退出系统成功!");
scanner.close(); // 关闭输入流
System.exit(0); // 退出程序
default:
System.out.println("输入错误!请输入1-4之间的数字。");
}
}
}
// 功能1:添加学生信息
private static void addStudent() {
System.out.println("===== 添加学生信息 =====");
System.out.print("请输入学生学号:");
String studentId = scanner.nextLine().trim(); // 去除空格,避免输入空格导致的异常
// 检查学号是否为空
if (studentId.isEmpty()) {
System.out.println("学号不能为空!添加失败。");
return;
}
// 检查学号是否已存在
for (Student student : studentList) {
if (student.getStudentId().equals(studentId)) {
System.out.println("该学号已存在!添加失败。");
return;
}
}
System.out.print("请输入学生姓名:");
String name = scanner.nextLine().trim();
if (name.isEmpty()) {
System.out.println("姓名不能为空!添加失败。");
return;
}
System.out.print("请输入学生年龄:");
int age;
try {
age = scanner.nextInt();
scanner.nextLine(); // 吸收换行符
// 检查年龄是否为正数
if (age < 0) {
System.out.println("年龄不能为负数!添加失败。");
return;
}
} catch (Exception e) {
System.out.println("年龄输入错误!请输入数字。");
scanner.nextLine();
return;
}
// 创建学生对象,添加到集合中
Student student = new Student(studentId, name, age);
studentList.add(student);
System.out.println("添加学生成功!");
}
// 功能2:查询所有学生信息(按学号升序排序)
private static void queryAllStudents() {
System.out.println("===== 所有学生信息 =====");
if (studentList.isEmpty()) {
System.out.println("暂无学生信息!");
return;
}
// 按学号升序排序
Collections.sort(studentList, new Comparator<Student>() {
@Override
public int compare(Student s1, Student s2) {
return s1.getStudentId().compareTo(s2.getStudentId());
}
});
// 遍历集合,打印所有学生信息
for (int i = 0; i < studentList.size(); i++) {
System.out.println((i + 1) + "." + studentList.get(i));
}
}
// 功能3:根据学号删除学生信息
private static void deleteStudentByStudentId() {
System.out.println("===== 根据学号删除学生 =====");
if (studentList.isEmpty()) {
System.out.println("暂无学生信息,无法删除!");
return;
}
System.out.print("请输入要删除的学生学号:");
String studentId = scanner.nextLine().trim();
// 遍历集合,查找对应学号的学生
for (int i = 0; i < studentList.size(); i++) {
Student student = studentList.get(i);
if (student.getStudentId().equals(studentId)) {
studentList.remove(i); // 删除学生
System.out.println("删除学生成功!");
return;
}
}
// 若未找到对应学号的学生
System.out.println("未找到该学号的学生,删除失败!");
}
}
效果测试与调整
- 将生成的代码复制到Java编辑器(如IDEA、Eclipse),创建对应的类文件(Student类与StudentManagementSystem类需在同一包下,或在同一文件中);
- 运行主类(StudentManagementSystem),在控制台输入对应数字,测试添加、查询、删除功能,故意输入非数字、重复学号、负数年龄,测试异常处理功能;
- 若想添加“修改学生信息”功能,可回到Claude Code 输入区,补充“给学生信息管理系统添加修改学生信息的功能,根据学号修改学生姓名和年龄,处理学号不存在、新年龄为负数的异常”,重新生成代码即可;
- 若想添加“根据姓名查询学生”功能,可补充需求“添加根据姓名查询学生的功能,支持模糊查询,若有多个匹配结果,全部显示”,重新生成代码。## 案例3:Java 基础——实现学生信息管理系统(简单版)
以上内容是否对您有帮助:

免费 AI IDE


更多建议: