正文描述:《汉诺塔java课程设计说明书》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、目录前言1正文11设计的目的和意义11.1设计目的11.2设计意义12设计目标与总体方案22.1设计目标22.2总体方案22.2.1界面及其布局设计22.2.2A、B、C座的实现方法22.2.3成员变量22.2.4方法32.2.5圆盘的实现方法42.2.6Disc成员变量42.2.7Disc方法43设计方法和内容53.1总体类关系53.2总体功能图53.3总体流程图64详细设计内容64.1A、B、C座实现流程图64.2圆盘画法流程图75系统详细设计85.1HannoiWindow.java85.2Tower.java95.3Dis
2、c.java95.4TowerPoint.java105.5HandleMouse.java105.6AutoMoveDisc.java106设计创新与关键技术116.1系统测试116.2代码调试问题136.3程序运行效果14总结15致谢16附录17第31页,共31页参考文献16前言汉诺塔(又称河内塔)问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒
3、作为帮助,但每次只能搬一个,而且大的不能放在小的上面。解答结果请自己运行计算,程序见尾部。面对庞大的数字(移动圆片的次数),看来,众僧们耗尽毕生精力也不可能完成金片的移动。后来,这个传说就演变为汉诺塔游戏:(1)有三根杆子A,B,C。A杆上有若干碟子(2)每次移动一块碟子,小的只能叠在大的上面(3)把所有碟子从A杆全部移到C杆上经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片:如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C。此外,汉诺塔问题也是程序设计中的经典递归问题。正文1设计的目
4、的和意义1.1设计目的通过学习和查阅相关资料,了解并熟悉掌握汉诺塔的基本原理和功能、熟悉数据流程与游戏规则;学习汉诺塔的有关递归算法和栈的算法和Java的编程技术;通过实际的编程练习,加深对基础知识的理解,提高实践能力;学习开发资料的收集与整理,学会撰写课程设计报告。并通过本次课程设计,提高自己的编程能力,掌握课程设计说明书的要求,为以后学习,和工作打下良好的功底。1.2设计意义通过这次的课程设计,可以培养我们的学习能力,让我们实事求是的学习,通过努力,建立系统设计的整体思想,锻炼我们编写程序和调试程序的能力,学习文档编写规范,学
5、习第31页,共31页书写说明书的规范,学习书写论文的规范,吸取他人学习的宝贵经验、勇于探索前言知识的习惯。同时数据结构课程设计还可以弥补我们自身在实践中所缺少的经验。这次对于汉诺塔这个问题的研究是我在Java课程学习中递归函数的一次实际运用,对我的递归函数的理解会有更多的帮助。同时还能根据算法对递归思想与所学的数据结构中栈的方法进行比较。2设计目标与总体方案2.1设计目标1)设计GUI界面的Hannoi塔。汉诺塔中有三个座,名字分别为A,B,C。初始状态时A塔上有3个大小不等的盘子,这些盘子从座底到座顶按着大小顺序依次摆放在A座上
6、。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动盘子。释放鼠标来放置该盘子。2)程序要求用户在移动盘子的过程中,不允许吧大盘子放置在小盘子的上面,用户最终要完成的是把A座上的全部盘子移动到B座或C座上。3)用户可以通过Hannoi塔界面提供的菜单来选择初级、中级和高级三个级别。初级级别A座上有3个大小不等盘子、中级级别A座上有4个大小不等盘子、高级级别A座上有5个大小不等盘子。4)用户可以通过单击Hannoi塔界面上提供的按钮,让程序自动完成把A座上的盘子全部移动到C座上。5)用户在移动盘子的过程中,可以随时单击Hannoi塔界面
7、上提供的按钮,重新开始当前的级别。2.2总体方案2.2.1界面及其布局设计系统的整体布局为:BorderLayout布局,采用了菜单、按钮、面板…等组件,菜单主要包括选择级别盘子个数,,按钮的功能包括重新开始,自动演示,演示,暂停,继续,关闭。2.2.2A、B、C座的实现方法Tower类是javax.swing包中JPanel容器的一个子类,创建的对象tower是HannoiWindow窗口的成员之一,被添加到HannoiWindow窗口的中心位置。2.2.3成员变量(1)amountOfDisc是int型数据。amountOfD
8、isc值用来确定tower对象中盘子的数目,第31页,共31页tower对象中Disc类型数组disc的长度。(2)disc是Disc型数组,该数组的长度由amountOfDisc值来确定。Disc数组的每个单元中存放一个Disc对象,依次表明to
显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。