17.1 學生成績二進制處理

* 程序的版權和版本聲明部分
* Copyright (c) 2011, 煙臺大學計算機學院學生
* All rights reserved.
* 文件名稱:     第 17 周 任務 1                       
* 作    者:        楊森                   
* 完成日期:     2012    年  6     月   12     日
* 版 本 號:     V1.0

 

源程序:

#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;  
}  


運行結果:

 

小感:本學期最好一次提交程序作業了呢···

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章