用结构体数组存储某班30名学生的信息,每个学生的数据项有学号、姓名、性别和四门课的成绩。编写程序计算四门课的平均成绩,要求用键盘输入学生数据,再按平均成绩排序,并输出含平均成绩的报表。
时间: 2024-01-04 11:01:57 浏览: 99
C语言利用结构体数组实现学生成绩管理系统
5星 · 资源好评率100%
好的,以下是代码实现:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
struct Student {
string id; // 学号
string name; // 姓名
char gender; // 性别
double scores[4]; // 四门课成绩
double avgScore; // 平均成绩
};
bool compare(Student a, Student b) {
return a.avgScore > b.avgScore; // 按平均成绩从高到低排序
}
int main() {
Student students[30];
for (int i = 0; i < 30; i++) {
cout << "请输入第" << i + 1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> students[i].id;
cout << "姓名:";
cin >> students[i].name;
cout << "性别:";
cin >> students[i].gender;
cout << "四门课成绩:";
for (int j = 0; j < 4; j++) {
cin >> students[i].scores[j];
students[i].avgScore += students[i].scores[j];
}
students[i].avgScore /= 4.0;
}
sort(students, students + 30, compare); // 排序
cout << "成绩报表:" << endl;
for (int i = 0; i < 30; i++) {
cout << "学号:" << students[i].id << ",姓名:" << students[i].name << ",性别:" << students[i].gender << ",平均成绩:" << students[i].avgScore << endl;
}
return 0;
}
```
代码实现了结构体数组存储学生信息,以及按平均成绩排序并输出报表。
阅读全文