资源描述
网上书城系统设计
第一章 绪论
1.1 课题背景、目的及意义
源码请联系企鹅号 115632 216 5
1.1.1 课题背景
随着互联网的普及和电子商务的兴起,网上图书销售是互联网电子商务在图书销售行业中的必然结果,这种新型的图书销售形式越来越受人们的欢迎,正在以不可阻挡的气势替代着传统的图书销售模式。其与传统销售模式相比拥有许多优势,一是降低了销售成本,二是利用互联网作为交易平台,是的交易活动不受时间和空间的限制,大大提高了交易的效率,三是互联网更加的灵活方便,足不出户就能知道最新的图书信息。正是由于这些优势网上图书销售才得以飞速发展,客户通过网上图书交易系统可以查看图书并实现在线购买.
1.1.2 目的和意义
工作效率一直是人们追求的,特别是在竞争日益激烈的今天,因而提高工作效率是每个企业面临的重大问题。爱学习网上书城系统就是为了解决这个重大问题而开发的一套完整在线交易图书的系统.爱学习网上书城系统大大降低了人力、物力,并实现24小时营业。网上书城系统更加有利于让图书的交易趋向全球化,为人们提供更加便捷的服务.
1.2 国内外研究现状
1.2.1 国外的研究现状
网上图书销售是全球经济飞速发展的必然结果,国与国之间互联网的开通更是促进了交易全球化的发展。特别是在美国、德国、日本经济发达的国家,网上图书销售发展迅速,几乎取缔了传统的图书销售模式。据InternetWorldStatS的统计,截止目前全球互联网用户已经达到40亿,网民的迅速增长为网上图书销售开辟了空间和市场,目前国外的网上图书销售也正处于水深火热之中,正在不断开发与完善.
1.2.2 国内的研究现状
中国的互联网相对于国外来说虽然起步较晚,但是近几年来发展的非常迅速,在全球40亿网民中仅中国网民就占据7.7亿,这位电子商务在中国的发展开辟了道路,使得网上图书销售变得越来越流行。淘宝就是一个非常有说服力的电子商务成功案例,还有京东、亚马逊等这样的电商的成功创办,都足以说明我国近几年互联网的飞速发展。预计2020年网上图书销售已经普通百姓的消费手段.
第二章 可行性分析
2。1社会可行性
随着计算机的普及和网络的发展,网络已经渗透到各家各户,现在的网民可以在网上购买到任何图书,爱学习网上书城系统主要目的是进行网上售书,严格按照法律法规进行研发,并无法律和政策方面的限制。
2。2技术可行性
本系统采用jsp、Servlet、Mysql开发,Hbuilder进行前台页面设计,采用原生JDBC方式与后台数据库进行连接。在项目搭建方面采用三层架构,此架构技术目前已经相当成熟,在技术方面不存在问题。
2。3操作可行性
本系统对计算机硬件要求很低,目前绝大多数计算机都可以对本系统进行安装,而且安装本系统不会对原来计算机设置等进行改变,相关人员能熟练方便的安装本系统。
2.4 系统的技术介绍
2。4。1 JavaScript
JavaScript是一种基于对象动态类型的脚本语言,器功能非常强大,目前被广泛应用于web项目的开发,它的跨平台性非常强,绝大多数浏览器都支持.用于为前端页面事件触发效果.
2。4。2 JQuery
JQuery是一个由JavaScript封装的框架,更确切的说是一个库,它包含了很多由原生JavaScript写的函数,可以直接调用,开发效率很高,例如直接对DOM对象的操作,制作动画效果还有更加便捷使用Ajax进行异步访问,而且JQuery是开源免费的.
2.4。3 JSP
Jsp的中文名称是java服务器页面,它实现了HTML语法中对Java的扩展,可以直接在页面通过"<% %>"的形式进行利用Java代码控制特效和数据的传输,jsp技术更容易使页面逻辑与功能逻辑相分离,从而降低系统耦合性,使开发和维护工作更加方便。目前绝大多数项目使用Jsp技术。
2。4.4 Mysql
Mysql是一个开源的小型数据库管理系统,其体积小、速度快、拥有成本低,是中小型企业开发的优先选择。而且其在性能方面也是十分好的.
2.5 系统开发平台和运行环境
2。5。1 系统的开发平台
系统开发采用eclipse+tomcat。Eclipse最初是由IBM公司开发的替代Visual Age for Java的下一代IDE开发环境。其发展经历了很多版本的更新,其中Mars版本是目前最新版本,可以胜任JavaEE大型项目,而且eclipse没有集成太多插件,在性能方面有优于myeclipse。Tomcat是一个开源的免费的Servet容器,相当于一个服务器,只需要把项目打成WAR包上传到webapp目录,启动就能正常访问.
2.5.2 运行环境
操作系统:windwos XP以上
服务器: tomcat6。0以上版本
浏览器: IE、谷歌、火狐、360浏览器
第三章 需求分析
3.1系统总体功能分析
《爱学习网上书城系统》采用电子商务中经典的B2C模式,代码架构采用MVC方便开发和后期的维护.
1。主要功能包括:前台:前台功能主要是给用户提供搜索书籍和购买使用,主要有:
1. 用户管理模块:用户的注册、登录、激活、修改个人信息、以及退出.
2. 图书搜索:通过键入书名,支持模糊查询,即输入关键字可搜索图书。
3. 图书分类:书籍有两级目录,第一级为总体类别,第二级为详细类别,方便用户找到自己想要的图书.
4. 购物车模块:用户把自己要购买的书籍加入购物车,同时可以修改和删除购物车中图书的信息.
5. 订单管理模块:包括支付功能,订单的管理,查看订单状态,取消未付款的订单,确认收货.
2 后台为商家和管理员使用,主要功能有:
1.1 管理员登录功能
1.2 分类管理:查看所有分类信息,修改或删除一级分类信息和二级分类信息.
1.3 图书管理:对图书的增加、修改和删除,并提供高级搜索功能。
1.4 订单管理:查看所有订单、按状态筛选查看订单,取消订单,发货.
3。2系统功能模块设计
根据系统总体功能,详细的功能逻辑实现如下图:
前台页面展示
分类管理
订单管理
购物车管理
图书管理
用户管理
生成订单
订单支付
看看我的订单
我的订单
取消未支付订单
查看订单详情
删除购买图书
修改购买图书
添加购买图书
查看我的购物车
高级查询
查看图书详情
按分类查看图书
第二级分类
第一级分类
退出
登录
激活
修改信息
用户注册
后台管理模块
后台设计:
订单管理
图书查询
分类显示
按状态查订单
订单发货
取消订单
订单详情
查看所有订单
高级查询
按分类查询
查看图书详情
修改图书
删除图书
添加图书
修改二级分类
查看二级分类
查看一级分类
删除一级分类
删除二级分类
修改一级分类
添加二级分类
添加一级分类
3.3数据库分析
任何系统的运行都会产生一系列的数据,这些数据在会在以后用到,因此数据的存储是非常必要的.本系统采用Mysql存储数据。
3.1 概念模型设计
概念模型是为了把现实世界中的事物抽象为信息世界中的数据模型,然后再把信息世界中的数据模型转换为机器世界中可以用某一DBMS支持的数据模型。在信息世界中概念模型有实体和关系。实体是现实世界中可以具体的某一人或者事物,关系是指实体内部或者实体之间去联系,可以分为三种,一对一,一对多和多对多关系.在本系统根据业务流程绘制E-R图如下:
管理
图书分类
购物车
n
管理
属于
管理员
管理
图书
购买
订单
生成
管理
用户
1 1
1 1
1 n n 1
1
N n
3.2 逻辑数据模型
表3.1 t_book 图书信息表
中文名称
英文名称
数据类型
主键
外键
书号
bid
char(32)
主键
书名
bname
varchar(200)
作者
author
varchar(50)
原价
price
decimal(8,2)
优惠价
currPrice
decimal(8,2)
折扣
discount
decimal(3,1)
出版社
press
varchar(100)
出版时间
publishtime
char(10)
版次
edition
Int(10)
页数
pageNum
Int(10)
字数
wordNum
Int(10)
印刷时间
printtime
char(10)
开本
booksize
Int(11)
纸张
paper
varchar(50)
分类号
cid
char(32)
外键
大图
image_w
varchar(100)
小图
image_b
varchar(100)
序号
orderBy
Int(11)
表3.2 t_cartitem 购物车信息
中文名称
英文名称
数据类型
主键
外键
购物车id
cartItemId
char(32)
主键
数量
quantity
Int(11)
书号
bid
char(32)
外键
用户id
uid
char(32)
外键
序号
orderBy
Int(11)
表3。3 t_category 图书类别
中文名称
英文名称
数据类型
主键
外键
分类号
cid
char(32)
主键
类别名称
cname
Int(11)
父id
pid
char(32)
外键
描述
desc
char(32)
序号
orderBy
Int(11)
表3.4 t_order 订单信息
中文名称
英文名称
数据类型
主键
外键
订单号
oid
char(32)
主键
下单时间
ordertime
char(19)
总价
total
Decimal(10,2)
订单状态
status
Int(11)
收获地址
address
Varchar(1000)
用户id
uid
char(32)
外键
表3.5 t_orderitem 订单详细信息
中文名称
英文名称
数据类型
主键
外键
订单id
orderItemId
char(32)
主键
数量
quantity
Int(11)
总价
subtotal
Decimal(10,2)
书号
bid
Int(11)
书名
bname
Varchar(1000)
购买价
currPrice
char(32)
小图
image_b
订单号
oid
外键
表3。6 t_user 用户信息表
中文名称
英文名称
数据类型
主键
外键
用户id
uid
char(32)
主键
登录名
loginname
varchar(50)
登录密码
loginpass
varchar(50)
邮箱
email
varchar(50)
激活状态
activationCode
char(64)
表3。7 t_admin 管理员信息表
中文名称
英文名称
数据类型
主键
外键
管理员id
adminId
char(32)
主键
管理员名
adminname
varchar(50)
密码
adminpwd
varchar(50)
第四章 爱学习网上书城系统的实现
爱学习网上系统经过前期的市场调查,需求分析以及详细设计,整个系统功能架构已经逐渐清晰,为系统的开发奠定了基础.爱学习网上书城系统从前台和后台两大部分进行设计。
4.1 前台功能设计
首页分为三个模块,菜单、分类和搜索框,为用户提供更加直观的界面。
4。2用户模块
系统能有条不紊地为用户服务必然需要区分出每一个用户,因此用户模块是非常必要的。用户模块包括用户的注册、登录和修改信息。
4。2。1 用户注册
用户注册页面采用ajax异步通信,请求后台数据进行比对,方便用户更加快速掌握注册技巧。前台也有密码校验功能,能校验两次密码是否相等.邮箱使用正则表达式校验,只有正确的邮箱格式才能通过验证。使用验证码进行验证请求有效性。只有用户全部按照要求填写好资料之后才能提交申请,系统会把资料记录数据库,同时给用户的邮箱发送电子邮件用来激活新注册的用户。
4.2。2 用户登录
如果用户未激活会弹出如下提示:
用户只有点击邮箱里的连接才能去激活自己的账号.激活之后正常登陆就可以看到主页以及自己的购物车等信息。
在主页面用户可以可以根据左侧分类菜单栏查找自己想要购买的书籍,也可以通过提供的图书搜索框快速搜索自己想要的图书,而且可以点击高级搜索根据书名、作者、出版社进行快速分类查找。
4。2。3 修改密码
修改密码输入框都采用ajax进行异步校验,原密码不能为空、新密码长度在3到20个字符之间,当焦点离开输入框会弹出提示。修改密码时同样需要验证码,只有输入验证码和图片上一致时才能提交修改。
4.2。4 退出
用户点击退出按钮,后台会杀死保存在浏览器中的session,直接跳转到登录页面。
4。3 图书模块
4。3.1 图书首页
当用户登录成功后,会自动跳转到图书主页,通过点击左侧分类栏查找图书或者直接在搜索框查询。
4。3。2 图书详情
用户在主页找到自己感兴趣的书籍并单击连接可查看详情,跳转到图书详情页面,图书的各个属性都会展示,用户可以点击购买加入购物车同时还能选择购买数量,系统会根据图书单价和购买的数量进行自动计算总价。
4.4 购物车模块
4。4.1 添加查看购物车
在主页点击我的购物车会查询出所有已经添加到购物车的图书。
4。4。2 编辑购物车
当用户添加好购物车之后,可以在我的购物车中查看和修改,点击数量列左后的“—”“+”来选择购买的数量,不想买时可以直接点击操作一栏的删除,从购物车中移除图书,当需要清空购物车时通过提供的批量删除按钮,直接删除购物车中全部或者自定义的选项。
4.5 订单模块
4.5。1 提交订单
在购物车中选好需要购买的图书,单击结算按钮,跳转至订单确认页面,在收货地址栏填写自己的收货信息,然后提交订单.
4.5。2 生成订单
4.5。3 订单支付
在订单提交完成后会弹出支付按钮,支付功能使用“易宝”第三方支付平台,跳转到网银支付页面,从中选择一张银行卡,正确填写银行卡信息后即可在线支付。
4。5。4 订单状态
在主页点击我的订单,进入我的订单页面,显示所有订单可以看到订单状态。订单状态共分为五种:在刚刚提交订单时还未付款,就是未付款状态;在刚付过款还未发货时就是已付款状态;在付款之后并且商家已经发货时发货状态;在订单签收之后并且本人已经确认就是交易完成状态;当订单已经提交但是还未付款可以取消订单,取消之后状态变为取消状态。也只有提交之后还未付款的订单才能取消。
第五章 爱学习网上书城系统后台设计与实现
5.1 管理员登录
爱学习网上书城系统后台是专门为管理员开发的,也就是商家。后台功能主要包括分类管理模块、图书管理模块和订单管理模块。进入后台需要先用管理员身份登录,输入管理员账户和密码点击进入后台会与后台数据库进行匹配,当匹配到数据库中对应的数据时才算登录成功,登录页面如下:
5。2图书分类管理
本系统为方便用户更加准确快速的查找图书,为图书进行了两级分类。在第一级分类基础上更加详细的规划出图书所属具体类别。
5.2。1 添加分类级别
点击添加一级分类弹出如上图所示页面,输入分类名称并且输入分类描述有助于用户对类别有更加确切的认识。
在一级分类后操作栏里有添加二级分类选项,单击弹出添加二级分类页面,输入二级分类名称之后,还要选择所属一级分类。一级分类会在单击添加二级分类按钮时通过后台动态的从数据库中查询出所有的一级分类选项,管理员通过下拉菜单选取所属一级分类之后,并为二级分类添加描述。
5。2。2 修改分类
管理员通过点击修改分类对类别进行修改,在弹出的页面中,原始数据会自动回显,符合修改的理念,更加人性化。修改完成点击修改二级分类按钮即可。
5.2.3 删除分类
删除分类包括删除一级分类和删除二级分类,当删除二级分类时,会弹出删除提示框,可以取消或者确定删除,确定之后只会删除当前删除的二级分类.当删除一级分类时,会删除一级分类下所有的二级分类。
5.3 图书管理模块
图书管理模块是管理员对所有图书进行所有操作,包括对图书的添加、修改和删除同时提供了高级搜索功能,管理员可以在海量图书能快速定位到具体的一类或者一本图书进行编辑。
5。3。1 添加图书
在添加图书页面,会显示所有关于图书的属性,其中可以上传图书的图片,大图和小图全面展示图书信息。在出版时间和印刷时间输入框引用日历插件直接通过鼠标单击选择时间,不用管理员手动输入时间,同时还能有效避免因为时间格式输入有误造成的添加失败问题。管理员可以自定义当前所添加图书的折扣,系统会根据折扣自动计算折扣后的优惠价.在添加新书的同时,需要选择书籍分类,此输入框也是动态查询出一级分类类别然后根据所选择一级分类的类别查询出此类别下的所有二级分类类别。当图书信息填写完成后点击“新书上架"按钮自动上传图书,用户可以在前台登录查询并购买.
5。3.2 图书编辑
通过左侧导航栏选择某一本图书或者通过高级搜索定位到具体一本图书,点击查看详情然后单击左上角的编辑或删除选择框会弹出编辑和删除按钮.在弹出的图书详情页面,关于图书的所有信息都会回显出来,管理员只需修改某些属性或者更多,然后直接编辑图书信息就会更改并保存到数据库.点击删除按钮会直接删除当前的图书.
5。4 订单管理模块
订单管理模块数主要是为了商家确定用户购买的图书以及订单的状态以至于商家能准确无误的发货。
5。4.1 订单列表管理
管理员在订单列表可以查看所有订单,在订单状态栏可清楚的看到当前订单的状态,也可以按订单状态分类查看。订单状态一共分为五类,当用户的订单付款成功后,管理员后台会显示准备发货。对于还未付款的订单,管理员也可以进行取消操作。管理员发货之后状态会变为等待确认。待用户确认收货之后,此次交易才算完成。
5.4.2 订单详情
管理员可以在订单列表页点击某一个订单进行查看订单详情操作,订单详情包括下单时间、用户订购的图书信息和用户的收货地址.
第六章 网上书城系统测试
6。1 系统测试概述
6。1.1 系统测试的目的和意义
随着科技的飞速发展,互联网已经涉及各行各业,人们的办公与生活也离不开了各种互联网系统,特别是一些涉及到金融方面的,因此系统的安全性是非常重要的.软件测试的目的是找出潜在的漏洞,排除安全隐患,避免有心之人利用系统漏洞损害他人利益,对互联网造成恶劣影响.系统测试在整个软件开发中占40%~50%的工作量,它不仅是测试源程序,而是对整个软件系统,包括需求分析,概要设计等。最终要保障软件的质量,尽可能的找出系统中存在的错误,把损失降到最低。
6。1。2 系统测试的方法
系统测试的方法有很多,比如从是否执行程序的角度考虑可分为静态测试和动态测试。从是否关心系统内部执行情况可分为黑盒测试和白盒测试。从软件开发过程按阶段划分有单元测试、集成测试、系统测试、确认测试和回归测试。
目前在软件开发行业中,系统的测试方法主要包括双盒测试,即黑盒和白盒测试。顾名思义,黑盒测试就是把程序看做一个不可分割的整体,在知道其各个功能的前提下通过直接操作系统把得出的结果和预期结果进行比对。黑盒测试不需要知道程序内部的逻辑结构和程序的执行顺序,只看其是否是否实现前期设计的功能.“白盒”测试也成为逻辑结构测试,即需要知道程序的设计流程和执行流程,检查每一个步骤是否按正确的调用顺序进行执行。因此我们在用黑盒测试的时候需要更多的对测试的范围进行考虑,需要考虑到用户所有输入的可能性,包括恶意的随意的输入。但是白盒测试的局限性也比较强,即不能确认已有程序是否违背现有设计规范.一般在测试中需要白盒测试与黑盒测试配合完成。
6.1。3 系统测试的步骤
完整的系统测试主要包括如下几个步骤:单元测试、组装测试、确认测试和系统测试。
模块
单元测试
系统测试
确认测试
组装测试
单元测试
模块
测后模块
单元测试
模块
在系统测试中首先进行单元测试,即测试每个功能模块是否可以成功运行,其结果是否和预想结果一致.单元测试采用白盒测试,对每个接口的内部实现逻辑和接口内部数据结构进行测试,每个模块进行单元测试通过后在进行组装,就是把各个独立的功能模块通过内部调用组装为一个整体,组装测试主要以系统详细的设计为依据。确认测试是测试软件是否可以正常运行并且符合软件规格说明书设计,因为确认测试是模拟项目上线后的真实环境,需要用户真实的有效数据进行测试,所以又叫做有效性测试.确认测试完成以后还需要进行系统测试,就是把系统运行所需要的硬件环境和用户环境进行共同测试。保证各组件能协调工作完成功能.同时还需要测试一些特殊的数据,以满足特殊用户的需求。
6。2 功能测试
6。2。1 用户注册测试
功能特性
用户注册
测试目的
验证输入信息的合法性
测试内容
数据
期望结果
实际结果
测试状态
用户名输入
1
提示用户名长度在3~20之间
提示用户名长度在3~20之间
与期望结果相同
密码输入
1
密码长度在3~20之间
提示密码长度在3~20之间
与期望结果相同
确认密码输入
空
密码不能为空
提示密码不能为空
与期望结果相同
Email
1156322165
提示格式不正确
邮箱格式不正确
与期望结果相同
验证码
1234
验证码不正确
提示验证码不正确
与期望结果相同
6。2.2 主要功能测试
模块
用例描述
预期结果
测试状态
密码修改
在原密码输入框000,新密码框和确认密码框输入111
提示“旧密码不正确”
与期望结果相同
图书搜索
搜索框输入为空
查询出所有图书
与期望结果相同
图书添加
分别测试每个输入框为空的时候
提示属性为空的那个属性不能为空
与预期结果相同
分类管理
添加二级分类,所属一级分类为空
提示一级分类为空
与预期结果相同
订单管理
管理员取消订单
前台用户下的订单同步更新
与预期结果相同
管理员发货
前台用户的订单状态更新为确认收货
与预期结果相同
按订单状态分类查看
显示同中状态的订单
与预期结果相同
购物车管理
添加购物车,并随意选择数量
总价会根据单价和数量自动计算
与预期结果相同
批量删除
删除自定义选择的商品信息
与预期结果相同
6。3 测试结论
系统性的测试是一种有序方式设法探测存在问题的程序的位置,通过对系统的功能性测试,与预期结果符合,可以满足用户对购买书籍的整体需求。系统测试是非常有必要性的,通过一些特殊的数据用例有时会得到预料之外的结果,通过对结果的分析从而找出潜在的bug修复存在的安全隐患。
虽然系统测试可以找出系统的漏洞,但是更重要的还是在代码编写时加强逻辑性分析和设计,对关键代码的处理上要分析出所有可能出现的分支,并保持一个良好的代码编写习惯,这样对后期的测试以及系统的维护会带来很大的帮助.
第七章 结论与展望
7。1 结论
网上交易模式在现在越来越重要,电子购物将代替传统的购物模式,逐渐成为社会的消费主流.爱学习网上书城系统就是为了满足大众的网上购书需求而设计的。通过对爱学习网上书城的设计与开发,我较全面的掌握了java的基础知识和编程技巧,了解了项目开发的三层架构体系,并且懂得了在电子商务界的整体业务逻辑.
在开发过程中遇到了很多困难,除了技术上的困难外还有逻辑上的,比如由于前期需求分析做的不具体在后面进行代码具体实现功能的时候会让程序产生不确定的结果,这都是程序开发中的禁忌。也正是因为经历了这些困难,让我学到了更多的经验,需求分析这步工作直接决定这项目是否能顺利完成。在一个项目的开发周期中,需求分析要占整个周期的一半以上。在开发一个完整项目时,不能盲目的直接就开始编写代码,要首先做好需求分析和数据库设计工作,要先写好开发文档并严格检查其可行性,只有这些工作做好之后,在代码编写的时候才能做到胸有成竹,在开发中不至于遇到逻辑上不通的问题,避免由于需要从新设计而带来的时间和经济上的损失。
于我而言这次项目的开发让我学习了很多知识,但是这还远远不够, 我会继续努力,利用现有知识去开阔自己的眼界。遇到困难保持冷静,寻找一条最优的解决方案。此次系统的开发为我以后走向工作岗位打下了坚实的基础。
7.2 展望
爱学习网上书城系统从需求分析到具体功能的实现符合电子商务的各项特征,但是由于个人技术方面原因,本系统只是实现了售书的常规功能,还有一些其他功能例如物流跟踪等会在今后继续扩充。
致谢
光阴似箭,日月如梭,转眼间即将大学毕业。此次的毕业设计也以为这大学生活的结束,是对我们大学四年所做的一个总结.在这里感谢所有老师对我大学四年来的教导,特别是我的导师李莉,在我做设计期间给了我很大的指导与帮助,在我遇到困难的时候给我指导与鼓励,让我化绊脚石为垫脚石,完成此次的设计.
源码请联系企鹅号 115632 216 5
展开阅读全文