编号
焦作师范高等专科学校
毕 业 论文(设 计)
系 (部) 计算机与信息工程系
专 业 计算机网络技术
班 级 0801
学 号 [1**********]
学生姓名 张真真
指导教师 刘淑枝
职 称 硕士 论文题目 Web网上订购系统前台业务功能的设计与实现
2011 年 2 月
目 录
摘 要 ...................................................................III ABSTRACT ................................................................ IV 1 前 言
1.1 选题背景 ............................................................. 1
1.2 网上购物的现状 ....................................................... 1
1.3 网上购物的安全性 ..................................................... 1
1.4 系统定义 ............................................................. 2 2 需求分析
2.1 功能需求概述 ......................................................... 4
2.2 用户权限描述 ......................................................... 4
2.3 可行性分析 ........................................................... 4
2.4 数据库描述 ........................................................... 5
2.5 数据采集 ............................................................. 5
2.6 系统环境 ............................................................. 5
2.6.1系统运行环境 ...................................................... 5
2.6.2 系统开发环境 ...................................................... 6 3 概要设计
3.1 系统总体结构 ......................................................... 7
3.2 功能划分 ............................................................. 7
3.3 系统功能描述 ......................................................... 8
3.4 数据库设计 ........................................................... 9
3.4.1数据库环境的连接 .................................................. 9
3.4.2数据库概念结构设计 ................................................ 9
3.4.3数据库逻辑结构设计 ............................................... 12 4 详细设计
4.1 会员管理功能模块 .................................................... 15
4.1.1 会员管理模块功能描述 ............................................. 15
4.1.2 会员管理模块界面设计 ............................................. 15
4.1.3算法实现 ......................................................... 17
4.2 产品分类查看模块 .................................................... 18
4.2.1 产品分类查看功能描述 ............................................. 18
4.2.2 产品分类查看功能模块的界面设计 ................................... 18
4.2.3 算法实现 ......................................................... 18
4.3 商品展台功能模块 .................................................... 20
4.3.1 商品展台模块功能描述 ............................................. 20
4.3.2 商品展台模块界面设计 ............................................. 21
4.3.3 算法实现 ......................................................... 23
4.4 购物车功能模块 ...................................................... 26
4.4.1 购物车模块功能描述 ............................................... 26
4.4.2 购物车模块界面设计 ............................................... 26
4.4.3 算法实现 ......................................................... 28
4.5查看订单功能模块 .................................................... 30
4.5.1 查看订单模块功能描述 ............................................. 30
4.5.2 查看订单模块界面设计 ............................................. 30
4.5.3 算法实现 ......................................................... 31 5 系统测试
5.1 系统测试 ............................................................ 33
5.1.1引言 ............................................................. 33
5.1.2 测试用例 ......................................................... 33
5.2 结果分析 ............................................................ 38 6 总 结 ................................................... 40 谢 辞 ..................................................... 41 参考文献 ................................................... 42
摘 要
Web网上订购系统是利用JSP+Struts技术实现一个在网络上的动态电子商务网站。系统以SQL Server 2000为数据库开发平台,以Tomcat作为应用服务器,采用JSP(Java Server Pages)技术实现。Web网上订购系统分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理,等功能;后台部分由管理员使用,主要包括商品管理,处理订单,用户信息管理等功能。Web网上订购系统前台业务功能的设计与实现主要完成前台部分的开发。
建立后的网站系统是一个动态、交互式、具有商品提供、系统管理等功能的电子商务网站。系统经过初步测试,达到了最初提出的设计任务要求。
关键词:JSP;Struts;SQLserver2005;Tomcat;网上购物系统
The Online Shopping System
——Design and Implementation of Business
ABSTRACT
The system is trying to use JSP+Struts in a dynamic network of e-commerce websites structure, with SQL Server 2000 for database development in platform, Tomcat application server as a network information services, use JSP (Java Server Pages) technology develop online shopping system. The Online Shopping System is divided into front module and back module, the front module of website witch is for users, including users registered, a shopping cart management, order management, personal information management, message board management functions; the back module witch used by managers, including commodity management, processing orders, customer information management, information management, and other functions links. I am responsible for the front part.
After the establishment of the website is a dynamic, interactive, with commodities, systems management, and other functions of the e-commerce website users. System has been tested to achieve the mission requirements
Key Words: JSP;Struts;SQL Server 2005;Tomcat;Online shopping system
1 前 言
1.1 选题背景
随着互联网技术的发展,电子商务已经不再是一个梦想。通过网上银行、网上交易平台的支持,人们足不出户,便可轻松进行网上交易活动。同时也出现了大量的新的办公模式和生活方式,如SOHO族等,本文介绍的系统是电子商务的一个部分,即网上购物系统的实现。
用户希望在该购物系统的帮助下,通过虚拟的网上商店,在线挑选自己喜爱的商品,放置在虚拟的购物筐内,接着通过购物系统向网上商店下商品订单,在多种付款方式中选择一种,向该商品支付相关费用。网上商店收到用户订单后,此时认定该订单为有效订单,等待用户支付的费用。在收到费用后,准备订单所列商品,发货,同时通过有效的联系方式通知用户商品已寄出,注意查收。在用户收到商品后,该次交易过程结束。
另外,利用该系统,商店可以更好地进行其会员管理,进行人性化的购后服务,扩大服务范围,同时降低管理成本。
1.2 网上购物的现状
随着世界经济的全球化,顾客需求的多样化,企业将面临前所未有的激烈竞争和挑战。为了在竞争中取胜,企业必须以更加灵活的方式进行生成和服务,进一步应用信息技术和先进有效的组织管理方法。电子商务正式顺应这一法阵趋势的一门崭新技术。简单的说,电子商务就是这利用Internet网络惊醒的商务交易。在一个电子商务系统中,网上购物拨快通过WEB服务器发布商品信息(供客户浏览。采购商品,提交订单等),占据很重要的位置。其一是因为界面的友好性,购物的方便性是吸引顾客的重要因素;其二是因为该模块是放在Internet上的,如果涉及不当,商品很容易被非法入侵,造成巨大的经济损失。所以安全性也是很重要的技术环节。电子商务已经成为了新经济的代名词。
在未来的商务活动中,“要么电子商务,要么无商可务”已经在商业界形成了共识。国美很多综合性网站都有电子商城,如www.sina.com www.sohu.com www.163.com ,而比较专业比较著名的国内购物商城有 www.ebay.com.cn www.taobao.com ,我国的网络商城还在不断的摸索和发展阶段。在国外,网上购物已经成为人们生活中不可缺少的一部分了。
1.3 网上购物的安全性
网上交易的虚拟性很强,交易双方互不见面就是网络购物与传统购物方式之间存在的
一个很大的不同点。要想在网上交易正常进行,这就要求要有一个良好的社会信用环境,信用消费观念也能够被人们接受、认可并深入人心。西方一些国家的网上购物发展势头比较好,一个重要的原因是西方的市场秩序比较好,信用制度比较健全,信用消费观念已被人们普遍接受。
但如果是另一种情况,市场充斥假冒伪劣商品,商品交易市场秩序较为混乱,同样导致人们信用消费的意识变得薄弱,人们亲临现场、亲眼目睹的传统购物方式购买的产品还会出现质量问题,他又怎么能相信不知道离自己有多远的网上商店呢?交货延迟,甚至在交款后没有收到所需的商品或服务时目前网上购物配送管理系统存在的,而且让消费者深感不安的问题。相关调查表明,大约有五分之一的内地网民表示,曾经有过在网络上订货并且付款,但却没有收到货品的经历。业内人士指出,国内尚缺乏系统性、专业性、全国性的货物配送企业,配送销售组织没有形成一套高效、完备的配送管理系统,这毫无疑问地影响了人们的网上购物热情。
1.4 系统定义
JS:JS指的是网页Java Script客户端脚本文件,以JS为扩展名的文件是用JavaScript脚本语言编写的。
B/S架构:B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
三层架构:三层架构(3-tier application) 一个三层架构的应用程序由三部分组成,这三部分各自分布在网络中的不同地方。这三个部分分别是:工作站或表示层接口、事务逻辑、数据库以及与其相关的程序设计。
(GUI)的程序设计和具体的应用程序入口表格或交
互式窗口。
事务逻辑处在局域网(LAN)服务器或其他共享主机上,它作为响应工作站所发出客户请求的服务器,而相对于处于大型机的第三层它是作为客户端,并且决定需要什么数据以及数据存储在哪里。
第三层包括数据库以及处理读写以及访问数据库的程序。然而应用程序的设计可能比这个架构要复杂,对于大型程序来说,这个三层模式是一种比较简便的考虑方法。
言来开发。因为各个层次的开发不会影响其他层次,所以这种模型对于进一步开发软件是很方便的。
J2EE: J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)
J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,,企业内部或外部难以互通的窘境。
2 需求分析
2.1 功能需求概述
经过对各大网上商城网站及实际企业销售过程的考察、分析,要求本系统具有以下功能:
(1)统一友好的操作界面,保证系统的易用性,方便用户的操作。
(2)具备商品信息的展示功能,方便浏览者对商品信息进行浏览和比较。
(3)规范的商品分类,方便浏览者分类查找商品。
(4)完美的购物车功能和用户结账功能。
(5)设置网站公告信息模块,使浏览者能够即使了解网站的攻台变化,及公司销售的新品、特价活动等信息。
(6)商品销售排行。
(7)订单信息查询功能,以方便管理员对网站信息进行更新与管理。
2.2 用户权限描述
本系统主要包括两种用户:系统管理员和会员
系统管理员:拥有本系统的全部权限。
会员:拥有本系统中的商品查询模块,购物车模块,订单查询模块的权限。
2.3 可行性分析
当接受一个软件开发任务,就进入软件生命的第一个阶段,即进行可行性的研究。并不是所有问题具有简单的解决办法,许多问题不能在预定的规模之内解决。因此通过可行性的研究分析可以知道问题。
本系统在以下4个方面进行可行性分析:
(1)技术可行性
根据任务书提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发。
(2)效益可性行
网络平台已经成为企业经营管理中不可忽视的一个重要方面,拥有一个全面的、功能强大的、操作简单的网络购物中心,已经成为企业营销发展的一个必然趋势。网络购物中心的建立,从销售方面来讲,不仅给企业增加了一个新的销售渠道,而且方便了客户购买与了解公司的产品及新的销售方向;从企业宣传方面来讲,不仅扩大了企业的知名度,还更直观的展示出企业的产品。拥有一个B2C网络购物中心,已经成为企业网络销售进程中的一个重要环节。
(3)法律可行性
新系统的研制和开发,将不会侵犯他人、集体和国家的利益,不会违反国家政策和法律。
2.4 数据库描述
本系统采用了Sql Server 2000作为数据库,数据库名为db_shopping,经系统分析和数据结构分析后,共建立了以下9个表:tb_goods表,用来存储商品信息。tb_bigType表,是用来存储商品类别中大的类别信息的表。tb_smallType表,是用来存储商品类别中小的类别信息的表。tb_order表,是用来存储订单概要信息的表。tb_orderDetail表,是用来保存订单详细信息的表。tb_member表,是用来存储注册会员信息的表。tb_manager表,是用来存储管理员信息的表。tb_affiche表,是用来存储公告信息的表。tb_link表,是用来存储网站链接信息的表。
2.5 数据采集
商品基本信息、管理员信息、公告信息、网站链接信息是管理员利用后台的相应功能模块输入的。
会员信息是会员在注册时输入的,订单信息是会员购物时自动生成的。
2.6 系统环境
2.6.1系统运行环境
硬件配置:P4或同档次以上微机;
256MB以上内存或更高;
40G以上硬盘;
10/100M网卡;
软件环境:中文 WINDOWS 2000/XP/ME/2003操作系统;
Sql Server 2005数据库。
2.6.2 系统开发环境
硬件配置:P4或同档次以上微机; 256MB以上内存或更高; 40G以上硬盘; 52速以上光驱; 10/100M网卡;
软件环境:Myeclipse 5.5.1.GA; Sql Server 2000;
Tomcat6.0
操作系统:WINDOWS 2000; 数据库:Sql Server 2005; 开发语言:JSP,JAVA;
3 概要设计
3.1 系统总体结构
网上购物中心是一个针对网上购物的消费者编写的软件,是一个实用的管理信息系统,针对顾客的实际需要,分析了网上购物系统的功能,顾客可以注册成为会员,然后购买商品,会员还可以进行修改会员资料、查询订单查看购物车、添加商品进购物车、清空购物车等操作。管理员可以进行查看所有会员信息、添加删除商品、审核会员等操作。
系统总体结构如图3.1所示:
图3.1 系统总体结构图
3.2 功能划分
从系统用户角度,会员登录后,具有修改自己的会员资料、按不同的类别查看商品、购买商品(将商品放入购物车)、查看购物车、删除购物车中的商品、清空购物车、填写订单、结账功能;管理员登录后,可以进行的操作有修改密码,商品信息的查询、添加、删除,订单查询、审核、删除,会员信息查询、删除,公告信息的添加、修改、删除。功能划分如图3.2所示。本设计主要完成的是会员登录后进行的操作。
图3.2 系统结构流程图
3.3 系统功能描述
本设计针对网上商店的实际需要,分析了网上购物系统的功能,顾客可以注册成为会员,然后购买商品,会员还可以进行修改会员资料、查询订单查看购物车、添加商品进购物车、清空购物车等操作。管理员可以进行查看所有会员信息、添加删除商品、审核会员等操作。
在本次设计中我主要负责设计业务处理子系统,具体包括下列几个模块: (1)会员管理
会员管理会员登录、会员注册和会员资料修改。会员登录模块时要进行简单的客户端校验。如果用户名或密码为空,系统会给出相应的提示,如果用户名或密码错误,系统会提示相对应的错误,如果用户忘记密码,可以点击找回密码,通过用户注册时给出的密码问题和密码答案找回密码。会员注册用户需要输入会员名称、会员密码、密码确认、真实姓名、年龄、职业、Email、找回密码问题、答案。会员资料修改模块中,会员可以修改密码、年龄真实姓名、职业、Email。
(2) 商品查询
分不同的类别查看商品。本系统现有的商品类别有IT数码、家用电器、服装鞋帽、烟酒、食品、办公用品
(3)购物车
在确定选购产品后,进入支付功能界面,系统能自动计算所有选定产品的总金额,并能够根据该用户的等级所对应的折扣率计算出实际应付总金额,同时要求指定支付方式、订单收货人的详细地址等信息,然后确认,完成支付过程,并且信息可以重新填写,即取消本次订购过程。
(4) 查看订单
提供查看用户订单及订单明细功能。会员查看订单时显示订单编号、电话、地址、订货时间、是否出货,查看订单明细时显示订单编号、商品名称、商品价格、商品数量。 3.4 数据库设计 3.4.1数据库环境的连接
本系统采用SQL Server 2000数据库,连接数据库代码为: public class JDBConnection {
private String dbDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; //数据库的驱动 private String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=db_shopping"; //URL地址
public Connection connection = null; public JDBConnection() { try {
Class.forName(dbDriver).newInstance(); //加载数据库驱动
connection = DriverManager.getConnection(url, "sa", "123456"); //加载数据库 }
catch (Exception ex) {
System.out.println("数据库加载失败"); } }
3.4.2数据库概念结构设计
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它
们之间的关系,为后面的逻辑结构设计打下基础。
根据上面的设计,规划出的主要实体有用户实体、基本信息维护实体、入库单实体、出库实体、库存实体、帐务实体等。各个实体的E-R图及其关系描述如下。
图3.3:tb_goods表E-R图 中文名:商品信息表E-R图
图3.3 tb_goods表E-R图
图3.4:tb_bigType表E-R图 中文名:商品大分类信息表E-R图
图3.4 tb_bigType表E-R图
图3.5:tb_smallType表E-R图 中文名:商品小分类信息表E-R图
图3.5 tg_smallType表E-R图
图3.6:tb_order表E-R图 中文名:订单信息表E-R图
图3.6 tb_order表E-R图
图3.7:tb_orderDetail表E-R图 中文名:订单明细表E-R图
图3.7 tb_detail表E-R图
图3.8:tb_member表E-R图 中文名:会员信息表E-R图
图3.8 tb_member表E-R图
3.4.3数据库逻辑结构设计
本系统数据库中共用到了tb_goods表等6个数据表,其物理结构图如下所示: 表3.1:tb_goods表 中文名:商品信息表
功能描述:用来保存商品的基本信息。
表3.2:tb_bigTye表 中文名:商品大类型信息表
功能描述:用来保存商品类别中大的类别信息。
表3.3:tb_smallType表 中文名:商品小类别信息表
功能描述:用来存储商品类别中小的类别。
表3.4:tb_order表 中文名:订单信息表
功能描述:用来保存订单的概要信息。
表 3.5:tb_orderDetail表 中文名:订单明细表
功能描述:用来存储订单明细信息。
表 3.6:tb_member表 中文名:会员信息表
功能描述:用来存储会员的信息。
4 详细设计
4.1 会员管理功能模块 4.1.1 会员管理模块功能描述
本模块分为三个子模块:会员登录、会员注册和会员资料修改。会员登录模块时要进行简单的客户端校验。如果用户名或密码为空,系统会给出相应的提示,如果用户名或密码错误,系统会提示相对应的错误,如果用户忘记密码,可以点击找回密码,通过用户注册时给出的密码问题和密码答案找回密码。会员注册用户需要输入会员名称、会员密码、密码确认、真实姓名、年龄、职业、Email、找回密码问题、答案。会员资料修改模块中,会员可以修改密码、年龄真实姓名、职业、Email。 4.1.2 会员管理模块界面设计
(1) 在首页有会员登录区,会员登录界面如图4.1所示
图 4.1 系会员登录界面图
(2)在首页上点击“注册”按钮进入会员注册界面,会员注册界面如图4.2所示
图 4.2 会员注册界面图
(3)在首页上点击”会员修改”进入会员资料修改界面,如图4.3所示
图4.3 会员资料修改界面
4.1.3算法实现
(1)会员登录校验算法实现
function land(){
if(document.form.name.value==""){
window.alert("请输入账号");
return false;
}
if(document.form.password.value==""){
window.alert("请输入密码");
return false;
}
return true;
}
(2)会员注册算法实现
public void insertMember(MemberForm form) {
try {
ps = connection.prepareStatement(FinalConstants.member_insert);
ps.setString(1, form.getName());
ps.setString(2, form.getPassword());
ps.setString(3, form.getReallyName());
ps.setString(4, form.getAge().toString());
ps.setString(5, form.getProfession());
ps.setString(6, form.getEmail());
ps.setString(7, form.getQuestion());
ps.setString(8, form.getResult());
ps.executeUpdate();
ps.close();
}
catch (SQLException ex) {
}
}
4.2 产品分类查看模块
4.2.1 产品分类查看功能描述
产品总共分为烟酒、食品、IT数码、服装鞋帽、家用电器、办公用品六类。用户可以点击相应的标签查看此类产品。每一个大类别之下都有相应的小类别,如家用电器下有电视、空调、洗衣机、电冰箱四类。用户可以根据自己的需求来分类查看商品。
4.2.2 产品分类查看功能模块的界面设计
图4.4 分类查看商品界面图
4.2.3 算法实现
以商品的小类别的编号为条件查询信息
public List selectSmall(Integer small) {
List list = new ArrayList();
GoodsForm goods = null;
try {
ps = connection.prepareStatement(FinalConstants.goods_selectSmall);
ps.setInt(1, small.intValue());
ResultSet rs = ps.executeQuery();
while (rs.next()) {
goods = new GoodsForm();
goods.setId(Integer.valueOf(rs.getString(1)));
goods.setBig(Integer.valueOf(rs.getString(2)));
goods.setSmall(Integer.valueOf(rs.getString(3)));
goods.setName(rs.getString(4));
goods.setFrom(rs.getString(5));
goods.setIntroduce(rs.getString(6));
goods.setCreaTime(rs.getString(7));
goods.setNowPrice(Float.valueOf(rs.getString(8)));
goods.setFreePrice(Float.valueOf(rs.getString(9)));
goods.setNumber(Integer.valueOf(rs.getString(10)));
goods.setPriture(rs.getString(11));
goods.setMark(Integer.valueOf(rs.getString(12)));
list.add(goods);
}
}
catch (SQLException ex) {
}
return list;
}
以商品的大类别的编号为条件查询信息
public List selectBig(Integer big) {
List list = new ArrayList();
GoodsForm goods = null;
try {
ps = connection.prepareStatement(FinalConstants.goods_selectBig);
ps.setInt(1, big.intValue());
ResultSet rs = ps.executeQuery();
while (rs.next()) {
goods = new GoodsForm();
goods.setId(Integer.valueOf(rs.getString(1)));
goods.setBig(Integer.valueOf(rs.getString(2)));
goods.setSmall(Integer.valueOf(rs.getString(3)));
goods.setName(rs.getString(4));
goods.setFrom(rs.getString(5));
goods.setIntroduce(rs.getString(6));
goods.setCreaTime(rs.getString(7));
goods.setNowPrice(Float.valueOf(rs.getString(8)));
goods.setFreePrice(Float.valueOf(rs.getString(9)));
goods.setNumber(Integer.valueOf(rs.getString(10)));
goods.setPriture(rs.getString(11));
goods.setMark(Integer.valueOf(rs.getString(12)));
list.add(goods);
}
}
catch (SQLException ex) {
}
return list;
}
4.3 商品展台功能模块
4.3.1 商品展台模块功能描述
商品展台模块包括三个子模块:销售排行、新品上架、特价商品。销售排行是根据商品的销售数量来排行的,每销售一件商品,就把此商品的销售数量加一。
4.3.2 商品展台模块界面设计
(1)在首页点击“销售排行”按钮进入销售排行界面如图4.5所示。用户可以浏览网站所有的商品的排行。
图 4.5 销售排行界面图
(2)在首页点击“新品上架”按钮进入新品上架界面,如图4.6所示。用户可以浏览新上架的商品。
图4.6 新品上架界面图
(3)在首页点击“特价商品”按钮进入特价商品界面如图4.7所示。用户可以浏览特价商品。
图4.7 特价商品界面图
4.3.3 算法实现
(1)销售排行算法实现
public List selectGoodsNumber() {
List list = new ArrayList();
GoodsForm goods = null;
try {
ps = connection.prepareStatement(FinalConstants.goods_selectNumber); ResultSet rs = ps.executeQuery();
while (rs.next()) {
goods = new GoodsForm();
goods.setId(Integer.valueOf(rs.getString(1)));
goods.setBig(Integer.valueOf(rs.getString(2)));
goods.setSmall(Integer.valueOf(rs.getString(3)));
goods.setName(rs.getString(4));
goods.setFrom(rs.getString(5));
goods.setIntroduce(rs.getString(6));
goods.setCreaTime(rs.getString(7));
goods.setNowPrice(Float.valueOf(rs.getString(8)));
goods.setFreePrice(Float.valueOf(rs.getString(9)));
goods.setNumber(Integer.valueOf(rs.getString(10)));
goods.setPriture(rs.getString(11));
goods.setMark(Integer.valueOf(rs.getString(12)));
list.add(goods);
}
}
catch (SQLException ex) {
}
return list;
}
List list=goods.selectGoodsNumber();
int number=list.size(); if(number>10){ number=10; }%>
background="image/link.jpg" bgcolor="#FFFFFF">销售商品排行 TOP |
|
GoodsForm form=(GoodsForm)list.get(i); %> (2) 特价商品算法实现 public ActionForward goodSelectFreeHead(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { List list = null; String mark = request.getParameter("mark"); list = dao.selectMark(Integer.valueOf(mark)); int pageNumber = list.size(); //计算出有多少条记录 int maxPage = pageNumber; //计算有多少页数 String number = request.getParameter("i"); if (maxPage % 4 == 0) { maxPage = maxPage / 4; } else { maxPage = maxPage / 4 + 1; } if (number == null) { number = "0"; } request.setAttribute("number", String.valueOf(number)); request.setAttribute("maxPage", String.valueOf(maxPage)); request.setAttribute("pageNumber", String.valueOf(pageNumber)); request.setAttribute("list", list); return mapping.findForward("goodSelectFreeHead"); } 4.4 购物车功能模块 4.4.1 购物车模块功能描述 购物车模块包括三个子模块:添加购物车、查看购物车和收银台。在浏览商品时查看商品详细信息,如果想购买此商品,可以在“查看商品详细信息”页面点击“放入购物车”按钮,此商品就放入到购物车中了。查看购物车模块中显示商品的名称、商品价格、商品数量、总金额、合计总金额。在购物车模块中可以选择“继续购物”、“去收银台结账”、“清空购物车”、“修改数量”。总金额是商品价格乘以商品数量,合计总金额是所有商品总金额的和。收银台需要会员输入联系地址、联系电话、付款方式、运送方式、备注信息。 4.4.2 购物车模块界面设计 (1) 在商品浏览界面浏览商品如图4.8所示。会员可以根据商品的类别选择浏览不同的 商品。 图4.8 商品浏览界面图 (2)在商品浏览界面点击查看详细内容进入添加购物车界面,如图4.9所示 图4.9 添加购物车界面 (3)在主页面上点击查看购物车进入查看购物车界面,如图4.10所示 图 4.10 购物车界面图 (4)在查看购物车界面点击去收银台结账进入收银台界面,如图4.11所示 图4.11 收银台界面图 4.4.3 算法实现 购物车算法实现:
4.5查看订单功能模块 4.5.1 查看订单模块功能描述 本模块主要用来实现系统的会员查看订单功能。会员可以查看自己的订单和订单明细。会员查看订单时显示订单编号、电话、地址、订货时间、是否出货,查看订单明细时显示订单编号、商品名称、商品价格、商品数量。 4.5.2 查看订单模块界面设计 当会员登录成功,进入前台主页面如图4.12所示。 图4.12 前台主页面界面图 在主页面上点击查看订单,进入查看订单界面,会员可以查看到自己的订单信息,如图4.13所示。 图 4.13 会员查看订单界面图 4.5.3 算法实现 订单查询的算法: public OrderForm selectOrderNumber(String number) { OrderForm order = null; try { ps = connection.prepareStatement(FinalConstants.order_selectNumber); ps.setString(1, number); ResultSet rs = ps.executeQuery(); while (rs.next()) { order = new OrderForm(); order.setId(Integer.valueOf(rs.getString(1))); order.setNumber(rs.getString(2)); order.setName(rs.getString(3)); order.setReallyName(rs.getString(4)); order.setAddress(rs.getString(5)); order.setTel(rs.getString(6)); order.setSetMoney(rs.getString(7)); order.setPost(rs.getString(8)); order.setBz(rs.getString(9)); order.setSign(rs.getString(10)); order.setCreaTime(rs.getString(11)); } } catch (SQLException ex) { } return order; } 5 系统测试 5.1 系统测试 5.1.1引言 软件测试是为了发现错误而执行程序的过程。它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。软件测试是软件质量保证的关键环节,直接影响着软件的质量评估。软件测试不仅要讲究策略,更要讲究时效性。验收测试作为软件测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到“一锤定音”的作用。 5.1.2 测试用例 测试项目编号:1 测试人:张真真 测试日期:2011-4-20 测试项目编号:2 测试人:张真真 测试日期:2011-4-20 测试项目编号:3 测试人:张真真 测试日期:2011-4-20 5.2 结果分析 效率分析: 由于本系统采用jsp做为开发语言,采用B/S三层架构构建系统,所以系统的各项业务处理过程有着明显的分工。系统中有很多数据的输入和验证,这块的处理机制是在表示层上完成的。即在客户端的浏览器(Browser)上完成的。所以减轻了服务器的压力,系统只有少部分的数据存储分配在服务器上完成,大部分的业务处理是在分布在各地的客户端上完成的。这样系统的运行效率就会很高。系统中还定义了很多的自定义控件和函数,事件等。这样在处理业务时实现了代码和控件的重用这样又大大的提高了程序运行效率。 但系统的表示层大部分采用了脚本(JavaScript)语言,和CSS样式表来限定系统的界面和控件,这样对客户端的硬件配置要求较高,这样在一定程序上影响了系统的运行。程序中还用到了嵌套的循环,也影响了程序的运行效率。 可靠性分析: 可靠性(reliability)是产品在规定的条件下和规定的时间内完成规定功能的能力,它的概率度量称为可靠度。软件可靠性是软件系统在规定的时间内及规定的环境条件下,完成规定功能的能力。包含三个元素:规定的时间,规定的环境,规定的功能。规定的时间在本系统就是程序的运行时间,属随机变量。规定的环境就是下面的配置环境要求。软件可靠性还与规定的任务和功能有关。由于要完成的任务不同,软件的运行剖面会有所区别,则调用的子模块就不同(即程序路径选择不同),其可靠性也就可能不同。所以要准确度量软件系统的可靠性必须首先明确它的任务和功能。而本系统在明确的任务和功能的条件下基本完成了所期望的功能。 配置环境要求: 环境条件指软件的运行环境。它涉及软件系统运行时所需的各种支持要素,如支持硬件、操作系统、其它支持软件、输入数据格式和范围以及操作规程等。本系统对配置环境的要求如下: 硬件配置:P4或同档次以上微机; 256MB以上内存或更高; 40G以上硬盘; 10/100M网卡; 软件环境:Myeclipse5.5.1.GA; Sql Server 2005 Tomcat6.0 操作系统:WINDOWS 2000/WINDOWS XP 数据库: Sql Server 2005; 开发语言:Myeclipse5.5.1.GA,JSP语言; 容错性: 容错性测试是检查软件在异常条件下的行为。本系统多处用到了数据的查询,和对数据的选择输入,即下拉框选择输入。这样就很好的规划了用户的输入,大大减小了因用户输入的不规范使数据不正确和系统的崩溃的可能性。极少部分的数据需要用户输入,在这样的输入控件上都加了对输入数据的验证机制,当有错误和不规范的数据输入时,系统会及时准确的提示错误信息。系统中并加入了回滚机制,保证了数据的完整性,防止了脏数据的保存。系统运行时后台的错误是最不容易发现的,在代码设计中多采用了异常的捕捉,及时准确的捕捉到程序异常,并提示给用户。 6 总 结 经过三个月的设计和开发,WEB网上订购系统系统基本完成。针对在设计过程中遇到的问题,做了及时调整,基本实现了网上购物中主要业务模块的基本功能,包括商品的添加、删除,商品信息的修改,会员信息的查询,会员的删除。订单的查询、删除等操作。通过这次毕业设计,个人在程序的设计和编码方面的能力有了一个很大的提高,从以往书本上的理论知识运用到了实践当中,又从实践当中回归到了书本中。在这其中学到了很多东西:首先是程序设计的能力,从一开始的需求分析,知道了我要做个什么样的东西,然后对其进行概要设计,系统分析,知道了我该怎么来做,有了系统的大体的框架。编码时我知道了这些功能具体来怎么实现,还有没有比这个方法更好的办法,怎么来写代码才能更规范,更能符合面向对象的思想。测试时让我知道了我做的东西中还存在那些漏洞,在设计和编码时出了那些问题,忽略了那些问题,怎么设计程序更能使程序运行流畅。数据库方面也学到了很多知识:存储过程,SQL语句的聚合函数等。此外我还学到了很多的现行比较流行的技术:首先是面向对象的思想,在程序中实现了代码的重用,继承和封装,组件等。还有三层B/S架构,掌握了三层中表示层,逻辑层,数据层的划分和实现功能的界定。 通过这次的设计学习,让我深深体会到程序设计的魅力。要做一个程序首先要摆正心态,不要怕困难,静下心来去思考,去攻关。编程的过程就是不断学习的过程,遇到了问题去解决,解决了就学到了东西。百折不挠,必能提高自己。 谢 辞 毕业设计已接近了尾声,通三个月的努力终于完成了WEB网上订购系统要求的功能。在此过程中遇到了很多的困难,是老师和同学们一块探讨学习帮我克服了困难。才使得我毕业设计顺利完成,在这里我向在毕业设计中帮助过我的老师和同学们表示深深的感谢。 本次毕业设计是在刘淑枝老师的悉心指导和严格要求下完成的,从选题到具体系统实现,再到论文修改无不凝聚着刘淑枝老师的心血和汗水,在我的毕业设计期间,刘淑枝老师为我提供了种种专业知识上的指导和一些富于创造性的建议。刘老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,使我感受到她朴实无华、平易近人的人格魅力。她是我日后学习、工作与生活中的最好的榜样!在此向刘淑枝老师表示深深的感谢和崇高的敬意! 感谢所有教过的或没教过我的全系的老师,因为你们课堂上的指导和课外的交流,我才可以学习到这么多的知识和做人的道理,为今后的人生做准备。 感谢所有的舍友和身边的朋友,谢谢你们的鼓励和支持,没有你们,我走不到今天,从遥远的家来到这个陌生的城市里,是你们和我共同维系着彼此之间姐妹般的感情,维系着寝室那份家的融洽。三年了,仿佛就在昨天。三年里,我们没有红过脸,没有吵过嘴,没有发生上大学前所担心的任何不开心的事情。只是今后大家就难得再聚在一起吃每年元旦那顿饭了吧,没关系,各奔前程,大家珍重。 三年时间,不知不觉就要过去了。在此,我衷心感谢三年来辛勤培育我们的老师。在以后的工作岗位上,我也会不断努力,用自己的辛勤工作和不懈奋斗来回报母校和老师们! 参考文献 [1] 萨师煊,王珊.数据库系统概论[M].北京: 高等教育出版社, 2003:25-65. [2] 甘仞初.管理信息系统[M].北京:机械工业出版社,2001-2:102-109. [3] [加]Budi Kurniawan.深入浅出Struts[M]北京:人民邮电出版社,2007:52-126. [4] 李贤华. 基于JSP技术的大型网上购物系统的设计与实现[J],计算机与现代化出版社,2008(8): 82-89. [5] 何静, 谭新民. 基于J2EE的网上购物系统的设计[J],山西电子技术出版社,2008(1):66-68. [6] 刘大玮,马传宝,孙颖洁编著.SQL Server数据库项目案例导航[J]北京:清华大学出版社,2005:12-36. [7] 殷人昆,郑人杰.实用软件工程[M].北京:清华大学出版社,2005-5:112-136. [8] [美]普雷斯曼.软件工程:实践者的研究方法[M]北京:机械工业出版社,2004-7:98-112. [9] 衡友跃. 基于MVC模式的网上购物系统应用研究[J],淮北职业技术学院学报,2008-7:77-79. [8] James W. Cooper, et al. Introduction to Design Patterms in C#[J] . Waston Research Center, 2003,V33(5) :2002-2005. [9] 张健. XML技术在网上购物系统中的应用与安全分析[J]科技创新导报,2008-12:40-63. |
编号
焦作师范高等专科学校
毕 业 论文(设 计)
系 (部) 计算机与信息工程系
专 业 计算机网络技术
班 级 0801
学 号 [1**********]
学生姓名 张真真
指导教师 刘淑枝
职 称 硕士 论文题目 Web网上订购系统前台业务功能的设计与实现
2011 年 2 月
目 录
摘 要 ...................................................................III ABSTRACT ................................................................ IV 1 前 言
1.1 选题背景 ............................................................. 1
1.2 网上购物的现状 ....................................................... 1
1.3 网上购物的安全性 ..................................................... 1
1.4 系统定义 ............................................................. 2 2 需求分析
2.1 功能需求概述 ......................................................... 4
2.2 用户权限描述 ......................................................... 4
2.3 可行性分析 ........................................................... 4
2.4 数据库描述 ........................................................... 5
2.5 数据采集 ............................................................. 5
2.6 系统环境 ............................................................. 5
2.6.1系统运行环境 ...................................................... 5
2.6.2 系统开发环境 ...................................................... 6 3 概要设计
3.1 系统总体结构 ......................................................... 7
3.2 功能划分 ............................................................. 7
3.3 系统功能描述 ......................................................... 8
3.4 数据库设计 ........................................................... 9
3.4.1数据库环境的连接 .................................................. 9
3.4.2数据库概念结构设计 ................................................ 9
3.4.3数据库逻辑结构设计 ............................................... 12 4 详细设计
4.1 会员管理功能模块 .................................................... 15
4.1.1 会员管理模块功能描述 ............................................. 15
4.1.2 会员管理模块界面设计 ............................................. 15
4.1.3算法实现 ......................................................... 17
4.2 产品分类查看模块 .................................................... 18
4.2.1 产品分类查看功能描述 ............................................. 18
4.2.2 产品分类查看功能模块的界面设计 ................................... 18
4.2.3 算法实现 ......................................................... 18
4.3 商品展台功能模块 .................................................... 20
4.3.1 商品展台模块功能描述 ............................................. 20
4.3.2 商品展台模块界面设计 ............................................. 21
4.3.3 算法实现 ......................................................... 23
4.4 购物车功能模块 ...................................................... 26
4.4.1 购物车模块功能描述 ............................................... 26
4.4.2 购物车模块界面设计 ............................................... 26
4.4.3 算法实现 ......................................................... 28
4.5查看订单功能模块 .................................................... 30
4.5.1 查看订单模块功能描述 ............................................. 30
4.5.2 查看订单模块界面设计 ............................................. 30
4.5.3 算法实现 ......................................................... 31 5 系统测试
5.1 系统测试 ............................................................ 33
5.1.1引言 ............................................................. 33
5.1.2 测试用例 ......................................................... 33
5.2 结果分析 ............................................................ 38 6 总 结 ................................................... 40 谢 辞 ..................................................... 41 参考文献 ................................................... 42
摘 要
Web网上订购系统是利用JSP+Struts技术实现一个在网络上的动态电子商务网站。系统以SQL Server 2000为数据库开发平台,以Tomcat作为应用服务器,采用JSP(Java Server Pages)技术实现。Web网上订购系统分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理,等功能;后台部分由管理员使用,主要包括商品管理,处理订单,用户信息管理等功能。Web网上订购系统前台业务功能的设计与实现主要完成前台部分的开发。
建立后的网站系统是一个动态、交互式、具有商品提供、系统管理等功能的电子商务网站。系统经过初步测试,达到了最初提出的设计任务要求。
关键词:JSP;Struts;SQLserver2005;Tomcat;网上购物系统
The Online Shopping System
——Design and Implementation of Business
ABSTRACT
The system is trying to use JSP+Struts in a dynamic network of e-commerce websites structure, with SQL Server 2000 for database development in platform, Tomcat application server as a network information services, use JSP (Java Server Pages) technology develop online shopping system. The Online Shopping System is divided into front module and back module, the front module of website witch is for users, including users registered, a shopping cart management, order management, personal information management, message board management functions; the back module witch used by managers, including commodity management, processing orders, customer information management, information management, and other functions links. I am responsible for the front part.
After the establishment of the website is a dynamic, interactive, with commodities, systems management, and other functions of the e-commerce website users. System has been tested to achieve the mission requirements
Key Words: JSP;Struts;SQL Server 2005;Tomcat;Online shopping system
1 前 言
1.1 选题背景
随着互联网技术的发展,电子商务已经不再是一个梦想。通过网上银行、网上交易平台的支持,人们足不出户,便可轻松进行网上交易活动。同时也出现了大量的新的办公模式和生活方式,如SOHO族等,本文介绍的系统是电子商务的一个部分,即网上购物系统的实现。
用户希望在该购物系统的帮助下,通过虚拟的网上商店,在线挑选自己喜爱的商品,放置在虚拟的购物筐内,接着通过购物系统向网上商店下商品订单,在多种付款方式中选择一种,向该商品支付相关费用。网上商店收到用户订单后,此时认定该订单为有效订单,等待用户支付的费用。在收到费用后,准备订单所列商品,发货,同时通过有效的联系方式通知用户商品已寄出,注意查收。在用户收到商品后,该次交易过程结束。
另外,利用该系统,商店可以更好地进行其会员管理,进行人性化的购后服务,扩大服务范围,同时降低管理成本。
1.2 网上购物的现状
随着世界经济的全球化,顾客需求的多样化,企业将面临前所未有的激烈竞争和挑战。为了在竞争中取胜,企业必须以更加灵活的方式进行生成和服务,进一步应用信息技术和先进有效的组织管理方法。电子商务正式顺应这一法阵趋势的一门崭新技术。简单的说,电子商务就是这利用Internet网络惊醒的商务交易。在一个电子商务系统中,网上购物拨快通过WEB服务器发布商品信息(供客户浏览。采购商品,提交订单等),占据很重要的位置。其一是因为界面的友好性,购物的方便性是吸引顾客的重要因素;其二是因为该模块是放在Internet上的,如果涉及不当,商品很容易被非法入侵,造成巨大的经济损失。所以安全性也是很重要的技术环节。电子商务已经成为了新经济的代名词。
在未来的商务活动中,“要么电子商务,要么无商可务”已经在商业界形成了共识。国美很多综合性网站都有电子商城,如www.sina.com www.sohu.com www.163.com ,而比较专业比较著名的国内购物商城有 www.ebay.com.cn www.taobao.com ,我国的网络商城还在不断的摸索和发展阶段。在国外,网上购物已经成为人们生活中不可缺少的一部分了。
1.3 网上购物的安全性
网上交易的虚拟性很强,交易双方互不见面就是网络购物与传统购物方式之间存在的
一个很大的不同点。要想在网上交易正常进行,这就要求要有一个良好的社会信用环境,信用消费观念也能够被人们接受、认可并深入人心。西方一些国家的网上购物发展势头比较好,一个重要的原因是西方的市场秩序比较好,信用制度比较健全,信用消费观念已被人们普遍接受。
但如果是另一种情况,市场充斥假冒伪劣商品,商品交易市场秩序较为混乱,同样导致人们信用消费的意识变得薄弱,人们亲临现场、亲眼目睹的传统购物方式购买的产品还会出现质量问题,他又怎么能相信不知道离自己有多远的网上商店呢?交货延迟,甚至在交款后没有收到所需的商品或服务时目前网上购物配送管理系统存在的,而且让消费者深感不安的问题。相关调查表明,大约有五分之一的内地网民表示,曾经有过在网络上订货并且付款,但却没有收到货品的经历。业内人士指出,国内尚缺乏系统性、专业性、全国性的货物配送企业,配送销售组织没有形成一套高效、完备的配送管理系统,这毫无疑问地影响了人们的网上购物热情。
1.4 系统定义
JS:JS指的是网页Java Script客户端脚本文件,以JS为扩展名的文件是用JavaScript脚本语言编写的。
B/S架构:B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。
三层架构:三层架构(3-tier application) 一个三层架构的应用程序由三部分组成,这三部分各自分布在网络中的不同地方。这三个部分分别是:工作站或表示层接口、事务逻辑、数据库以及与其相关的程序设计。
(GUI)的程序设计和具体的应用程序入口表格或交
互式窗口。
事务逻辑处在局域网(LAN)服务器或其他共享主机上,它作为响应工作站所发出客户请求的服务器,而相对于处于大型机的第三层它是作为客户端,并且决定需要什么数据以及数据存储在哪里。
第三层包括数据库以及处理读写以及访问数据库的程序。然而应用程序的设计可能比这个架构要复杂,对于大型程序来说,这个三层模式是一种比较简便的考虑方法。
言来开发。因为各个层次的开发不会影响其他层次,所以这种模型对于进一步开发软件是很方便的。
J2EE: J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)
J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,,企业内部或外部难以互通的窘境。
2 需求分析
2.1 功能需求概述
经过对各大网上商城网站及实际企业销售过程的考察、分析,要求本系统具有以下功能:
(1)统一友好的操作界面,保证系统的易用性,方便用户的操作。
(2)具备商品信息的展示功能,方便浏览者对商品信息进行浏览和比较。
(3)规范的商品分类,方便浏览者分类查找商品。
(4)完美的购物车功能和用户结账功能。
(5)设置网站公告信息模块,使浏览者能够即使了解网站的攻台变化,及公司销售的新品、特价活动等信息。
(6)商品销售排行。
(7)订单信息查询功能,以方便管理员对网站信息进行更新与管理。
2.2 用户权限描述
本系统主要包括两种用户:系统管理员和会员
系统管理员:拥有本系统的全部权限。
会员:拥有本系统中的商品查询模块,购物车模块,订单查询模块的权限。
2.3 可行性分析
当接受一个软件开发任务,就进入软件生命的第一个阶段,即进行可行性的研究。并不是所有问题具有简单的解决办法,许多问题不能在预定的规模之内解决。因此通过可行性的研究分析可以知道问题。
本系统在以下4个方面进行可行性分析:
(1)技术可行性
根据任务书提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术以较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发。
(2)效益可性行
网络平台已经成为企业经营管理中不可忽视的一个重要方面,拥有一个全面的、功能强大的、操作简单的网络购物中心,已经成为企业营销发展的一个必然趋势。网络购物中心的建立,从销售方面来讲,不仅给企业增加了一个新的销售渠道,而且方便了客户购买与了解公司的产品及新的销售方向;从企业宣传方面来讲,不仅扩大了企业的知名度,还更直观的展示出企业的产品。拥有一个B2C网络购物中心,已经成为企业网络销售进程中的一个重要环节。
(3)法律可行性
新系统的研制和开发,将不会侵犯他人、集体和国家的利益,不会违反国家政策和法律。
2.4 数据库描述
本系统采用了Sql Server 2000作为数据库,数据库名为db_shopping,经系统分析和数据结构分析后,共建立了以下9个表:tb_goods表,用来存储商品信息。tb_bigType表,是用来存储商品类别中大的类别信息的表。tb_smallType表,是用来存储商品类别中小的类别信息的表。tb_order表,是用来存储订单概要信息的表。tb_orderDetail表,是用来保存订单详细信息的表。tb_member表,是用来存储注册会员信息的表。tb_manager表,是用来存储管理员信息的表。tb_affiche表,是用来存储公告信息的表。tb_link表,是用来存储网站链接信息的表。
2.5 数据采集
商品基本信息、管理员信息、公告信息、网站链接信息是管理员利用后台的相应功能模块输入的。
会员信息是会员在注册时输入的,订单信息是会员购物时自动生成的。
2.6 系统环境
2.6.1系统运行环境
硬件配置:P4或同档次以上微机;
256MB以上内存或更高;
40G以上硬盘;
10/100M网卡;
软件环境:中文 WINDOWS 2000/XP/ME/2003操作系统;
Sql Server 2005数据库。
2.6.2 系统开发环境
硬件配置:P4或同档次以上微机; 256MB以上内存或更高; 40G以上硬盘; 52速以上光驱; 10/100M网卡;
软件环境:Myeclipse 5.5.1.GA; Sql Server 2000;
Tomcat6.0
操作系统:WINDOWS 2000; 数据库:Sql Server 2005; 开发语言:JSP,JAVA;
3 概要设计
3.1 系统总体结构
网上购物中心是一个针对网上购物的消费者编写的软件,是一个实用的管理信息系统,针对顾客的实际需要,分析了网上购物系统的功能,顾客可以注册成为会员,然后购买商品,会员还可以进行修改会员资料、查询订单查看购物车、添加商品进购物车、清空购物车等操作。管理员可以进行查看所有会员信息、添加删除商品、审核会员等操作。
系统总体结构如图3.1所示:
图3.1 系统总体结构图
3.2 功能划分
从系统用户角度,会员登录后,具有修改自己的会员资料、按不同的类别查看商品、购买商品(将商品放入购物车)、查看购物车、删除购物车中的商品、清空购物车、填写订单、结账功能;管理员登录后,可以进行的操作有修改密码,商品信息的查询、添加、删除,订单查询、审核、删除,会员信息查询、删除,公告信息的添加、修改、删除。功能划分如图3.2所示。本设计主要完成的是会员登录后进行的操作。
图3.2 系统结构流程图
3.3 系统功能描述
本设计针对网上商店的实际需要,分析了网上购物系统的功能,顾客可以注册成为会员,然后购买商品,会员还可以进行修改会员资料、查询订单查看购物车、添加商品进购物车、清空购物车等操作。管理员可以进行查看所有会员信息、添加删除商品、审核会员等操作。
在本次设计中我主要负责设计业务处理子系统,具体包括下列几个模块: (1)会员管理
会员管理会员登录、会员注册和会员资料修改。会员登录模块时要进行简单的客户端校验。如果用户名或密码为空,系统会给出相应的提示,如果用户名或密码错误,系统会提示相对应的错误,如果用户忘记密码,可以点击找回密码,通过用户注册时给出的密码问题和密码答案找回密码。会员注册用户需要输入会员名称、会员密码、密码确认、真实姓名、年龄、职业、Email、找回密码问题、答案。会员资料修改模块中,会员可以修改密码、年龄真实姓名、职业、Email。
(2) 商品查询
分不同的类别查看商品。本系统现有的商品类别有IT数码、家用电器、服装鞋帽、烟酒、食品、办公用品
(3)购物车
在确定选购产品后,进入支付功能界面,系统能自动计算所有选定产品的总金额,并能够根据该用户的等级所对应的折扣率计算出实际应付总金额,同时要求指定支付方式、订单收货人的详细地址等信息,然后确认,完成支付过程,并且信息可以重新填写,即取消本次订购过程。
(4) 查看订单
提供查看用户订单及订单明细功能。会员查看订单时显示订单编号、电话、地址、订货时间、是否出货,查看订单明细时显示订单编号、商品名称、商品价格、商品数量。 3.4 数据库设计 3.4.1数据库环境的连接
本系统采用SQL Server 2000数据库,连接数据库代码为: public class JDBConnection {
private String dbDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; //数据库的驱动 private String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=db_shopping"; //URL地址
public Connection connection = null; public JDBConnection() { try {
Class.forName(dbDriver).newInstance(); //加载数据库驱动
connection = DriverManager.getConnection(url, "sa", "123456"); //加载数据库 }
catch (Exception ex) {
System.out.println("数据库加载失败"); } }
3.4.2数据库概念结构设计
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它
们之间的关系,为后面的逻辑结构设计打下基础。
根据上面的设计,规划出的主要实体有用户实体、基本信息维护实体、入库单实体、出库实体、库存实体、帐务实体等。各个实体的E-R图及其关系描述如下。
图3.3:tb_goods表E-R图 中文名:商品信息表E-R图
图3.3 tb_goods表E-R图
图3.4:tb_bigType表E-R图 中文名:商品大分类信息表E-R图
图3.4 tb_bigType表E-R图
图3.5:tb_smallType表E-R图 中文名:商品小分类信息表E-R图
图3.5 tg_smallType表E-R图
图3.6:tb_order表E-R图 中文名:订单信息表E-R图
图3.6 tb_order表E-R图
图3.7:tb_orderDetail表E-R图 中文名:订单明细表E-R图
图3.7 tb_detail表E-R图
图3.8:tb_member表E-R图 中文名:会员信息表E-R图
图3.8 tb_member表E-R图
3.4.3数据库逻辑结构设计
本系统数据库中共用到了tb_goods表等6个数据表,其物理结构图如下所示: 表3.1:tb_goods表 中文名:商品信息表
功能描述:用来保存商品的基本信息。
表3.2:tb_bigTye表 中文名:商品大类型信息表
功能描述:用来保存商品类别中大的类别信息。
表3.3:tb_smallType表 中文名:商品小类别信息表
功能描述:用来存储商品类别中小的类别。
表3.4:tb_order表 中文名:订单信息表
功能描述:用来保存订单的概要信息。
表 3.5:tb_orderDetail表 中文名:订单明细表
功能描述:用来存储订单明细信息。
表 3.6:tb_member表 中文名:会员信息表
功能描述:用来存储会员的信息。
4 详细设计
4.1 会员管理功能模块 4.1.1 会员管理模块功能描述
本模块分为三个子模块:会员登录、会员注册和会员资料修改。会员登录模块时要进行简单的客户端校验。如果用户名或密码为空,系统会给出相应的提示,如果用户名或密码错误,系统会提示相对应的错误,如果用户忘记密码,可以点击找回密码,通过用户注册时给出的密码问题和密码答案找回密码。会员注册用户需要输入会员名称、会员密码、密码确认、真实姓名、年龄、职业、Email、找回密码问题、答案。会员资料修改模块中,会员可以修改密码、年龄真实姓名、职业、Email。 4.1.2 会员管理模块界面设计
(1) 在首页有会员登录区,会员登录界面如图4.1所示
图 4.1 系会员登录界面图
(2)在首页上点击“注册”按钮进入会员注册界面,会员注册界面如图4.2所示
图 4.2 会员注册界面图
(3)在首页上点击”会员修改”进入会员资料修改界面,如图4.3所示
图4.3 会员资料修改界面
4.1.3算法实现
(1)会员登录校验算法实现
function land(){
if(document.form.name.value==""){
window.alert("请输入账号");
return false;
}
if(document.form.password.value==""){
window.alert("请输入密码");
return false;
}
return true;
}
(2)会员注册算法实现
public void insertMember(MemberForm form) {
try {
ps = connection.prepareStatement(FinalConstants.member_insert);
ps.setString(1, form.getName());
ps.setString(2, form.getPassword());
ps.setString(3, form.getReallyName());
ps.setString(4, form.getAge().toString());
ps.setString(5, form.getProfession());
ps.setString(6, form.getEmail());
ps.setString(7, form.getQuestion());
ps.setString(8, form.getResult());
ps.executeUpdate();
ps.close();
}
catch (SQLException ex) {
}
}
4.2 产品分类查看模块
4.2.1 产品分类查看功能描述
产品总共分为烟酒、食品、IT数码、服装鞋帽、家用电器、办公用品六类。用户可以点击相应的标签查看此类产品。每一个大类别之下都有相应的小类别,如家用电器下有电视、空调、洗衣机、电冰箱四类。用户可以根据自己的需求来分类查看商品。
4.2.2 产品分类查看功能模块的界面设计
图4.4 分类查看商品界面图
4.2.3 算法实现
以商品的小类别的编号为条件查询信息
public List selectSmall(Integer small) {
List list = new ArrayList();
GoodsForm goods = null;
try {
ps = connection.prepareStatement(FinalConstants.goods_selectSmall);
ps.setInt(1, small.intValue());
ResultSet rs = ps.executeQuery();
while (rs.next()) {
goods = new GoodsForm();
goods.setId(Integer.valueOf(rs.getString(1)));
goods.setBig(Integer.valueOf(rs.getString(2)));
goods.setSmall(Integer.valueOf(rs.getString(3)));
goods.setName(rs.getString(4));
goods.setFrom(rs.getString(5));
goods.setIntroduce(rs.getString(6));
goods.setCreaTime(rs.getString(7));
goods.setNowPrice(Float.valueOf(rs.getString(8)));
goods.setFreePrice(Float.valueOf(rs.getString(9)));
goods.setNumber(Integer.valueOf(rs.getString(10)));
goods.setPriture(rs.getString(11));
goods.setMark(Integer.valueOf(rs.getString(12)));
list.add(goods);
}
}
catch (SQLException ex) {
}
return list;
}
以商品的大类别的编号为条件查询信息
public List selectBig(Integer big) {
List list = new ArrayList();
GoodsForm goods = null;
try {
ps = connection.prepareStatement(FinalConstants.goods_selectBig);
ps.setInt(1, big.intValue());
ResultSet rs = ps.executeQuery();
while (rs.next()) {
goods = new GoodsForm();
goods.setId(Integer.valueOf(rs.getString(1)));
goods.setBig(Integer.valueOf(rs.getString(2)));
goods.setSmall(Integer.valueOf(rs.getString(3)));
goods.setName(rs.getString(4));
goods.setFrom(rs.getString(5));
goods.setIntroduce(rs.getString(6));
goods.setCreaTime(rs.getString(7));
goods.setNowPrice(Float.valueOf(rs.getString(8)));
goods.setFreePrice(Float.valueOf(rs.getString(9)));
goods.setNumber(Integer.valueOf(rs.getString(10)));
goods.setPriture(rs.getString(11));
goods.setMark(Integer.valueOf(rs.getString(12)));
list.add(goods);
}
}
catch (SQLException ex) {
}
return list;
}
4.3 商品展台功能模块
4.3.1 商品展台模块功能描述
商品展台模块包括三个子模块:销售排行、新品上架、特价商品。销售排行是根据商品的销售数量来排行的,每销售一件商品,就把此商品的销售数量加一。
4.3.2 商品展台模块界面设计
(1)在首页点击“销售排行”按钮进入销售排行界面如图4.5所示。用户可以浏览网站所有的商品的排行。
图 4.5 销售排行界面图
(2)在首页点击“新品上架”按钮进入新品上架界面,如图4.6所示。用户可以浏览新上架的商品。
图4.6 新品上架界面图
(3)在首页点击“特价商品”按钮进入特价商品界面如图4.7所示。用户可以浏览特价商品。
图4.7 特价商品界面图
4.3.3 算法实现
(1)销售排行算法实现
public List selectGoodsNumber() {
List list = new ArrayList();
GoodsForm goods = null;
try {
ps = connection.prepareStatement(FinalConstants.goods_selectNumber); ResultSet rs = ps.executeQuery();
while (rs.next()) {
goods = new GoodsForm();
goods.setId(Integer.valueOf(rs.getString(1)));
goods.setBig(Integer.valueOf(rs.getString(2)));
goods.setSmall(Integer.valueOf(rs.getString(3)));
goods.setName(rs.getString(4));
goods.setFrom(rs.getString(5));
goods.setIntroduce(rs.getString(6));
goods.setCreaTime(rs.getString(7));
goods.setNowPrice(Float.valueOf(rs.getString(8)));
goods.setFreePrice(Float.valueOf(rs.getString(9)));
goods.setNumber(Integer.valueOf(rs.getString(10)));
goods.setPriture(rs.getString(11));
goods.setMark(Integer.valueOf(rs.getString(12)));
list.add(goods);
}
}
catch (SQLException ex) {
}
return list;
}
List list=goods.selectGoodsNumber();
int number=list.size(); if(number>10){ number=10; }%>
background="image/link.jpg" bgcolor="#FFFFFF">销售商品排行 TOP |
|
GoodsForm form=(GoodsForm)list.get(i); %> (2) 特价商品算法实现 public ActionForward goodSelectFreeHead(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { List list = null; String mark = request.getParameter("mark"); list = dao.selectMark(Integer.valueOf(mark)); int pageNumber = list.size(); //计算出有多少条记录 int maxPage = pageNumber; //计算有多少页数 String number = request.getParameter("i"); if (maxPage % 4 == 0) { maxPage = maxPage / 4; } else { maxPage = maxPage / 4 + 1; } if (number == null) { number = "0"; } request.setAttribute("number", String.valueOf(number)); request.setAttribute("maxPage", String.valueOf(maxPage)); request.setAttribute("pageNumber", String.valueOf(pageNumber)); request.setAttribute("list", list); return mapping.findForward("goodSelectFreeHead"); } 4.4 购物车功能模块 4.4.1 购物车模块功能描述 购物车模块包括三个子模块:添加购物车、查看购物车和收银台。在浏览商品时查看商品详细信息,如果想购买此商品,可以在“查看商品详细信息”页面点击“放入购物车”按钮,此商品就放入到购物车中了。查看购物车模块中显示商品的名称、商品价格、商品数量、总金额、合计总金额。在购物车模块中可以选择“继续购物”、“去收银台结账”、“清空购物车”、“修改数量”。总金额是商品价格乘以商品数量,合计总金额是所有商品总金额的和。收银台需要会员输入联系地址、联系电话、付款方式、运送方式、备注信息。 4.4.2 购物车模块界面设计 (1) 在商品浏览界面浏览商品如图4.8所示。会员可以根据商品的类别选择浏览不同的 商品。 图4.8 商品浏览界面图 (2)在商品浏览界面点击查看详细内容进入添加购物车界面,如图4.9所示 图4.9 添加购物车界面 (3)在主页面上点击查看购物车进入查看购物车界面,如图4.10所示 图 4.10 购物车界面图 (4)在查看购物车界面点击去收银台结账进入收银台界面,如图4.11所示 图4.11 收银台界面图 4.4.3 算法实现 购物车算法实现:
4.5查看订单功能模块 4.5.1 查看订单模块功能描述 本模块主要用来实现系统的会员查看订单功能。会员可以查看自己的订单和订单明细。会员查看订单时显示订单编号、电话、地址、订货时间、是否出货,查看订单明细时显示订单编号、商品名称、商品价格、商品数量。 4.5.2 查看订单模块界面设计 当会员登录成功,进入前台主页面如图4.12所示。 图4.12 前台主页面界面图 在主页面上点击查看订单,进入查看订单界面,会员可以查看到自己的订单信息,如图4.13所示。 图 4.13 会员查看订单界面图 4.5.3 算法实现 订单查询的算法: public OrderForm selectOrderNumber(String number) { OrderForm order = null; try { ps = connection.prepareStatement(FinalConstants.order_selectNumber); ps.setString(1, number); ResultSet rs = ps.executeQuery(); while (rs.next()) { order = new OrderForm(); order.setId(Integer.valueOf(rs.getString(1))); order.setNumber(rs.getString(2)); order.setName(rs.getString(3)); order.setReallyName(rs.getString(4)); order.setAddress(rs.getString(5)); order.setTel(rs.getString(6)); order.setSetMoney(rs.getString(7)); order.setPost(rs.getString(8)); order.setBz(rs.getString(9)); order.setSign(rs.getString(10)); order.setCreaTime(rs.getString(11)); } } catch (SQLException ex) { } return order; } 5 系统测试 5.1 系统测试 5.1.1引言 软件测试是为了发现错误而执行程序的过程。它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。软件测试是软件质量保证的关键环节,直接影响着软件的质量评估。软件测试不仅要讲究策略,更要讲究时效性。验收测试作为软件测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到“一锤定音”的作用。 5.1.2 测试用例 测试项目编号:1 测试人:张真真 测试日期:2011-4-20 测试项目编号:2 测试人:张真真 测试日期:2011-4-20 测试项目编号:3 测试人:张真真 测试日期:2011-4-20 5.2 结果分析 效率分析: 由于本系统采用jsp做为开发语言,采用B/S三层架构构建系统,所以系统的各项业务处理过程有着明显的分工。系统中有很多数据的输入和验证,这块的处理机制是在表示层上完成的。即在客户端的浏览器(Browser)上完成的。所以减轻了服务器的压力,系统只有少部分的数据存储分配在服务器上完成,大部分的业务处理是在分布在各地的客户端上完成的。这样系统的运行效率就会很高。系统中还定义了很多的自定义控件和函数,事件等。这样在处理业务时实现了代码和控件的重用这样又大大的提高了程序运行效率。 但系统的表示层大部分采用了脚本(JavaScript)语言,和CSS样式表来限定系统的界面和控件,这样对客户端的硬件配置要求较高,这样在一定程序上影响了系统的运行。程序中还用到了嵌套的循环,也影响了程序的运行效率。 可靠性分析: 可靠性(reliability)是产品在规定的条件下和规定的时间内完成规定功能的能力,它的概率度量称为可靠度。软件可靠性是软件系统在规定的时间内及规定的环境条件下,完成规定功能的能力。包含三个元素:规定的时间,规定的环境,规定的功能。规定的时间在本系统就是程序的运行时间,属随机变量。规定的环境就是下面的配置环境要求。软件可靠性还与规定的任务和功能有关。由于要完成的任务不同,软件的运行剖面会有所区别,则调用的子模块就不同(即程序路径选择不同),其可靠性也就可能不同。所以要准确度量软件系统的可靠性必须首先明确它的任务和功能。而本系统在明确的任务和功能的条件下基本完成了所期望的功能。 配置环境要求: 环境条件指软件的运行环境。它涉及软件系统运行时所需的各种支持要素,如支持硬件、操作系统、其它支持软件、输入数据格式和范围以及操作规程等。本系统对配置环境的要求如下: 硬件配置:P4或同档次以上微机; 256MB以上内存或更高; 40G以上硬盘; 10/100M网卡; 软件环境:Myeclipse5.5.1.GA; Sql Server 2005 Tomcat6.0 操作系统:WINDOWS 2000/WINDOWS XP 数据库: Sql Server 2005; 开发语言:Myeclipse5.5.1.GA,JSP语言; 容错性: 容错性测试是检查软件在异常条件下的行为。本系统多处用到了数据的查询,和对数据的选择输入,即下拉框选择输入。这样就很好的规划了用户的输入,大大减小了因用户输入的不规范使数据不正确和系统的崩溃的可能性。极少部分的数据需要用户输入,在这样的输入控件上都加了对输入数据的验证机制,当有错误和不规范的数据输入时,系统会及时准确的提示错误信息。系统中并加入了回滚机制,保证了数据的完整性,防止了脏数据的保存。系统运行时后台的错误是最不容易发现的,在代码设计中多采用了异常的捕捉,及时准确的捕捉到程序异常,并提示给用户。 6 总 结 经过三个月的设计和开发,WEB网上订购系统系统基本完成。针对在设计过程中遇到的问题,做了及时调整,基本实现了网上购物中主要业务模块的基本功能,包括商品的添加、删除,商品信息的修改,会员信息的查询,会员的删除。订单的查询、删除等操作。通过这次毕业设计,个人在程序的设计和编码方面的能力有了一个很大的提高,从以往书本上的理论知识运用到了实践当中,又从实践当中回归到了书本中。在这其中学到了很多东西:首先是程序设计的能力,从一开始的需求分析,知道了我要做个什么样的东西,然后对其进行概要设计,系统分析,知道了我该怎么来做,有了系统的大体的框架。编码时我知道了这些功能具体来怎么实现,还有没有比这个方法更好的办法,怎么来写代码才能更规范,更能符合面向对象的思想。测试时让我知道了我做的东西中还存在那些漏洞,在设计和编码时出了那些问题,忽略了那些问题,怎么设计程序更能使程序运行流畅。数据库方面也学到了很多知识:存储过程,SQL语句的聚合函数等。此外我还学到了很多的现行比较流行的技术:首先是面向对象的思想,在程序中实现了代码的重用,继承和封装,组件等。还有三层B/S架构,掌握了三层中表示层,逻辑层,数据层的划分和实现功能的界定。 通过这次的设计学习,让我深深体会到程序设计的魅力。要做一个程序首先要摆正心态,不要怕困难,静下心来去思考,去攻关。编程的过程就是不断学习的过程,遇到了问题去解决,解决了就学到了东西。百折不挠,必能提高自己。 谢 辞 毕业设计已接近了尾声,通三个月的努力终于完成了WEB网上订购系统要求的功能。在此过程中遇到了很多的困难,是老师和同学们一块探讨学习帮我克服了困难。才使得我毕业设计顺利完成,在这里我向在毕业设计中帮助过我的老师和同学们表示深深的感谢。 本次毕业设计是在刘淑枝老师的悉心指导和严格要求下完成的,从选题到具体系统实现,再到论文修改无不凝聚着刘淑枝老师的心血和汗水,在我的毕业设计期间,刘淑枝老师为我提供了种种专业知识上的指导和一些富于创造性的建议。刘老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,使我感受到她朴实无华、平易近人的人格魅力。她是我日后学习、工作与生活中的最好的榜样!在此向刘淑枝老师表示深深的感谢和崇高的敬意! 感谢所有教过的或没教过我的全系的老师,因为你们课堂上的指导和课外的交流,我才可以学习到这么多的知识和做人的道理,为今后的人生做准备。 感谢所有的舍友和身边的朋友,谢谢你们的鼓励和支持,没有你们,我走不到今天,从遥远的家来到这个陌生的城市里,是你们和我共同维系着彼此之间姐妹般的感情,维系着寝室那份家的融洽。三年了,仿佛就在昨天。三年里,我们没有红过脸,没有吵过嘴,没有发生上大学前所担心的任何不开心的事情。只是今后大家就难得再聚在一起吃每年元旦那顿饭了吧,没关系,各奔前程,大家珍重。 三年时间,不知不觉就要过去了。在此,我衷心感谢三年来辛勤培育我们的老师。在以后的工作岗位上,我也会不断努力,用自己的辛勤工作和不懈奋斗来回报母校和老师们! 参考文献 [1] 萨师煊,王珊.数据库系统概论[M].北京: 高等教育出版社, 2003:25-65. [2] 甘仞初.管理信息系统[M].北京:机械工业出版社,2001-2:102-109. [3] [加]Budi Kurniawan.深入浅出Struts[M]北京:人民邮电出版社,2007:52-126. [4] 李贤华. 基于JSP技术的大型网上购物系统的设计与实现[J],计算机与现代化出版社,2008(8): 82-89. [5] 何静, 谭新民. 基于J2EE的网上购物系统的设计[J],山西电子技术出版社,2008(1):66-68. [6] 刘大玮,马传宝,孙颖洁编著.SQL Server数据库项目案例导航[J]北京:清华大学出版社,2005:12-36. [7] 殷人昆,郑人杰.实用软件工程[M].北京:清华大学出版社,2005-5:112-136. [8] [美]普雷斯曼.软件工程:实践者的研究方法[M]北京:机械工业出版社,2004-7:98-112. [9] 衡友跃. 基于MVC模式的网上购物系统应用研究[J],淮北职业技术学院学报,2008-7:77-79. [8] James W. Cooper, et al. Introduction to Design Patterms in C#[J] . Waston Research Center, 2003,V33(5) :2002-2005. [9] 张健. XML技术在网上购物系统中的应用与安全分析[J]科技创新导报,2008-12:40-63. |