第17周

#include <iostream>   
#include <string>   
#include <fstream>      
using namespace std;  
class Student  
{  
private:  
    string name;  
    float C;  
    float math;  
    float english;  
    float addition;  
    float average;  
public:  
    Student();  
    Student(string na, float c,float m, float e, float add, float a);  
    friend void readfile(Student s[]);  
    friend void writefile(Student s[]);  
    friend void showfile(Student s[]);  
};  
  
Student::Student()  
{  
    name = " ";  
    C = 0;  
    math = 0;  
    english = 0;  
    addition = 0;  
    average = 0;  
}  
Student::Student(string na, float c,float m, float e, float add, float a)  
{  
    name = na;  
    C = c;  
    math = m;  
    english = e;  
    addition = add;  
    average = 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].C >> s[i].math >> s[i].english;  
		s[i].addition = s[i].C + s[i].math + s[i].english;  
		s[i].average = s[i].addition / 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 << "姓名" << '\t' << "C++" << '\t' << "高数"<< '\t' << "英语" << '\t' << "总成绩" << '\t' << "平均成绩" << endl;  
    for(int i = 0; i < 100; i++)  
    {  
		file << s[i].name << '\t' << s[i].C << '\t' << s[i].math << '\t' << s[i].english << '\t' << s[i].addition << '\t' << s[i].average << endl;  
    }  
    file << "郭广建" << '\t' << "100" << '\t' << "100" << '\t' << "100" << '\t' << "300" << '\t' << "100" << endl;  
    file.close();  
}  
  
void showfile(Student s[])  
{  
    cout << "姓名" << '\t' << "C++" << '\t' << "高数" << '\t' << "英语" << '\t' << "总成绩" << '\t' << "平均成绩" << endl;  
    for(int i = 0; i < 100; i++)  
    {  
		cout << s[i].name << '\t' << s[i].C << '\t' << s[i].math << '\t' << s[i].english << '\t' << s[i].addition << '\t' << s[i].average << endl;  
    }  
    cout << "郭广建" << '\t' << "100" << '\t' << "100" << '\t' << "100" << '\t' << "300" << '\t' << "100" << endl;  
      
}  
  
int main()  
{  
    Student st[100];  
    readfile(st);  
    writefile(st);  
    showfile(st);  
    system("PAUSE");  
    return 0;  
}  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值