Java项目实训设计说明书
姓 名: 佟乃坤
学 号: 20091130126
班 级: 09 软件
指导教师: 曹广生
完成日期: 2011.12.10
设 计 要 求
目录
第一章 功能介绍... 3
1.1功能描述... 3
1.2 功能特点... 4
第二章 系统的设计实现... 5
2.1 结构设计... 5
2.2 设计实现... 6
2.2.1 设计思想... 6
2.2.2 具体实现... 6
总 结... 10
参考文献... 11
Android手机游戏中国象棋设计说明书
第一章 功能介绍
1.1功能描述
随着3G移动网络应用的推广,手机游戏的规模、复杂程度日益增强;其技术手段、设计思想、系统体系结构都发生了深刻的变化。手机操作系统正朝着高处理能力、多功能、智能化的方向发展。近年来,网络文化市场发展很快,随着互联网的迅速普及、宽带的接入社区和家庭,我国网络游戏市场发展迅速并进入了一个高速增长期,并已经创造了较大的产值,带动了相关产业的发展。
中国象棋具有悠久的历史,象棋的爱好者更是数不胜数,远在战国时代,象棋便在贵族阶层中广为流传,早期的象棋是象征着当时战斗场面的游戏,后来这种观念慢慢被改变,成了人们休闲娱乐中不可缺少的一部分。
而当今的人们忙于工作,很少有时间静下心来享受一下象棋对弈的乐趣,因此电脑版象棋、手机版象棋便开始受到人们的关注。
如今网络上的提供免费中国象棋游戏,大多数是单机版的,界面单一,功能单一。本系统将实现在网络上对战的中国象棋功能;还对在下棋界面美化,以及下棋中可能出现的意外进行了处理。这样中国象棋休闲游戏将不在是一个功能单一界面枯燥的游戏,而是一个较完善的休闲游戏。
在国内外Android手机应用开发如火如荼、日益盛行的大背景下,本人决定开发一款界面友好、操作简单,支持双人联网对局、数据记录、智能规则判断的手机休闲游戏。
本游戏的基本功能主要有两大块:
l 象棋对弈:游戏的联网互动以及即时性,是本程序与一般的象棋游戏的不同;
l 战绩统计:用于统计玩家的对弈胜负情况。
1.2 功能特点
本游戏对用户界面的要求较高,达到人性化:美观大方、便于操作,个性化:游戏界面时尚靓丽、别具一格,能自定义皮肤。本游戏是使用即时通讯协议进行通信的,所以,实时的游戏效果、即时聊天以及在线探测是必须做到用户体验良好的。数据存储方面,需存储游戏的配置信息、对局的胜负信息、对局的过程信息。
本游戏的定位是:Chess中国象棋手机游戏是运行在Android开源手机操作系统平台上的支持双人联网对战的一款手机游戏。
由于对国际国内3G移动应用的前景看好,另外也对游戏开发有很大的兴趣,决定开发一款基于Android手机操作系统的中国象棋手机游戏。
结合当前移动开发的形式,初步构想之后,定下“Android手机操作系统的中国象棋游戏”应该是这样一款休闲游戏:以3G方式连入互联网;支持双人之间的游戏互动;支持即使聊天以及在线探测;支持游戏过程记录及回放;支持人机对战;游戏界面布局人性化、个性化;支持紧急事件处理(如电话打入、电池没电等)。可能的话,进行Wi-Fi编程,实现“局域网”对局。
第二章 系统的设计实现
2.1 结构设计
本游戏的基本功能主要有两大块:
l 象棋对弈:游戏的联网互动以及即时性,是本程序与一般的象棋游戏的不同;
l 战绩统计:用于统计玩家的对弈胜负情况。
详细的游戏功能分析图如图2-1所示。
图2-1 Chess游戏功能结构图
本游戏的执行流程较简单,进入系统后有五个选项:联网对局;查看胜负情况;查看开发者信息及用户帮助信息;退出游戏。在联网对局前,XMPP连接设置必须是已经配置好的,否则无法连接jabber服务器,不能进入对局界面。
游戏主要的输入输出及模块间的调用情况用IPO图表示如图2-2:
图2-2 Chess IPO图
2.2 设计实现
2.2.1 设计思想
按照程序运行的顺序介绍各个类的作用以及整体的运行框架,步骤如下:启动游戏,首先被创建的是ChessActivity,而在ChessActivity中首先将用户显示成欢迎界面MyWelcomeView.
在显示欢迎界面的同时,启动MyWelcomeViewThread线程生成界面动画,当玩家单击“菜单”按钮时进入界面MyMenuView,在菜单界面会根据玩家不同的选择执行不同的操作。
当玩家单击“帮助”菜单时,将进入帮助界面MyHelpView.而当玩家单击“开始游戏”菜单按钮时,进入的将是游戏界面MyGameView。当玩家或者电脑走棋是,会根据规则类MyGuiZe进行判断,然后产生一个走法ChessMove。
在游戏过程中,玩家同样可以随时单击“退出”按钮来返回到菜单界面。
2.2.2 具体实现
Android程序=Activity+xml(view、surfaceview)+res+string.xml
Activity的实现类Chess,该类是通过扩展基类Activity得到的,是整个游戏的控制器,也是整个游戏程序的入口。
辅助界面相关类
欢迎界面类MyWelcomeView,类为游戏欢迎界面的实现类,主要负责欢迎界面的绘制工作,迎界面动画生成类MyWelcomeViewThread,为了欢迎界面服务的,主要是通过更改欢迎界面中图片的坐标来实现动画效果。
帮助界面类MyHelpView,类为帮助界面的实现类。
菜单界面类MyMenuView,类为菜单界面的实现类,负责绘制菜单界面以及菜单界面的屏幕进行监听。
游戏界面相关类
1)游戏界面类MyGameView
该类为游戏程序中最主要的类,负责绘制游戏过程所有的信息,如棋盘、棋子、各个按钮以及胜利或者失败菜单等。
2)象棋规则类MyGuiZe
类是象棋规则的实现类,其中包含所有棋子的走棋规则及当前棋牌某方的所有可能的走法
3)走法类MyChessMove
类为棋子的走法的封装类,包含棋子的名称、出发点以及目标点。
*帅和士的走法:
“帅”,它只能在“九宫”中行走,而且每次只能横着或者纵着行走一棋点。首先,判断棋子是否是在“九宫”里行走,接着判断棋子是否是横向或纵向只走一个棋点。如果棋子将符合以上的走棋规则,则可以走动,否则棋子强制放回原处。
“士”,它只能在“九宫”中行走,而且每次只能斜着行走一格。这样只有一种情况来考虑,即纵向走一个棋点,横向走一个棋点。如果棋子士符合以上的走棋规则,则可以走动,否则棋子强制放回原处。
如图2-3所示
图2-3
*象和马的走法:
“象”,它只能走“田”字格,而且不能过河,象腿不能被其它的棋子压到。首先首先判断棋子是否出届,这样只有一种情况考虑,那就是纵向走两个棋点,横向也走两个棋点。首先判断棋子是否走"田"字格,而且不能过河,接着再用判断象腿是否被其它棋子压着。如果棋子象走动符合以上的走棋规则,则可以走动,否则棋子强制放回原处。
“马”,它只能走“日”字格,而且马腿不能被其它的棋子压到。设计时可两种情况来考虑,一种是横向走两个棋点,纵向走一个棋点;一种是纵向走两个棋点,横向走一个棋点。判断是否横向走两个棋点,纵向走一个棋点,接着来判断马腿是否被其它棋子压着。纵向走“日”同理。如果棋子马符合以上的走棋规则,则可以走动,否则棋子强制放回原处。
如图2-4所示
图2-4
*卒和炮的走法:
“卒”,它的行走规则分两种情况。一种是棋子没过河界,另一种是棋子过了河界。首先判断棋子是否出届,然后设定棋子没过河界,接着设定棋子在没过河界的情况下只能向前行走一个棋点;然后设定棋子过了河界,紧接着设定棋子在过了河界的情况下只能向前、向左、向右行走一个棋点。如果棋子卒符合以上的走棋规则,则可以走动,否则棋子强制放回原处。
“炮”,它只能走直线,且中间有且只能有一个棋子。
如图2-5所示
图2-5
*車的走法:
“车”,它只能走直线,且中间不能有任何棋子,设计时分为两种情况来考虑,一种是纵向行走;一种是横向行走。判断棋子是否纵向行走,接着再用判断判断中间有没别的棋子。横向行走同理。如果棋子车符合以上的走棋规则,则可以走动,否则棋子强制放回原处。
总 结
中国象棋具有悠久的历史,象棋的爱好者更是数不胜数,远在战国时代,象棋便在贵族阶层中广为流传,早期的象棋是象征着当时战斗场面的游戏,后来这种观念慢慢被改变,成了人们休闲娱乐中不可缺少的一部分。
在国内外Android手机应用开发如火如荼、日益盛行的大背景下,本人编写了这款界面友好、操作简单,支持双人联网对局、数据记录、智能规则判断的手机休闲游戏。
如今网络上的提供免费中国象棋游戏,大多数是单机版的,界面单一,功能单一。本系统将实现在网络上对战的中国象棋功能;还对在下棋界面美化,以及下棋中可能出现的意外进行了处理。这样中国象棋休闲游戏将不在是一个功能单一界面枯燥的游戏,而是一个较完善的休闲游戏。
而当今的人们忙于工作,很少有时间静下心来享受一下象棋对弈的乐趣,因此电脑版象棋、手机版象棋便开始受到人们的关注。
随着3G移动网络应用的推广,手机游戏的规模、复杂程度日益增强;其技术手段、设计思想、系统体系结构都发生了深刻的变化。手机操作系统正朝着高处理能力、多功能、智能化的方向发展。近年来,网络文化市场发展很快,随着互联网的迅速普及、宽带的接入社区和家庭,我国网络游戏市场发展迅速并进入了一个高速增长期,并已经创造了较大的产值,带动了相关产业的发展。
参考文献
[1] 靳岩,姚尚朗. Google Android开发入门. 人民邮电出版社,20##年7月, 第一版
[2] 杨丰盛. Android应用开发揭秘. 机械工业出版社,20##年1月,第一版
[3] 张利国,代闻,龚海平. Android移动开发案例,20##年2月,人民邮电出版社,第一版
[4] E2EColud工作室. 深入浅出Google Android ,人民邮电出版社 20##年8月,第二版
信息工程学院
《Java项目实训》实践环节考核报告单
20##-20##学年度第一学期期末
排课编号: 批阅日期: 年 月 日
第二篇:Java项目开发实训项目报告
徐州工业职业技术学院
Java项目开发实训项目报告
完 成 人:
所在班级:
指导教师:
完成时间: 20##年6月14日
所在系部: 信息管理技术学院
一.设计项目名称:
《网上书店》
二.小组成员及分工
尚** a、界面设计;b、查询图书信息;c、浏览图书信息并实现分页功能;d、删除图书信息;e、用户登录;f、根据客户编号查询订单信息
张** a、数据库的总体设计;b、添加图书信息;c、修改图书信息;d、用户注册;e、添加客户订单。f、总体页面链接
三.项目功能需求分析
1. 用户登录功能
2. 用户注册功能
3. 浏览所有图书并实现分页功能
4. 添加图书功能
5. 修改图书功能
6.删除图书功能
7.添加客户订单
8. 根据客户编号查询订单信息
总体流程如图所示:
图3.1总体流程图
四.项目数据库设计
1、BookInfo表:
表4.1 BookInfo表
2、Custormer表:
表4.2 Custormer表
3、UserInfo表:
表4.3 UserInfo表
4、OrderInfo表
表4.4 OrderInfo表
四张表的关系图如下:
图4.1关系图
五.完成的主要功能
1.登录功能
详细介绍:输入正确的用户名和密码可以登录到info.jsp页面(管理员)或index.jsp页面(普通用户),如果用户名或密码错误,弹出对话框,提出用户名或密码错误。
主要用到:a、entity实体层:UserInfo.java创建用户登录的方法,根据userName查询UserInfo里面的字段。
b、dao实现类:LoginDAOImpl.java运用Hibernate实现用户登录,其涉及到的接口为:LoginDAO.java。
c、Action控制层:LoginAction.java。
运行界面如图所示:
图5.1 登录界面
2.注册功能
详细介绍:点击index.jsp上的用户注册按钮,进入regist.jsp注册界面(如图5.2所示),输入用户名和密码,提交注册,弹出页面添加用户成功(如图5.3所示),否则弹出提交失败。
主要用到:a、entity实体层:UserInfo.java创建用户登录的方法,根据userName查询UserInfo里面的字段。
b、dao实现类:LoginDAOImpl.java运用Hibernate实现用户注册,其涉及到的接口为:LoginDAO.java。
c、Action控制层:LoginAction.java。
运行界面如图所示:
图5.2 用户注册界面
图5.3 用户注册成功界面
3. 浏览所有图书并实现分页功能
详细介绍:进入index.jsp主界面,点击浏览图书,进入showNotice.jsp页面(如图5.4所示),可以对所有图书进行浏览,其中有上一页、下一页、首页、末页、以及当前页数。
主要用到:a、entity实体层:BookInfo.java创建图书的方法。
b、dao实现类:BookInfoDAOImpl.java以及BookInfoImplManagerDAO.java(分页)运用Hibernate实现分页以及浏览,其涉及到的接口为:BookInfoDAO.java和IBookInfoManagerDAO.java(分页)。
c、Action控制层:BookInfoAction.java和NoticeAction.java。
运行界面如图所示:
图5.4 浏览图书界面
4. 添加图书功能
详细介绍:当管理员进入info.jsp管理界面,点击管理界面上的添加图书按钮,在addBook.jsp界面(如图5.5所示)进行各项内容填写,单击提交按钮,弹出页面添加图书成功(如图5.6所示),单击返回按钮进入info.jsp界面。
主要用到:a、entity实体层:BookInfo.java创建图书的方法。
b、dao实现类:BookInfoDAOImpl.java运用struts实现添加,其涉及到的接口为:BookInfoDAO.java。
c、Action控制层:BookInfoAction.java
运行界面如图所示:
图5.5 添加图书界面
图5.6添加成功界面
5. 修改图书功能
详细介绍:当管理员进入searchBook.jsp管理界面,点击管理界面上的修改按钮,进入updateBook.jsp界面(如图5.7所示)进行各项内容修改,单击提交按钮,弹出页面修改成功(如图5.8所示),单击返回按钮进入searchBook.jsp界面。
主要用到:a、entity实体层:BookInfo.java创建图书的方法。
b、dao实现类:BookInfoDAOImpl.java运用Hibernate实现修改,其涉及到的接口为:BookInfoDAO.java。
c、Action控制层:BookInfoAction.java。
运行界面如图所示:
图5.7修改图书界面
图5.8修改成功界面
6.删除图书功能
详细介绍:当管理员进入searchBook.jsp管理界面(如图5.9所示),点击管理界面上的删除按钮,弹出页面删除成功(如图5.10所示),否则删除失败。
主要用到:a、entity实体层:BookInfo.java创建图书的方法。
b、dao实现类:BookInfoDAOImpl.java运用Hibernate实现删除,其涉及到的接口为:BookInfoDAO.java。
c、Action控制层:BookInfoAction.java。
运行界面如图所示:
图5.9删除图书界面
图5.10删除成功界面
7. 添加客户订单功能
详细介绍:当用户进入index.jsp界面,点击界面上的购买按钮,在addOrder.jsp界面(如图5.11所示)进行订单内容填写,单击提交按钮,弹出页面添加成功(如图5.12所示),单击返回按钮进入index.jsp界面,否则,失败。
主要用到:a、entity实体层:OrderInfo.java创建图书的方法。
b、dao实现类:OrderInfoDAOImpl.java运用Hibernate实现用户登录,其涉及到的接口为:OrderInfoDAO.java。
c、Action控制层:OrderInfoAction.java。
运行界面如图所示:
图5.11添加订单界面
图5.12添加订单成功界面
8.查看根据客户编询号查订单信息
详细介绍:当用户进入index.jsp界面,点击界面上的查看订单按钮,在Order_select.jsp界面(如图5.13所示)进行客户编号内容填写,单击提交按钮,页面跳到Order_info.jsp(如图5.14所示)中,查出该客户的所有订单。
主要用到:a、entity实体层:Customer.java创建图书的方法。
b、dao实现类Customer DAOImpl.java运用Hibernate实现用户登录,其涉及到的接口为:Customer DAO.java。
c、Action控制层:Customer Action.java。
运行界面如图所示:
图5.13查询客户订单界面
图5.14客户订单显示界面