Java坦克大战设计报告

上传人:s9****2 文档编号:560498643 上传时间:2024-02-04 格式:DOC 页数:64 大小:336.50KB
返回 下载 相关 举报
Java坦克大战设计报告_第1页
第1页 / 共64页
Java坦克大战设计报告_第2页
第2页 / 共64页
Java坦克大战设计报告_第3页
第3页 / 共64页
Java坦克大战设计报告_第4页
第4页 / 共64页
Java坦克大战设计报告_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《Java坦克大战设计报告》由会员分享,可在线阅读,更多相关《Java坦克大战设计报告(64页珍藏版)》请在金锄头文库上搜索。

1、程序语言综合课程设计设计报告学院:信息工程学院专业班级:学号:3姓名:指导老师:完成时间:2011年7月22日目录目录2题目一坦克大战41.1题目简介41.2设计的内容、要求和目标4设计内容4设计要求4设计目标41.3总体设计5系统功能结构图5系统总体流程图61.4详细设计及实现7界面及布局设计7开机欢迎画面的实现方法7单人游戏的实现方法9添加背景音乐的方法12双人游戏实现的方法12游戏设置方法14存盘退出实现方法16运行效果图17源代码分析191.5系统运行及使用说明37题目二都昌大酒店餐饮管理系统382.1题目简介382.2设计的内容、要求和目标38设计的内容38要求38目标382.3总体

2、设计39功能模块设计39系统所有类之间的关系392.4数据库设计40关系模式402.4.2 E-R图40数据库管理物理实现41数据库表41表的建立42表与表之间的关系432.5详细设计及实现43操作界面设计44类成员变量及方法设计47源代码分析532.6系统运行及使用说明64题目三俄罗斯方块( 版)653.1 题目简介653.2 需求分析653.2.1 设计目的和意义653.2.2 任务概述653.2.3需求分析663.3 总体设计673.3.1 系统功能结构图673.3.2 系统总体流程图673.4 详细设计683.4.1 功能分析和描述683.4.2 程序系统的结构683.4.3 游戏的前

3、景和背景设计703.5主要技术的实现713.5.1 开机动画的实现713.5.2 排行榜设计713.5.3 消去方块的实现733.6系统实现743.6.1 程序系统的结构743.6.2 程序设计说明74总结78附录一79附录二82附录三85题目一 坦克大战1.1题目简介坦克大战是运用java高级编程语言使用MyEclipse8.6实现的一个游戏系统,它具有单人游戏和双人游戏的游戏界面以及对游戏的属性进行编辑的游戏设置对话框。1.2设计的内容、要求和目标1.2.1设计内容本项目的内容包括技术和非技术两大部分:技术上需要进行数据存储和图片的处理、整个窗口的布局、代码的编写及调试。非技术部分包括:人

4、力资源的充分利用。1.2.2设计要求(1)设计GUI界面的坦克大战。坦克大战中有我军坦克一辆,敌军坦克若干。初始状态是我军坦克位于屏幕正下方,而敌军坦克分布屏幕正上方,敌军坦克可以自由移动并发射子弹,我军坦克可以按“A”,“S”,“D”,“W”键操作我军坦克向不同的四个方向前进,按“J”键可以发射子弹;(2)程序要求用户在通过按下指定按钮来控制自己的坦克,敌人坦克是随机运动并发射子弹的;(3)当然用户还可以点击文件菜单选择各种需要的操作;(4)实现帮助功能,用户有不明白的地方可以查看帮助文档;(5)实现与数据库的连接,用户使用时必须登录。1.2.3设计目标系统应该尽量做到以下的目标:1) 人力

5、与设备费用的减少;2) 采用现代程序设计技术;3) 数据的处理速度提高;4) 管理信息服务的改进;5) 人员利用率尽可能提高;1.3总体设计1.3.1系统功能结构图下面列出了本系统的整体功能结果图以及各个模块之间的彼此联系,见图1-1所示。图1-1 系统各个功能模块之间的联系说明:用户根据主界面,在菜单项里可以选择开始游戏,可以开始单人游戏,也可以开始双人游戏,在游戏中倘若你有其他事情要做,你可以选择暂停游戏,当然你还可以选择存盘退出,这样当你以后想再玩没玩完的游戏你就可以选择继续上局游戏,这样你可以接着上次玩的游戏,你还可以选择游戏设置,设置敌人的坦克数量和敌人坦克的速度,以及我军坦克速度,

6、还有你可以设置娱乐方式,你可以选择使用背景音乐,和游戏音效。1.3.2系统总体流程图坦克大战的总体流程图见图1-2所示。图1-2 总体流程图3.3系统所有类之间的关系系统所有类之间的关系如图1-3所示图1-3类之间的关系设计一个系统的时候,把不同功能的具体实现放到不同的类里面,这样便于以后程序的扩展以及修改;类的名称最好是体现出这个类实现的功能,这样可以达到看类名就知道这个类的功能,方便以后程序的维护。本系统的实现一共用到了以上的12个类,它们之间的关系见图1-3所示,箭头方向代表是被依赖的类,各个类实现了一些单独的功能。1.4详细设计及实现1.4.1界面及布局设计系统的整体布局为:Borde

7、rLayout布局, 采用了菜单、按钮、面板等组件,菜单主要包括选择开始新游戏,暂停游戏,继续上局游戏,存盘退出,退出游戏,游戏设置等功能。1.4.2开机欢迎画面的实现方法FirstPanel类是javax.swing包中JPanel容器的一个子类,它主要是重写了paint()方法,先从文本文件里读取数据,然后把数据通过画笔画在画板上,标明FirstPanel类的主要成员变量和方法以及和TankGames类之间组合关系的UML图如图1-4所示。图1-4FirstPanel类的UML图以下是UML图中有关数据和方法的详细说明。1、成员变量(1)word是WordMove型数据,它是用来改变文字的

8、纵坐标的,使文字动态的画在画板上。(2)fr是FileReader型数据,它是用来读取文本文件的。(3)br是BufferedReader型数据,是缓冲输出流,用它来读取fr里面的数据。(4)str是String型数据,接受读取到得文本文件。(5)aa是Vector型数据,是类型为字符串类型的集合,用它来装一个个str。(6)img是Image型数据,是图片类型数据,用来设置背景图片的。(7)f,f1,f2都是Font类型的数据,用来确定动态显示字的字体。2、方法(1)FirstPanel()是构造方法,负责完成FirstPanel容器的初始化。(2)容器调用paint(Graphics g)

9、方法可以在画板上把文本文件画出来,以便动态的显示出来。(3)容器调用show()方法可以将画板上的文字显示出来。(4)容器调用run()方法可以改变文字的纵坐标,使原本静态的文字运动起来。综上所述,FirstPanel创建的容器效果如图1-5所示。图1-5FirstPanel创建的容器1.4.3单人游戏的实现方法mypanel类是javax.swing包中JPamel类的子类,所创建的对象是一个面板,面板上有坦克大战的敌我双方坦克,和战场,以及我军消灭敌军数量的标识,标明mypanel类的主要成员变量、方法以及和TankGames类之间组合关系的UML如图1-6所示。图1-6mypanel类的

10、UML图以下是UML图中有关数据和方法的详细说明。1、成员变量(1)isZanT、isSounds、isMusic都是boolean类型数据,分别确定是否游戏暂停,是否使用背景音乐,是否使用音效。(2)word是WordMove类型数据,用于制造动态字。(3)mt,en分别是mytank和enemyTank类型数据,用于在画板上定义敌我双方坦克。(4)zd,zhd分别是ZDan和ZhaDan类型数据,在画板上定义子弹和炸弹。(5)image1、imge2、imgae3都是Image类型数据,在击中坦克时,将这三幅图片画出来,制造爆炸效果。(6)f是Font类型数据,用于定义游戏结束时动态字的字

11、体。2、方法(1)mypanel()构造方法,初始化定义的成员变量。(2)paint(Graphics g)在画板上画坦克,画子弹,画炸弹等各种作战场面。(3)addmytank()方法用来增加我军坦克,我军坦克的生命值是3,当我军生命值大于0时,每死一次就增加一辆我军坦克,直至我军坦克生命值为0。(4)addEnemytank()方法是用来增加敌军坦克,敌军坦克默认情况下是20辆,而战场只允许敌军4辆坦克作战,所以每击毁敌军一辆坦克就会调用此方法增加一辆敌军坦克,直至敌军坦克数量小于或者等于4。(5)zhanji()方法是用来记录我军击毁坦克数量。(6)Bomp()方法是在击中坦克时画出爆炸

12、效果。(7)drawtank()用来在画板上画出敌我双方坦克。(8)drawzd()用来在画板上画子弹。(9)shotEnemytank()是在我军发射子弹时调用的,用户按下指定键就会激发此方法。(10)shotmytank()是敌军发射子弹时调用此方法。(11)isjizhong()是用来判断子弹是否击中坦克。(12)GameOver()是在游戏结束时调用的,用来描述游戏结束。因此mypanel创建的画板的效果如图1-7所示。图1-7 mypanel创建的画板的效果爆炸效果如下图:图1-8爆炸效果图1.4.4添加背景音乐的方法 为了在应用程序中播放音乐,首先根据相应的音频文件创建一个File

13、对象,例如: File file=new File(“十年.Wav”);然后,file对象调用toURL()方法返回一个URL对象,例如: URL url=file.toURL();最后,使用Applet类的静态方法返回一个音频对象,例如: clip=Applet.newAudioClip(url);1.4.5双人游戏实现的方法SRen类是javax.swing包中JPamel类的子类,所创建的对象是一个面板,面板上有坦克大战的敌我双方坦克(此时我军坦克数量为2),和战场,以及我军消灭敌军数量的标识,标明SRen类的主要成员变量、方法以及和TankGames类之间组合关系的UML如图1-9所示

14、。图1-9 SRen类的UML图以下是UML图中有关数据和方法的详细说明。1、成员变量(1)isZanT、isSounds都是boolean类型数据,分别确定是否游戏暂停,是否使用音效。(2)word是WordMove类型数据,用于制造动态字。(3)myts0life、myts1life都是int类型的数据,分别用来记录我方两辆坦克的生命值。(4)myts0XM、myts1XM都是int类型的数据,分别来记录我方两辆坦克消灭敌军坦克数量。(5)zd,zhd分别是ZDan和ZhaDan类型数据,在画板上定义子弹和炸弹。(6)image1、imge2、imgae3都是Image类型数据,在击中坦克

15、时,将这三幅图片画出来,制造爆炸效果。(7)f是Font类型数据,用于定义游戏结束时动态字的字体。2、方法(1)SRen()构造方法,初始化定义的成员变量。(2)paint(Graphics g)在画板上画坦克,画子弹,画炸弹等各种作战场面。(3)addmytank()方法用来增加我军坦克,我军坦克的生命值是3,当我军生命值大于0时,每死一次就增加一辆我军坦克,直至我军坦克生命值为0。(4)addEnemytank()方法是用来增加敌军坦克,敌军坦克默认情况下是20辆,而战场只允许敌军4辆坦克作战,所以每击毁敌军一辆坦克就会调用此方法增加一辆敌军坦克,直至敌军坦克数量小于或者等于4。(5)zhanji()方法是用来记录我军击毁坦克数量。(6)Bomp()方法是在击中坦克时画出爆炸效果。(7)drawtank()用来在画板上画出敌我双方坦克。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号