摘 要
目前来看,游戏在未来的体量与影响力将超乎我们想象。根据近20几年的热门游戏类型以及产商研发游戏方向来看,无论是游戏的开发还有游戏的曝光率还是玩家的游戏习惯都在飞速的变化着,随着游戏产业不断发展,越来越多的游戏映入眼帘,不同的人因为生活圈子的不同,对游戏的了解方式也少之又少,不能充分对各种游戏进行了解。因此一个公共的游戏购买与预约系统极为重要,因此特地开发了网上销售。
本系统要制作一个游戏购买与预约集成化的平台,用户可以了解多个平台游戏,游戏商通过这个系统获得人们更多的需求信息,进而进一步发展对应的游戏产业。
本项目采用了JSP技术,MySQL数据库以及JAVA,这个项目基于SSH架构,不仅满足用户的需求,管理员也可以通过登录管理员界面查看用户的各项需求和信息。本课题经过调试,运行比较稳定,几乎没出现过bug。
关键字:网上游戏销售;JSP技术;MySQL 数据库;SSH架构
Game purchase and reservation system design and implementation
Abstract
At present, the size and influence of the game in the future will exceed our imagination. According to the types of popular games in recent 20 years and the direction of game R & D by manufacturers, both the development of games, the exposure rate of games and the game habits of players are changing rapidly. With the continuous development of the game industry, more and more games come into our eyes. Different people know little about games because of their different life circles, Can not fully understand the various games. Therefore, a public game purchase and booking system is very important, so we specially developed online sales.
The system to produce a game purchase and booking integrated platform, users can understand multiple platform games, game companies through this system to obtain more information on people's needs, and then further develop the corresponding game industry.
This project uses JSP technology, MySQL database and Java, this project is based on SSH architecture, not only to meet the needs of users, administrators can also view the needs and information of users through the login administrator interface. After debugging, the project runs stably, almost no bugs.
Key words:Online game sales; JSP technology; MySQL database; SSH architecture
目 录
引 言
随着游戏产业不断发展,越来越多的游戏映入眼帘,不同的人因为生活圈子的不同,对游戏的了解方式也少之又少,不能充分对各种游戏认知。一些年龄各异,以及国家不同的人们,不能够在现实中见面以及进行交流。因此一个公共的游戏购买与预约系统极为重要。
游戏在未来的体量与影响力将超乎我们想象。根据近20几年的热门游戏类型以及产商研发游戏方向来看,无论是游戏的开发还有游戏的曝光率还是玩家的游戏习惯都在飞速的变化着。
本系统要制作一个游戏购买与预约集成化的平台,用户可以通过查看购买人的年龄,国家的分布。对游戏做出充分的判断,以及通过社区和不同年龄国家的人交流,结交朋友,促进文化的发展。其次游戏商通过这个系统获得人们更多的需求信息,进而进一步发展对应的游戏产业。
1 前言
1.1 理论意义和现实意义
伽达默尔的游戏理论是重视游戏自身的地位和作用,"人已不再是游戏的主体,游戏真正的主体是游戏本身,人是游戏的组成部分。"从这里可以看出, 伽达默尔他非常关注游戏与人以及整体与个体的统一。伽达默尔的这一思想可以帮助我们处理很多关系,例如人和人、人和自然以及人和世界。
游戏在未来的体量与影响力将超乎我们想象。根据近20几年的热门游戏类型以及产商研发游戏方向来看,无论是游戏的开发还有游戏的曝光率还是玩家的游戏习惯都在飞速的变化着,在未来,这些变化会给游戏行业带来新的特质:
1.未来游戏会更重视社交。
2.针对各个年龄的人做出游戏。
3.多平台融合将聚集更多人气。
1.2 课题研究及发展状况
1.随着游戏产业不断发展,越来越多的游戏映入眼帘,不同的人因为生活圈子的不同,对游戏的了解方式也少之又少,不能充分对各种游戏认知。
2.一些年龄各异,以及国家不同的人们,不能够在现实中见面以及进行交流。因此一个公共的游戏购买与预约系统极为重要。
本系统要制作一个游戏购买与预约集成化的平台,用户可以通过查看购买人的年龄,国家的分布。对游戏做出充分的判断,以及通过社区和不同年龄国家的人交流,结交朋友,促进文化的发展。其次游戏商通过这个系统获得人们更多的需求信息,进而进一步发展对应的游戏产业。
1.3 课题研究方法
1.调查法:通过搜集整理各个游戏平台的游戏资料,对各类游戏有相应的认知。 2.经验中总结:对各个游戏购买平台的购买以及预约,还有社区,来进行总结。
3.实地调查法:通过去各个网站调查,得知了人们的大致对游戏的需求,得知道部分玩家因为不太了解游戏的内容,以及购买的游戏不适合自己的年龄,导致游戏体验不是太好,浪费了部分的钱财与精力。因此我提议有必要出一个系统游戏的购买平台。
2 相关技术简介
2.1 JSP技术
JSP这种能够独立使用的编程语言可以嵌入在html语言里面运行,正因为JSP参照了许多编程语言的特性,使得JSP在web的脚本技术当中也占有一定的重要位置,对于刚入门编程行业的初学者来讲,JSP这种编程语言不仅容易学习,而且还具备许多高级的特性。在程序的开发过程中,使用JSP也不失为一种正确的选择,像表单数据的收集操作以及字符串信息的处理方面等等,JSP都能很轻松地解决,帮助程序开发者省下许多时间,它拥有面向对象全部机制的特点,而且具有兼容性。总的来说自由选择操作系统、服务器和相应的数据库都可以通过JSP来实现,有两种选择,一个是用于子进程,另一个是用于对象。JSP的优点:只使用一次,运行良好。JSP具有很强的可扩展性和简单性。具有良好的支持和兼容性,可以开发多种语言。适用于各种平台的稳定运行。[1]
2.2 Java技术
Java编程语言具有多种特点,如跨平台、分布式表达、可移植,Java可在不同平台运行,使用Java生成程序可以在世界上一起使用。Java程序设计语言的诞生,一个全新的程序。C++语言遇到一些问题时,Java程序设计语言便出现了。Java的设计者的目标是把Java变成一个简单易用,健康安全,可移植高线程的编程语言,伴随着网络的发展,Java语言也被迅速的使用,适合用于网络应用开发,Java慢慢变成了主流的开发语言。[3]
2.3 B/S结构
B/S(浏览器/服务器)结构是主流网络结构模式。这将集中在系统开发者简化操作、便于维护和使用的服务器上的系统核心功能上。您必须安装浏览器,像那些搜狐,谷歌浏览器。连接以及安装的浏览器和服务器的数据库。ActiceX技术和Web浏览器技术可以用于大部分脚本语言软件中进行。开发者可以节约很多开发的成本。到目前为止,大部分程序开发都用着B/S的结构,因为它没有站点的限制,不用特地的下载软件,只需要可以上网,就可以开发。所有问题不需要在服务器上改动。客户端可以简简单单的解决几个问题。程序和用户作用会被强化。然后,可以实时更新查询。[5]
图2-1 B/S模式三层结构图
2.4 MySQL数据库
网站的开发需要对应的数据库,数据库具有一定的组织结构,它能能够存储信息,管理信息。在数据库刚诞生的时候,只可以简简单单的存储几个表格,存储一些数据,以及修改一些数据。到了现在,数以万计的数据都可以被数据库收录,这期间发生了很多的变动。
这次制作游戏购买与预约的系统使用的数据库是MySQL数据库,这个数据库是大家普遍认为其具有高性能和一定的扩展的数据库。这个数据库是多线程的,开源的数据库的管理系统。MySQL数据库的代码可以在多个平台上使用,即使它的功能不是很强大,但很多人都知道了它,数据库里面可以建立很多表,每一个表都可以产生联系。数据库是很重要的,如果没有连接数据库就不能运行。[4]
3 系统分析
3.1 可行性分析
在这个系统开发之前要进行可行分析,这样是为了减少成本但是不减少功能的问题。我们将从三方面来分析这个程序是否值得制作。
3.1.1 技术可行性
这个系统是在网上进行游戏购买的系统,所以必须考虑到有用上网的功能,此程序在网上可以使用,这样的话就可以不受到地理上的限制,所以该系统必须在B/S结构来进行实施。
本程序主要采用的工具是十分简单学习的,它们分别是MySQL数据库和JSP,我们不需要话大量时间来学习,通过以前的积累对这类软件已经有了相应的了解,所以可以用这两个数据来做出网络销售系统,必定是可行并且高效的。
3.1.2 操作可行性
这个系统的基础界面是很好制作的,通过以前的积累便可以做出,这样的话大部分人只要是不对电脑一点也不了解,都是可以使用这个系统的。这个系统用了JAVA,B/S,这些可以让这个系统更加完善。管理员也可以通过登录来发布资讯,查看用户购买的游戏信息,和订单信息,使此系统更加灵活。
3.1.3 经济可行性
这个系统的基本模式是基于B/S的,所使用的数据库是MySQL数据库。程序对人的要求以及钱财要求较低,经济上也有比较高的可行性
总的来说,这个系统不管在技术,操作还是经济上面都是具有很高的可行性,所以我认为制作这个程序是很有必要的。
3.2 系统性能分析
(1)系统的存储性:因为是网上游戏销售系统,数据库就会大量的使用,这就需要一个优秀的数据库来存储又多又复杂的信息,这样的话还可以保证信息可以实时更新。
(2)系统的易学性:系统的设计是不困难的,即使不需要专心去学也可以让简单的应用。
(3)系统的数据要求:数据录入不能有错误,数据需要及时更新,也可以及时修改,数据不能和其他的数据混合起来,因为这样的话一个数据的改变可能会影响另一个数据。
(4)系统的可靠性:系统应该安全保护系统,让每一个用户的信息得到保障,让用户放心使用。
3.3 系统功能分析
本系统的开发主要是为了用户可以很方便的来查找全平台的游戏以及购买,可以把游戏加入购物车,来统一购买。管理员可以查看用户的购买信息,来进一步分析游戏的购买市场。
用户间静态结构如图3.1所示。
图3.1 用户静态结构图
如果没有登陆的话,只可以查询游戏,和系统公告等等,如果想要购买游戏,把游戏加入购物车就一定要登录。登录后还可以进行留言来告诉大家游戏的好坏。没有账号就需要注册。
用户用例图如图3.2所示。
图3.2 用户用例图
管理员通过登录,可以修改登录的密码,用户注册的管理、新闻资讯、类别信息、游戏的信息、用户的订单信息和留言信息、公告。管理员可以对该系统进行信息添加、信息修改和信息删除。
管理员用例图如图3.3所示。
图3.3 管理员用例图
3.4 数据流程分析
本网上游戏销售系统的顶层数据流图如图3.4所示。
用户信息 订单信息
游戏信息 游戏信息
订单信息 用户信息
更新信息 基本信息
图3.4 顶层数据流图
第一层数据流图,游戏信息、订单信息、用户信息的管理用户可以查看游戏的信息和自己的订单,管理员可以查看用户的信息和订单信息,系统和数据存纯实时联系着。
图3.5 第一层数据流图
没有登录的用户,不可以购买游戏但是可以查看游戏的信息,如果想要购买这个游戏就必须登录。
处理如图3.6所示。
成功 游戏信息
t_goods游戏信息表
非注册 不成功 游戏信息
游戏信息
t goods 下订单信息
t_order订单信息表
已售游戏信息
t_order订单信息表
已售游戏信息 消费记录
t_good游戏信息表 t_user用户信息表
图3.6 用户购买操作流程图
3.5 业务流程分析
用户可以查看系统首页,游戏类别,查询游戏,查看体统公告,查看系统留言。如果想要加入购物车,需要进行注册,这样才可以购买。用户业务流程图如图3.7所示。
阿迪阿
图3.7 用户流程图
本网上游戏销售系统管理员业务流程图,如图3.8所示。
管理员通过登录来进行对应的操作,可以更改用户密码,查看用户,管理新闻,管理类别,管理游戏信息,管理订单和留言以及公告。
图3.8 管理员流程图
4 系统设计
4.1 系统概要设计
基于SSH架构,用JSP技术,连接数据库,可以联网的程序,可以随时使用。
系统工作原理图如图4.1所示。
图4.1 系统工作原理图
4.2 系统结构设计
系统结构设计是将这些小块汇聚成一个单独的功能,再把这些功能汇聚成一个集体。
这个系统有前台和后台两个部分,各部分的功能设计。如图4.2所示。
图4.2 系统结构图
4.3 数据库设计
数据库的好坏关系到程序的开发,表结构需要在数据库中设计,表和表的联系也要在数据库中体现,在数据库设计的期间,要想设计出合适的数据库需要花费很长的时间去考虑。
4.3.1 数据库实体(E-R图)
E-R图也被称之为实体-联系图,它有是由三个部分组成的。在表示规范上用矩形框来代表实体,用菱形框代表实体之间的联系,用椭圆形框来代表实体的属性。根据需求分析和功能设计分析来看,系统主要有以下实体:
管理员,类别,用户,公告,订单,游戏。
本系统E-R图如图4.3所示。
m
n
n
n n
1 1 1
图4.3 本系统E-R图
2、管理员信息实体属性图如图4.4所示。
图4.4 管理员信息实体属性
3、类别信息实体属性图如图4.5所示。
图4.5 类别信息实体属性图
4、游戏信息实体属性图如图4.6所示。
图4.6 游戏信息实体属性图
5、公告信息实体属性图如图4.7所示。
图4.7 公告信息实体属性图
6、订单信息实体属性图如图4.8所示。
图4.8 订单信息实体属性图
7、用户信息实体属性图如图4.9所示。
图4.9 用户信息实体属性图
4.3.2 数据库表设计
下面展示这个系统在数据库中储存的表的详细信息。
管理员信息表如图4.1所示。
名 称 | 字段名称 | 数据类型 | 主 键 | 是否可空 |
编号 | userId | Int(11) | Yes | No |
用户名 | userName | varchar(55) | No | Yes |
密码 | userPw | varchar(55) | No | Yes |
表4.1 t_admin管理员信息表
类别信息表如图4.2所示。
名 称 | 字段名称 | 数据类型 | 主 键 | 是否可空 |
编号 | catelog_id | Int(11) | No | No |
名称 | catelog_name | varchar(88) | No | Yes |
删除 | catelog_del | varchar(50) | No | Yes |
表4.2 t_catelog类别信息表
游戏信息表如图4.3所示。
名 称 | 字段名称 | 数据类型 | 主 键 | 是否可空 |
编号 | goods_id | Int(11) | Yes | No |
类别编号 | goods_catelog_id | Int(11) | No | Yes |
游戏名称 | goods_name | varchar(88) | No | Yes |
游戏描述 | goods_miaoshu | varchar(5000) | No | Yes |
游戏图片 | goods_pic | varchar(50) | No | Yes |
市场价 | goods_shichangjia | Int(11) | No | Yes |
特价 | goods_tejia | Int(11) | No | Yes |
是否特价 | goods_isnottejia | varchar(50) | No | Yes |
是否推荐 | goods_isnottuijian | varchar(50) | No | Yes |
删除 | goods_Del | varchar(50) | No | Yes |
表4.3 t_goods游戏信息表
公告信息表如图4.4所示。
表4.4 t_gonggao公告信息表
字段名称 | 数据类型 | 主 键 | 是否可空 | |
编号 | t_gonggao | Int(11) | Yes | No |
标题 | gonggao_title | varchar(50) | No | Yes |
内容 | gonggao_content | varchar(5000) | No | Yes |
时间 | gonggao_data | varchar(50) | No | Yes |
订单信息表如图4.5所示。
名 称 | 字段名称 | 数据类型 | 主 键 | 非 空 |
编号 | id | int(11) | Yes | No |
订单号 | bianhao | varchar(88) | No | Yes |
订单时间 | xiadanshi | varchar(50) | No | Yes |
用户名 | userName | varchar(255) | No | Yes |
姓名 | userRealname | varchar(255) | No | Yes |
电话 | userTel | varchar(255) | No | Yes |
送货地址 | songhuodizhi | varchar(50) | No | Yes |
付款方式 | fukuanfangshi | varchar(50) | No | Yes |
金额 | jine | int(11) | No | Yes |
状态 | zhuangtai | varchar(255) | No | Yes |
用户编号 | user_id | int(11) | No | Yes |
表4.5 t_order订单信息表
用户信息表如图4.6所示。
名 称 | 字段名称 | 数据类型 | 主 键 | 非 空 |
编号 | user_id | int(11) | Yes | No |
用户名 | user_name | varchar(50) | No | Yes |
密码 | user_pw | varchar(77) | No | Yes |
姓名 | user_realname | varchar(50) | No | Yes |
性别 | user_sex | varchar(55) | No | Yes |
地址 | user_address | varchar(55) | No | Yes |
电话 | user_tel | varchar(50) | No | Yes |
身份证 | user_card | varchar(66) | No | Yes |
删除 | user_del | varchar(55) | No | Yes |
表4.6 t_user用户信息表
5 详细设计与实现
5.1 程序流程图设计
程序流程图是来描述系统逻辑结构的图,程序流程图如5.1所示。
图5.1 程序流程图主界面图
用户流程图如图5.2所示。
图5.2 用户流程图
5.2 系统前台功能模块的实现
用户进入本系统,可查看系统首页、游戏类别、游戏信息以及系统公告等。系统前台主界面展示如图5.3所示。
图5.3 系统前台主界面图
5.2.1 用户注册界面
如果第一次使用需要用户进行注册,用户注册界面展示如图5.4所示。
图5.4 用户注册界面图
5.2.2 用户登录界面
用户需要登录才可以进行更多的操作,登录过程中还需要验证。用户登录界面展示如图5.5所示。
图5.5 用户登录界面图
5.2.3 游戏详情界面
用户在游戏详情界可查看游戏详细信息等,并可输入购买数量进行加入购物车购买操作,游戏详情界面展示如图5.6所示。
图5.6 游戏详情界面图
5.2.4 购物车界面
用户可进购物车界面查看购物车游戏信息,并可对购物车游戏进行修改数量、删除、清空购物车或者进行去收银台结算等操作,购物车界面展示如图5.7所示。当用户点击去收银台按钮时则进入填写收货人信息界面,其界面展示如图5.8所示。
图5.7 购物车界面图
图5.8 填写收货人信息界面图
5.2.5 我的订单界面
用户可以查看自己的订单,并可以进行操作,展示如图5.9所示。
图5.9 我的订单界面图
5.2.6 游戏查询界面
用户在游戏查询界面可通过输入游戏名称的方式进行游戏信息的快速查询,游戏查询界面展示如图5.10所示。
图5.10 游戏查询界面图
5.3 系统后台功能模块的实现
5.3.1 管理员登录界面
管理员要想进入系统后台进行管理操作,必须登录系统后台,管理员登录界面展示如图5.11所示。
图5.11 管理员登录界面图
5.3.2 修改登录密码界面
管理员登陆后可以对用户信息进行操作,展示如图5.12所示。
图5.12 修改登录密码界面图
5.3.3 新闻资讯管理界面
管理员登陆后可以对新闻进行操作,管理界面展示如图5.13所示。
图5.13 新闻资讯管理界面图
5.3.4 注册用户管理界面
管理员在用户管理界面可查看已有注册用户信息,并可对其进行删除操作,注册用户管理界面展示如图5.14所示。
图5.14 注册用户管理界面图
5.3.5 游戏信息管理界面
管理员可添加和删除游戏信息,游戏信息包括类别、游戏名称、介绍、图片以及价格等,同游戏信息管理界面展示如图5.15所示,添加游戏信息界面如图5.16所示。
图5.15 游戏信息管理界面图
图5.16 添加游戏信息界面图
5.3.6 订单信息管理界面
管理员可查看所有订单信息,并可对订单进行受理、删除操作,订单信息管理界面如图5.17所示。
图5.17 订单信息管理界面图
5.3.7 类别信息管理界面
管理员可对游戏的类别进行对应的操作,类别信息管理界面如图5.18所示。
图5.18 类别信息管理界面图
5.3.8 留言信息管理界面
管理员可以看到留言,对留言进行删除和回复,留言信息管理界面如图5.19所示。
图5.19 留言信息管理界面图
6 系统测试
6.1 测试定义
系统测试主要是看程序是否可以运行,各个功能能否实现,是否存在BUG。就算程序完成的再好,进行程序测试时也会也会发现一个重来没有被发现的错误信息。
测试是从头到尾都在进行的,当你每做一个程序,完成一个功能的时候都要对其进行相应的测试,还要进行整体的测试,不能让该功能破坏另一个功能。有时候的错误不仅仅是代码的错误,也可能设计的问题。蝴蝶效应,即使一个小小的错误也可能让整个系统崩盘。测试的目的是看程序是否可以稳定运行,让用户使用的更加简易,满足用户的需求。
6.2 测试目的
测试的目的是看程序是否可以稳定运行,让用户使用的更加简易,满足用户的需求。对于开发者来说,每一个功能都需要进行测试,想要研发多功能软件,测试是必要的。这样的话就不至于完成之后再处理问题,这样会很麻烦。所以单个测试尤为重要,这样会大幅度提升效率。
网上游戏商城完成之后,进行测试,查看程序出现的问题,提高系统的质量,让用户使用的时候更加舒服。我们多次使用了黑盒测试来对这个系统进行测试。
6.3 测试方案
对测试计划的把握是测试方案的重中之重。所有的技术难点应该都被包含在这个测试计划之中。而且我们要保证能与目标形成一致性,以至于能够测试出一些主要存在的错误和一些错误的漏洞。可以完美解决这些问题就只有白盒测试或者黑盒测试。
构造测试是白盒测试的另一个名字,了解与分析程序的结构以及性能功用的,从而我们可以得到最终想要的结果并且观察出是不是每一条程序都能得到。
性能测试是黑盒测试别称,程序本身的运作通过程序的进程来观察,主要是看一下程序是不是能够像我们预期的目标那样发展,看一看我们的程序最终能不能完整的得到我们最后想要的功能和储存想得到的数据,到最后看一下我们的这个程序完整性能不能达到要求。[11]
单元测试就是模块测试,顾名思义就是测试每个模块所承担的功能是否能够实现,这个测试就是为了找出代码在实际的设计运转中某一些小的程序所出现的偏差,很好地改正这些错误,就说明我们模块测试进行很成功过。
集成测试就是对系统的测试以及对他子系统的一些性能测试,他检查的事系统的包装程序信息。找出其中的问题。他的优势主要有以下这几点:
软件耗费较少。
可以提前发现端口的错误。
更好的地位系统中错误的位置。
从底部往上面进行的方案针对于偏下层的结构,而中间的结构就采用折中的方法。
终于到了结尾性的工作了。就是为了给用户看一下我们的系统功能是否达到了预期的效果。我采用了性能测试也就是黑盒测试对系统进行测试。
其结果是分别是:
有一定的差异在用户的需求。
再者就是结果与之差不了多少。
到了最后了,我们发现的问题都是与用户的需求存在一定的关联。
6.4 主页面的登录模块测试
如表6.1所示。
表6.1 测试登录表
模块名称 | 测试用例 | 预期结果 | 实际结果 | 是否通过 |
登录模块 | 用户名:空值 密码:空值 | 弹出错误提示: 请输入用户名 | 登陆失败,提示请输入用户名 | 通过 |
登录模块 | 用户名:user1 密码:空值 | 弹出错误提示: 请输入密码 | 登陆失败,提示请输入密码 | 通过 |
登录模块 | 用户名:user1 密码:psw1 | 弹出错误提示: 账号、密码错误 | 登陆失败,提示用户名或密码错误 | 通过 |
6.5 测试分析
这个系统通过测试,所预想的功能都可以实现,具有完整的功能,操作界面比较简洁,虽然有些缺陷但是会继续修改的,这些需要很多时间来搭配系统的外观,有些代码比较繁琐是因为技术的应用不熟练。
经过分析,本系统可以满足用户的基本需求,操作也比较简单,是一个值得让大家使用的游戏购买平台。总体而言,这个软件大致通过了测试。
总 结
这个系统设计基本完成,再设计这个系统时,学到了很多的东西,也体会到了自己来钻研代码,钻研程序的乐趣,这让我得到了很多锻炼。即使是很小的程序错误也会让整个系统崩盘,当出现错误时要记住这个错误,避免再次发生这个错误。有一些地方不熟悉的时候我会去看一些程序,来看它们是如何运行的,多参考参考,自己不会的地方便会迎刃而解了。甚至有的时候还会出现低级错误,例如字符是汉语的,代码拼错,少些括号等等,这些让我更加的细心。当有些错误自己搞不懂时也会请教同学和老师,他们会为我细心地解答。
在开发程序的时候会出现很多的问题,不过在程序完成时进行了大量的测试,总的来说程序可以正常运行。在做毕设当中自己的知识也在不断的积累,在完成这个项目的时候会有成就感,也让我感觉非常自豪。