用c++实现 4.编写程序,从键盘输入5个学生的学生信息,包括学号、姓名、3门课程的成绩,计算3门课的平均成绩,将全部信息以二进制方式保存到文件中。
时间: 2023-06-13 22:07:58 浏览: 885
以下是实现以上功能的C++代码:
```cpp
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
// 定义学生信息结构体
struct Student {
int id;
string name;
float score1;
float score2;
float score3;
float avgScore;
};
int main() {
// 定义学生信息数组
Student students[5];
// 从键盘读入学生信息
for (int i = 0; i < 5; i++) {
cout << "请输入第" << i+1 << "个学生的学号:";
cin >> students[i].id;
cout << "请输入第" << i+1 << "个学生的姓名:";
cin >> students[i].name;
cout << "请输入第" << i+1 << "个学生的三门课成绩:";
cin >> students[i].score1 >> students[i].score2 >> students[i].score3;
// 计算平均成绩
students[i].avgScore = (students[i].score1 + students[i].score2 + students[i].score3) / 3;
}
// 将学生信息以二进制方式保存到文件中
ofstream out("students.dat", ios::binary);
if (!out) {
cerr << "无法打开文件!" << endl;
return 1;
}
out.write(reinterpret_cast<char*>(students), sizeof(students));
out.close();
return 0;
}
```
以上代码中,我们定义了一个`Student`结构体,其中包括学生的学号、姓名、三门课成绩和平均成绩。我们首先从键盘读入五个学生的信息,并计算平均成绩。然后,我们使用`ofstream`类以二进制方式打开一个名为`students.dat`的文件,并将学生信息数组写入该文件中。最后,我们关闭文件并退出程序。
阅读全文