学生成绩管理系统 - 用 Java 实现的简单项目
项目简介
今天我们用 Java 实现了一个简单的控制台程序:学生成绩管理系统。本项目旨在帮助初学者综合应用 Java 基础知识,通过实际动手编写程序巩固所学内容。系统提供了以下功能:
- 录入学生信息:支持录入学生的姓名和成绩。
- 显示所有学生信息:以表格形式展示学生名单和成绩。
- 查询学生成绩:根据学生姓名查询其成绩。
- 统计功能:计算班级总成绩、平均成绩、最高分和最低分。
- 退出程序:结束程序运行。
通过该项目,可以练习变量、数组、循环、条件语句和方法调用等 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. 退出程序
请选择操作(输入数字):
项目总结
学到的内容
通过实现学生成绩管理系统,您可以巩固以下知识:
- 变量与数据类型:熟悉
int
、String
等基本数据类型及其操作。 - 循环与条件语句:灵活使用
for
、while
和if-else
控制程序逻辑。 - 数组与集合:通过
ArrayList
管理动态学生数据。 - 方法调用:通过模块化设计,让程序逻辑更清晰。
项目亮点
- 操作简单:采用控制台交互,用户输入数字即可操作。
- 知识点覆盖广:从变量到数组再到方法的使用,覆盖 Java 的基础知识。
- 实践为主:理论结合实践,加深对编程逻辑的理解。
适合人群
- Java 零基础学习者:想通过小项目快速上手 Java 编程。
- 编程爱好者:希望通过简单项目增强编程逻辑。
- Java 初学者:希望通过实际练习巩固语言基础。
下一步计划
接下来可以尝试将项目功能扩展到更复杂的场景,例如:
- 增加学生删除功能。
- 实现数据的文件存储功能,让数据在程序退出后不丢失。
- 使用图形界面(GUI)替代控制台界面。
祝学习愉快!希望这个项目能为您的编程之路带来启发! 😊