java基础知识复习:学生成绩管理系统 - 实现的简单项目

学生成绩管理系统 - 用 Java 实现的简单项目

项目简介

今天我们用 Java 实现了一个简单的控制台程序:学生成绩管理系统。本项目旨在帮助初学者综合应用 Java 基础知识,通过实际动手编写程序巩固所学内容。系统提供了以下功能:

  1. 录入学生信息:支持录入学生的姓名和成绩。
  2. 显示所有学生信息:以表格形式展示学生名单和成绩。
  3. 查询学生成绩:根据学生姓名查询其成绩。
  4. 统计功能:计算班级总成绩、平均成绩、最高分和最低分。
  5. 退出程序:结束程序运行。

通过该项目,可以练习变量、数组、循环、条件语句和方法调用等 Java 核心基础知识。项目功能简单但实用,非常适合 Java 初学者。


代码实现

以下是完整代码,使用 IntelliJ IDEA 或其他开发工具即可运行:

import java.util.ArrayList; // 导入ArrayList类,用于存储学生信息
import java.util.Scanner; // 导入Scanner类,用于读取用户输入

public class StudentManagementSystem { // 定义主类
    // 定义嵌套类,用于表示学生
    static class Student {
        String name; // 学生姓名
        int score; // 学生成绩

        // 构造方法,用于初始化学生对象
        Student(String name, int score) {
            this.name = name; // 设置学生姓名
            this.score = score; // 设置学生成绩
        }
    }

    public static void main(String[] args) {
        ArrayList<Student> students = new ArrayList<>(); // 创建一个动态数组,用于存储学生对象
        Scanner scanner = new Scanner(System.in); // 创建Scanner对象,用于读取控制台输入

        // 使用无限循环实现菜单操作
        while (true) {
            // 输出菜单
            System.out.println("\n学生成绩管理系统");
            System.out.println("1. 录入学生信息");
            System.out.println("2. 显示所有学生信息");
            System.out.println("3. 查询学生成绩");
            System.out.println("4. 统计班级成绩");
            System.out.println("5. 退出程序");
            System.out.print("请选择操作(输入数字):");

            int choice = scanner.nextInt(); // 读取用户输入的菜单选项
            scanner.nextLine(); // 清空输入缓冲区中的换行符

            // 根据用户选择执行对应操作
            switch (choice) {
                case 1: // 录入学生信息
                    System.out.print("请输入学生姓名:");
                    String name = scanner.nextLine(); // 读取学生姓名
                    System.out.print("请输入学生成绩:");
                    int score = scanner.nextInt(); // 读取学生成绩
                    scanner.nextLine(); // 清空输入缓冲区中的换行符
                    students.add(new Student(name, score)); // 将学生信息添加到列表中
                    System.out.println("学生信息录入成功!");
                    break;

                case 2: // 显示所有学生信息
                    System.out.println("\n学生信息列表:");
                    System.out.println("姓名\t成绩"); // 表头
                    for (Student student : students) { // 遍历学生列表
                        System.out.println(student.name + "\t" + student.score); // 输出学生姓名和成绩
                    }
                    break;

                case 3: // 查询学生成绩
                    System.out.print("请输入要查询的学生姓名:");
                    String queryName = scanner.nextLine(); // 读取用户输入的学生姓名
                    boolean found = false; // 标记是否找到学生
                    for (Student student : students) { // 遍历学生列表
                        if (student.name.equals(queryName)) { // 如果找到匹配的学生
                            System.out.println("学生 " + queryName + " 的成绩是:" + student.score); // 输出成绩
                            found = true; // 标记为找到
                            break; // 退出循环
                        }
                    }
                    if (!found) { // 如果没有找到
                        System.out.println("未找到该学生!");
                    }
                    break;

                case 4: // 统计班级成绩
                    int total = 0; // 总成绩初始化为0
                    int highest = Integer.MIN_VALUE; // 最高分初始化为最小值
                    int lowest = Integer.MAX_VALUE; // 最低分初始化为最大值
                    for (Student student : students) { // 遍历学生列表
                        total += student.score; // 累加学生成绩
                        if (student.score > highest) highest = student.score; // 更新最高分
                        if (student.score < lowest) lowest = student.score; // 更新最低分
                    }
                    // 计算平均成绩,避免空列表时除零
                    double average = students.isEmpty() ? 0 : (double) total / students.size();
                    System.out.println("班级总成绩:" + total); // 输出总成绩
                    System.out.println("班级平均成绩:" + average); // 输出平均成绩
                    System.out.println("班级最高分:" + highest); // 输出最高分
                    System.out.println("班级最低分:" + lowest); // 输出最低分
                    break;

                case 5: // 退出程序
                    System.out.println("程序退出,再见!");
                    return; // 结束主方法

                default: // 处理无效选项
                    System.out.println("无效的选项,请重新选择!");
            }
        }
    }
}

功能说明与运行效果

功能菜单

运行程序后,会显示如下功能菜单:

学生成绩管理系统
1. 录入学生信息
2. 显示所有学生信息
3. 查询学生成绩
4. 统计班级成绩
5. 退出程序
请选择操作(输入数字):
用户可以根据提示输入对应数字,执行相关操作。

示例运行效果

Task :StudentScoreManager.main()

学生成绩管理系统
1. 录入学生信息
2. 显示所有学生信息
3. 查询学生成绩
4. 统计班级成绩
5. 退出程序
请选择操作(输入数字):1
请输入学生姓名:小明
请输入学生成绩:88
学生信息录入成功!

学生成绩管理系统
1. 录入学生信息
2. 显示所有学生信息
3. 查询学生成绩
4. 统计班级成绩
5. 退出程序
请选择操作(输入数字):1
请输入学生姓名:小花
请输入学生成绩:100
学生信息录入成功!

学生成绩管理系统
1. 录入学生信息
2. 显示所有学生信息
3. 查询学生成绩
4. 统计班级成绩
5. 退出程序
请选择操作(输入数字):2

学生信息列表:
姓名	成绩
小明	88
小花	100

学生成绩管理系统
1. 录入学生信息
2. 显示所有学生信息
3. 查询学生成绩
4. 统计班级成绩
5. 退出程序
请选择操作(输入数字):3
请输入要查询的学生姓名:小明
学生 小明 的成绩是:88

学生成绩管理系统
1. 录入学生信息
2. 显示所有学生信息
3. 查询学生成绩
4. 统计班级成绩
5. 退出程序
请选择操作(输入数字):4
班级总成绩:188
班级平均成绩:94.0
班级最高分:100
班级最低分:88

学生成绩管理系统
1. 录入学生信息
2. 显示所有学生信息
3. 查询学生成绩
4. 统计班级成绩
5. 退出程序
请选择操作(输入数字):

项目总结

学到的内容

通过实现学生成绩管理系统,您可以巩固以下知识:

  • 变量与数据类型:熟悉 intString 等基本数据类型及其操作。
  • 循环与条件语句:灵活使用 forwhileif-else 控制程序逻辑。
  • 数组与集合:通过 ArrayList 管理动态学生数据。
  • 方法调用:通过模块化设计,让程序逻辑更清晰。

项目亮点

  1. 操作简单:采用控制台交互,用户输入数字即可操作。
  2. 知识点覆盖广:从变量到数组再到方法的使用,覆盖 Java 的基础知识。
  3. 实践为主:理论结合实践,加深对编程逻辑的理解。

适合人群

  • Java 零基础学习者:想通过小项目快速上手 Java 编程。
  • 编程爱好者:希望通过简单项目增强编程逻辑。
  • Java 初学者:希望通过实际练习巩固语言基础。

下一步计划

接下来可以尝试将项目功能扩展到更复杂的场景,例如:

  • 增加学生删除功能。
  • 实现数据的文件存储功能,让数据在程序退出后不丢失。
  • 使用图形界面(GUI)替代控制台界面。

祝学习愉快!希望这个项目能为您的编程之路带来启发! 😊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值