辽 宁 工 业 大 学
JAVA 程序设计 课程设计(论文)
题目:
华容道类拼图游戏
院(系):
专业班级:
学 号:
学生姓名:
指导教师:
教师职称:
助 教
起止时间: 2009.12.1 至 2009.12.16
程序设计专题(报告)任务及评语
院(系):软件学院
教研室:软件教研室
学 号
程序设计
(报告)
题目
学生姓名
专业班级
华容道类拼图游戏
程序设计专题的任务与要求:
(1)掌握 Java 编程、面向对象的基础知识。
(2)较熟练地编写 Java 应用程序 Application。
(3)了解 Java 的常用标准类库、编程技巧、异常处理。
(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。
(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能
力都有一个很大的提高。
(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素
质的提高起一个积极的推动作用。
课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。
正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。
成绩:
指导教师签字:
2009 年 12 月 20 日
程
序
设
计
(
报
告
)
任
务
指
导
教
师
评
语
及
成
绩
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
目 录
第 1 章 课程设计的目的与要求 ................................................ 1
1.1 课程设计目的 ........................................................ 1
1.2 课程设计的实验环境 .................................................. 1
1.3 课程设计的预备知识 .................................................. 1
1.4 课程设计要求 ........................................................ 1
第 2 章 课程设计内容 ........................................................ 2
2.1 课程设计主要内容 .................................................... 2
2.2 概要设计 ............................................................ 3
2.2.1 自定义类说明 .................................................. 3
2.3 数据库设计 ......................................... 错误!未定义书签。
2.4 详细设计 ........................................... 错误!未定义书签。
2.5 测试分析 ........................................... 错误!未定义书签。
2.4.1 程序运行情况 .................................................. 6
2.4.2 程序异常处理 ................................................. 16
第 3 章 课程设计总结 ........................................................ 17
参考资料 18
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
第 1 章 课程设计的目的与要求
1.1 课程设计目的
《JAVA 程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专
业学生学习完《JAVA 程序设计》课程后,进行的一次全面的综合训练,JAVA 程序设计
的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在
网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为
基础进行软件开发、并在实践应用方面打下一定基础。
1.2 课程设计的实验环境
硬件要求能运行 Windows 9.X 操作系统的微机系统。JAVA 程序设计语言及相应的集
成开发环境,J2SDK 和 ECLIPSE 开发工具。
1.3 课程设计的预备知识
熟悉 JAVA 语言及 ECLIPSE 开发工具。
1.4 课程设计要求
按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达
到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练
掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,
能够进行简单分析和判断;能编写出具有良好风格的程序;掌握 JAVA 程序设计的基本
技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进
行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、
设计过程的观察、理解和归纳能力的提高。
1
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
第 2 章 课程设计内容
2.1 课程设计主要内容
该拼图游戏结合了许多元素,可以图片切割,游戏拼图,游戏成功时和打破记录时
的判断,同时还有游戏时间和步数的记录,并以文档形式进行保存。在拼图时首先把图
片添加到 background 目录下,程序会自动获取该目录下的所有文件,并加载到游戏中,
进行切割后,显示在拼图按钮上。主类成员变量表如下表 1 所示:
成员变量
开始状态
窗口宽度
窗口高度
结束对象
焦点控制
变量类型
Boolean
int
int
gOver
boolean
名称
Start
fWidth
fHeight
GameOver
index
本系统共包括 11 个 java 源文件和 2 文件。这是个功能比较齐全的拼图游戏,最关
键的不用自己手动切割图片,再进行加载。类之间的关系如图 1 所示:
表 1 主类成员表
MenuFrame
CardFrame
Puzzle
ShowImage
GameOve
r
Matrix
Split
Grades
point
ButtonCli
图 1 类之间的关系
2
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
JAVA 源文件及其功能如下表 2 所示:
序
号
1
2
3
4
5
6
7
8
9
10
11
文件名
主要功能
备注
Puzzle.java
CardFrame.java
MenuFrame.java
ShowImage.java
Split.java
Matrix.java
Grades.java
GameOver.java
point.java
程序的主类,定义了各个组件的
动作和为窗口设置图标
包 含 主 函 数
程序的入口
游戏介绍界面 添加继续按钮 采 用 卡 片 布
局
声 明 了 6 个
静态方法
图 块 保 存 在
内存中
存 档 文 件 格
式为**.rc
初始化游戏界面,创建并添加组
件
在游戏中显示完整图片来提供
帮助
根据难度等级切割完整图片为
拼图块
加载打乱的图块进行初始化游
戏
游戏记录和存档,游戏暂停的实
现
游戏时间和步数的计算和游戏
结束的判断
获得拼图的行数和列数,并向
其他函数传参。
ButtonClick.java
实现鼠标动作。
Arg.java
提供图片路径和成绩记录的路
径
公用接口
表 2 文件及其功能
2.2 概要设计
2.2.1 自定义类说明
1.主类 Puzzle
(1)成员变量见表 3
成员变量描述
变量类型
开始状态
窗口宽度
窗口高度
Boolean
int
int
3
名称
Start
fWidth
fHeight
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
结束对象
焦点控制
gOver
boolean
GameOver
index
表 3 主类 Puzzle 成员变量
(2)方法见表 4
方法名
Puzzle()
StartGame()
功能
备注
创建游戏窗口和设置
图标
开始游戏控制,更新
开始菜单
endgame()
结束游戏控制
弹出结束窗口
FrameLoseFoc
us()
FrameGetFocu
s ()
menuNewClick
()
menuGradesCl
ick()
使窗口失去焦点事件
使窗口得到焦点事件
进行切割图片
调用类 spite()
实现分数记录和显示
调用类 Class Grades
menuShowClik
在游戏中显示完整图
调用类 class ShowImage
()
menuExit()
menuHelpClik
()
menuAboutCli
k()
2.类 CardFrame
(1)成员变量见表 5
片
退出游戏
实现帮助功能
以弹出式对话框设计
实现关于功能
介绍了相关信息和作者
表 4 主类 Puzzle 方法
成员变量描述
布局格式变量
容器变量
面板数组
变量类型
CardLayout
Container
Jpanel
名称
card
con
Panel[]
表 5 类 CardFrame 成员变量
(2)方法见表 6
方法名
功能
备注
CardFrame() 创建窗口,布局游戏 添加了焦点事件适配器
4
辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)
介绍
nextCard()
转到一下张卡片
采用卡片布局
表 6 类 CardFrame 方法
3.类 MenuFrame
(1)成员变量见表 7
成员变量描述
变量类型
难度等级变量
文件路径
int
String
难度按钮组
ButtonGroup
图片选择按钮
组
菜单更新控制
菜单项数组
ButtonGroup
Boolean
JMenu
名称
type
filename
bgrp
frp
update
Mm[]
m[]
(2)方法见表 8
表 7 类 MenuFrame 成员变量
方法名
功能
备注
MenuFrame()
创建窗口
添加了焦点事件适配器
addMenu() 向菜单栏中添加菜单 以数组形式添加多个菜单
menuLevelCli
ck()
menuBackgrou
ndClik()
getType()
getFilename(
)
实现等级选择
实现背景图片的选择
返回一个难度等级
获取图片的名字
initMenuBegi
初始化开始按钮并设
同时给出了选择 菜单后的
n()
置快捷键
相应动作
initMenuBack
ground()
initMenuAbou
t()
initMenuOpit
ion()
initMenuLeve
l()
初始化背景菜单
初始化关于菜单
初始化选择菜单
初始化等级菜单
以选择框形式选择等级
updadeMenuBe
游戏开始后更新开始
比原来增加了显示图片菜单
gin()
菜单
项
表 8 类 MenuFrame 方法
5