在这个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("学生不存在或没有成绩信息!"); |
|
} |
|
} |
|
|
|
// 其他方法,如按课程查询成绩、按分数排序等可以在这里添加 |
|
} |