根据c语言程序设计MFC界面,c语言程序设计62018.doc

封 皮

(按学校要求手工填写)

课程设计任务书

学 院信息科学与工程专 业通信工程学生姓名史龙云班级学号1103060432课程设计题目静态查找类模板的设计与实现实践教学要求与任务

建立一维数组数据结构的模板类,使一维数组中的数据元素可以是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

若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

14253540455562727792 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

14253540455562727792 low mid high

由于L.r[8].key=72>55,则low=6 mid=7 high=6

1 2 3 4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值