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 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 getCourseGrades() { return courseGrades; } public void setCourseGrades(Map 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()) + "}"; } }