基于javaEE的网上游戏角色皮肤商店系统的实训报告

更新时间:2024-07-02 07:12:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于JAVA开发设计实训

课设报告

桂林电子科技大学

海洋学院

课设选题: 专业: 日期: 组长学号:

基于JavaEE设计的游戏角色皮肤商店

计算机科学与技术 2016年10月11日

1316040139

组长姓名:

银杰

1

目录

一、 绪论......................................................................................................................................... 1 二、项目的需求分析 ....................................................................................................................... 2 三、项目的概要设计 ....................................................................................................................... 3

3.1 功能设计 ....................................................................................................................... 3 3.2 数据库设计 ................................................................................................................... 4 四、项目的详细设计 ....................................................................................................................... 6 五、总结......................................................................................................................................... 17 参考文献......................................................................................................................................... 18

2

一、 绪论

随着网络的发展,基于计算机对信息管理的高效性,各种信息管理平台跃入人们的视野。其中,网上商店就是典型的信息管理系统(MIS)。

本系统是基于JavaEE三层结构的B/S(Browser/Server)模型软件,包含以下三个部分:表示层、业务逻辑层和数据访问层。结合MVC框架模式的分层结构,将应用分成Model(模型)、View(视图)、Control(控制)3个部分。3个部分以最少的耦合协同工作,从而提高了应用的可扩展性和可维护性。它使用了目前最为流行的Java语言,结合JSP技术,在MyEclipse集成开发环境下编写,用户界面友好。其中B/S结构得以让数据在浏览器上显示,数据处理在服务器上进行,用户不必安装客户端,而且数据通过服务器端的统一管理,保证其一致性。另外系统使用小型关系型数据库MySQL作为网站的后台数据库系统。

本系统总体可分成两大基本功能:前台管理和后台管理。前台管理主要包括用户注册、登录、注销、浏览商品、订购商品、提交订单、查看信息等功能。后台管理主要包括登录、维护、订单处理、确认订单、发送订单等功能。通过对各个模块的实现、集成,最后完成的系统可以为用户提供基本的服务,并且可以根据管理员的需要,对用户的信息以及商品信息实施管理。

对于不同的使用者,系统的功能与业务逻辑是不完全相同的。对于用户而言,系统主要向用户展示一个友好美观的界面,方便用户浏览各类商品信息,查询商品信息,以及订购商品。而管理员则需要在后台维护这些数据。本系统的主要功能是实现用户购买,用户通过查询商品信息,找到满意的,将这些商品添加到购物车,进而完成购买。

1

二、项目的需求分析

网上皮肤商店基于JavaEE三层结构的B/S(Browser/Server)模型软件,B/S模型是目前最为流行的体系结构,它无须开发客户端软件,维护和升级方便;可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统;具有良好的开放性和可扩充性;可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。因此该结构在信息技术领域中获得巨大成功。结合MVC框架模式的分层结构,将应用分成Model(模型)、View(视图)、Control(控制)3个部分。3个部分以最少的耦合协同工作,从而提高了应用的可扩展性和可维护性。按这种模式设计的程序,多个视图可以对应一个模型,模型返回的数据与显示逻辑分明,程序结构清晰,易于维护。它使用了目前最为流行的Java语言编写,拥有稳定、可移植、安全等优点,结合JSP技术,在MyEclipse集成开发环境下完成,用户界面友好。其中B/S结构得以让数据在浏览器上显示,数据处理在服务器上进行,用户不必安装客户端,而且数据通过服务器端的统一管理,保证其一致性。另外系统使用小型关系型数据库管理系统MySQL作为网站的后台数据库系统,体积小、速度快。

由于对JavaEE及MySQL的熟悉,通过自身的专业知识结合实际情况,此系统的编写与实现是可行的。同时,网页的实现遵循兼顾美观与高效的原则,使整个网站在保证功能的前提下,给浏览者带来良好的视觉享受。

伴随着计算机网络技术的普及和应用,即使是非专业人士也已经对计算机的基本操作和维护有了一定的了解和认识,本网站在进行界面设计时,充分考虑到顾客及管理员的习惯,严格依据用户界面设计的原则和规范,操作简单明了,统计准确,适应力强,容易扩充,数据的输入等规范可靠。

系统分成前台和后台两大部分。

前台针对于普通用户。游客进入网站,可查阅图书信息,注册成为网站用户,用户名进行登录,登陆后可进行购买等操作,游客则不能。

后台针对于管理员。管理员登陆后,可进行商品信息的删除操作,以及订单管理。

系统严格依据用户界面设计的原则和规范进行设计,易用、规范、合理、美

2

观协调。

网上皮肤商店的主要功能就是让用户能够足不出户就可以购买到自己想要的商品,所以网上商店系统主要提供如下功能:

? 用户能够使用本网站完成商品的浏览、查询和购买。

? 普通用户只能浏览商品信息,浏览分为3种方式:按类别浏览、按条件

浏览、查询商品。

? 普通用户通过注册成为注册用户,注册后的用户可以登录。

? 注册用户登录后可以进行在线商品购买,购买的商品存放在购物车中,

可以对购物车中的商品数量进行修改、删除。调整好购物车中内容后,可以把该内容保存到订单中,在保存订单的时候要求用户填写送货地址和联系方式。订单提交后用户可以开始新的购物过程。

? 对于后台系统,要求可以进行商品目录的维护,订单可以查询详细信息,

对留言板的信息进行管理。

三、项目的概要设计

3.1 功能设计

表3-1给出了商店的模块划分 模块名 首页 管理员管理 用户管理 子功能 网站首页 管理员登陆 用户登录 用户注册 浏览所有商品 商品浏览 按类别查询 按名称模糊查询 添加到购物车 商品订购 浏览购物车 删除购物车的商品 保存购物车到订单 描述 最新商品和特价商品信息,登录界面,类别分类 提供用户名、密码后可以登录系统 提供用户名、密码后可以登录系统 填写详细资料后成为正式注册用户 列出所有商品,并且分页显示 根据选择的类别查询出所有商品 根据名称和类别做模糊查询 把需要的商品添加到购物车 显示购物车中的内容 购物车中的商品可以删除 把购物车的内容保存到订单中 3

后台订单 管理 浏览商品订单 删除商品订单信息 显示商品订单信息 删除商品订单信息 表示已经完成了该订单 表3- 1功能划分表

3.2 数据库设计

系统数据库命名为bookstore,8个数据表分别为admin(管理员)、user(用户)、replytable(回复)、catelog(商品分类)、book(商品)、orders(订单)、orderitem (订单项)、messa(留言)。

1.商店管理员表(admin):管理员登陆是需要管理员账户和密码的,所以管理员数据表中必须包含账户(name)和密码(password),从功能上数据表的设计,如表3-2所示。

列名 name password 数据类型 varchar(45) varchar(45) 空值 非空 非空 表3- 2管理员数据表

2.用户表(user):用户id(userid),用户名(username),密码(password),性别(sex),年龄(age)。如表3-3:

列名 userid username password sex age 数据类型 int(11) unsigned varchar(45) varchar(45) varchar(45) Int 表3- 3用户数据表 空值 非空 非空 非空 主键 3.商品分类表(catelog):id(catelogid)和类名(catelogname)。如表3-4: 列名 catelogid catelogname 数据类型 int(11) unsigned varchar(45) 空值 非空 非空 主键 表3- 4图书分类数据表 4.商品表(book):商品id(bookid)、书名(bookname)、价格(price)、图片(picture)

4

等,与商品分类表是一对多的联系,使用外键cat_id进行关联。具体如下表4-5:

列名 bookid catelogid bookname price picture 数据类型 int int varchar(45) int varchar(45) 表4 -5商品数据表

主键 外键 空值 非空 非空 非空 非空 非空 5.订单项表(orderitem):订单项编号(orderitemid)、商品编号(bookid)、订单编号(orderid)。订单项表与订单和商品是一对多的关系,两张表通过订单号(orderid)和商品分类编号(catelogid)进行关联。具体如表5-6所示。

列名 orderitemid bookid orderid quantity 数据类型 int(11) unsigned int(11) unsigned zerofill int(11) unsigned zerofill float 表5- 6订单项表

主键 外键2 外键1 空值 非空 非空 非空 非空 6.订单表(orders):订单编号(orderid)、用户编码(userid)、订单日期(orderdate)等。订单表与订单项、用户都存在一对多的关联,使用外键用户编码(orderid)和书号(ordeid)关联。如表6-7:

列名 orderid userid orderdate 数据类型 int int timestamp 空值 非空 非空 非空 主键 外键 表6- 7订单表

7.留言(messa):具体如表7-8。 列名 name sex email 数据类型 varchar(45) varchar(45) varchar(45) 空值 5

subject memo varchar(45) varchar(45) 表7-8留言

8.回复(replytable):具体如表8-9。 列名 name subject reply time

数据类型 varchar(45) varchar(45) varchar(45) timestamp 空值 表7-8留言

四、项目的详细设计

从前面的需求分析中我们得知,可以将网上皮肤商店的功能分为前台功能实现和后台功能实现,因此模块课分为两类,前台和后台。系统模块层次图,如图所示:

图4- 1功能模块图

前台商品浏览模块 个人信息管理 普通 用户 MyPetShop 网站 管理员 用户 购物车模块 订单、结算模块 留言板管理 商品信息查看 商品信息管理 订单管理 6

图4- 1系统流程图

开 始 用户注册 查看商品 查看各地天气 访问购物车 搜索商品 填写注册信息 注册失败 注册结果 登录网站 注册成功 登录失败 登录并判断角色 登录成功 匿名用户 判断权 限 合法用户 自动登录 查看购物记录 购买商品 添加 修改 购物 车中 商品 订单、结算 个人信息 注 销 结 束 7

皮肤商店主界面模块设计的实现:

图4 3主界面

1.用户注册模块设计的实现,如图:

图4 4用户注册

2.用户登录模块设计的实现:

图4- 5用户登录

3.管理员登录界面设计,如图4-6:

8

图4- 6管理员登录

4.在搜索栏中输入查询的信息,皮肤名,可实现查询功能,如图:

图4- 7搜索栏

5.用户选择自己要买的皮肤添加到购物车中,然后填写收货的相关信息生成订单。以及订单查看,如下图:

图4-8皮肤购买

图4-9查看订单

9

6.管理员的管理界面如下

图4-10理员管理订单和留言板

7.以下为留言板的功能界面

10

8.添加皮肤到购物车

图4- 11类

11

图4- 12品添加

9.用户FQA的界面如下:

12

10.订单的删除

图4- 13订单管理

13

1.以下为购物车逻辑实现代码1 //添加到购物车 public String addToCart() throws Exception{ Book book=bookService.getBookbyId(bookid); Orderitem orderitem=new Orderitem(); orderitem.setBook(book); orderitem.setQuantity(quantity); Map session=ActionContext.getContext().getSession(); Cart cart=(Cart)session.get(\ if(cart==null){ cart=new Cart(); } cart.addBook(bookid, orderitem); session.put(\ return SUCCESS; } //删除购物车 public String updateCart() throws Exception{ Map session=ActionContext.getContext().getSession(); Cart cart=(Cart)session.get(\ cart.updateCart(bookid, 0); session.put(\ return SUCCESS; }

//确定订单 public String checkout() throws Exception{ Map session=ActionContext.getContext().getSession(); User user=(User)session.get(\ Cart cart=(Cart)session.get(\ if(user==null || cart ==null) return Action.ERROR; Orders order=new Orders(); order.setOrderdate(new Date()); order.setUser(user); for(Iterator it=cart.getItems().values().iterator();it.hasNext();){ Orderitem orderitem=(Orderitem)it.next(); orderitem.setOrders(order); order.getOrderitems().add(orderitem); } orderService.saveOrder(order); Map request=(Map)ActionContext.getContext().get(\ request.put(\ return SUCCESS;

14

}

2. 以下为购物车逻辑实现代码2 //添加商品到购物车 public void addBook(Integer bookid,Orderitem orderitem){ //是否存在,如果存在,更改数量 //如果不存在的话,添加入集合 if(items.containsKey(\ Orderitem _orderitem=items.get(bookid); orderitem.setQuantity(_orderitem.getOrderitemid()+orderitem.getQuantity()); items.put(bookid,_orderitem); } else{ items.put(bookid,orderitem); } } //更新购物车的购买商品数量 public void updateCart(Integer bookid,int quantity){ Orderitem orderitem=items.get(bookid); orderitem.setQuantity(quantity); items.remove(bookid);//items.put(bookid, orderitem); } //计算总价格 public int getTotalPrice(){ int totalPrice=0; for(Iterator it=items.values().iterator();it.hasNext();){ Orderitem orderitem=(Orderitem)it.next(); Book book=orderitem.getBook(); int quantity=orderitem.getQuantity(); totalPrice+=book.getPrice()*quantity; } return totalPrice; }

3.以下为查看和删除订单的逻辑实现代码

String id=request.getParameter(\从表单获得

String name=(String)session.getAttribute(\从表单获得 try { /** 连接数据库参数 **/

String driverName = \驱动名称 String DBUser = \用户名 String DBPasswd = \密码

String DBName = \数据库名

String connUrl = \\

15

String query_sql = \

book.bookname,book.price,orders.orderid,user.username,orders.orderdate from book,orders,user,orderitem where user.userid=orders.userid and

orderitem.bookid=book.bookid and orderitem.orderid=orders.orderid and user.username=\ String delete_sql = \

Class.forName(driverName).newInstance();

Connection conn = DriverManager.getConnection(connUrl); Statement stmt = conn.createStatement(); try{

if(id != null && id != \

out.println(\已经完成了订单号为\的订单。

\ delete_sql = \orderitem.orderid=orders.orderid and orders.orderid=\ }else{out.println(\查看订单===============================

\ }}catch(Exception e){ e.printStackTrace(); } try {

stmt.execute(delete_sql); }catch(Exception e){ e.printStackTrace(); } try {

ResultSet rs = stmt.executeQuery(query_sql); if(rs!=null){ while(rs.next()) { %>

订单号:<%=rs.getString(\


皮肤名:<%=rs.getString(\
价格:<%=rs.getString(\


用户名:<%=rs.getString(\
订单时间:<%=rs.getString(\ <% } }else{

out.println(\没有订单!\}

}catch(Exception e) { e.printStackTrace(); }

stmt.close(); conn.close();

}catch (Exception e) { e.printStackTrace(); }

16

五、总结

(1)系统完成情况

1316040139 银杰通过这次课设终于完成了基于JavaEE设计的游戏角色皮肤商店系统的设计。尽管系统在功能和性能上可能还有一些缺陷,但是我已经完成了系统设计的任务和目标,达到了需求分析的基本要求,成功完成了JavaEE课程设计。

(2)未能完成的和有待改进之处

未完成的:数据库缺少一些功能表,后台管理功能缺少一些商品的管理的功能 绑定游戏区号的角色,让角色与皮肤匹配等

待改进:商品搜索的设计还不够完善以及留言板的完善,后台管理的完善比如进行查看,修改,删除等操作。其中,商品信息管理和用户信息管理中,管理员可以添加用户以及商品相关信息,一些逻辑上的问题等 (3)课程设计期间的收获

本系统从需求分析、系统总体设计到系统的具体实现对网上商店系统进行全面的论述。网上商店系统采用基于Java开发语言的JavaEE平台进行开发,运用了MVC框架技术Struts2,采用MySQL数据库管理系统以及开源框架Hibernate进行数据存储,对数据库表设计上满足3NF。

本系统在前台界面,实现了用户的登陆,注册以及商品搜索。用户可以使用购物车,进行购买商品,商品价格,查看订单等。后台界面主要是实现了管理员的相关操作,其中有用户信息管理,商品信息管理,商品类别管理以及订单管理。对于这些信息,管理员可以进行查看,删除等操作。其中,商品信息管理和用户信息管理中,管理员可以管理留言板及商品相关信息。

在完成此次的课程设计的过程中,我跨越了传统方式下的教与学的体制束缚,通过自己的思考和设计,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过课程设计,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。

在这次课程设计中,我认识到了自己的不足之处同时我也收获了很多知识和

17

经验,在今后的学习中,我一定勤于思考,并灵活运用所学知识,多进行编程实践。在总结反思和编程训练中,不断提升自己的编程能力。相信在我的努力下,我的程序设计水平一定会不断提高。我逐渐学会了当遇到问题时应该如何面对,如何寻找最有效的解决方案。在这次课程设计中我也知道了自己的动手能力不强,有待于进一步提高。我在这次课程设计中学到很多,我会更加自信的走下去。学习了系统化的开发思想。相信对我以后的学习工作有很大的帮助。

然而,由于本人的水平有限,系统中难免存在着不够完善的地方,由于高等教育的不断改革创新,高校的招生机制也必将随之不断发展,因此本系统也必须随着用户需求的不断提出而逐步改进与完善自己,而这正是软件发展不断迭代求精的思想。系统的发展需要增加自身的可扩充性,使之能与其他软件配合使用,适应更多的应用平台。总之,通过我持之不懈的努力,相信系统的应用前景是非常可观的。

参考文献

[1] 郑阿奇,JavaEE项目开发教程(第2版),电子工业出版社,2013. [2] 耿祥义 张跃平,JSP大学实用教程(第2版),电子工业出版社,2012. [3] 脚本之家,jsp操作MySQL实现查询/插入/删除功能示例_JSP编程_脚本之家,

网址:http://www.jb51.net/article/40351.html,

访问时间2016年10月3日

[4] Jsp+mysql 制作留言板(一) - - 博客频道 - CSDN.NET,

网址:http://blog.csdn.net/hanxintong9/article/details/17470869, 访问时间2016年10月6日

18

本文来源:https://www.bwwdw.com/article/cqz.html

Top