欢迎来到天天文库
浏览记录
ID:18636645
大小:844.00 KB
页数:37页
时间:2018-09-18
《面向对象程序设计java课程设计:汉诺塔游戏程序功能实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、面向对象课程设计题目汉诺塔游戏程序功能实现学院商学院专业信息管理与信息系统班级学号学生姓名洪婷指导教师李永刚编写日期2011年12月8日目录一、需求分析31.1界面及布局设计31.2A、B、C座的实现方法31.3圆盘的实现方法41.4记录时间方法4二、系统运行环境5三、功能需求描述5四、总体设计64.1总体功能图64.2总体流程图7五、主要功能设计流程85.1A、B、C座实现流程图85.2圆盘画法流程图95.3保存流程图95.4时间流程图10六、程序模块设计106.1间接关系图106.2运行效果图116.3程序代码设计13七、总结36需求分析1.
2、1界面及布局设计系统的整体布局为:BorderLayout布局,采用了菜单、按钮、面板…等组件,菜单主要包括选择级别,盘子个数,选择颜色,设置大小,按钮的功能包括重新开始,自动演示,播放,循环,停止,保存,演示,暂停,继续,关闭。1.2A、B、C座的实现方法Tower类是javax.swing包中JPanel容器的一个子类,创建的对象tower是HannoiWindow窗口的成员之一,被添加到HannoiWindow窗口的中心位置。标明Tower类的主要成员变量和方法以及和HannoiWindow类之间组合关系的UML图如图1-1所示。图1-1T
3、ower类的UML图成员变量(1)amountOfDisc是int型数据。用来确定tower对象中盘子的数目。(2)disc是Disc型数组,Disc数组的每个单元中存放一个Disc对象,依次表明tower对象中有怎样多的盘子。(3)towerName是char型数组,长度为3,即A、B、C。(4)maxDiscWidth和minDiscWidth的值分别用来确定最大盘子的宽度和最小盘子的宽度,discHeight的值确定每个盘子的高度。(5)pointA、pointB和pointC都是TowerPoint型数组,三个数组的长度与盘子数目相同,分
4、别用来表示Hannoi塔中三个座上的塔点。A座、B座和C座上的三个塔点分别由pointA、pointB和pointC中的单元来确定。每个座上的三个塔点都是从座顶依次对应数组的相应单元中的TowerPoint对象。(6)handleMouse是HandleMouse类创建的鼠标事件监视器,用来监视disc数组的Disc对象上触发的鼠标事件。(7)autoMoveDisc是AutoMoveDisc创建的对话框。通过该对话框可以实现程序自动移动盘子。1.1圆盘的实现方法Disc类是javax.swing包中Jbutton类的子类,所创建的对象称作Han
5、noi塔中的“盘子”。标明Disc类的主要成员变量、方法以及和Tower类之间组合关系的UML如图1-3所示。图1-2Disc类的UML图1、成员变量(1)number的值确定所创建的“盘子”上的数字号码。(2)point是TowerPoint对象,表明自己所在的塔点。1.2记录时间方法Timer类,该类在javax.swing包中。当某些操作需要周期性地执行,就可以使用计时器。可以使用Timer类的构造方法:Timer(inta,Objectb)创建一个计时器,其中的参数a的单位是毫秒,确定计时器每隔a毫秒“震铃”一次,参数b是计时器的监视器。
6、计时器发生的震铃事件是ActionEvent类型事件。计时器创建后,使用Timer类的方法start()启动计时器,即启动线程。使用Timer类的方法stop()停止计时器,即挂起线程。使用restart()重新启动计时器,即恢复线程。本程序中,单击“显示当前时间”按钮启动计时器,并将时间显示在文本框中;单击“暂停当前时间”按钮计时器暂时停止计时;单击“重新显示当前时间”按钮重新启动计时器。一、系统运行环境硬件要求能运行Windows9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。二、功能需
7、求描述(1)设计Hannoi塔中有三个座,名字分别是A、B和C。初始状态是A座上有3个大小不等的盘子,这些盘子从座底到座顶按着大小顺序依次摆放在A座上。用户可以用鼠标选中盘子,然后通过拖动鼠标来移动该盘子、释放鼠标来放置该盘子;(2)程序要求用户在移动盘子过程中,不允许把大盘放置在小盘的上面,用户最终要完成的是把A座上的全部盘子移动到B座或C座上;(3)用户可以通过Hannoi塔界面提供的菜单来选择初级、中级、高级和自定义四个级别。初级级别A座上有3个大小不等盘子、中级级别A座上有4个大小不等盘子、高级级别A座上有5个大小不等盘子、自定义级别A座
8、用户可以任意输入盘子数目;(4)用户可以通过单击Hannoi塔界面上提供的按钮,让程序自动完成把A座上的盘子全部移动到C座上;(5)用户
此文档下载收益归作者所有