C++プログラミングレポート(17-1)


/*プログラムヘッダコメント開始*プログラムの著作権とバージョン宣言部分*Copyright(c)2011、煙台大学コンピュータ学院学生*All rights reserved.*ファイル名:*作成者:楊壇*完成日:2011年06月13日*バージョン番号:vc 2008*タスクおよび解法の説明部分*入力説明:*質問説明:*プログラム出力:*プログラムヘッダのコメント終了*/
#include <iostream>
#include<string>
#include <fstream>
using namespace std;
class student
{
public:
	student(){}
	student(string Nam,double C_s,double Math_s,double English_s ,double s)
	{
		Name=Nam;
		C_score=C_s;
        Math_score=Math_s;
        English_score=English_s;
		score=s;
	}
	
	double Score();//   
    void set_show(string Nam,double C_s,double Math_s,double English_s ); 
	string get_Name(){return Name;}  
    double get_C(){return C_score;}  
    double get_Math(){return Math_score;}  
    double get_English(){return English_score;}  
    double get_score(){return score;}  
    void set_C(double C_s){C_score=C_s;}  
    void set_Math(double Math_s){Math_score=Math_s;}  
    void set_English(double English_s){English_score=English_s;}  
	void set_score(double s){score=s;}  

private:
	string Name;//  
	double C_score;//C++  
	double Math_score;//    
	double English_score;//    
	double score;//   
};
double student::Score ()
{
	score = Math_score + C_score + English_score;
	return score;
}
void student::set_show(string Nam,double C_s,double Math_s,double English_s)  
{  
	Name=Nam;
	C_score=C_s;
    Math_score=Math_s;
    English_score=English_s;
	Score();
}  
int main()
{
	student stud[100];
    string name;  
    double c, math, english,score;  
	fstream infile("score.dat",ios::in);//    
	if(!infile)
	{
	cerr<<"open error!"<<endl;
	abort();
	}
	for(int i=0;i<100;i++)
	{
		infile>>name>>c>>math>>english;
		//infile.read((char*)&stud[i],sizeof(stud[i]));

		stud[i].set_show(name, c, math, english); 
	}
	infile.close();
	student max_stud(" ",0,0,0,0);
	for(int i=0;i<100;i++)
	{
		if(max_stud.get_C()<stud[i].get_C())
			max_stud.set_C(stud[i].get_C());
		if(max_stud.get_English()<stud[i].get_English ())
			max_stud.set_English(stud[i].get_English ());
		if(max_stud.get_Math()<stud[i].get_Math ())
			max_stud.set_Math(stud[i].get_Math ());
		if(max_stud.get_score()<stud[i].get_score())
			max_stud.set_score(stud[i].get_score());

	}
	cout<<"C++   :"<<max_stud.get_C()<<endl;
	cout<<"     :"<<max_stud.get_English()<<endl;
	cout<<"     :"<<max_stud.get_Math()<<endl;
	cout<<"     :"<<max_stud.get_score()<<endl;  
    student t;
	for(int j=0;j<100-2;j++)   
    {  
        for(int i=0;i<100-j-1;i++)     
            if (stud[i].get_score()<stud[i+1].get_score())   
            {  
                t=stud[i];   
                stud[i]=stud[i+1];  
                stud[i+1]=t;  
            }  
    }  
 ofstream outfile("binary_score.dat",ios::out);  //     
    if(!outfile)      
    {  
        cerr<<"open error!"<<endl;  
        exit(1);  
    }  
    for(int i=0;i<100;i++)  
    {  
        outfile<<stud[i].get_Name()<<" ";  
        outfile<<stud[i].get_C()<<"  ";  
        outfile<<stud[i].get_Math()<<"  ";  
        outfile<<stud[i].get_English()<<"  ";  
        outfile<<stud[i].get_score()<<endl;  
    }  
	system("pause");
	return 0;
}

実行結果:
C++最高点:100英语最高点:100高数最高点:100最高総成绩:291任意のキーを押して続けてください.
scoreファイル:
劉擅60 98 75王鋭63 90 96何煜中90 73 82王磊87 86 92馮松89 98 83鞖培75 82馬骁62 67 90馬婧98 84 84周俊昇57 68 96賀祺61 96 72李桐93 83 86高路63 74 98馮佳媛61 79 81枚迪99 88 80枚里響85 65 96王瑞麒89 83 91徐金竹75 89 73趙媛媛7775 66宋宗傑94 100 92張佳玮61 98 96王姝70 91 90宋媛61 94 92于莉55 66 78于浩78 84 72王競90 87崔賛91 67 67 67 67宋静69 85 85 85王磊71 77方円70 79 76李朋90 82 97馬佳60 100張龍62 100 78マリ73 95韓明83 97馬立73 9083呉清正89,97,85印虹92,68,75田苗75,91,71衛青66,77冷雲89,88,71葛志偉100,79,71範振光98,87王芳71,97,99楊超67,82楊夢婕89,99梁雅寧55,88王琦98,95呉玮69,68楊広90,98賈偉林63,90,86劉亜新77,95金昕92,6769董一伟93 88 80汤娜68 85 71周恒87 82 69张笑86 88 76文静93 88 85杨华鑫81 81 68苏明霞59 94黄京62 75 96佟欣60 79 98张雯69 70 93刘京西67 78徐嘉琦90 75 87魏佳100 94 80高挙81 99辺里56 94 94何佳成70 75 78赵旭洋87 91孫大偉65,6998魯継森84,79,75白涛57,82,75蔺剣飛88,75,79蘭天83,6674王悦79,82,70陳世勃70,9265張昊94,83,96ハイビジョン76,84王欣欣71,83,78王歓57,66葉丹87,80 96李悦63,79郭倩69劉盈99,72,93楊潔96,87徐一菡85,4562王モンゴル67,9789張敏85,7589桂佳60,7365林倩67,7780任盛達57,8688呉佳林96,6582黄金龍85,9078陳美珠82,82,83冼丹100 89唐楠68,9777張揚77,6593宋航彬80,71薛淇文89,75劉紫亮72,84 binary_score.datファイル:
王琦98 95 98 291宋宗傑94 100 92 286楊広90 91 98 279冼丹100 89 278範振光98 87 89 274魏佳100 94 80 274張昊94 83 96 273趙旭洋87 91 94 272呉清正89 97 85 271高挙81 99 91 271馮松89 83 83 270馬婧98 8487 269李朋90 82 97269韩明83 97 88 268张迪99 88 88 80 267王芳71 97 99 267文静93 88 85 266王磊87 86 92 265刘盈99 72 93 264王瑞麒89 83 91 263叶丹87 80 96 263李桐93 83 86 262杨洁96 79 262董一伟93 88 261张佳玮61 98 255杨梦婕89255劉紫亮72 98 84 254劉亜新77 81 95 253王モン67 97 89 253黄金龍85 90 78 253徐嘉琦90 75 87 252王姝70 91 90 251崔賛91 67 67 93 251馬佳60 90 250葛志偉100 79 71 250枚笑86 88 76 250王鋭63 90 96 249張敏85 75 89 249ペペペペペ75 8291 248冷云89 88,881,248宋媛61,9492,247张里响85,6596,246马立73,9083,246何煜中90,73,82,245王竞90,8767,244梁雅宁55,88100,243高清76,3884,243呉佳林96,6582,243蔺剣飞88,779,242唐楠68,9777,242宋航彬80,71,242马里73 95 73,731张龙62,100,78,240賈伟林63,90,86,239李悦63,79,97,239周恒87,82,69,238鲁継森84,79,75,238徐金竹75,89,73,237田苗75,91,71,237佟欣60,79,98,237辺里56,94,87,237陈美珠82,83,237高路63,7498,235印虹92,68,75235张扬77 65 93 235薛淇文89 71 235于浩78 84 72 234刘擅60 98 75 233黄京62 75 233苏明霞59 79 94 232张雯69 70 93 232孙大伟65 69 98 232王欣欣71 83 78 232郭倩69 232王悦79 82 82 82 231任盛达57 86 88 88 231杨华鑫8168 230賀祺61 96 72 229金昕92 67,26133; 22863;宋静69,8573,227陳世勃70,9265,2227王磊71,77226方円70,7976,225湯娜68,8571 224林倩67,7780 224劉京西67,78,223何佳成70,78223蘭天83,6674,223楊超67,7382,222週俊昇57 68 96 221馮佳媛61 79 81 221馬骁62 6790 219趙媛77 75 66 218衛青66 73 77 216白涛57 82 75214呉玮69 7668 213莉55 66 78 199桂佳60 73 65 198徐一菡85 45 62 192王歓歓57 33 66 156