用C++三名学生的学号、姓名、班级信息、3门课程成绩、平均成绩,输出到一个f1文件中。将这3个学生按照平均成绩从高到低排序后,输出到f2文件中。
时间: 2023-06-20 22:10:20 浏览: 79
以下是实现该功能的代码示例:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
// 学生信息结构体
struct Student {
string id;
string name;
string className;
double scores[3];
double avgScore;
} students[3];
// 比较函数,用于排序
bool cmp(const Student& a, const Student& b) {
return a.avgScore > b.avgScore;
}
int main() {
// 输入学生信息
for (int i = 0; i < 3; i++) {
cout << "请输入第" << i + 1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> students[i].id;
cout << "姓名:";
cin >> students[i].name;
cout << "班级:";
cin >> students[i].className;
cout << "3门课程成绩:";
for (int j = 0; j < 3; j++) {
cin >> students[i].scores[j];
students[i].avgScore += students[i].scores[j];
}
students[i].avgScore /= 3.0;
}
// 输出到f1文件中
ofstream f1("f1.txt");
for (int i = 0; i < 3; i++) {
f1 << students[i].id << " " << students[i].name << " " << students[i].className << " ";
for (int j = 0; j < 3; j++) {
f1 << students[i].scores[j] << " ";
}
f1 << students[i].avgScore << endl;
}
f1.close();
// 按平均成绩从高到低排序
sort(students, students + 3, cmp);
// 输出到f2文件中
ofstream f2("f2.txt");
for (int i = 0; i < 3; i++) {
f2 << students[i].id << " " << students[i].name << " " << students[i].className << " ";
for (int j = 0; j < 3; j++) {
f2 << students[i].scores[j] << " ";
}
f2 << students[i].avgScore << endl;
}
f2.close();
return 0;
}
```
该程序中,我们首先定义了一个 `Student` 结构体,包含了学号、姓名、班级信息、3门课程成绩和平均成绩等信息。然后,通过循环输入每个学生的信息,并计算平均成绩。接着,将学生信息输出到 `f1` 文件中,并按平均成绩从高到低排序,并将排序后的学生信息输出到 `f2` 文件中。
阅读全文