统计多个班级的成绩c++
时间: 2024-11-04 07:10:41 浏览: 9
在C++中,统计多个班级的成绩通常会涉及到数据结构和容器的使用,比如数组、向量或者是map来存储每个学生的成绩。这里是一个简单的示例,假设我们有一个`Student`类,包含姓名和成绩,以及一个`GradeBook`类来管理多个班级:
```cpp
#include <iostream>
#include <vector>
#include <string>
class Student {
public:
std::string name;
int score;
// 构造函数、获取setScore等方法可以省略
};
class GradeBook {
private:
std::vector<std::vector<Student>> classes; // 使用二维vector存储各班级的学生
public:
void addClass(const std::string& className) {
classes.push_back({});
}
void addStudentToClass(const std::string& className, const Student& student) {
for (auto& classStudents : classes) {
if (classStudents.empty() || classStudents.back().name == className) {
classStudents.push_back(student);
break;
}
}
}
// 统计所有班级的平均分
double averageScore() {
double totalScore = 0;
for (const auto& classStudents : classes) {
for (const auto& student : classStudents) {
totalScore += student.score;
}
}
return totalScore / (classes.size() * static_cast<double>(classes[0].size()));
}
// 其他统计功能,如最高分、最低分等...
// 输出结果
void printResults() {
for (const auto& classStudents : classes) {
std::cout << "班级:" << classStudents.back().name << "\n";
double avg = averageScore();
std::cout << "平均分: " << avg << "\n";
}
}
};
int main() {
GradeBook gradeBook;
// 添加班级并添加学生
gradeBook.addClass("A班");
gradeBook.addStudentToClass("A班", { "张三", 90 });
gradeBook.addStudentToClass("A班", { "李四", 85 });
// 更多操作...
gradeBook.printResults();
return 0;
}
```
在这个例子中,你可以动态地增加班级,并为每个班级添加学生及他们的成绩。`averageScore`方法用于计算所有班级的平均成绩。如果你想统计其他信息,只需要在`GradeBook`类中添加相应的成员函数即可。
阅读全文