|
|
|
|
@ -0,0 +1,116 @@
|
|
|
|
|
package com.studentmanagement.model;
|
|
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 学生实体类
|
|
|
|
|
* 表示系统中的学生对象,包含基本信息和课程成绩
|
|
|
|
|
*/
|
|
|
|
|
public class Student {
|
|
|
|
|
private String id; // 学生ID
|
|
|
|
|
private String name; // 学生姓名
|
|
|
|
|
private int age; // 学生年龄
|
|
|
|
|
private String gender; // 学生性别
|
|
|
|
|
private Map<String, Double> courseGrades; // 课程成绩映射
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 构造函数
|
|
|
|
|
* @param id 学生ID
|
|
|
|
|
* @param name 学生姓名
|
|
|
|
|
* @param age 学生年龄
|
|
|
|
|
* @param gender 学生性别
|
|
|
|
|
*/
|
|
|
|
|
public Student(String id, String name, int age, String gender) {
|
|
|
|
|
this.id = id;
|
|
|
|
|
this.name = name;
|
|
|
|
|
this.age = age;
|
|
|
|
|
this.gender = gender;
|
|
|
|
|
this.courseGrades = new HashMap<>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Getters and Setters
|
|
|
|
|
public String getId() {
|
|
|
|
|
return id;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setId(String id) {
|
|
|
|
|
this.id = id;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String getName() {
|
|
|
|
|
return name;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setName(String name) {
|
|
|
|
|
this.name = name;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int getAge() {
|
|
|
|
|
return age;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setAge(int age) {
|
|
|
|
|
this.age = age;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public String getGender() {
|
|
|
|
|
return gender;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setGender(String gender) {
|
|
|
|
|
this.gender = gender;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Map<String, Double> getCourseGrades() {
|
|
|
|
|
return courseGrades;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setCourseGrades(Map<String, Double> courseGrades) {
|
|
|
|
|
this.courseGrades = courseGrades;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 添加课程成绩
|
|
|
|
|
* @param course 课程名称
|
|
|
|
|
* @param grade 成绩
|
|
|
|
|
*/
|
|
|
|
|
public void addCourseGrade(String course, double grade) {
|
|
|
|
|
courseGrades.put(course, grade);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取特定课程的成绩
|
|
|
|
|
* @param course 课程名称
|
|
|
|
|
* @return 成绩,如果课程不存在返回null
|
|
|
|
|
*/
|
|
|
|
|
public Double getCourseGrade(String course) {
|
|
|
|
|
return courseGrades.get(course);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 计算平均成绩
|
|
|
|
|
* @return 平均成绩,如果没有课程成绩返回0
|
|
|
|
|
*/
|
|
|
|
|
public double calculateAverageGrade() {
|
|
|
|
|
if (courseGrades.isEmpty()) {
|
|
|
|
|
return 0.0;
|
|
|
|
|
}
|
|
|
|
|
double sum = 0.0;
|
|
|
|
|
for (double grade : courseGrades.values()) {
|
|
|
|
|
sum += grade;
|
|
|
|
|
}
|
|
|
|
|
return sum / courseGrades.size();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String toString() {
|
|
|
|
|
return "Student{" +
|
|
|
|
|
"id='" + id + "'" +
|
|
|
|
|
", name='" + name + "'" +
|
|
|
|
|
", age=" + age +
|
|
|
|
|
", gender='" + gender + "'" +
|
|
|
|
|
", averageGrade=" + String.format("%.2f", calculateAverageGrade()) +
|
|
|
|
|
"}";
|
|
|
|
|
}
|
|
|
|
|
}
|