第十六周 任务二
来源:互联网 发布:黄庭坚书法知乎 编辑:程序博客网 时间:2024/05/22 17:07
#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 Student high_C_plus_plus_score(Student s[]);friend Student high_Math_score(Student s[]) ;friend Student high_English_score(Student s[]);friend Student 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); s2=high_C_plus_plus_score(s1);cout<<"C++的最高分为:"<<s2<<endl;s2=high_Math_score(s1);cout<<"高数的最高分为:"<<s2<<'\n' ;s2=high_English_score(s1);cout<<"英语的最高分为:"<<s2<<'\n' ;s2=high_All_score(s1);cout<<"总分的最高分为:"<<s2<<'\n' ;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;}Student 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);}}return student;}Student 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);}}return student;}Student 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);}}return student;}Student 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);}}return student;}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 该同学名叫:葛志伟
高数的最高分为: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
请按任意键继续. . .
- 第十六周 任务二
- 第十六周 任务二
- 第十六周任务二
- 第十六周任务(二)
- 第十六周任务(二)
- 第十六周实验报告(任务二)
- C++程序设计实验报告(八十)---第十六周任务二
- 第十六周C++【任务二】学生成绩排序
- 第十六周实验报告(任务二)【学生成绩】
- C++第十六周【任务二】 学生成绩排序
- 第十六周任务二(学生分数文件处理)
- 第十六周 任务一
- 第十六周 任务三
- 第十六周 任务一
- 第十六周 任务一
- 第十六周 任务三
- 第十六周 任务四
- 第十六周任务1
- 【cocos2d书籍翻译-更新结束】《Learn iPhone and iPad Cocos2D Game Development》
- 第十六周实验报告3
- MyBatis简介与配置MyBatis+Spring+MySql
- adb push 用法
- 使用VuGen开发Vuser脚本——lr掌握过程之3
- 第十六周 任务二
- UITextView控件的用法详解
- Cache应用
- ios线程监听模式
- UITextView实现自动隐藏键盘,自动隐藏键盘
- Couldn't register xxx.xxx.xxx with the bootstrap server
- 关于8583报文
- 小波分析基础
- P81Demo2 ASSUME DS:C1