16周实验报告任务 2
来源:互联网 发布:尤里的复仇mac版 编辑:程序博客网 时间:2024/05/23 19:11
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:学生成绩排序
* 作 者:陶锋
* 完成日期:2012 年 06 月 07 日
* 版 本 号: V1.0
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
#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; }
- 第16周实验报告任务2
- 16周实验报告任务 2
- 第16周实验报告任务1
- 16周实验报告 任务 1
- 第16周实验报告任务3
- 16周实验报告 任务 3
- 16周实验报告 任务4
- 第二周实验报告(任务2)
- 《第三周实验报告任务2》
- 第二周实验报告任务2
- 第三周实验报告(任务2)
- 第三周实验报告 任务2
- 第三周实验报告(任务2)
- 第4周实验报告任务2
- 第5周实验报告任务2
- 《第五周实验报告任务2》
- 第五周实验报告(任务2)
- 第五周实验报告 任务2
- container_of 用法解析
- 开发移动应用的7个致命错误
- CListCtrl的LVCOLUMN简单使用笔记
- linux 环境变量问题
- 求1+2+…+n,要求不能使用乘除法、for、while、if、else...
- 16周实验报告任务 2
- Android设置程序最小运行的堆内存
- 添加路由
- 菜鸟学java-----程序员不归路
- Android中的各种布局
- GPIO设备虚拟文件结点的创建
- mogodb高级查询选项
- Android 中使用MediaRecorder进行录像详解(视频录制) (转)
- typedef VS #define (const)用法