16周任务2

/* (程序头部注释开始) * 程序的版权和版本声明部分 * 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;  
}  

 

感言:老师,这周的作业难还多,编的睁不开眼了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值