C++程序设计实验报告(八十)---第十六周任务二
来源:互联网 发布:淘宝网水兵舞裙子 编辑:程序博客网 时间:2024/06/05 19:03
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2012, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:student文件读入
* 作 者: 刘镇
* 完成日期: 2012 年 06 月 03 日
* 版 本 号: 1.076
* 对任务及求解方法的描述部分
* 输入描述: ......
* 问题描述: ......
* 程序输出: ......
* 程序头部的注释结束
*/
#include<iostream>#include<string>#include<fstream>using namespace std;class Student{public:double get_project(char pro);double all_score();double ave_score();void read_score(ifstream &in);void write_score(ofstream &out);private:string name;double score_cpp;double score_math;double score_English;double score_all;double score_average;};double Student::get_project(char pro){switch(pro){case 'c':return this->score_cpp;break;case 'm':return this->score_math;break;case 'E':return this->score_English;break;case 'A':return this->all_score();break;default:return this->ave_score();break;}}double Student::all_score(){this->score_all = this->score_cpp + this->score_math + this->score_English;return this->score_all;}double Student::ave_score(){this->score_average = (this->score_cpp + this->score_math + this->score_English) / 3;return this->score_average;}void Student::read_score(ifstream &in){in >> this->name >> this->score_cpp >> this->score_math >> this->score_English;}void Student::write_score(ofstream &out){out << this->name << '\t' << this->score_cpp << '\t' << this->score_math << '\t' << this->score_English << endl;}void readfile(Student * s, int num){ifstream infile("score.dat",ios::in);if(!infile){cerr << "open error!" << endl;exit(1);}for(int i = 0; i < 100; ++i){s[i].read_score(infile);}infile.close();}void writefile(Student * s, int num){ofstream outfile("odered_score.dat",ios::out);if(!outfile){cerr << "open error!" << endl;exit(1);}for(int i = 0; i < 100; ++i){s[i].write_score(outfile);}outfile.close();}double highest_score(Student * s, int num, char p){double highest_score = 0;for(int i = 0; i < num; ++i){if(s[i].get_project(p) >= highest_score){highest_score = s[i].get_project(p);}else{continue;}}return highest_score;}void bubble_sort(Student * s, int num){Student t;for(int j = 0; j < num-1; j++){for(int i = 0; i < num-1-j; ++i){if(s[i].all_score() <= s[i+1].all_score()){t = s[i];s[i] = s[i+1];s[i+1] = t;}}}}int main(){Student stu[100];readfile(stu, 100);cout << "各学科、平均分及总分最高分:" << endl;cout << "c++:" << highest_score(stu, 100, 'c') << endl;cout << "Math: " << highest_score(stu, 100, 'm') << endl;cout << "English: " << highest_score(stu, 100, 'E') << endl;cout << "All score: " << highest_score(stu, 100, 'A') << endl;cout << "Average score: " << highest_score(stu, 100, 'a') << endl;bubble_sort(stu, 100);writefile(stu, 100);system("pause");return 0;}
运行结果:
心动感言:
觉得这次设计挺不错的,看过另外一些解法,还是觉得类应该是具有普遍性,而不应该具有专一性。
- C++程序设计实验报告(八十)---第十六周任务二
- 第十六周实验报告(任务二)
- C++程序设计实验报告(七十九)---第十六周任务一
- C++程序设计实验报告(八十一)---第十六周任务三
- C++程序设计实验报告(八十三) --- 第十六周任务四
- 第十六周实验报告(任务二)【学生成绩】
- 第十六周实验报告二
- 第十六周实验报告二
- 第十六周实验报告(任务一)
- 第十六周实验报告任务3--电子词典
- 第十六周实验报告任务1
- 第十六周实验报告任务2
- C++程序设计实验报告(三十二)---第三周任务二
- C++程序设计实验报告(四十)---第五周任务二
- C++程序设计实验报告(四十四)---第六周任务二
- C++程序设计实验报告(四十九)---第七周任务二
- C++程序设计实验报告(五十四)---第八周任务二
- C++程序设计实验报告(六十六)---第十二周任务二
- GL_PROJECTION和GL_MODELVIEW的作用
- 汇编除法转换
- Facebook股价之“殇”
- linux 块I/O层 自学报告
- SVN权限详解
- C++程序设计实验报告(八十)---第十六周任务二
- ACE入门---很好的文章
- 【Andorid应用开发】-(3)性能优化设计
- ByteArrayOutputStream&ByteArrayInputStream
- Uboot命令使用
- SVN简介
- 老天保佑
- serialize datatable to json
- 在Ubuntu中安装工具Autotools