汉诺塔设计与实现

汉诺塔设计与实现

ID:38678514

大小:313.50 KB

页数:23页

时间:2019-06-17

汉诺塔设计与实现_第1页
汉诺塔设计与实现_第2页
汉诺塔设计与实现_第3页
汉诺塔设计与实现_第4页
汉诺塔设计与实现_第5页
资源描述:

《汉诺塔设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、汉诺塔一、需求分析(1)设计GUI界面的Hannoi塔。Hannoi塔中有三个座,名字分别为A、B和C。初始化状态是A做上有3个大小不等的盘子,这些盘子从座底到座顶按着大小顺序依次摆放在A座。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动该盘子、释放鼠标来放置该盘子。(2)程序要求用户在移动盘子过程中,不允许把大盘放置在小盘的上面,用户最终要完成的是把A座上的全部盘子移动到B座或者说C座上。(3)用户可以通过Hannoi塔界面提供的菜单来选择初级、中级和高级三个级别。初级级别的A座右3各大小不等的盘子、中级有4个而高级则有5个。(4)用

2、户可以通过单击Hannoi塔界面上提供的按钮,让程序自动完成A座上的盘子全部移动到C坐上。(5)用户在移动盘子的过程中,可以随时单击Hannoi塔界面上的提供的按钮,重新开始当前的级别。二、总体设计在设计Hannoi塔时,需编写6个JAVA源文件:HannoiWindow.Java、TowerPoint.java、Disc.java、HandleMous.java和AutoMoveDisc.java。Hannoi塔除了要编写的6个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JMenubar,JMenu,JMenu

3、Item和JButton。Hannoi塔所用到得一些重要的类以及类之间的组合关系如图2.1所示:图2.1类之间的组合关系分工:在本次课程设计中我和吴林剑作为一个团队设计一个汉诺塔,我主要负责主窗口的设计和相关各个函数之间的调用,吴林剑主要负责容器的设计。以下是6个JAVA源文件的总体设计。2.1HannoiWindow.java(主类)HannoiWindow类负责创建Hannoi塔的主窗口,该类含有main方法,Hannoi塔从该类开始执行。HannoiWindow类的成员变量中有五种重要类型的对象,一个int基本型数据和一个char

4、行数组。五种类型的对象分别是JMenubar,JMenu,JMenuItem和JButton对象。HannoiWindow类主要成员的作用将在后面的详细设计中阐述,HannoiWindow类创建的窗口以及其中的主要成员对象如图2.2所示:第23页汉诺塔图2.2HannoiWindow窗口及主要的成员对象2.2Tower.javaTower类是javax.swing报中的JPanel容器的子类,创建的容器被添加到HannoiWindow窗口的中心。Tower类的成员变量中有四种重要的类型对象、一个int基本型数据和一个char型数组。2.

5、3Disc.javaDisc类是JButton的一个子类,创建的对象是Tower容器中的一个按钮,用来白傲视Tower中的“盘子”。2.4TowerPoint.javaTowerPint.Java类负责在Tower中创建表示位置的塔的对象。2.5HandleMouse.javaHandleMouse类创建的对象负责处理鼠标事件。2.6AutoMoveDisc.javaAutoMoveDisc类创建的对象负责走动移动盘子从一个座到另一个座。一、详细设计HannoiWindow类的详细设计1.效果图HannoiWindow创建的窗口效果如图

6、3.1所示:第23页汉诺塔图3.1HannoiWindow创建的窗口2.UML图HannoiWindow类是javax.swing包中JFrame的一个子类,表明该类的主要成员变量的方法的UML图如3.2所示:图3.2HannoiWindow类的UML图以下是UML图中有关数据和方法的详细说明。1)成员变量1、Tower是Tower创建的对象Tower对象是一个容器,刻画了Hannoi塔的结构,该对象被添加到窗口的中心。2、anountOfDisc是int型数据,他的默认值是3。amountOfDisc的值用来确定tower对象中“盘子

7、”的数目,即Disc对象的数目。3、towerName是char型数组,长度为3,其中三个单元的默认值一次是A、B和C。towerName数组的单元的值用来确定tower中三座的名字。4、bar是JMenuBar创建的菜单条用来添加菜单。Bar被放置的在窗口的顶部。第23页汉诺塔1、menuGrade是JMenu创建的菜单没起名字为“选择级别”。menuGrade被添加到菜单条bar中。2、renew和autoButton是JBotton创建的按钮对象,名字一次为“重新开始”和“自动演示”Renew和autoButton都将当前窗口注册

8、为自己的ActionEvent时间监视器。1)方法1、HannoiWindow()是构造方法,负责完成窗口的初始化。2、Main方法是Hannoi塔程序运行的入口方法。3、actionPerformed方法

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

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

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