/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 苗影
* 完成日期: 2012 年 6 月 5 日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
#include <fstream>
#include<iostream>
#include<string>
using namespace std;
class Student
{
public:
Student(){};
Student(string nam, double c, double m, double e,double t );
void set_value(string nam,double c,double m,double e);
string get_name(){return name;}
double get_cpp(){ return cpp;}
double get_math(){return math;}
double get_english(){ return english;}
double get_total(){return total;}
void set_cpp(double c){cpp=c;}
void set_math(double m){math=m;}
void set_english(double e){english=e;}
void set_total(double t){total=t;}
friend void max_score(Student );
private:
string name;
double cpp;
double math;
double english;
double total;
};
Student::Student(string nam,double c,double m,double e, double t)
{ name=nam;
cpp=c;
math=m;
english=e;
total=c+m+e;
}
void Student::set_value(string nam,double c,double m,double e)
{
name=nam;
cpp=c;
math=m;
english=e;
total=c+m+e;
}
void max_score(Student s[])
{
Student h("nobody",0,0,0,0);
for(int i=0;i<100;i++)
{
if(s[i].get_cpp() > h.get_cpp())
{
h.set_cpp(s[i].get_cpp());
}
if(s[i].get_math() > h.get_math())
{
h.set_math(s[i].get_math());
}
if(s[i].get_english() > h.get_english())
{
h.set_english(s[i].get_english());
}
if(s[i].get_total() > h.get_total())
{
h.set_total(s[i].get_total());
}
}
cout<<"C++的最高分为:"<<h.get_cpp()<<endl;
cout<<"高数的最高分为:"<<h.get_math()<<endl ;
cout<<"英语的最高分为:"<<h.get_english()<<endl ;
cout<<"总分的最高分为:"<<h.get_total()<<endl;
}
int main( )
{
Student stud[100],t; //stud[100]为保存数据的对象数组
string sname;
double name1, cpp1, math1, english1,total1;
int i;
ifstream infile("score.dat",ios::in);
if(!infile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<100;i++)
{
infile>>name1>>cpp1>>math1>>english1;
stud[i].set_value(name1, cpp1, math1, english1);
}
max_score(stud) ;
infile.close();
for(j=0;j<100-2;j++)
{
for(i=0;i<100-j-1;i++)
if (stud[i].get_total()<stud[i+1].get_total())
{
t=stud[i];
stud[i]=stud[i+1];
stud[i+1]=t;
}
}
cout<<"请到文件ordered_salary.txt中查看排序后的结果"<<endl;
ofstream outfile("ordered_score.dat",ios::out);
if(!outfile)
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<100;i++)
{
outfile<<stud[i].get_name()<<"\t";
outfile<<stud[i].get_cpp()<<"\t";
outfile<<stud[i].get_math()<<"\t";
outfile<<stud[i].get_english()<<"\t";
outfile<<stud[i].get_total()<<endl;
}
outfile.close();
system("pause");
return 0;
}
感言:老师,这周的作业难还多,编的睁不开眼了