MOOC清华《面向对象程序设计》第3章编程题第2题:重载下标运算符以统计分段人数
来源:互联网 发布:淘宝卖家如何退出村淘 编辑:程序博客网 时间:2024/06/04 18:39
为了统计全年级学生考试成绩的分数段分布情况,即1~10、11~20、21~30、...、91~100等各个分数段的学生人数,拟设计实现一个重载了下标运算符的类,该类对象使用元素为考试成绩的数组和数组元素个数来初始化,当使用0~9的整数下标k来访问该对象时,返回 第k分数段(10*k + 1 <= e <= 10*k + 10)中的元素个数。(本题不计入总成绩) 提交要求:请将各个源文件(*.h, *.cpp)合并打印到一个PDF文件上传,要求各文件首行用注释说明文件名称。建议源代码中加上必要的注释,以便阅读。
//main.cpp#include <iostream>#include "Test.h"using namespace std;int main() {int array[50] = {98,99,56,53,78, 89,87,86,43,24, 25,67,77,78,79, 65,53,87,24,95, 79,76,77,79,80, 88,87,86,80,87,96,96,100,76,76, 90,98,97,99,92,87,89,91,93,95, 98,86,43,7,32};Test obj(array, 50);cout << "obj[9] = " << obj[9] << endl << endl;return 0;}
//Test.h#ifndef Test_h#define Test_hclass Test{private:int N;int array[1000];int temp[10];int count;public:Test(int* src, int N);~Test();int& operator[] (const int n);};#endif
//Test.cpp#include <iostream>#include "Test.h"using namespace std;Test::Test(int* src, int n) {N = n;for(int i = 0; i < N; i++)array[i] = src[i];}Test::~Test(){cout << "析构函数已调用!" << endl;}int& Test::operator[] (const int k){void QuickSort(int* array, int start, int end); void OutputOfArray(int* array, int n); QuickSort(array, 0, N);OutputOfArray(array, N);int tmp_1 = 10 * k + 1, tmp_2 = 10 * k + 10;count = 0;for(int i = 0; i < N; i++){if((array[i] <= tmp_2)&&(array[i] >= tmp_1))count++;if(array[i] < tmp_1) break;}return count;}void QuickSort(int* array, int start, int end) { if(start >= end - 1) return; int left = start, right = end; int pivot = array[left]; int temp = 0.0; for(int i = left + 1; i < right; ) { if(array[i] > array[left]) { temp = array[left]; array[left] = array[i]; array[i] = temp; left++; i++; } else { temp = array[i]; for(int j = i; j < right; j++) array[j] = array[j + 1]; array[right - 1] = temp; right--; } } array[left] = pivot; QuickSort(array, start, left); QuickSort(array, left + 1, end); } void OutputOfArray(int* array, int n) { for(int i = 0; i < n; i++) cout << array[i] << '\t'; cout << endl; }
测试结果:
阅读全文
0 0
- MOOC清华《面向对象程序设计》第3章编程题第2题:重载下标运算符以统计分段人数
- MOOC清华《面向对象程序设计》第3章:下标运算符重载实验
- MOOC清华《面向对象程序设计》第3章编程题第1题:重载函数运算符以封装排序算法
- MOOC清华《面向对象程序设计》第3章:赋值运算符重载实验
- MOOC清华《面向对象程序设计》第3章:流运算符重载实验
- MOOC清华《面向对象程序设计》第3章:函数运算符重载实验
- MOOC清华《面向对象程序设计》第3章:前缀/后缀运算符重载实验
- MOOC清华《面向对象程序设计》第2章:new/delete运算符实验
- MOOC清华《程序设计基础》期末考试第3题:统计高考录取人数与录取最低分
- MOOC清华《面向对象程序设计》第4章编程题:按照调试级别输出调试信息
- MOOC清华《面向对象程序设计》第2章:函数重载实验
- MOOC清华《VC++面向对象与可视化程序设计》第3章:编程作业-艺术字的显示
- MOOC清华《面向对象程序设计》第7章:统计考试及格率v5.3(采用函数对象)
- MOOC清华《面向对象程序设计》第2章:类型推导操作符decltype实验
- MOOC清华《面向对象程序设计》第9章:听课感想
- MOOC清华《面向对象程序设计》第7章:统计考试及格率v5.2(用文件输入及格线)
- MOOC清华《VC++面向对象与可视化程序设计》第2章:编程作业-渐变图形的绘制(“万花筒”程序)
- MOOC清华《面向对象程序设计》第3章:对象组合实验
- JavaWeb简介
- spring,mybatis事务管理配置与@Transactional注解使用[转]
- hdu6154 CaoHaha's staff CCPC网赛1005 找规律+构造
- Python管理端口的操作
- centos 6.5下 安装R语言R-3.3.2失败?
- MOOC清华《面向对象程序设计》第3章编程题第2题:重载下标运算符以统计分段人数
- 线程基础
- Jobdu1201 二叉搜索(排序)树
- C++学习11:向量vector
- poj-2046-循环子串问题
- Linux Socket编程
- Linux下进程间通信概述
- 在着手准备做一个开发项目(web前端),需要做哪些准备?
- 计算机中的定点数和浮点数