.设计一个学生类,包含学生学号,姓名,课程,成绩等基本信息,并通过成 员函数计算学生的平均成绩。
时间: 2024-10-12 22:10:42 浏览: 42
学生成绩管理系统课程设计
设计一个学生类,可以按照下面的结构来进行:
```cpp
class Student {
private:
// 学生的基本信息
int student_id;
string name;
map<string, float> courses_and_scores; // 使用map存储课程名和对应的成绩
public:
// 构造函数
Student(int id, const string& n) : student_id(id), name(n) {}
// 成员函数:设置成绩
void setScore(const string& course, float score) {
courses_and_scores[course] = score;
}
// 成员函数:获取成绩
float getScore(const string& course) const {
if (courses_and_scores.find(course) != courses_and_scores.end()) {
return courses_and_scores.at(course);
}
else {
throw runtime_error("Course not found.");
}
}
// 成员函数:计算平均成绩
double calculateAverageGrade() const {
double total = 0.0;
for (const auto& pair : courses_and_scores) {
total += pair.second;
}
if (courses_and_scores.empty()) {
throw runtime_error("No scores available.");
}
return total / courses_and_scores.size();
}
// 获取学生的其他属性
int getId() const { return student_id; }
const string getName() const { return name; }
};
```
在这个类中,我们定义了学生的学号、姓名和成绩映射。`setScore`用于添加或更新成绩,`getScore`用于获取特定课程的成绩,`calculateAverageGrade`则用于计算所有课程的平均分。注意,如果尝试获取不存在的课程成绩会抛出异常。
阅读全文