/** * 设计一个学生成绩统计系统,其中包含两个类:学生类和成绩类。 * 每个学生有多门成绩,每个学生成绩列表存储在一个Map对象中。实现以下功能: * * 添加学生信息和成绩信息 * 查询学生全部成绩信息 * 查询学生某门成绩信息 * 计算学生的平均成绩和总成绩 */
时间: 2023-07-01 13:15:58 浏览: 60
好的,这是一个关于学生成绩统计系统的问题,需要设计两个类:学生类和成绩类。以下是我提供的代码实现,你可以进行参考。
首先是学生类:
```java
import java.util.*;
public class Student {
private String name; // 学生姓名
private Map<String, Double> gradeMap; // 成绩列表,键为课程名称,值为成绩
public Student(String name) {
this.name = name;
gradeMap = new HashMap<>();
}
// 添加某门课程的成绩
public void addGrade(String course, double score) {
gradeMap.put(course, score);
}
// 获取某门课程的成绩
public double getGrade(String course) {
return gradeMap.get(course);
}
// 获取全部成绩
public Map<String, Double> getGrades() {
return gradeMap;
}
// 计算平均成绩
public double getAverageGrade() {
double sum = 0;
for (double grade : gradeMap.values()) {
sum += grade;
}
return sum / gradeMap.size();
}
// 计算总成绩
public double getTotalGrade() {
double sum = 0;
for (double grade : gradeMap.values()) {
sum += grade;
}
return sum;
}
}
```
然后是成绩类:
```java
import java.util.*;
public class Grade {
private List<Student> studentList; // 学生列表
public Grade() {
studentList = new ArrayList<>();
}
// 添加学生信息和成绩信息
public void addStudent(String name, Map<String, Double> gradeMap) {
Student student = new Student(name);
student.getGrades().putAll(gradeMap);
studentList.add(student);
}
// 查询学生全部成绩信息
public Map<String, Double> getStudentGrades(String name) {
for (Student student : studentList) {
if (student.getName().equals(name)) {
return student.getGrades();
}
}
return null;
}
// 查询学生某门成绩信息
public double getStudentGrade(String name, String course) {
for (Student student : studentList) {
if (student.getName().equals(name)) {
return student.getGrade(course);
}
}
return -1;
}
// 计算学生的平均成绩和总成绩
public Map<String, Double> getStudentAverageAndTotalGrade(String name) {
for (Student student : studentList) {
if (student.getName().equals(name)) {
Map<String, Double> map = new HashMap<>();
map.put("averageGrade", student.getAverageGrade());
map.put("totalGrade", student.getTotalGrade());
return map;
}
}
return null;
}
}
```
以上是简单的实现,主要是通过 Map 来存储学生的成绩信息。你可以根据需求进行更改和完善。
阅读全文