1 / 33
文档名称:

汉诺塔模拟程序课程设计报告.doc

格式:doc   大小:269KB   页数:33页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

汉诺塔模拟程序课程设计报告.doc

上传人:AIOPIO 2020/7/21 文件大小:269 KB

下载得到文件列表

汉诺塔模拟程序课程设计报告.doc

文档介绍

文档介绍:合肥学院计算机科学与技术系课程设计任务书2011~2012学年第一学期课程JAVA语言课程设计课程设计名称汉诺塔模拟程序专业班级08网络工程(1)班学号0804031034姓名Xx指导教师金莹郭昌建2011年9月目录目录 2摘要: 3关键词: 31、需求分析 42、设计部分 103、调试及测试 144、经验和体会 155、附录: 16主要源程序 16摘要:本文对经典的“汉诺塔”问题进行了详细的分析,给出了实现的算法,并用JAVA实现。通过该问题的JAVA实现,可使清晰地观测到解决问题的全过程。关键词:汉诺塔;算法;递归;JAVA1、,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《JAVA语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用JAVA语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)熟练掌握JAVA语言的GUI设计、线程技术,灵活运用各种类库。:汉诺塔模拟程序课程设计内容:设计一个模拟程序,。设计图形界面,画出3个柱子和若干个大小不一的圆盘,圆盘数量可人工设定。当点击“开始”按钮后,系统自动展现圆盘的移动过程,一秒移动一次。。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。不管这个传说的可信度有多大,如果考虑一下把64片金片,由一根针上移到另一根针上,并且始终保持上小下大的顺序。这需要多少次移动呢?这里需要递归的方法。假设有n片,移动次数是f(n).显然f(1)=1,f(2)=3,f(3)=7,且f(k+1)=2*f(k)+1。此后不难证明f(n)=2^n-1。n=64时, f(64)=2^64-1=184467445 假如每秒钟一次,共需多长时间呢?一个平年365天有31536000秒,闰年366天有31622400秒,平均每年31556952秒,计算一下, 184467445/31556952=,这表明移完这些金片需要5845亿年以上,而地球存在至今不过45亿年,太阳系的预期寿命据说也就是数百亿年。真的过了5845亿年,不说太阳系和银河系,至少地球上的一切生命,连同梵塔、庙宇等,都早已经灰飞烟灭。2、,熟悉图形、图像的使用方法,理解计算机动画的原理和java的多线程处理机制,以及Java语言的GUI设计。、柱子和盘子可以用图形界面里的直线和矩形模拟。2、矩形(即盘子)的大小可以通过循环控制,这样可以让盘子看上去有层次感。3、盘子移动后构造一个重绘方法来擦去旧的盘子4、=1,则将圆盘从A直接移动到C。如果n=2,则:(1)将A上的n-1(等于1)个圆盘移到B上;(2)再将A上的一个圆盘移到C上;(3)最后将B上的n-1(等于1)个圆盘移到C上。如果