汉诺塔 c++课程设计报告

汉诺塔 c++课程设计报告

ID:11250870

大小:218.00 KB

页数:17页

时间:2018-07-11

汉诺塔 c++课程设计报告_第1页
汉诺塔 c++课程设计报告_第2页
汉诺塔 c++课程设计报告_第3页
汉诺塔 c++课程设计报告_第4页
汉诺塔 c++课程设计报告_第5页
资源描述:

《汉诺塔 c++课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、淮阴工学院C++程序设计课程设计报告选题名称:汉诺塔系(院):计算机工程系专业:通信工程班级:通信XXXXX姓名:XXXXXX学号:XXXXXXXXXX指导教师:赵建洋于长辉学年学期:200XX~20XX学年第XX学期20XX年XX月XX日设计任务书课题名称汉诺塔设计目的1.调研并熟悉汉诺塔的基本功能、数据流程与工作规程;2.学习汉诺塔的非递归算法和基于VC++集成环境的编程技术;3.通过实际编程加深对基础知识的理解,提高实践能力;4.学习开发资料的收集与整理,学会撰写课程设计报告。实验环境1.微型电子计算机(PC);2.安装Windows2000以上操作系统,Visu

2、alC++6.0开发工具。任务要求1.利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及设计要求,注意材料收集与整理;2.在第16周末之前完成预设计,并请指导教师审查,通过后方可进行下一步工作;3.本课题主要实现用两种方法,递归和非递归方法实现盘子的移动;要求输入盘片数目,显示移动过程及结果。4.结束后,及时提交设计报告(含纸质稿、电子稿),要求格式规范、内容完整、结论正确,正文字数不少于3000字(不含代码)。工作进度计划序号起止日期工作内容12009.06.7~2009.06.7在预设计的基础上,进一步查阅资料,完善设计方案,形成书面材料。22009.0

3、6.7~2009.06.10设计总体方案,构建、绘制流程框图,编写代码,上机调试。32009.06.11~2009.06.12测试程序,优化代码,增强功能,撰写设计报告。42009.06.12~2009.06.13提交软件代码、设计报告,参加答辩,根据教师反馈意见,修改、完善设计报告。指导教师(签章):年月日摘要:关于汉诺塔,在印度有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针,印度教的主神梵天在创造世界的时候,在其中一根针上从上到下地穿好了64个金盘。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不

4、管在哪根针上,小片必在大片上面。当所有的金片都从梵天穿好的那跟针上移到另外一根针上时,世界就将在一声霹雳中消灭,梵塔、庙宇和众生都将同归于尽。故传说中的汉诺塔问题也被称谓“世界末日问题。”后来,这个传说就演变为汉诺塔游戏:1.有三根杆子A,B,C;A杆上有若干圆盘。2.每次移动一块圆盘,小的只能叠在大的上面。3.把所有圆盘从A杆全部移到C杆上。我们所要求的关于汉诺塔的课程设计,详细讨论了解决此问题的方案,分析解决问题的算法设计,得出了具体的算法,最后输入所需圆盘数,运用递归与非递归算法得出结果。在程序设计中,为了处理重复性的计算,最常采用的办法是组织迭代循环。除此之外,

5、往往还可采用递归计算的方法,特别是在非数值领域中更是如此。除了可调用的其他程序外,还可以直接或间接调用自身的程序称为递归程序。实质上,递归也是一种循环结构,他把“较复杂”情形的计算归结为“较简单”情形的计算,一直归结到“最简单”情形的计算,并得到计算结果为止。就某种意义而言,递归是一种比迭代循环更强的循环结构。可以证明每个迭代程序原则上总可以转换成与他等价的迭代程序。但就效率而言,递归程序的实现往往要比迭代程序耗费更多的时间与存储空间。所以在具体实现是,又希望尽可能把递归程序转化成等价的迭代程序,从而提高程序的时空效率。关键词:每次仅能移动一块;小的在上,大的在下;递归

6、;非递归;迭代循环;递归循环;效率目录1课题综述:11.1课题来源:11.2课题意义:11.3预期目标:11.4当前问题:12系统分析:12.1知识基础:12.2基本思路:32.3总体方案:33算法设计:33.1递归方法:33.2非递归法:33.3详细流程:34程序调试:74.1调试过程:74.2发现问题:84.3解决办法:9总结10致谢11参考文献12《C++程序设计课程设计报告》1课题综述1.1课题来源在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由

7、大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必在大片上面,当所有的金片都从梵天穿好的那根针上移动到另外一根针上时,世界就将在一声霹雳中消灭,梵塔、庙宇和众生都将同归于尽。故汉诺塔问题又被称为“世界末日问题。”而这个古老的问题正好可以运用我们这学期所学的C语言中的递归问题来解决。这是一个典型的问题。由于问题中给出的圆盘移动条件是:一次仅能移动一个盘,且不允许大盘放在小盘上面,这样64个盘子的移动次数为:18,446,744,073,709,511,615

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。