使用C++编写一个程序,有10个学生,每个学生的数据包括学号,姓名,3门功课的成绩。从键盘输入10个学生的数据,要求按平均成绩降序显示出所有学生的数据(包括学号、姓名、3门课成绩、平均成绩),并将其写入文本文件resulttxt中。
时间: 2023-12-15 18:12:57 浏览: 82
好的,这是您需要的C++程序:
```c++
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
struct Student {
string id;
string name;
double score[3];
double average;
};
bool cmp(const Student& a, const Student& b) { // 自定义排序函数
return a.average > b.average;
}
int main() {
Student stu[10];
for (int i = 0; i < 10; ++i) { // 输入学生信息
cout << "请输入第" << i+1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> stu[i].id;
cout << "姓名:";
cin >> stu[i].name;
cout << "三门课成绩:";
cin >> stu[i].score[0] >> stu[i].score[1] >> stu[i].score[2];
stu[i].average = (stu[i].score[0] + stu[i].score[1] + stu[i].score[2]) / 3.0; // 计算平均成绩
}
sort(stu, stu+10, cmp); // 按平均成绩降序排序
ofstream outfile("result.txt"); // 打开输出文件流
outfile << "学号\t姓名\t成绩1\t成绩2\t成绩3\t平均成绩" << endl;
for (int i = 0; i < 10; ++i) { // 输出学生信息
outfile << stu[i].id << "\t" << stu[i].name << "\t";
outfile << stu[i].score[0] << "\t" << stu[i].score[1] << "\t" << stu[i].score[2] << "\t";
outfile << stu[i].average << endl;
}
outfile.close(); // 关闭输出文件流
return 0;
}
```
运行程序后,输入10个学生的信息后,程序会按平均成绩降序显示出所有学生的数据,并将其写入到文件`result.txt`中。
阅读全文