学生成绩管理系统

简介: 学生成绩管理系统

在这个Java面向对象编程的实例中,我们将实现一个简单的学生成绩管理系统。这个系统将包括以下几个关键部分:

1. 学生类 (Student):包含学生的基本信息,如姓名和学号。

2. 课程类 (Course):包含课程的基本信息,如课程名称和课程编号。

3. 成绩类 (Score):用于存储学生某个课程的成绩。

4. 成绩管理系统类 (GradeManagement):用于管理学生、课程和成绩,提供添加学生、添加课程、录入成绩和查询成绩的功能。

下面是这个系统的具体实现:

1. 学生类 (Student)

java复制代码

 

public class Student {

 

private String name;

 

private String studentId;

 

 

 

public Student(String name, String studentId) {

 

this.name = name;

 

this.studentId = studentId;

 

}

 

 

 

public String getName() {

 

return name;

 

}

 

 

 

public String getStudentId() {

 

return studentId;

 

}

 

 

 

// 省略setter方法和toString方法

 

}

2. 课程类 (Course)

java复制代码

 

public class Course {

 

private String name;

 

private String courseCode;

 

 

 

public Course(String name, String courseCode) {

 

this.name = name;

 

this.courseCode = courseCode;

 

}

 

 

 

public String getName() {

 

return name;

 

}

 

 

 

public String getCourseCode() {

 

return courseCode;

 

}

 

 

 

// 省略setter方法和toString方法

 

}

3. 成绩类 (Score)

java复制代码

 

public class Score {

 

private String studentId;

 

private String courseCode;

 

private int score;

 

 

 

public Score(String studentId, String courseCode, int score) {

 

this.studentId = studentId;

 

this.courseCode = courseCode;

 

this.score = score;

 

}

 

 

 

public String getStudentId() {

 

return studentId;

 

}

 

 

 

public String getCourseCode() {

 

return courseCode;

 

}

 

 

 

public int getScore() {

 

return score;

 

}

 

 

 

// 省略setter方法和toString方法

 

}

4. 成绩管理系统类 (GradeManagement)

java复制代码

 

import java.util.ArrayList;

 

import java.util.HashMap;

 

import java.util.List;

 

import java.util.Map;

 

 

 

public class GradeManagement {

 

private List<Student> students;

 

private List<Course> courses;

 

private Map<String, Map<String, Integer>> scores; // 使用嵌套的Map来存储成绩,外层Map的key是学生ID,内层Map的key是课程编号,value是分数

 

 

 

public GradeManagement() {

 

students = new ArrayList<>();

 

courses = new ArrayList<>();

 

scores = new HashMap<>();

 

}

 

 

 

public void addStudent(Student student) {

 

students.add(student);

 

scores.put(student.getStudentId(), new HashMap<>()); // 为新学生初始化一个空的成绩Map

 

}

 

 

 

public void addCourse(Course course) {

 

courses.add(course);

 

}

 

 

 

public void enterScore(String studentId, String courseCode, int score) {

 

Map<String, Integer> studentScores = scores.get(studentId);

 

if (studentScores != null) {

 

studentScores.put(courseCode, score); // 为学生录入成绩

 

} else {

 

System.out.println("学生不存在,请先添加学生信息!");

 

}

 

}

 

 

 

public void printScore(String studentId) {

 

Map<String, Integer> studentScores = scores.get(studentId);

 

if (studentScores != null) {

 

System.out.println("学生:" + studentId + " 的成绩如下:");

 

for (Map.Entry<String, Integer> entry : studentScores.entrySet()) {

 

System.out.println("课程:" + entry.getKey() + ",分数:" + entry.getValue());

 

}

 

} else {

 

System.out.println("学生不存在或没有成绩信息!");

 

}

 

}

 

 

 

// 其他方法,如按课程查询成绩、按分数排序等可以在这里添加

 

}

 

目录
相关文章
|
安全 区块链
数字货币秒合约/交易所系统开发详细程序/案例项目/需求设计/方案逻辑/源码步骤
The development of a digital currency second contract/exchange system requires the following functions:
|
缓存 网络协议 网络安全
/mydata *(rw,sync,no_subtree_check)什么意思?
/mydata *(rw,sync,no_subtree_check)什么意思?
389 1
|
JavaScript 前端开发
|
11月前
|
存储 人工智能 物联网
人人都是设计师,挑战0代码打造专属氛围感风格海报!
无需编程和设计基础,借助阿里云PAI ArtLab,轻松实现任意风格的海报设计。通过在线服务PAI-EAS和对象存储OSS,用户可以快速部署ComfyUI环境,上传线稿后一键生成企业风格海报。提供详细的操作步骤和多种风格示例,如岩石废土风、节日圣诞风和假日海洋风,帮助你轻松上手,快速出图。
398 15
|
12月前
|
人工智能 自然语言处理 并行计算
ASAL:Sakana AI 联合 OpenAI 推出自动探索人工生命的系统,通过计算机模拟生命进化的过程
ASAL 是由 Sakana AI 联合 OpenAI 等机构推出的自动化搜索人工生命系统,基于基础模型实现多种搜索机制,扩展了人工生命研究的边界。
460 1
ASAL:Sakana AI 联合 OpenAI 推出自动探索人工生命的系统,通过计算机模拟生命进化的过程
|
JavaScript
vue 组件中的 data 为什么是一个函数 ?
【10月更文挑战第8天】 在 Vue 组件中,`data` 被定义为一个函数而非普通对象,以确保每个组件实例拥有独立的数据空间,避免数据混乱。这种方式还支持数据的响应式更新、组件的继承与扩展,并有助于避免潜在问题,提升应用的可靠性和性能。
309 57
|
10月前
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【卷积层】| ICCV-2023 LSK大核选择模块 包含二次独家创新
YOLOv11改进策略【卷积层】| ICCV-2023 LSK大核选择模块 包含二次独家创新
232 0
|
网络协议 安全 网络性能优化
7. 构建简单 IPv6 网络
7. 构建简单 IPv6 网络
VBA如何用Excel数据批量生成Word文档
VBA|用Excel数据批量生成并修改用模板创建的Word文档
|
人工智能 编解码 自然语言处理
AI文生图模型DALL·E 3
8月更文挑战第15天