- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言程序设计16000.doc
封 皮
(按学校要求手工填写) 课程设计任务书
学 院 信息科学与工程 专 业 通信工程 学生姓名 史龙云 班级学号 110座机电话号码 课程设计题目 静态查找类模板的设计与实现 实践教学要求与任务
建立一维数组数据结构的模板类,使一维数组中的数据元素可以是char, int, float等多种数据类型,并对数组元素进行静态查找。主要完成如下功能:
实现数组数据的输入和输出;
对数组进行顺序查找;
对有序数组进行折半查找(递归算法);
对有序数组进行折半查找(非递归算法);
将每种查找功能作为类的成员函数实现,编写主函数测试上述查找功能。
工作计划与进度安排
第17周:分析题目,查阅课题相关资料,进行类设计、算法设计;
第18周:程序的设计、调试与实现;
第19周:程序测试与分析,撰写课程设计报告,进行答辩验收。 201 年 月 日 专业负责人:
201 年 月 日 学院教学副院长:
201 年 月 日
摘 要
建立一维数组数据结构的模板类,使一维数组中的数据元素可以是char, int, float等多种数据类型,并对数组元素进行静态查找。本文采用C++语言实现了,对数组的顺序查找,对数组进行递归折半查找,对数组进行非递归折半查找,设计了数组类模板采用Visual C++ 6.0的控制台工程和MFC工程分别实现了数组的输入,输出,以及顺序查找,递归查找的程序。通过对两种程序的测试结果表明:只要算法正确,两种程序都能正确的查找到给定元素的正确位置。
关键词:顺序查找;折半查找;控制台工程;MFC工程
目 录1 需求分析 1
2 算法基本原理 1
3 类设计 2
4 基于控制台的应用程序 4
4.1 类的接口设计 4
4.2 类的实现 5
4.3 主函数设计 11
4.4 基于控制台的应用程序测试 12
5 基于MFC的应用程序 13
5.1 基于MFC的应用程序设计 14
5.1.1 MFC程序界面设计 14
5.1.2 MFC程序代码设计 15
5.2基于MFC的应用程序测试 18
结 论 20
参考文献 21
1 需求分析 1 C++语言具有丰富的数据类型,除了一些基本的数据类型(如整形,实型和字符型等)外,还有数组类型,指针类型,结构体类型,公用体类型和枚举类型。数组就是一些按序排列的相同类型数据元素的集合。 (2)顺序查找:对于给定的关键字k,从数组的第一个元素开始,一次向后与记录的关键字域相比较,如果某个记录的关键字等于k,则查找成功,否则查找失败。
2 算法基本原理
①low 1;high n; ②若low high,则查找失败 ③mid low+high /2;若key L.r[mid].key,则查找成功,返回mid; 若key L.r[mid].key,则high mid-1,转 ②; 若key L.r[mid].key,则low mid+1,转 ②; 其中low和high分别指示查找区间的起始位置和终止位置,mid指示中间元素的位置。 举例说明折半查找的过程。若在顺序存储的有序表中各记录的关键字为:
{14,25,35,40,45,55,62,72,77,92}
要求查找关键字number 55的记录,查找过程如下:
low 1 high 10 mid 5
1 2 3 4 5 6 7 8 9 10
14 25 35 40 45 55 62 72 77 92 low mid high
由于L.r[5].key 45 55,则low 6 high 10 mid 8
1 2 3 4 5 6 7 8 9 10
14 25 35 40 45 55 62 72 77 92 low mid high
由于L.r[8].key 72 55,则low 6 mid 7 high 6
1 2 3 4 5 6 7 8 9 10
14 25 35 40 45 55 62 72 77 92 low high mid
由于L.r[6].key 55 55,则查找成功。
3 类设计
4 基于控制台的应用程序 整体分为两部分,一部分是类的模板,包括类的数据元素和array[max_size]; size;类的成员函数Array ; ~Array ; Output ; Input ; search ; rehalfsearch T number,int first,int last ; halfsearch T number,int first,int last ;以及类成员函数的具体代码。另一部分是主函数,主函数中定义了一个array数组,通过数组调用类的成员函数实现静态查找类模板的设计。
4.1 类的接口设计
//A
文档评论(0)