编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。(通过动态内存分配对象数组测试)
时间: 2024-11-11 14:23:33 浏览: 23
编写程序,输入并保存5名学生的信息,计算出平均分,再按照成绩从高到低的顺序输出他们的信息。学生信息包括:学号、姓名、成绩。
编写一个程序来处理这种情况,我们可以使用C++语言为例,因为它的动态内存管理和面向对象特性非常适合这个需求。首先,我们创建一个名为`Student`的对象,包含学号、姓名和成绩属性。然后,我们将创建一个动态大小的学生数组,并获取用户输入的N个学生数据。
```cpp
#include <iostream>
using namespace std;
// 定义学生对象结构体
class Student {
public:
int id;
string name;
float score;
// 构造函数
Student(int id, string name, float score)
: id(id), name(name), score(score) {}
};
int main() {
int N;
cout << "请输入学生人数(N): ";
cin >> N;
// 动态分配学生数组
Student* students = new Student[N]; // 使用new动态分配数组
// 输入学生数据
for (int i = 0; i < N; i++) {
cout << "请输入第" << i+1 << "位学生的学号、姓名和成绩: ";
cin >> students[i].id >> students[i].name >> students[i].score;
}
// 计算平均分
float totalScore = 0;
for (int i = 0; i < N; i++) {
totalScore += students[i].score;
}
float averageScore = totalScore / N;
cout << "所有学生的平均成绩是: " << averageScore << endl;
// 释放内存
delete[] students; // 使用delete[]删除动态分配的数组
return 0;
}
阅读全文