用c++语言实现使用动态内存分配创建封装的动态学生类Student的对象数组class,在主函数中计算所有学生每门课程的平均成绩并输出。学生类Student中包含当前学生对象的姓名、学号和三门课程的成绩。在主函数中要求用户输入学生人数num,并根据输入的学生人数num创建动态对象数组
时间: 2023-12-10 10:38:30 浏览: 85
设计一个学生类Student(学生学号、姓名、数学、英语、计算机成绩;)
5星 · 资源好评率100%
以下是用C++语言实现使用动态内存分配创建封装的动态学生类Student的对象数组class,在主函数中计算所有学生每门课程的平均成绩并输出的代码:
```c++
#include <iostream>
using namespace std;
class Student {
public:
string name;
int id;
double scores[3];
};
int main() {
int num;
cout << "请输入学生人数num:" << endl;
cin >> num;
Student *students = new Student[num];
for (int i = 0; i < num; i++) {
cout << "请输入第" << i+1 << "个学生的姓名、学号和三门课程的成绩:" << endl;
cin >> students[i].name >> students[i].id;
for (int j = 0; j < 3; j++) {
cin >> students[i].scores[j];
}
}
double avg_scores[3] = {0};
for (int i = 0; i < num; i++) {
for (int j = 0; j < 3; j++) {
avg_scores[j] += students[i].scores[j];
}
}
for (int i = 0; i < 3; i++) {
avg_scores[i] /= num;
cout << "第" << i+1 << "门课程的平均成绩为:" << avg_scores[i] << endl;
}
delete[] students;
return 0;
}
```
在上述代码中,我们首先定义了一个学生类`Student`,包含当前学生对象的姓名、学号和三门课程的成绩。然后在主函数中要求用户输入学生人数`num`,并根据输入的学生人数`num`创建动态对象数组`students`。接着,我们使用循环依次输入每个学生的姓名、学号和三门课程的成绩。最后,我们使用循环计算所有学生每门课程的总成绩,并分别求出每门课程的平均成绩,并输出结果。最后,我们使用`delete[]`释放动态对象数组`students`所占用的内存,避免内存泄漏。
阅读全文