C++内存动态分配统计多个班级所有学生C++课程成绩
时间: 2024-10-03 18:02:52 浏览: 46
在C++中,为了统计多个班级所有学生C++课程的成绩,你可以创建一个结构体来表示每个学生的数据,包含姓名和分数。然后,你可以设计一个类或者数据结构来管理班级,里面包含一个动态分配的学生数组。这里是一个简单的例子:
```cpp
#include <iostream>
#include <vector>
// 定义学生信息结构体
struct Student {
std::string name;
int cPlusPlusScore;
};
class Class {
private:
// 动态分配一个学生动态数组
std::vector<Student*> students;
public:
void addStudent(const std::string& name, int score) {
students.push_back(new Student{name, score});
}
void printScores() {
for (auto student : students) {
std::cout << "学生 " << student->name << " 的C++课程成绩是: " << student->cPlusPlusScore << std::endl;
}
}
~Class() { // 析构函数自动释放内存
for (auto* student : students) {
delete student;
}
students.clear();
}
};
int main() {
Class class1; // 创建第一个班级
class1.addStudent("张三", 90);
class1.addStudent("李四", 85);
Class class2; // 创建第二个班级
class2.addStudent("王五", 95);
class2.addStudent("赵六", 88);
class1.printScores(); // 输出班级1的成绩
class2.printScores(); // 输出班级2的成绩
return 0;
}
```
在这个例子中,我们创建了两个`Class`对象,分别代表两个班级。每个班级都有自己的学生列表,使用`std::vector`动态存储。`addStudent`方法用于添加新学生,而`printScores`方法则遍历并打印出所有学生的成绩。
阅读全文