十六周任务二:成绩排序,输出最高成绩

来源:互联网 发布:残疾人就业歧视数据 编辑:程序博客网 时间:2024/05/18 03:01
/* (程序头部注释开始)* 程序的版权和版本声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称:                              * 作    者:         田庆                     * 完成日期:   2012      年  6     月  5      日* 版 本 号:          * 对任务及求解方法的描述部分* 输入描述: 定义学生类算出高数,c++,英语成绩和总成绩* 问题描述: 在屏幕上显示各科及总分的最高分,排序后的成绩单(包括总分)保存到文件odered_score.dat* 程序输出: * 程序头部的注释结束*/#include <fstream>  #include<iostream>  #include<string>  using namespace std;    //定义学生类  class Student  {  public:      Student(){};      Student(string nam, double c, double m, double e):name(nam),cpp(c),math(m),English(e){total=c+m+e;}      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;}  private:      string name;      double cpp;      double math;      double English;      double total;  };    void Student::set_value(string nam, double c, double m, double e)  {      name=nam;      cpp=c;      math=m;      English=e;      total=c+m+e;  }    int main( )  {      Student stud[100],t; //stud[100]为保存数据的对象数组      string sname;      double scpp, smath, sEnglish;      int i,j;        //将文件中的数据读入到对象数组中      ifstream infile("score.dat",ios::in);  //以输入的方式打开文件      if(!infile)       //测试是否成功打开      {          cerr<<"open error!"<<endl;          exit(1);      }      for(i=0;i<100;i++)      {          infile>>sname>>scpp>>smath>>sEnglish;          stud[i].set_value(sname, scpp, smath, sEnglish);      }      infile.close();        //求各科最高分及总分最高分      Student max_stud("nobody",0,0,0);  //max_stud是一个不存在的学生,存储最高分      for(i=0;i<100;i++)      {          if(stud[i].get_cpp()>max_stud.get_cpp()) max_stud.set_cpp(stud[i].get_cpp());          if(stud[i].get_math()>max_stud.get_math()) max_stud.set_math(stud[i].get_math());          if(stud[i].get_English()>max_stud.get_English()) max_stud.set_English(stud[i].get_English());          if(stud[i].get_total()>max_stud.get_total()) max_stud.set_total(stud[i].get_total());      }        //按总分排序      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<<"C++最高分为: "<<max_stud.get_cpp()<<endl;      cout<<"高等数学最高分为: "<<max_stud.get_math()<<endl;      cout<<"英语最高分为: "<<max_stud.get_English()<<endl;      cout<<"总分最高分为: "<<max_stud.get_total()<<endl;        //将按总分排序后的结果存入文件      cout<<"请到文件odered_score.dat中查看排序后的结果"<<endl;      ofstream outfile("odered_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;  }  

C++最高分为: 100

高等数学最高分为: 100

英语最高分为: 100

总分最高分为: 291

请到文件odered_score.dat中查看排序后的结果

请按任意键继续. .

成绩排名为:

王琦 98 95 98 291
宋宗杰 94 100 92 286
杨阔 90 91 98 279
冼丹 100 89 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 98 83 270
马婧 98 84 87 269
李朋 90 82 97 269
韩明 83 97 88 268
张迪 99 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 87 262
董一伟 93 88 80 261
张佳玮 61 98 96 255
杨梦婕 89 99 67 255
刘紫亮 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 93 251
马佳 60 90 100 250
葛志伟 100 79 71 250
张笑 86 88 76 250
王锐 63 90 96 249
张敏 85 75 89 249
裴培 75 82 91 248
冷云 89 88 71 248
宋媛媛 61 94 92 247
张里响 85 65 96 246
马立 73 90 83 246
何煜中 90 73 82 245
王竞 90 87 67 244
梁雅宁 55 88 100 243
高清 76 83 84 243
吴佳林 96 65 82 243
蔺剑飞 88 75 79 242
唐楠 68 97 77 242
宋航彬 80 71 91 242
马里 73 95 73 241
张龙 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 72 83 237
高路 63 74 98 235
印虹 92 68 75 235
张扬 77 65 93 235
薛淇文 89 71 75 235
于浩 78 84 72 234
刘得意 60 98 75 233
黄京 62 75 96 233
苏明霞 59 79 94 232
张雯 69 70 93 232
孙大伟 65 69 98 232
王欣欣 71 83 78 232
郭倩 69 94 69 232
王悦 79 82 70 231
任盛达 57 86 88 231
杨华鑫 81 81 68 230
贺祺 61 96 72 229
金昕 92 67 69 228
宋静 69 85 73 227
陈世勃 70 92 65 227
王磊 71 78 77 226
方圆 70 79 76 225
汤娜 68 85 71 224
林倩 67 77 80 224
刘京西 67 78 78 223
何佳成 70 75 78 223
兰天 83 66 74 223
杨超 67 73 82 222
周俊升 57 68 96 221
冯佳媛 61 79 81 221
马骁 62 67 90 219
赵媛媛 77 75 66 218
卫青 66 73 77 216
白涛 57 82 75 214
吴玮 69 76 68 213
于莉 55 66 78 199
桂佳 60 73 65 198
徐一菡 85 45 62 192
王欢欢 57 33 66 156

原创粉丝点击