#include<iostream>
#include <fstream>
using namespace std;
class Student
{public:
Student(void){}
Student(char nam[20], double cs, double mas, double ens, double all, double avs):cscore(cs), mathscore(mas), englishscore(ens), allscore(all), averagescore(avs){strcpy(name,nam);}
void display();
friend void cin_score(Student stud[]);
friend void out_score(Student stud[]);
private:
char name[20];
double cscore;
double mathscore;
double englishscore;
double allscore;
double averagescore;
};
void Student::display()
{
cout << name << '\t' << cscore << '\t' << mathscore << '\t' << englishscore << '\t' << allscore << '\t' << averagescore << endl;
}
void cin_score(Student stud[])
{
ifstream infile("score.dat",ios::in);
if(!infile)
{ cerr<<"open score.dat error!"<<endl;
abort( );
}
for(int i = 0; i < 101; i++)
{
if(i == 100)
{
strcpy(stud[i].name, "杨建和");
stud[i].cscore = 100;
stud[i].mathscore = 100;
stud[i].englishscore = 100;
}
else
{
infile >> stud[i].name >> stud[i].cscore >> stud[i].mathscore >> stud[i].englishscore;
}
stud[i].allscore = stud[i].cscore + stud[i].mathscore + stud[i].englishscore;
stud[i].averagescore = stud[i].allscore / 3;
}
infile.close( );
}
void out_score(Student stud[])
{
ofstream outfile("binary_score.dat",ios::binary);
if(!outfile)
{ cerr<<"open binary_score.dat error!"<<endl;
abort( );
}
for(int i = 0; i < 101; ++ i)
{
outfile.write((char *) &stud[i], sizeof(stud[i]));
stud[i].display();
}
outfile.close( );
}
int main( )
{
Student stud[101];
cin_score(stud);
out_score(stud);
system("pause");
return 0;
}