Java课程设计报告.docx
《Java课程设计报告.docx》由会员分享,可在线阅读,更多相关《Java课程设计报告.docx(10页珍藏版)》请在冰点文库上搜索。
Java课程设计报告
Java课程设计报告
题目Hannoi塔
所在院系
学生姓名XXX专业
班级学号
2013年月日
第一章总体设计
1.1本系统的主要功能
用户可以用鼠标选中盘子,然后通过拖动鼠标来移动该盘子,释放鼠标来放置该盘子。
同时Hannoi塔界面提供了选择初级、中级、高级和神级四个级别,每次开始和放置盘子都有背景音乐。
除此之外,我还配置了计时功能,对用户将盘子从A座移动到C座进行计时。
1.2系统包含的类及类之间的关系
本系统共包括6个java源文件。
如图1-1所示。
图1-1类之间的关系
2.2java源文件及其功能
序号
文件名
主要功能
备注
1
HannoiWindow.java
该JAVA文件生成的类负责创建Hannoi塔的主窗口。
该类含有main方法,Hannoi塔从此类开始执行
2
Tower.java
Tower类是javax.Swing包中JPanel容器的子类,创建的容器被添加到HannoiWindow窗口中心。
3
Disc.java
创建的对象是Tower容器的一个按钮,用来表示盘子。
4
TowerPoint.java
负责在Tower中创建表示位置的塔点对象。
5
HandleMouse.java
创建的对象负责处理鼠标事件。
6
AutoMoveDisc.java
负责自动将盘子从A座移动到C座
第二章详细设计
2.1HannoiWindow主类
(1)成员变量见表2
(2)
表2
成员变量描述
变量类型
名称
塔名数组
towerName[]
towerName
盘子数目
int
amountOfDisc
菜单条
JMenuBar
bar
选择级别
JMenu
menuGrade
初级
JMenuItem
oneGradeItem
重新开始
Button
renew
自动演示
Button
autoButton
(2)方法见表3
表3
名称
功能
备注
HannoiWindow
创建窗口
构造方法
ActionPerfomed
处理ActionPerfomed事件
接口方法
Main
程序开始运行
(3)源代码见文件HannoiWindow.java
2.类Tower
(1)成员变量见表4
表4
成员变量描述
变量类型
名称
塔点数组
int
pointA
(2)方法见表5
表5
方法名
功能
备注
Tower
Tower容器初始化
构造方法
(3)源代码见文件Tower.java
3.类Disc
(1)成员变量见表6
表6
成员变量描述
变量类型
名称
盘子号码
int
number
(2)方法见表7
表7
方法名
功能
备注
Disc()
创建盘子对象
构造方法
setNumber(int)
设置盘子数字号码
getNumber()
返回盘子数字号码
setPoint()
设置盘子所在塔点
getPoint()
返回盘子所在塔点
(3)源代码见文件disc.java
4.类TowerPoint
(1)成员变量表
成员变量描述
变量类型
名称
塔点坐标
int
x,y
塔点有盘子
boolean
haveDisc
(2)方法表
方法名
功能
备注
isHaveDisc()
是否有盘子
Get()
返回塔点坐标
putDisc()
将盘子放在塔点上
3)源代码见文件TowerPoint.java
5类HandleMouse
(1)成员变量表
成员变量描述
变量类型
名称
数组
int
pointA
(2)方法表
方法名
功能
备注
mousePressed()
获取盘子起始塔点
接口方法
mouseDragged()
控制盘子移动
接口方法
mouseReleased()
操作盘子放到合理塔点
接口方法
(3)源代码见文件HandleMouse.java
6类AutoMoveDisc
(1)成员变量表
成员变量描述
变量类型
名称
塔点数组
int
pointA
盘子数目
int
amountOfDisc
(2)方法表
方法名
功能
备注
ActionPerfomed
处理ActionPerfomed事件
接口方法
(3)源代码见文件AutoMoveDisc.java
7类Music
(1)方法表
方法名
功能
备注
bf()
播放音乐
(2)源代码见文件Music.java
三.运行效果
3.1系统主界面
图3-1系统主窗口
3.2Hannoi塔运行界面
图3-2Hannoi塔运行界面
四.工作总结
两周的课程设计就快结束了,由于时间比较紧张,这次用java语言完成的Hannoi塔在功能方面比较简单,在细节方面也不够完美,但经过此次设计使我对毕业设计的基本流程得到全面了解,最重要的是培养了我们的动手操作能力,在理论理解方面也有了很大的提高,特别是对于java这门语言。
这次课程设计开始时,对java语言虽有初步的了解,但用来做这次设计是远远不够,在边做边学的过程中,通过老师的指导和自身的努力以及相关图书资料的帮助,逐渐熟悉了java语言的应用知识。
我们在指导老师的帮助下对题目进行了比较详尽的考虑,尽可能在编程时对数据结构进行充分利用。
以后的设计证明前期思想上的充分准备是有必要的。
在思想做到了统一,然后进行分工合作,对自己所作的模块进行细化,通过具体的编程实现其功能。
实际操作过程中也遇到了这样那样的困难,就通过察看资料、上网等方式解决。
通过这次设计,锻炼了自己的动手能力和与他人相互合作的能力,在这次这次课程设计中,碰到了不少困难,经过老师同学们的帮助得到了解决,特别感谢指导老师的指导和同学的帮助!