第十六周 任务三

来源:互联网 发布:javascript do方法 编辑:程序博客网 时间:2024/05/22 04:31
#include<iostream>    #include<fstream> #include<string>#include<iomanip>using namespace std; class Student  {  public:  Student();Student(string name,int C_plus_plus,int Math,int English,int All_score,double Average);void set_name(string name);void set_C_plus_plus(int C_plus_plus);void set_Math(int Math);void set_English(int English);void set_All_score(int All_score);void set_Average(double Average);string get_name();int get_C_plus_plus();int get_Math();int get_English();int get_All_score();double get_Average();friend void high_C_plus_plus_score(Student  s[]);friend void high_Math_score(Student  s[]) ;friend void high_English_score(Student  s[]);friend void high_All_score(Student  s[]);friend void Descending_order(Student  s[]);//排序,降序;friend void All_score(Student  s[]);friend void Average_score(Student  s[]);    friend ostream& operator << (ostream&,Student&); //重载流插入运算符“<<”  ;private:             string name;int C_plus_plus;int Math;int English;int All_score;double Average;};void input_student(Student  s[]);void ordered_student_dat(Student s[]);int main()  {  Student s1[100],s2;     input_student(s1);//读入100人的原始分数   All_score(s1);Average_score(s1);cout<<"C++的最高分为:";high_C_plus_plus_score(s1);cout<<endl;cout<<"高数的最高分为:";high_Math_score(s1);cout<<endl;cout<<"英语的最高分为:";high_English_score(s1);cout<<endl;cout<<"总分的最高分为:";high_All_score(s1);cout<<endl;Descending_order(s1);ordered_student_dat(s1);cout<<endl;system("PAUSE");      return 0;  }Student::Student(){name="unknow";C_plus_plus=0;Math=0;English=0;All_score=0;Average=0.0;}Student::Student(string name,int C_plus_plus,int Math,int English,int All_score,double Average){this->name=name;this->C_plus_plus=C_plus_plus;this->Math=Math;this->English=English;this->All_score=All_score;this->Average=Average;}void input_student(Student s[])  {      int i=0; string name;int C_plus_plus;int Math;int English;ifstream infile("score.dat",ios::in);if (!infile){cerr<<"open error!"<<endl;exit(1);}for (i=0;i<100;i++){infile>>name;s[i].set_name(name);infile>>C_plus_plus;s[i].set_C_plus_plus(C_plus_plus);infile>>Math;s[i].set_Math(Math);infile>>English;s[i].set_English(English);}infile.close();//cout<<endl;     }void ordered_student_dat(Student s[]){ofstream outfile("ordered_student.dat",ios::out);if(!outfile){cerr<<"open error!"<<endl;exit(1);}for(int i=0;i<100;i++)outfile<<s[i].get_name()<<"\t"<<s[i].get_C_plus_plus()<<"\t"<<s[i].get_Math()<<"\t"<<s[i].get_English()<<"\t"<<s[i].get_All_score()<<"\t"<<setiosflags(ios::fixed)<<setprecision(2)<<s[i].get_Average()<<'\n';outfile.close();return ;} void Student::set_name(string name){this->name=name;}void Student::set_C_plus_plus(int C_plus_plus){this->C_plus_plus=C_plus_plus;}void Student::set_Math(int Math){this->Math=Math;}void Student::set_English(int English){this->English=English;}void Student::set_All_score(int All_score){this->All_score=All_score;}void Student::set_Average(double Average){this->Average=Average;}string Student::get_name(){return name;}int Student::get_C_plus_plus(){return C_plus_plus;}int Student::get_Math(){return Math;}int Student::get_English(){return English;}int Student::get_All_score(){return All_score;}double Student::get_Average(){return Average;}void high_C_plus_plus_score(Student  s[]) {Student student;int score;int i=0,j=0;string name;score=s[i].get_C_plus_plus();student.set_C_plus_plus(score);for(i=0;i<99;++i){if(student.get_C_plus_plus()<s[i+1].get_C_plus_plus()){score=s[i+1].get_C_plus_plus();student.set_C_plus_plus(score);name=s[i+1].get_name();student.set_name(name);}}cout<<student.get_C_plus_plus()<<'\n';cout<<endl;cout<<"获得C++最高分的这几名同学叫:";for(i=0;i<99;++i){if(student.get_C_plus_plus()==s[i].get_C_plus_plus())cout<<s[i].get_name()<<'\t';}cout<<'\n';return ;}void high_Math_score(Student  s[]) {Student student;int score,i=0;string name;score=s[i].get_Math();student.set_Math(score);for(i=0;i<99;++i){if(student.get_Math()<s[i+1].get_Math()){score=s[i+1].get_Math();student.set_Math(score);name=s[i+1].get_name();student.set_name(name);}}cout<<student.get_Math()<<'\n';cout<<endl;cout<<"获得高数最高分的这几名同学叫:";for(i=0;i<99;++i){if(student.get_Math()==s[i].get_Math())cout<<s[i].get_name()<<'\t';}cout<<'\n';return ;}void high_English_score(Student  s[]) {Student student;int score,i=0;string name;score=s[i+1].get_English();student.set_English(score);for(i=0;i<99;++i){if(student.get_English()<s[i+1].get_English()){score=s[i+1].get_English();student.set_English(score);name=s[i+1].get_name();student.set_name(name);}}cout<<student.get_English()<<'\n';cout<<endl;cout<<"获得英语最高分的这几名同学叫:";for(i=0;i<99;++i){if(student.get_English()==s[i].get_English())cout<<s[i].get_name()<<'\t';}cout<<'\n';return ;}void high_All_score(Student  s[]) {Student student;int score,i=0;string name;score=s[i].get_All_score();student.set_All_score(score);for(i=0;i<99;++i){if(student.get_All_score()<s[i+1].get_All_score()){score=s[i+1].get_All_score();student.set_All_score(score);name=s[i+1].get_name();student.set_name(name);}}cout<<student.get_All_score()<<'\n';cout<<endl;cout<<"获得总分最高分的这几名同学叫:";for(i=0;i<99;++i){if(student.get_All_score()==s[i].get_All_score())cout<<s[i].get_name()<<'\t';}cout<<'\n';return ;}void Descending_order(Student  s[]) {Student student;string name;    int i,j;       for(i=0;i<100-1;i++) {        for(j=0;j<100-i-1;j++) {if(s[j].get_All_score()<s[j+1].get_All_score())              {                  student=s[j+1];                  s[j+1]=s[j];                  s[j]=student;              }  }}for (i=0;i<100;i++)  {  cout<<s[i].get_All_score()<<"  ";  }  }void All_score(Student  s[]) {int score;for(int i=0;i<100;++i){score=s[i].get_C_plus_plus()+s[i].get_Math()+s[i].get_English();s[i].set_All_score(score);}}void Average_score(Student  s[]) {double average;for(int i=0;i<100;++i){average=double(s[i].get_C_plus_plus()+s[i].get_Math()+s[i].get_English())/3;s[i].set_Average(average);}}ostream& operator << (ostream&output,Student&s)  {   if(s.get_C_plus_plus()!=0){output<<s.get_C_plus_plus()<<'\t'<<"该同学名叫:"<<s.get_name()<<endl;  }else if(s.get_Math()!=0){output<<s.get_Math()<<'\t'<<"该同学名叫:"<<s.get_name()<<endl;  }else if(s.get_English()!=0){output<<s.get_English()<<'\t'<<"该同学名叫:"<<s.get_name()<<endl;  }else{output<<s.get_All_score()<<'\t'<<"该同学名叫:"<<s.get_name()<<endl;  }    return output;  } 

 

C++的最高分为:100

获得C++最高分的这几名同学叫:葛志伟     魏佳    冼丹

高数的最高分为:100

获得高数最高分的这几名同学叫:宋宗杰    张龙

英语的最高分为:100

获得英语最高分的这几名同学叫:马佳      梁雅宁

总分的最高分为:291

获得总分最高分的这几名同学叫:王琦

291  286  279  278  274  274  273  272  271  271  270  269  269  268  267  267
266  265  264  263  263  262  262  261  255  255  254  253  253  253  252  251
251  250  250  250  249  249  248  248  247  246  246  245  244  243  243  243
242  242  242  241  240  239  239  238  238  237  237  237  237  237  235  235
235  235  234  233  233  232  232  232  232  232  231  231  230  229  228  227
227  226  225  224  224  223  223  223  222  221  221  219  218  216  214  213
199  198  192  156
请按任意键继续. . .


 

原创粉丝点击