郑州大学(软件学院)实习报告学生姓名王鑫院(系)软件学院专业软件工程指导教师韩梦薇2014年12月目录1 绪论 (1)1.1 课题的研究意义 (1)1.2 本论文的目的、内容及开发环境和工具 (1)2 研究现状及设计目标 (1)2.1 相近研究课题的特点及优缺点分析 (1)2.2 现行研究存在的问题及解决办法 (1)3 要解决的几个关键问题 (2)3.1 研究设计中要解决的问题 (2)3.2 具体实现复杂性分析 (3)4 系统设计及结构 (4)4.1 数据库设计 (4)4.2 系统结构图 (6)5 系统实现技术 (7)5.1 分模块详述系统各部分的实现方法 (7)5.2 程序流程 (13)6 性能测试与分析 (13)6.1 测试实例(测试集)的研究与选择 (13)6.2 测试环境 (14)6.3 性能分析 (14)7 结束语 (14)参考文献 (15)1 绪论1.1 课题的研究意义近年来,网络技术迅猛发展,人类已经进入了信息化社会。
随着人们消费观念和生活方式的改变,网上购物凭借其简单、快捷的特点逐渐融入了人们的生活中适应了当今社会快节奏地生活,使人们足不出户便可以方便快捷轻松地选购自己喜欢的商品。
1.2 本论文的目的、内容及开发环境和工具1.论文的目的、内容网上购物系统,是在网络上建立一个虚拟的购物商场,避免了挑选商品的烦琐过程,使您的购物过程变得轻松、快捷、方便,很适合现代人快节奏的生活;同时又能有效的控制“商场”运营的成本,开辟了一个新的销售渠道。
本系统是一个中小型的电子商务系统,可以为各类用户提供方便的在线购物环境,符合目前国内流行的电子商务模式。
用户可以再系统中实现注册、登录、修改个人信息、分类查询商品信息、购物、管理购物车、结账和查看各种服务条款等功能。
通过后台管理模块可以实现后台管理员对会员、商品、物流、订单和系统管理。
2.开发环境和工具开发系统:Windows7旗舰版开发工具:MyEclipse2014+Tomcat7.0+IE浏览器+MySQL开发技术:Java+数据库+Jsp+Html2 研究现状及设计目标2.1 相近研究课题的特点及优缺点分析相比于传统购物模式少了言语交流而有了更多的填单与确认过程,让人稍感不便外。
总的来说,不受时间、地域限制、便捷、安全、省时省力等优点还是为买卖双方带来了不少好处。
2.2 现行研究存在的问题及解决办法网上购物系统是比较常见而求被广泛应用的系统,本系统的开发主要是购物车功能、订单功能和支付的实现,传统的购物模式,最令人烦恼的问题就是——商品的进货、出货、交易以及顾客对其所购商品不满而引发的退货问题等等。
现在市场上类似流行的网站或平台有很多。
3 要解决的几个关键问题 3.1 研究设计中要解决的问题1.界面设计界面布局设计是本系统中的一个重要的环节,本系统采用B/S 结构,即浏览器/服务器模式。
2.功能需求网上购物系统的功能模块有很多,大体可被简单地划分为两部分:前台模块和后台模块。
(1)前台模块:该模块主要供顾客使用,包括登录模块、注册模块、搜索模块、购物车模块、支付模块等。
前台模块功能结构图如图3.1所示。
图3.1 前台模块结构图① 登录模块本系统的登录模块提供网站用户的登录功能,包括用户名和密码的输入,此模块连接数据库,点击登录按钮,验证核实之后进入系统主界面。
② 注册模块本系统的注册模块提供网站游客的注册功能,输入个人资料,注册成为网站会员。
包括用户名、密码、确认密码、性别、年龄、电子邮箱、验证码、地址和联系方式。
③ 搜索模块本模块提供了两种搜索功能。
包括模糊搜索和条件搜索。
模糊搜索即关键字搜索,用户输入自己想要商品的关键字,点击搜索按钮,进行搜索。
④ 购物车模块购物车模块相当于现实中的购物车,用于暂时存放用户挑选的商品。
可以显示所前台模块前台模块登录模块登录模块注册模块注册模块搜索模块搜索模块购物车模块购物车模块支付模块支付模块选商品的价格、数量、小计和总计。
模块功能包括单件商品的增减及删除,小计表示同类商品的价格,总计表示所选商品的总计价格。
确认无误后,点击结算,便可生成订单。
⑤ 支付模块本模块提供了网上购物系统的支付功能。
用户接收商品,确认试用后,点击支付,给予评价,完成此次交易的最后一步。
(2)后台模块:该模块主要供管理员使用,包括商品管理模块、会员管理模块、订单管理模块、公告模块等。
后台模块功能结构图如图3.2所示。
图3.2 后台模块结构图① 商品管理模块网上购物系统的商品管理模块主要为管理员提供商品管理功能。
管理员可修改商品信息,包括价格、库存、上架以及下架。
② 会员管理模块会员管理模块为管理员提供了管理网站会员的功能。
可以分配网站会员一定权限,也可删除会员。
③ 订单管理模块此模块的功能主要为订单处理功能。
管理员查看订单信息,给用户派送商品,等用户支付之后,修改订单状态,完成此次交易。
④ 公告模块公告模块用来显示网站的一些活动、奖励、上架新品、特价商品以及下架通知等信息。
3.数据库的设计后台模块后台模块商品管理模块商品管理模块会员管理模块会员管理模块订单管理模块订单管理模块公告模块公告模块数据库是所有信息类系统的基础核心,它把系统中出现的大量数据按照一定的规则存储起来,提供检索数据的功能。
4 系统设计及结构4.1 数据库设计1.数据库表的设计(1)用户信息表(User_id,User_name,Password,Real_name,Age,Gender,Address,Email,Is_Admin,Phone),其中User_id为关键字。
该表用来存储用户id、用户名、密码、真实姓名、年龄、性别、地址、电子邮箱、是否为管理员和联系方式。
表的结构如表4-1 所示。
表4-1 用户信息表(2)商品表(Product_id,Name,Kind_id,Price,Uptime,Downtime,Count,Month_sell,Pro_picture,Describe),其中Product_id为主键,Kind_id为外键。
该表用来存储商品id、商品名称、种类id、商品单价、上架时间、下架时间、库存量、月销量、商品图片和商品描述。
表的结构如下表4-2所示。
表4-2 商品信息表(3)商品种类表(Kind_id,Father_id,Kind_name,Kind_grade),其中Kind_id 为主键。
该表用来存储种类id、父种类id、种类名称和种类等级。
表的结构如表4-3所示。
表4-3 商品种类表(4)订单项表(Item_id,Order_id,Product_id,Product_count,User_id),其中Item_id为主键。
该表存储订单项id、订单id、商品id、商品数量、用户id。
表的结构如表4-4所示。
表4-4 订单项表(5)订单表(Order_id,Pay_way,Deliver_way,Address,Receive_name,Postcode,Receive_phone,User_id,State,isPaid),其中Order_id是主键,User_id为外键。
该表用来存储订单id、支付方式、送货方式、送货地址、收货人姓名、收货人联系方式、邮政编码、用户id 、订单状态、是否付款。
表结构如表4-5所示。
表4-5 订单表订单id Order_id Int Primarykey支付方式Pay_way Varchar送货方式Deliver_way Varchar送货地址Address Varchar收货人姓名Receive_name Varchar收货人联系方式Receive_phone Varchar邮政编码Postcode Varchar用户id User_id Int Foreignkey订单状态State Varchar Default是否付款isPaid Varcahr Default2.数据库表的关系图根据需求分析和上述的数据库设计,我们得出数据库表的E-R图,如下图4.1所示。
图4.1 数据库表的关系图4.2 系统结构图结构图以模块的关系为线索,用自上而下的连线表示调用关系并注明参数传递的方向和内容。
根据第三章节的功能分析,可以得出本系统总体结构图。
如图4.2所示。
图4.2 网上购物系统总体模块结构图5 系统实现技术5.1 分模块详述系统各部分的实现方法1.登录经过上述的各项步骤之后,基本上完成了一个网上购物系统的开发。
本系统的登录界面如下图所示。
输入用户名和密码,单击登录按钮,与数据库的用户信息表进行验证,核实身份后进入系统主界面。
登录界面如图5.1所示。
图5.1 登录界面对应的部分程序代码为: @Overrideprotected void service(HttpServletRequest request, HttpServletResponse response)网上购物系统网上购物系统商品管理模块商品管理模块会员管理模块会员管理模块订单管理模块订单管理模块公告模块公告模块支付模块支付模块购物车模块购物车模块搜索模块搜索模块注册模块注册模块登录模块登录模块前台模块前台模块后台模块后台模块throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String username = request.getParameter("username");String password = request.getParameter("password");PrintWriter out=response.getWriter();try {User u = Userdao.getUser(username);if(u != null){if(u.getUser_password().equals(password)){request.getSession().setAttribute("user", u);response.sendRedirect("/dog_heaven/jsp/main.jsp");}else{out.println("<script>alert('密码错误');window.history.go(-1)</script>");}}else{out.println("<script>alert('用户名不存在');window.history.go(-1)</script>");}}catch (SQLException e) {e.printStackTrace();}}2.注册如果用户还不是本网站会员,就只能浏览商品,没有购物车功能,也不购买商品。