实验目的:保存二进制文件
* 程序头部注释开始
* 程序的版权和版本声明部分
* 烟台大学计算机学院学生
* 文件名称:
* 作
* 完成日期:
* 版本号:
#include <iostream>
#include <string>
#include <fstream>
#include<iomanip>
using namespace std;
class Student
{
private:
string name;
float Cscore;
float Mathscore;
float Englishscore;
float score;
float Aeveralscore;
public:
Student();
Student(string na, float c,float m, float e, float s, float a);
friend void readfile(Student s[]);
friend void writefile(Student s[]);
friend void showfile(Student s[]);
};
Student::Student()
{
name = " ";
Cscore = 0;
Mathscore = 0;
Englishscore = 0;
score = 0;
Aeveralscore = 0;
}
Student::Student(string na, float c,float m, float e, float s, float a)
{
name = na;
Cscore = c;
Mathscore = m;
Englishscore = e;
score = s;
Aeveralscore = a;
}
void readfile(Student s[])
{
ifstream file("score.dat", ios::in);
if(! file)
{
cerr << "open error!" << endl;
exit(1);
}
for(int i = 0; i < 100; i++)
{
file >> s[i].name >> s[i].Cscore >> s[i].Mathscore >> s
[i].Englishscore;
s[i].score = s[i].Cscore + s[i].Mathscore + s[i].Englishscore;
s[i].Aeveralscore = s[i].score / 3;
}
file.close();
}
void writefile(Student s[])
{
ofstream file("binary_score.dat", ios::out|ios::binary);
if(! file)
{
cerr << "open error!" << endl;
exit(1);
}
file << "姓名" << setw(12)<< "C++" << setw(12)<< "高数"<< setw(12)
<< "英语" << setw(12)<< "总成绩" << setw(12)<< "平均成绩" << endl;
for(int i = 0; i < 100; i++)
{
file << s[i].name << setw(12)<< s[i].Cscore << setw(12)<< s
[i].Mathscore << setw(12)<< s[i].Englishscore << setw(12)<< s[i].score
<< setw(12)<< s[i].Aeveralscore << endl;
}
file << "辛召璇" <<'\t' << setw(12)<< "100" << setw(12)<< "100" <<
setw(12)<< "100" << setw(12)<< "300" << setw(12)<< "100" << endl;
file.close();
}
void showfile(Student s[])
{
cout << "姓名" <<'\t' << setw(12)<< "C++" << setw(12)<< "高数" <<
setw(12)<< "英语" << setw(12)<< "总成绩" << setw(12)<< "平均成绩" <<
endl;
for(int i = 0; i < 100; i++)
{
cout << s[i].name <<'\t' << setw(12)<< s[i].Cscore << setw(12)
<< s[i].Mathscore << setw(12)<< s[i].Englishscore << setw(12)<< s
[i].score << setw(12)<< s[i].Aeveralscore << endl;
}
cout << "辛召璇" <<'\t' << setw(12)<< "100" << setw(12)<< "100" <<
setw(12)<< "100" << setw(12)<< "300" << setw(12)<< "100" << endl;
}
int main()
{
Student st[100];
readfile(st);
writefile(st);
showfile(st);
system("PAUSE");
return 0;
}
截图: