编写一个c++程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。(通过动态内存分配对象数组测试)
时间: 2024-11-21 22:38:53 浏览: 12
学生成绩信息输入排序输出
编写一个C++程序来输入N个学生的数据,并动态创建对象数组来存储这些信息,可以按照以下步骤进行:
```cpp
#include <iostream>
#include <string>
// 定义一个学生类
class Student {
public:
int id;
std::string name;
float score;
// 构造函数
Student(int id, const std::string& name, float score)
: id(id), name(name), score(score) {}
};
int main() {
int N;
std::cout << "请输入学生总数:";
std::cin >> N; // 输入学生数量
// 动态分配学生对象数组
Student* students = new Student[N]; // 学生数组指针
if (!students) {
std::cerr << "动态内存分配失败!" << std::endl;
return 1;
}
// 循环输入每个学生的信息
for (int i = 0; i < N; ++i) {
std::cout << "请输入第" << (i + 1) << "个学生的学号、姓名和成绩:" << std::endl;
std::cin >> students[i].id >> students[i].name >> students[i].score;
}
// 计算平均分数
float total_score = 0.0;
for (int i = 0; i < N; ++i) {
total_score += students[i].score;
}
float average_score = total_score / N;
std::cout << "平均成绩为:" << average_score << std::endl;
// 释放动态内存
delete[] students;
students = nullptr;
std::cout << "学生数据已处理,内存已释放。" << std::endl;
return 0;
}
```
在这个程序中,我们首先定义了一个`Student`类,包含了学生的属性和构造函数。然后,在`main`函数中,我们根据用户输入的学生数动态分配了数组,接着循环输入学生信息,计算平均分,最后释放动态内存。
阅读全文