MOOC清华《面向对象程序设计》第7章:统计考试及格率v5.2(用文件输入及格线)
2017-09-13 21:16
288 查看
也是只有main函数修改,其余不动。
passScore.txt文件的内容:
//main.cpp #include <iostream> #include <cstdlib> #include <fstream> #include "ArrayCollection.h" #include "LinkedListIterator.h" #include "LinkedListCollection.h" #include "Score.h" using namespace std; template <class _Iterator> bool isPass(const _Iterator& p){ float pass1, pass2, pass3; ifstream is("passScore.txt"); is >> pass1 >> pass2 >> pass3; return (p->value[0] >= pass1 && p->value[1] >= pass2 && p->value[2] >= pass3); }//注意:这个isPass的实现是有缺陷的,只适合于Score类型 template <class _iterator> void analyze(_iterator begin, _iterator end, bool (*isPass)(const _iterator&)){ int passed = 0, count = 0; for(_iterator p = begin; p != end; p++){ if(isPass(p)) passed++; count++; } cout << "passing rate = " << (float)passed / count << endl; } int main(int argc, char** argv) { Score sarray[3]; sarray[0] = Score(60, 60, 60); sarray[1] = Score(70, 70, 70); sarray[2] = Score(50, 80, 80); ArrayCollection<Score> collection3(3, sarray); LinkedListCollection<Score> collection4; for(int i = 0; i < 3; i++) collection4.addFirst(sarray[i]); analyze(sarray, sarray + 3, isPass<Score*>); analyze(collection3.begin(), collection3.end(), isPass<Score*>); analyze(collection4.begin(), collection4.end(), isPass<LinkedListIterator<Score>>); system("PAUSE"); return EXIT_SUCCESS; }
passScore.txt文件的内容:
70 60 60
相关文章推荐
- MOOC清华《面向对象程序设计》第7章:统计考试及格率v5.1(“记住”及格分数线)
- MOOC清华《面向对象程序设计》第7章:统计考试及格率v5.4(单科及格与总分及格)
- MOOC清华《面向对象程序设计》第7章:统计考试及格率v5.0(某科及格线不是60分)
- MOOC清华《面向对象程序设计》第7章:统计考试及格率v4.0(定义抽象结构)
- MOOC清华《面向对象程序设计》第7章:统计考试及格率v1.0(采用迭代器模式)
- MOOC清华《面向对象程序设计》第7章:统计考试及格率v5.3(采用函数对象)
- MOOC清华《面向对象程序设计》第7章:统计考试及格率v3.0(自定义数据类型)
- MOOC清华《程序设计基础》第7章:统计活跃用户数
- MOOC清华《面向对象程序设计》第1章:源文件的拆分与多文件的编译运行
- MOOC清华《程序设计基础》第7章:统计在线时长
- MOOC清华《面向对象程序设计》第3章编程题第2题:重载下标运算符以统计分段人数
- MOOC清华《程序设计基础》第7章:读文件操作
- MOOC清华《面向对象程序设计》第7章:负载监视器的设计v2.0(采用基于模板的策略模式)
- MOOC清华《面向对象程序设计》第3章:下标运算符重载实验
- MOOC清华《面向对象程序设计》第3章:移动构造函数实验
- 输入文件路径,统计文件行数
- 编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”、“及格”、“中”、“良”、“优”的结论。
- MOOC清华《面向对象程序设计》第3章:流运算符重载实验
- 听翁恺老师mooc笔记(15)--文件的输入与输出
- 输入N个学生的信息(包括:学号,姓名,5科成绩,总分),统计所有学生的总分,存入二进制文件stu_sc.dat中。然后读取该文件,查找总分最高的学生,并输出该生的所有信息。