毕业设计(论文)基于web技术的在线交易系统_第1页
毕业设计(论文)基于web技术的在线交易系统_第2页
毕业设计(论文)基于web技术的在线交易系统_第3页
毕业设计(论文)基于web技术的在线交易系统_第4页
毕业设计(论文)基于web技术的在线交易系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学院学院毕业论文毕业论文 系系 别:别: 计算机工程系 专专 业:业: xxxxxxxxx xxxx 班班 级:级: 软件 x xxxx 姓姓 名:名: xxxxxxxxxxxxxx xxxxxx 学学 号:号: 1xxxxxxxxxxxxx 指导教师:指导教师: xxxxxxxxxxxxxxxx 2012 年 5 月 12 日摘 要随着信息高速公路的建立,internet 的普及,网络技术的迅猛发展,人类社会已经进入了一个信息化社会。电子商务指利用简单、快捷、低成本的电子通讯方式,买卖双方通过网络进行各种商贸活动的一种商业交易模式。随着互联网的发展,以及人们消费观念和生活方式的改变,这种新型

2、的商业模式逐渐融入了人们的生活中。通过企业的门户网站,人们可以足不出户的寻找自己所需的物品,通过对不同虚拟商城的访问,“顾客”可以找出性价比最高的商品,自己有极大地选择空间;通过下订单,你可以很快得到自己想要的物品,这给顾客节省很多时间和精力;对于厂家来说,可以极大地降低库存风险,可根据客户需要,按需采购和生产,大大地提高了效益。本毕业设计的内容是设计并且实现一个基于 web 技术的在线交易系统。系统主要以 j2ee 作为开发基础,使用了 struts+servlet+jsp+mysql 等多种协议或技术,用 myeclipse 作为开发工具。基本实现了网上交易系统应有的主要功能模块,包括:管

3、理员的登录,管理和维护;用户注册、登录、注销,个人信息的查询、修改;商品管理,购物车管理,订单管理。该系统界面简单、操作方便,容易维护。 目目 录录绪绪 论论.1 1第第 1 1 章章 系统开发背景及意义系统开发背景及意义.1 11.1 系统开发背景 .11.2 系统开发意义 .1第第 2 2 章章 网上购物系统需求分析网上购物系统需求分析.2 22.1 现状分析 .22.2 系统功能需求 .22.3 系统开发环境配置 .32.4 系统开发工具 .32.4.1 开发语言java.32.4.2 数据库mysql5.5.4第第 3 3 章章 网上购物系统设计网上购物系统设计.4 43.1 数据库设

4、计 .43.1.1 数据库需求分析.43.2 数据库设计 .73.2.1 数据库逻辑结构设计.73.2.4 系统结构设计 . 页面设计. mvc 模式设计(jsp+servlet+struts2).11第第 4 4 章章 购物系统实现购物系统实现.12124.2 系统各部分的实现方法 .134.1.2 访问数据库的 dao .134.1.3 用户登录模块页面.144.1.4 用户注册模块页面.15第第 5 5 章章 系统测试系统测试.24245.1 什么是软件测试 .245.2 软件测试的目标与方法 .245.3 系统的不足和展望 .25结束语结束语.252

5、5致致 谢谢.2525绪 论综观电子商务的历史,随着 internet/intranet 应用越来越广,迅速扩展从个人到集团,从企业到科技、教育、商业,几乎覆盖了所有的领域。商品和服务的地理界限被打破,各种公司无论大小,都在忙于建立新的商业解决方案,来适应新的交易 方式。internet/intranet 固有的一些特性,如方便获得,实时的信息,低廉的成本使得它成为商务解决方案的一种本质的驱动力。而且,在下面这些颇具竞争力的优势下,开发了本系统来实现和完成电子化的商业交易过程。第第 1 章章 系统开发背景及意义1.1 系统开发背景近几年来,随着人们思想觉悟以及生活水平的提高,上网已是人们生活中

6、不可缺少的部分,计算机可谓是现代科技发展的产物,如今的计算机已经走进了千家万户,对于大多数人来,足不出户的在自己的计算机上查看自己喜欢的商品,并购买商品已经很普遍了。适当的上网可以增加人们的知识面还可以提高生活的品味,更有利于人们身心健康的发展,有利于开阔人们的思维模式,还有利于培养人们各方面的能力。也正是因为这样,网上购物得以飞速发展,遍及到世界各个层次。由于 internet 提供了双向的交互通信,网上购物不仅成为了可能,而且成为了热门。由于这种模式节省了客户和企业双方的时间、空间。大大提高了交易效率,节省了各类不必要的开支。因而,这类模式得到了人们的认同,获得了迅速的发展。1.2 系统开

7、发意义系统开发意义现代人的生活离不开网络,电子商务日趋发展,老百姓感受最深刻的就是“买东西方便了” 。而与普通大众接触最“亲密”的,首当其冲就是上网购物了。关于这个购物网站是为了更好的适应现在互联网上交易日益增加而设计开发的。接下来我们来看看网购给我们生活带来的便利 :1.省脚力。不用亲自逛街,在电脑或者手机前轻松浏览商品。逛街购物的我们都应该心有体会,一整天在街上瞎逛的痛苦,还要浪费大量时间,特别想找某一特定商品的时候,找一整天都找不着。在网上则完美地解决了这一难题,只要想买什么商品,一键搜索!2.支付轻松。不用自备现金,使用网银一键支付。收到假钱是消费者和商家最怕的,现实生活中的交易行为市

8、场发生。然而在网上进行购物,大家终于不用担心了。3.范围广。商品种类遍布世界各地,可不受地域限制购买。每一个地方都有其特产,不论是吃的还是用的,如果想拥有不一定要亲自去买,网上搜搜特产琳琅满目,只需支付相应运费,就可以送到家门。有了网络之后,秀才不出门尽知天下事,但有了网购之后,就是闺女不出门,尽拥天下宝!4.省力又惊喜。有专门快递员送货上门。网购过的朋友应该也亲身感受过收快递的愉悦心情吧,那一种惊喜的滋味是现实中买东西所感受不到的,好比有人给你送礼物般惊喜。责任明确。买卖双方不再是口头交易,而是有根有据有文字记录,协议中责任明确,减少了纠纷的概率。5.不受买卖双方情绪影响。不少消费者反映到去

9、哪个商场或者哪间店铺买东西,店家态度恶劣,或者嫌贫爱富说话伤人,卖家则抱怨消费者看完不买存心戏弄的现象。然而网购有效地改变了这种现状,买卖双方除了需要咨询时候不必打交道可直接购买,因为每一件商品下都有图片展示、商品的规格大小、材料、功能、尺码、卖家的话等等,因为不说明的话,后果是卖家负责的。 本系统的目的和意义就是应上述挑战而尝试为用户提供一个操作简单方便的网上交易系统。利用本系统,用户可以自由地浏览商品,注册成为网站会员,选择商品加入自己的购物车,而后生成订单,实现网上购物。第第 2 章章 网上购物系统网上购物系统需求分析2.1 现状分析由于购物网站的开发已有一定的时期,而且有很多成功的实例

10、,技术基础也已经非常雄厚,因而技术上的准备应该不成问题。2.2 系统功能需求系统功能需求2.2.1 系统主要模块1, 模拟当当网主要的功能2, 在本系统中主要阐述用户管理、购物车管理、订单管理、产品展示四个模块。(1)购物车管理:实现添加商品、取消一个商品、数量修改、清空购物车功能。(2)创建订单管理:实现提交订单、删除订单、查询订单功能。(3)产品展示:实现产品列表、产品明细功能。(4)用户管理:实现用户注册、用户信息修改、用户删除、用户查询功能。除了实现上述功能以外,在购物系统还应该具有友好、简洁的界面,安全性要高,稳定性要强。2.2.2 系统的 3 个角色:(1) 注册用户(2) 管理员

11、 (3) 普通的网站浏览者(即游客) 2.2.3 系统角色的功能(1) 普通用户: 网站的普通浏览者(即游客)只能浏览商品。(2) 注册用户: 普通浏览者只要注册为网站用户后,获得自己的帐号,设置自己的密码就具有以下功能:登录,登出,向购物车中添加商品,生成并提交订单。添加或修改个人明细资料。 (3) 管理员: 拥有注册用户的所有功能,还可以对用户进行管理,包括添加新用户、修改用户密码、删除用户。 2.3 系统开发环境配置选择微软平台作为主导,一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;令一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件

12、的部署上都是非常容易,而且性能优越。具体如下:1. 开发工具:myeclipse 8.02. 数据库:mysql5.53. 服务器 :apache tomcat6.0.354. 运行环境 :安装 jdk1.6 支持 java 运行。5. 技术:前台网页的设计采用 jsp 技术制作。负责响应用户对业务逻辑的请求并根据用户的请求行为,决定将哪个 jsp 页面发送给客户由struts2 处理,servlet 则负责数据的处理。2.4 系统开发工具本系统是基于 jsp+servlet+struts2+mysql5.5 数据库技术实现的。2.4.1 开发语言javajsp 页面由 html 代码和嵌入其

13、中的 java 代码所组成。java servlet 是jsp 的技术基础,而且大型的 web 应用程序的开发需要 java servlet 和 jsp 配合才能完成。jsp 具备了 java 技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的等特点。jsp 的技术的优势:一次编写,到处运行。在这一点上 java 比 php 更出色,除了系统之外,代码不需要做任何更改。系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比 asp/php 的局限性是显而易见的。jsp 技术是用 java 语言作为脚本语言的。java

14、语言是成熟的、强大的、易扩充的编程语言。高效性与安全性。jsp 在执行前先被编译成字节码,字节码由 java 虚拟机解释执行,比源码解释效率高。可维护性。由于 jsp 技术是一种开放的、跨平台的结构,因此 web 服务器、平台及其他组件能很容易升级或切换,且不会影响 jsp 基本的应用程序。多样化和功能强大的开发工具支持。java 已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。2.4.2 数据库mysql5.5mysql 是一个精巧的 sql 数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性

15、、丰富的应用编程接口(api)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与 apache 和 php/perl 结合,为建立基于数据库的动态网站提供了强大动力。 sql 是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用 sql 语言为一个网站检索产品信息及存储顾客信息,同时 mysql 也足够快和灵活以允许你存储记录文件和图像。第第 3 章章 网上购物系统设计网上购物系统设计3.1 数据库设计在对网上购物系统数据库部分进行设计的过程中,通过对系统功能进行需求分析得到系统的基本信息表,绘制系统业务流程图和系统数据流程图,分析得到数据字典;在概率

16、结构设计阶段通过对需求阶段得到的用户需求抽象得到数据库关系模型的 e-r 图;在逻辑结构设计阶段得到数据库的关系模式并绘制信息表。详细设计过程如下介绍。3.1.1 数据库需求分析需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。 系统基本信息综合以上分析,要实现上面的所有功能模块,数据库共要设计八个表,它们分别是: a. d_user表 存储用户注册的信息. b. d_receive_address表 存储用户使用过的收货地址. c. d_category表 存储产品类别信息 d. d_pro

17、duct表 存储各种类型产品的共有信息 e. d_book表 存储图书产品的特有信息 f. d_category_product表 存储类别和产品之间的包含关系 g. d_order表 存储订单信息表. h. d_item表 存储订单明细表. 系统层次图根据所要实现的功能和用户权限的设置。系统总体的层次图如下图 3-1 所示:改个人信息注册新用户浏览商品登登录陆购买商品添加到购物 车对购物车里面的商品进行操作,提交生成订单获得订单号等接收 商 品品服务器数据库浏览器图 2-1 系统层次图3.1.2 总体设计思想概述 本系统是基于 b/s 架构下的多层结构应用系统。b/s(brow

18、ser/server)结构即浏览器和服务器结构。在这种结构下,用户工作界面是通过 www 浏览器来实现。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。在软件体系架构设计中,分层式结构是一般分为三层,从下至上分别为:数据访问层、业务逻辑层、表示层。 总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的 api,而下层组件则不依赖于上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。并且每个层对对上层公开api,但具体的实现细节对外透明。当某

19、一层发生变化,只要 api 不变,不会影响其他层的实现。在本系统中,使用开源的 mysql 数据库,表示层用到 jsp 技术显示动态页面,业务逻辑层用普通 servlet 实现,控制层运用基于 struts2的 action 控制。 3.2 数据库设计数据库设计3.2.1 数据库逻辑结构设计对于关系型数据库,数据库的概念结构设计完毕后,要把 e-r 图描述的概念数据模型转换为等价的关系模式极其约束。逻辑设计的基本工作主要如下步骤。 关系模式设计该设计以概念结构设计中的 e-r 图为主要依据,数据库表的关系模式如下图 3 系统数据库表的 e-r 图 完整性设计完整性要

20、求用于描述各种信息之间的制约关系,以及关联关系,各个数据项的取值范围以及各个数据项是否可以取值。根据实际需要,采取一定的手段来满足用户的完整性需求。域完整性约束要求属性值必须在域中。实体完整性约束要求主键必须唯一且不能为空。如用户信息表中的用户名设置为主键,并且要求唯一且不能为空。 模式优化本次采用 3nf 为规范准则来分解关系。将一个关系分解为两个或者多个关系,以满足规范,从而避免产生插入异常、删除异常、更新异常。.3 数据库表设计数据库表设计用户信息表如图 3-5 所示图 3-5 用户信息 d_user 表产品信息表如图 3-6 所示图 3-6 产品信息 d_

21、product 表类别信息表如图 3-7 所示 图 3-7 类别信息 d_category 表具体产品与产品共性关系信息表如图 3-9 所示图 3-9 具体产品与产品共性关系信息 d_category_product 表具体产品信息表如图 3-8 所示图 3-8 具体产品信息 d_book 表订单信息表如图 3-10 所示图 3-10 订单 d_order 信息表条款信息表如图 3-11 所示图 3-11 条款信息 d_item 表用户接受产品信息表如图 3-12 所示图 3-12 用户接受产品信息 d_receive_address 表3.2.4 系统结构设计 页面设计本系统主

22、要是一个由多个相互关联的网页组成有机整体的网站,这些网页的组成部分可以分为两大类:素材和功能模块。其中素材包括图片、动画、图像等,主要用于美化网页和做广告宣传,其特点是素材内容本身是静态的,可以以文件的形式存放。而功能模块则体现了网站所具有的功能,这些功能包括:(1)导航栏,即用于指向网站特定内容的链接的集合。比如,网站首页顶部的页面导航栏,它指示了网站的主要组成部分,通过链接跳转的方式,用户可以很方便地从导航栏转到感兴趣的内容网页。导航栏的特点是具有树状层次结构的链接的集合,链接的属性具有相似性,即都指向某个特定的页面。 (2)商品信息。这是购物网站所含数据的主要组成部分。它的特点是商品种类

23、繁多,不同种类的商品往往具有不同的属性或技术指标,这就需要将商品信息按某种规则分门别类的存放,而不是将信息统统存放在一起。(3)购物车列表信息。从 session 中取出原有购物车的所有产品信息列成表单显示在页面上,并对产品有增、删、改的操作,最后确认生成订单表单。 mvc 模式设计(jsp+servlet+struts2)mvc(model view controller)是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用 mvc 应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。视图是用户看到并与之交互的界面。如何处理应用程序的界面变得越来

24、越有挑战性。mvc 一个大的好处是它能为你的应用程序处理很多不同的视图。jsp页面处于表现层,也就是视力(view 即 v)的角色。模型表示企业数据和业务规则。在 mvc 的三个部件中,模型拥有最多的处理任务。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。servlet 则负责数据的处理,也就是模型(model 即 m)的角色。控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击web 页面中的超链接和发送 html 表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数

25、据。servlet 用来处理请求的事务,struts2 充当控制器(controller 即 c)的角色,负责响应用户对业务逻辑的请求并根据用户的请求行为,决定将哪个 jsp 页面发送给客户。struts2 处理用户请求,处理用户请求时回调业务控制器的 execute 方法,该方法先获取用户请求参数,然后执行某种数据库操作,既可以将数据保存到数据库,也可以从数据库中检索信息,该方法的返回值将决定了 struts2 将怎样的视图资源呈现给用户。第 4 章 购物系统实现4.14.1 此项目的工程结构此项目的工程结构 表现层 : jsp页面涉及el标签,ognl表达式,jquery,ajax 控制层

26、 : 使用struts2控制器,涉及struts.xml配置 业务层 : action组件 数据访问层 : dao组件 src源码包结构如下: com.tarena.dang.action com.tarena.dang.action.user 用户模块action com.tarena.dang.action.order 订单模块action com.tarena.dang.action.main 产品浏览模块action com.tarena.dang.action.cart 购物车action com.tarena.dang.dao 接口 com.tarena.dang.dao.impl

27、 实现类 com.tarena.dang.entity 实体类 com.tarena.dang.util 工具类 erceptor 拦截器 struts配置文件结构如下: struts.xml(主配置) -struts-main.xml(产品浏览模块配置) -struts-order.xml(订单模块配置) -struts-user.xml(用户管理模块配置) -struts-cart.xml(购物车模块配置) webroot目录结构如下: /webroot/main/ 产品浏览jsp目录 /webroot/cart/ 购物车jsp目录 /webroot/

28、order/ 订单jsp目录 /webroot/user/ 用户管理jsp目录 /webroot/common/ 页眉页脚目录 /webroot/css/ 样式文件目录 /webroot/js/ 脚本文件目录 /webroot/images/ jsp中图片目录 /webroot/productimages/ 产品图片目录4.2 系统各部分的实现方法从系统功能模块划分中可以看出,系统总体上有两个功能模块组成。各模块虽然是独立的,但又统一于同一数据库中。在介绍系统各模块的实现方法之前,首先介绍系统与数据库的连接方式1首先要将 mysql 的驱动包放在此项目 webroot/web-inf/lib

29、目录下2在项目的 com.tarena.dang.util 包下面增加数据库连接工具类:dbutil,类里面添加的内容如下:4.1.2 访问数据库的访问数据库的 dao我们可以使用 dao 将从数据库中查找到的数据封装打包成对象传到控制类。连接数据库的 daoconn。通过 jsp 页面调用 controll 类,控制类调用dao 类操作数据库,可以实现对数据库的连接,数据表的添加、删除、更新等操作,具体实现如下代码:4.1.3 用户登录模块页面用户登录页面比较简单,为防止用户登录的操作错误,应设置错误处理页面,在登录操作过程中,一般发生的错误有:用户输入了错误的用户名或密码、用户直接单击了登

30、录按钮,对上述情况的判断就要通过 javascript 文件来实现。用户登录界面如图 4-1 所示:图 4-1 用户登录面过滤用户输入错误的用户名或密码,所用的 js 代码如下:function checknull()var name = $.trim($(#loginname).val();/获取用户输入的用户名,去除空格var pwd = $.trim($(#password).val();/获取密码框中输入的密码if(name = )alert(登录名不能为空!);$(#loginname).focus();return false;else if(pwd = )alert(密码不能为空

31、!);$(#password).focus();return false; );4.1.4 用户注册模块页面用户注册过程中会验证用户所填写的是否为有效信息,用户注册成功之后,用户有一定的权限,用户登录之后可以将要买的商品放进购物车里,若未登录只有浏览商品的权限,用户注册也是一种安全保障。用户注册页面如下:对注册页面的每个文本框的验证用到 js 技术,对于 email 和验证码的验证使用到了 ajax 技术异步刷新(用到回调函数) ,具体代码如下:-生成验证码的主要代码-/* * 此类是生成验证码, * author acer *有生成验证码与生成随机颜色的方法 */public final c

32、lass imageutil private static final string chars = 0, 1, 2, 3, 4, 5, 6,7, 8, 9, a, b, c, d, e, f, g, h;private static final int size = 4;private static final int lines = 2;private static final int width = 80;private static final int height = 30;private static final int font_size = 30;public static m

33、ap createimage()/建图片stringbuffer sb = new stringbuffer();bufferedimage image = new bufferedimage(width, height,bufferedimage.type_int_rgb);/生成图片graphics graphic = image.getgraphics();/获取画笔graphic.setcolor(color.light_gray);/color.light_graygraphic.fillrect(0, 0, width, height);/画矩形random ran = new r

34、andom();/画随机字符for(int i=1;i=size;i+)/获取验证码int r = ran.nextint(chars.length);graphic.setcolor(getrandomcolor();graphic.setfont(new font(null,font.bold+font.italic,font_size);/将此图形上下文的字体设置为指定字体。graphic.drawstring(charsr,(i-1)*width/size , height/2+10);/使用此图形上下文的当前字体和颜色绘制由指定 string 给定的文本。sb.append(char

35、sr);/字符串的追加,将字符保存,存入session/画干扰线for(int i=1;i=lines;i+)graphic.setcolor(getrandomcolor();graphic.drawline(ran.nextint(width), ran.nextint(height), ran.nextint(width),ran.nextint(height);map map = new hashmap();map.put(sb.tostring(), image);return map;public static color getrandomcolor()/获取随机颜色random

36、 ran = new random();color color = new color(ran.nextint(256),ran.nextint(256),ran.nextint(256);return color;用户注册信息中的密码以md5算法的规则加密之后存储到数据库中,加密代码如下:.5购物车模块页面购物车模块页面购物车展现用户所购买的产品信息:产品名,数量,单价,总价格,数量变更,删除等,点击”删除”之后产品会留在恢复区,若用户想恢复此产品点击”恢复”会即可重新添加到购物车,点击”继续浏览”链接可进入产品展示页面。实现购物车的主要代码如下:实现购物车的主要代码如下:p

37、ublic class cart /对象关系:cart对象 -stores -cartitem -productprivate list stores = new arraylist();/存放到购物车中产品集合private list rement = new arraylist();/存放到恢复框中的集合/* * 隐藏构造方法,避免外界使用 */private cart()/* * 为外界提供getinstance方法, * 返回当前用户session中的cart对象 */public static cart getinstance()map session = actioncontext

38、.getcontext().getsession();/获取sessioncart cart = (cart)session.get(cart);/购物车存放session中if(cart = null)cart = new cart();session.put(cart, cart);return cart;public list getstores() return stores;public void setstores(list stores) this.stores = stores;/* * 将pid编号商品添加到购物车 * param pid */public void add(

39、int pid)/todo 判断商品是否购买过/todo 如果购买过,只能修改数量/todo 如果没有购买过,向购物车添加一个商品/添加商品之前,先看是否已经购买/过该商品。cartitem item = new cartitem();product book=null;addcartdaoimpl dao=new addcartdaoimpl();for(cartitem ite:stores)/迭代购物车产品/system.out.println(ite.getpro().getid();if(ite.getpro().getid()=pid)/已经购买过,集合中已经有此商品return

40、;try book=dao.findproduct(pid);item.setpro(book);item.setqty(1);stores.add(item); catch (sqlexception e) e.printstacktrace();/* * 更新数量 * param pid 产品id * param pnum 文本框中数量 */public void update(int pid,int pnum)/product pp=stores.get(pid).getpro();for(int i=0;istores.size();i+)/stores为购物车集合if(stores.

41、get(i).getpro().getid()=pid)cartitem pro=stores.get(i);/获取对应产品类别对象pro.setqty(pnum);/更改产品数量break ;/* * 购物车中删除操作 * param pid */public void delete(int pid)for(int i=0;istores.size();i+)if(stores.get(i).getpro().getid()=pid)cartitem pro=stores.get(i);stores.remove(pro);/购物车集合减少产品rement.add(pro);/恢复框中增加产

42、品break;/* * 恢复框中:恢复购买操作 * param pid 根据pid找到产品 */public void recovery(int pid)for(int i=0;irement.size();i+)if(rement.get(i).getpro().getid()=pid)cartitem pro=rement.get(i);rement.remove(pro);/恢复框中减掉stores.add(pro);/购物车中增加break;/* * 统计购买商品的总金额 */public double total()double sum=0;for(cartitem item:sto

43、res)sum+=item.getqty()*item.getpro().getdangprice();return sum;/* * 统计购买商品的优惠总金额 */public double sale()double fix=0;double sum=0; for(cartitem item:stores)fix+=item.getqty()*item.getpro().getfixedprice();sum+=item.getqty()*item.getpro().getdangprice();return fix-sum;public list getrement() return re

44、ment;public void setrement(list rement) this.rement = rement;用户购物完毕之后,点击”结算”链接,系统会根据购物车中客户选择的商品信息保存生成订单,如下为订单页面: 确认订单正确之后,填写收货人的信息:信息填写完毕,验证正确之后,点击”下一步”,弹出完成页面,购物结束。第 5 章 系统测试5.1 什么是软件测试软件测试是在软件投入运行前,对软件需求分析、设计规格说明书和编码的最终的复审,是软件质量保证的关键步骤。确切的说,软件测试就是为了发现错误而执行的过程。一般分为两个阶段:1.单元测试:在编完一模块后进行测试;2.综合测试:在开发完软件后进行综合测试。5.2 软件测试的目标与方法g.myers 给出了关于测试的一些规则,这些规则可以看作是测试的目标或定义:1.测试是为了发现程序中的错误而执行程序的过程;2.好的测试方案是极可能发现迄今为止尚未发现的错误的测试;3.成功的测试是发现了至今为止尚未发现的错误的测试。测试任何软件都有两种方法:黑盒测试和白盒测试法。黑盒测试法(又称功能测试法)是把程序看成一个黑盒子,完全不考虑程序的内部结构和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论