案例3:Java 基础——实现学生信息管理系统(简单版)

2026-03-06 09:34 更新

案例3:Java 基础——实现学生信息管理系统(简单版)

需求描述

用Java实现一个简单的学生信息管理系统,支持3个功能:添加学生信息(姓名、学号、年龄)、查询所有学生信息、删除学生信息(根据学号删除),要求使用控制台交互,代码结构清晰,使用面向对象思想,附带注释,可直接运行,处理输入非数字、学号重复、删除不存在学号等异常情况。

Claude 输入

“用Java实现一个简单的学生信息管理系统,需求如下:

  1. 功能:添加学生(姓名、学号、年龄)、查询所有学生、根据学号删除学生;
  2. 控制台交互,显示菜单,用户输入对应数字选择功能;
  3. 使用面向对象思想,创建Student类存储学生信息;
  4. 代码结构清晰,附带详细注释,可直接运行;
  5. 处理简单异常:输入非数字、学号重复、删除不存在的学号、年龄为负数;
  6. 学生信息查询时,按学号升序排序。”

生成代码(参考)

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("未找到该学号的学生,删除失败!");
    }
}



效果测试与调整

  1. 将生成的代码复制到Java编辑器(如IDEA、Eclipse),创建对应的类文件(Student类与StudentManagementSystem类需在同一包下,或在同一文件中);
  2. 运行主类(StudentManagementSystem),在控制台输入对应数字,测试添加、查询、删除功能,故意输入非数字、重复学号、负数年龄,测试异常处理功能;
  3. 若想添加“修改学生信息”功能,可回到Claude Code 输入区,补充“给学生信息管理系统添加修改学生信息的功能,根据学号修改学生姓名和年龄,处理学号不存在、新年龄为负数的异常”,重新生成代码即可;
  4. 若想添加“根据姓名查询学生”功能,可补充需求“添加根据姓名查询学生的功能,支持模糊查询,若有多个匹配结果,全部显示”,重新生成代码。## 案例3:Java 基础——实现学生信息管理系统(简单版)
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号