第十六周实验报告二
来源:互联网 发布:unity3d跑酷 编辑:程序博客网 时间:2024/05/23 12:42
* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2012, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:学生成绩排序。
* 程序的版权和版本声明部分
* Copyright (c) 2012, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:学生成绩排序。
* 作 者: 晁阳
* 完成日期: 2012 年 06 月 05 日
* 版 本 号: t1.0
* 对任务及求解方法的描述部分
* 输入描述:学生成绩排序
* 问题描述: 文件score。dat中保存的是100名学生的姓名和各科成绩
* 程序头部的注释结束
上机感言: 说是文件的输入输出流其实大部分还是类的运用
#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<<"请到文件ordered_salary.txt中查看排序后的结果"<<endl;ofstream outfile("ordered_salary.txt",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++程序设计实验报告(八十)---第十六周任务二
- 第十六周实验报告(任务二)【学生成绩】
- 第十六周实验报告2
- 第十六周实验报告1
- 第十六周实验报告3
- 第十六周实验报告1
- 第十六周实验报告2
- 第十六周实验报告2
- 第十六周实验报告1
- 第十六周实验报告2
- 第十六周实验报告2.0
- 第十六周实验报告3
- 第十六周实验报告1
- 第十六周实验报告3
- 经典算法研究:模式匹配(子串匹配)之 KMP 算法(C语言实现版)
- 五大数据库常用SQL比较(三)
- 弹出新网页在新的对话框中打开
- VC6.0 CMSHFlexGrid
- 五大数据库常用SQL比较(四)
- 第十六周实验报告二
- 五大数据库常用SQL比较(五)
- KETTLE 并行任务设置
- 隐藏省略文字特效
- 五大数据库常用SQL比较(六)
- c#产生指定区间的随机数
- HQL查询语句
- 子数组最大和
- 质量之匙:持续集成工具与实践——专访Thoughtworks公司Cruise产品经理 Jez Humble