- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计---汉诺塔问题
目录
目录 1
1.系统需求分析 2
1.1 问题描述 2
2.概要设计 4
2.1设计思路 4
2.2 系统总体设计 5
2.3程序流程图 6
2.3.1塔盘数量设置 6
2.3.2移动速度调节 6
2.3.3操作对象选择 7
2.3.4汉诺塔求解流程图 8
3.详细设计 9
3.1 模块设计 9
3.1.1 塔和塔显示的定义 9
3.1.2 塔盘移动的定义 11
3.1.3 塔盘移动规律的定义 12
3.1.4 主函数main( ) 12
4. 系统调试 14
5. 运行结果 14
6. 心得体会 19
7. 附录 20
7.1 参考书目 20
7.2 源程序 20
8评分表 25
1.系统需求分析
1.1 问题描述
(一)、课程设计题目:
(二)、目的与要求:
1、目的:
(1)要求学生达到熟练掌握语言的基本知识和技能;
(2)基本掌握的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的问题。
2、基本要求:
(1)要求利用来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统中定义类,每个类中要有各自的属性和方法;
(4)在系统的设计中,至少要用到。
3、创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、写出设计说明书
(三)、设计方法和基本原理:
1、问题描述(功能要求):
要求用Turbo C实现的的图形程序2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)(2)完成类中各个成员函数的定义;
(3)完成系统的应用模块
(4)功能调试;
(5)完成系统总结报告以及系统使用说明书。2.1设计思路
对于一个类似的这样的问题,任何一个人都不可能直接写出移动盘子的每一个具体步骤。可以利用这样的统筹管理的办法求解:我们假设把该任务交给一个僧人,为了方便叙述,将他编号为64。僧人自然会这样想:假如有另外一个僧人能有办法将63个盘子从一个座移到另一个座,那么问题就解决了,此时僧人64只需这样做:
命令僧人63将63个盘子从A座移到C座
自己将最底下的最大的一个盘子从A座移到C座
再命令僧人63将63个盘子从B座移到C座
为了解决将63个盘子从A座移到B座的问题,僧人63又想:如果能再有一个僧人62能将62个盘子移动到另一座,我就能将63个盘子从A座移动到B座。他是这样做的:
命令僧人62将62个盘子从A移动到C
自己将一个盘子从A座移动到B座
再命令僧人62将62个盘子移到B座
再进行一次递归。如此“层层下放”,直到后来找到第2个僧人,让他完成将2个盘子从一个座移到另一个座,进行到此,问题就解决了。最后找到第1个僧人,让他完成将一个盘子从一个座移动到另一个座,至此,全部工作已经完成,都是可以执行的。
按照如此的思路设计递归算法,很容易得出盘子的移动方案。
另外是图形演示盘子的移动过程。为了能够更加形象的表示盘子的移动过程。在设计图形演示的时候,我们采用了图形动态演示。首先我们将字幕、柱子、以及提示信息等等屏幕内容设置成固定不变,我们这里称之为舞台。我们将盘子看作对象,一个盘子一个对象。在设计演示过程的时候,只需要将盘子对象放置于二维界面中的不同信置,通过刷新屏幕,实现动画显示。
2.2 系统总体设计
先对程序,一般可以使用、显示等功能,总的设计思路如下图所示:
图1.汉诺塔功能结构体图
2.3程序流程图
2.3.1塔盘数量设置
图.1塔盘数量设置部分
2.3.2移动速度调节
图.2移动速度调节部分
2.3.3操作对象选择
图.3操作对象选择部分
2.3.4汉诺塔求解流程图
图.4汉诺塔求解流程图
3.详细设计
3.1 模块设计
3.1.1 塔和塔显示的定义
struct T
{
int h; //塔的高度
int x; //塔的第一个盘的x坐标 ,y坐标等于(7+n-塔的高度h)
int l; //塔的第一个盘的长度
}ta[3]={{10,15,2},{0,0,0},{0,0,0}};
char hnt[18][79]={
{ },
{ },
{
您可能关注的文档
- 商品混凝土知识讲座_图文.ppt.ppt
- 山东济宁凌云项目市场研究及策划定位报告_87页.doc
- 商业空间(案例分析)【ppt】.ppt
- 四川大学 医学免疫学课件 13 超敏反应.ppt.ppt
- 人美版小学美术三年级上册册第六课《红色的画》课件1.ppt.ppt
- 室内金典案例赏析PPT课件.ppt
- 山西汾西矿业(集团)有限责任公司贺西煤矿300万ta改扩建工程.pdf
- 乳品部分农产品贮藏与加工课件(ppt 82页).ppt
- 全新版大学英语综合教程第三册Unit4.ppt
- 【商业地产PPT】-万泽太湖湾商业地产项目一期配套规划方案-6221102010PPTPT.ppt
- 2025年景区电动观光车安全性能评估与分析报告.docx
- 茶饮新品牌2025年市场扩张与品牌战略研究报告.docx
- ZARA快时尚供应链2025年智能化仓储物流系统研究报告.docx
- 2025年城市通信基站建设经济效益与社会效益分析报告.docx
- 新能源电动叉车租赁信息化系统优化与升级报告.docx
- 基于2025年智能制造背景下的企业质量管控策略研究报告.docx
- 人工智能在小学英语课堂互动中的应用与策略研究教学研究课题报告.docx
- 初中生作业量与学习效率的关系研究教学研究课题报告.docx
- 高中地理野外实践活动课程实施中的地理学科教学策略创新与资源开发改革教学研究课题报告.docx
- 《工业互联网赋能离散制造业供应链协同:供应链重构与优化策略研究》教学研究课题报告.docx
文档评论(0)