- 4
- 0
- 约1.04万字
- 约 21页
- 2018-10-13 发布于重庆
- 举报
C 课程设计基于选择排序方法的类模板设计与实现
C++课程设计--基于选择排序方法的类模板设计与实现
成 绩 评 定 表
学生姓名 吴琼 班级学号
专 业 通信工程 课程设计题目 基于选择排序方法的类模板设计与实现
评
语
组长签字:
成绩
日期20年 月 日
课程设计任务书
学 院 信息科学与工程 专 业 通信工程
学生姓名 吴琼 班级学号
课程设计题目 基于选择排序方法的类模板设计与实现
实践教学要求与任务
建立一维数组数据结构的模板类,使一维数组中的数据元素可以是char, int, float等多种数据类型,并对数组元素实现选择类排序。主要完成如下功能:
(1) 实现数组数据的输入和输出;
(2) 实现简单选择排序功能;
(3) 实现树形选择排序功能;
(4) 实现堆排序功能;
(5) 将每种排序功能作为类的成员函数实现,编写主函数测试上述排序功能。
工作计划与进度安排
第17周:分析题目,查阅课题相关资料,进行类设计、算法设计;
第18周:程序的设计、调试与实现;
第19周:程序测试与分析,撰写课程设计报告,进行答辩验收。
指导教师: 201 年 月 日 专业负责人:
201年 月 日 学院教学副院长:
201年 月 日
摘 要
计算机中存储的数据,初始时没有任何排列规律,根据实际需求,经常要排列成有规律的数据序列也就是将数据序列按关键字升序或降序规律排列。
选择排序是排序法中很经典的算法,选择排序法可以分为简单选择排序、树形选择排序和堆排序。
本文采用C++语言实现了选择排序功能,设计了模板类,实现了int型float型和char型数组的排序,设计了简单选择排序、树形选择排序和堆排序的三个函数体,采用Visual C++ 6.0的控制台工程和MFC工程分别实现了各类型数组的排序,通过对两种程序的测试结果表明:简单选择排序是选择排序的基础,而树形选择排序和堆排序是简单选择排序的改进。
关键词:模板类;简单选择排序;树形选择排序;堆排序;控制台工程;MFC工程。
目 录
1 需求分析 1
2 算法基本原理 1
3 类设计 3
4 基于控制台的应用程序 3
4.1 类的接口设计 4
4.2 类的实现 4
4.3 主函数设计 9
4.4 基于控制台的应用程序测试 11
5 基于MFC的应用程序 13
5.1 基于MFC的应用程序设计 13
5.1.1 MFC程序界面设计 13
5.1.2 MFC程序代码设计 15
5.2基于MFC的应用程序测试 21
结 论 22
参考文献 23
1 需求分析
(1)当进行数据处理时,经常遇到需要进行查找操作,通常希望待处理的数据按关键字大小有序排序,因为这样就可以采用查找效率较高的查找算法。
(2)对有序的顺序表可以采用查找效率较高的折半查找算法,而对无序的
顺序表只能采用顺序查找算法。由此可见排序是计算机程序设计中一种基础性操
作,研究和掌握各种排序方法是非常重要的。
(3)排序算法对于计算机信息处理很重要,一个好的排序不仅可以使信息 查找的效率提高,而且直接影响着计算机的工作效率。
本实验题目为基于选择排序方法的类模板设计与实现,要求建立一维数组数据结构的模板类,使一维数组中的数据元素可以是char, int, float等多种数据类型,并对数组元素实现选择类排序。因此实验采用类模板,可以对不同的数据类型的数据进行排序,并通过函数采用不同的方法进行排序。
2 算法基本原理
(1)简单选择排序
从无序的记录序列中选出一个关键字值最小的记录存入到指定的位置。
//简单选择排序
SelectSortType ar[]
int i,j;
Type t;
fori1;ilen;i++forji+1;jlen;j++
ifarray[i]array[j]
tarray[i];array[i]array[j];array[j]t;
(2)树形选择排序
树形选择排序的基本思想:树形选择排序又称锦标赛排序(Tournament Sort),是一种按照锦标赛的思想进行选择排序的方法。首先对n个记录的关键字进行两两比较,然后在n/2个较小者之间再进行两两比较,如此重复,直至选出最小的记录为止。
(3).堆排序
堆排序由建初始堆和调整堆两个过程组成。再次,所谓筛选是指对一棵左右子树均为堆的完全二叉树,经调整根节点后使之成为堆的过程。建堆时一定要从最后一个非叶子结点开始。
堆排序的关键是调整堆,建初始堆时也是要从最后一个非叶子结点开始向根结点方向进行调整建堆。假设完全二叉树的第i个结点的左子树,右子树已是堆,则对第i个结点进行调整时,需要将r
您可能关注的文档
- Analysis of Translation Techniques from the EnglishChinese Literature Translation 从英汉文学作品翻译中看翻译技巧.docx
- AndroidlinuxAPI预先定义的函数.doc
- Android应用文件管理器设计毕业论文.doc
- Android平台中文输入法设计和实现—.doc
- Android手机下的斗地主游戏的设计与实现毕业设计.doc
- Android手机下的斗地主游戏的设计与实现设计文档.doc
- Android点菜软件外文翻译基于安卓系统的电子菜单软件.doc
- ang现代企业员工素质培训讲义.doc
- Android课程设计报告订餐外卖系统.doc
- ANSYS Workbench参数化功能在压力容器分析设计中的应用.docx
最近下载
- 小学2026年学雷锋主题班会教学设计(5篇).docx VIP
- 特警理论考试题库及答案.doc VIP
- 新解读《GB_T 35644 - 2017地下管线数据获取规程》最新解读.docx VIP
- (PPT,3版)跨国公司经营与管理第一章 跨国公司总论.pptx VIP
- 学雷锋纪念日主题班会.pptx VIP
- 中心组“树立和践行正确政绩观”专题研讨发言提纲.docx VIP
- 沪科黔科版综合实践活动二下 天气预报 活动一《有用的天气预报》课件.ppt VIP
- 档案鉴定销毁审批表.docx VIP
- 电子烟危害教育主题班会.pptx VIP
- 2025年初级压缩机操作工(五级)技能认定理论考试题库资料(含答案).pdf
原创力文档

文档评论(0)