java 汉诺塔 课程设计 心得体会_Hannoi塔(汉诺塔)--Java课程设计报告

41528d3028836879cd698677c3999917.gifHannoi塔(汉诺塔)--Java课程设计报告

Java课程设计报告 题 目 汉诺塔 所在院系 软件学院 学生姓名 邓小文 专 业 土木+软件工程 班 级 08-1班 学 号 14号 2010年 7 月 17 日 一、总体设计 1. 本系统的主要功能 (1) 本软件是汉诺塔游戏; (2) 可以实现计时功能; (3) 游戏结束时记录排名; (4) 在玩游戏的同时还可以欣赏歌曲; (5) 不知如何玩时可以实现自动演示; 2.系统包含的类及类之间的关系 为了实现本软件的各项功能,对要在本软件中需要用到的源文件进行总体设计。本系统共包括12个java源文件。 1.各个类之间的关系如图1所示。 Help Tower HannoiTower Music Disk TowerPoint Time Record ShowRecord People 图1-1各个类之间的关系 2.java源文件及其功能,如表所示。 表1java源文件及其功能 序号 文件名 主要功能 备注 1 Tower 用户可以在主窗口选择开始搬运盘子或自动演示。程序默认的情况是手动搬运盘子 2 HannoiTower 该文件生成的类负责创建Hannoi塔,汉诺塔由A、B、C三个塔组成,可以用鼠标搬运各个塔上的盘子。 3 Disk 该文件生成的类负责创建盘子对象 4 TowerPoint 该文件生成的类负责为Hannoi塔创建塔点对象,即盘子放置的位置。 5 Time 记录玩家完成游戏所需的时间 6 People 记录成绩能够排进排行榜的选手 7 About 关与本软件的制作信息 8 Help 帮助主题 9 Record 记录 10 Music 该文件负责生成一款播放器,可以选取玩家自己喜欢的歌曲欣赏。 播放的歌曲需要是“wav”等形式的。 11 ShowRecord 该文件用来实现玩家看英雄榜的情况。 二、详细设计 为了实现总体设计中的各个类之间的接口连接,使玩家能够顺畅的使用本软件进行游戏,考虑用详细设计来给玩家一一介绍。 以下是对本软件的详细设计: 1.主类Tower (1)该类用到的主要成员变量见表5 表5类Tower主要成员变量 成员变量描述 变量类型 名称 汉诺塔对象 HannoiTower tower 塔名数组 Char[] TowerName 盘子数目 int 盘子数目 p float 盘子从上到下缩小的比例 盘子大小 Int 盘宽,盘高 自动演示线程 Thread Thread file初级,file高级 File 初级高级排行榜记录 file1 ,file2 File 规则帮助文本 自动演示文字显示搬运过程 TextArea 信息条 背景音乐 Music music 菜单条 JMenuBar bar 菜单 JMenu fileMenu1,fileMenu2,fileMenu3 菜单项 JMenuItem 开始游戏,重新开始,自动演示,英雄榜,退出, 背景音乐,帮助主题,关于汉诺塔; 显示时间 JTextField 显示时间 (2)方法见表6 表6类Tower主要方法 名称 功能 备注 Tower 创建窗口 构造方法 run 线程方法 actionPered 处理ActionEvent事件 接口方法 (3)源代码见文件Tower.java 2.类HannoiTower (1)该类用到的主要成员变量见表7 表7类HannoiTower主要成员变量 成员变量描述 变量类型 变量名 位置 int X,Y p float 盘子从上到下缩小的比例 搬运坐标 int Shartx,Starty,Starti 盘子数目 int 盘子数目 塔名 char Towername[] 时间 int spendtime 塔点 TowerPoint point[] 移动状态 boolean move 盘子 Disk 盘子[] 显示移动信息 TextArea 信息条 用来计时 Time 计时 计时器是否启动 boolean 计时器是否启动 (2)方法见表8 表8类HannoiTower主要方法 名称 功能 paintComponent 绘制主要组件 mousePressed 处理鼠标托盘子事件 mouseMoved 处理鼠标移动事件 mouseDragged 处理鼠标拖动事件 mouseReleased 处理鼠标释放事件 mouseEntered 处理鼠标进入容器事件 mouseExited 处理鼠标离开事件 mouseClicked 处理单击鼠标事件 actionPered 处理ActionEvent事件 自动演示搬盘子 自动演示搬盘子 在塔中获取最上面盘子 在塔中获取最上面盘子 在塔中获取最上面盘子的上方位置 在塔中获取最上面盘子的上方位置 在塔中获取最上面盘子的位置 在塔中获取最上面盘子的位置 (3)源代码见文件HannoiTower.java 3.类TowerPoint (1)该类用到的主要成员变量见表9 表9类TowerPoint主要成员变量 成员变量描述 变量类型 变量名 位置 Int X,Y 查看是否有盘子 boolean 有盘子 创建盘子 Disk 盘子 创建塔 HannoiTower con (2)方法见表10 表10类TowerPoint主要方法 名称 功能 是否有盘子 返回“有盘子”变量的状态 set有盘子 设置有盘子 getX 得到盘子的横坐标 getY 得到盘子的纵坐标 放置盘子 将盘子放到塔点上 获取盘子 获取盘子 (3)源代码见文件TowerPoint.java 4.类Disk (1)该类用到的主要成员变量见表11 表11类Disk主要成员变量 成员变量描述 变量类型 变量名 数目 int number 上方有无盘子 boolean 上方有盘 (2)方法见表12 表12类Disk主要方法 名称 功能 get上方有盘 得到“上方有盘” set上方有盘 设置“上方有盘” getNumber 得到盘子号 (3)源代码见文件Disk.java 5.类Time (1)该类用到的主要成员变量见表13 表13类Time主要成员变量 成员变量描述 变量类型 变量名 时间 int time 计时器 javax.swing.Timer 计

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值