在学生类里加入map类型的数据,并在测试类中给map类型的数据赋值
时间: 2024-02-25 11:55:08 浏览: 61
好的,你可以参考以下代码实现:
```c++
#include <iostream>
#include <map>
#include <string>
class Student {
public:
// 构造函数
Student(const std::string& name, int age) : name_(name), age_(age) {}
// 设置学生的成绩
void SetScore(const std::string& course, double score) {
scores_[course] = score;
}
// 获取学生的平均成绩
double GetAverageScore() const {
if (scores_.empty()) {
return 0.0;
}
double sum = 0.0;
for (const auto& score : scores_) {
sum += score.second;
}
return sum / scores_.size();
}
private:
std::string name_; // 学生姓名
int age_; // 学生年龄
std::map<std::string, double> scores_; // 学生成绩
};
int main() {
Student student("小明", 18);
student.SetScore("语文", 90.0);
student.SetScore("数学", 95.0);
student.SetScore("英语", 92.0);
std::cout << "平均成绩:" << student.GetAverageScore() << std::endl;
return 0;
}
```
在上面的代码中,我们在`Student`类中加入了一个`std::map<std::string, double>`类型的成员变量`scores_`,用于存储学生的各科成绩。我们为`Student`类提供了一个`SetScore`方法,用于设置学生的成绩。在`main`函数中,我们创建了一个名为`student`的`Student`对象,并使用`SetScore`方法为其设置了三门课程的成绩。最后,我们调用了`GetAverageScore`方法,输出学生的平均成绩。
阅读全文