毕业设计(论文)基于JSP的网络书店销售管理系统.doc
目 录1引言12网络书店销售管理系统概述32.1系统开发背景32.2选题的目的和意义32.3系统概况42.4系统在国内外发展的概况53系统需求分析73.1业务及用户需求分析73.2系统可行性分析93.2.1技术可行性93.2.2经济可行性103.2.3操作可行性103.3系统服务器配置及开发工具103.4系统开发技术基础及其关系图113.5系统数据流程分析123.5.1顶层数据流图123.5.2第二层数据流图前台购书和后台管理133.5.3第三层数据流图用户登陆处理153.6数据字典(DD)154系统设计204.1系统设计指导思想及原则204.2系统结构图204.3系统功能具体分析214.4数据库的设计234.4.1概念结构设计234.4.2逻辑结构设计244.4.3物理结构设计255系统功能模块实现265.1用户登陆模块275.2用户注册模块285.3提交定单模块285.4定单处理模块285.5图书查询模块305.6图书信息维护模块326系统测试336.1系统测试336.1.1测试的目的336.1.2测试的准则336.1.3测试的方法346.2单元测试实例346.3综合测试366.4系统的维护主要包括四个方面367结 论377.1系统结论377.2个人体会38参考文献39致 谢401 引言据统计,目前全国已有4万家商业网站,其中网上商店700余家。电子商务项目大量推出,几乎每天都有各类电子商务咨询网站、网上商店、网上商城、网上专卖店、网上拍卖等诞生。电子商务应用与发展地域也由北京、上海、深圳等极少数城市,开始向各大中城市发展。可以说,中国电子商务已经由表及里、从虚到实,从宣传、启蒙和推广阶段进入到了务实的发展实施阶段。 但是,目前我国“商务为本”观念依然薄弱。企业和消费者电子商务意识有待加强。怎样将Internet和中国国情结合,充分发挥电子商务的优越性,实现极富有意义的电子商务技术和商务模式的创新,是摆在中国电子商务业界人士面前的一大课题。当中,网上书店在我国已有几年的时间,虽然从数量上讲有了一定的发展,但目前国内尚无一家在网上零售领域形成领先优势的网上书店。造成这种局面的原因是多方面的,既有社会的原因,也有书店自身的原因。从网上书店自身来看,目前还存在不少问题,主要表现为:主页信息量小,内容和形式缺乏吸引力,更新不够及时;未能对图书馆市场进行有效细分,服务方式比较单一;分类体系不尽合理,图书分类查询系统尚需完善;营销方式不够灵活。虽然网上书店因为各种原因目前的经营状况还很不景气,但随着网络的发展,科技的进步,网上书店的巨大潜力预示着其前景的灿烂。据有关方面预测,未来几年内,网上书店在整个图书销售中比重将达到40,网上图书销售将以超过15甚至25的速度递增。传统书店仅靠一条腿走路必然会走进死胡同,与网络销售同时开展,两条腿走路将是必然的发展趋势。由于电子商务的盛行,原有在浏览器上所使用的技术,如HTML,JavaScript,VBScript已经不能满足开发需要。为了寻求一个适合的工具语言,达到企业对企业、企业对个人等电子商务所需要的功能,并能与后端数据库紧密结合,JSP不失为一个很好的选择。而本系统也就是基于JSP的网络书店销售管理系统。2 网络书店销售管理系统概述2.1 系统开发背景随着中国加入WTO,全球经济一体化的逐步深入,网上书店已是现代传统书店必不可少的经营策略之一了。目前,网上书店在国际互联网上可以实现的商务功能已经多样化,可以说从最基本的对外沟通展示功能、信息发布功能,在线图书展示功能、在线洽谈功能、在线交易功能、在线定购功能、在线客户服务功能、在线网站管理功能等等,几乎以往传统书店功能都可以在互联网上进行电子化的高效运作。技术的进步对传统书店上网解决方案提出更严格的要求和挑战。为了保护传统书店的投资,书店上网解决方案应切合传统书店实际的需求和发展的趋向,使投入回报和管理效益最大化,传统书店在实施上网方案之前,必须对一系列问题进行科学的论证,如网上书店的需求分析、网上书店总体规划、网上书店系统的功能和实施方案、网上书店的传播与推广、运行网上书店系统的软件和硬件配置、网上书店的管理系统和管理方法等等。网上书店具体实施的质素直接影响传统书店在Internet的实际效果和经济效益,这不仅是技术问题,同时也涉及到管理的因素。2.2选题的目的和意义本系统的主要目的是实现图书的在线销售,包括管理库房中的图书,以及管理用户的购物车,从而实现结帐等一系列功能,让用户足不出户就能够在网上书店购买到自己所需的图书,形成书店和用户双赢的局面。电子商务发展迅速,最终会逐渐改变人们生活工作的各个方面,面对数字时代我们必然都是电子商务的参与者。“We argue that adoption of e-commerce depends primarily on consumer behavioral intentions to engage in product purchases.”意即采用电子商务从根本上要依赖于消费者参加购买产品的行为意图。而通过建立网络书店销售管理系统,利用电子商务的优势同现有销售模式和流通渠道相结合,就可以给消费者带来很大的便利之处,就可以扩大消费市场,为书店的再发展带来新的商机,也为各地消费者提供便利,并且也降低了商业成本。2.3 系统概况网上书店是电子商务的一部分,电子商务应有的功能、网上书店也应该具有。由于商家软件设计不大一样,因此网上书店的功能也不完全一致,有的多,有的少。作者本人认为,网上书店是一种无店铺,人不出门,在计算机联网的网络上作业,就可进行远距离的图书销售与订购。一般应具有如下功能:(1)向上网顾客提供图书期刊在线电子版(虚拟版),供顾客订购 、下载;(2)提供新书目、新书内容介绍、书评等,供顾客选择图书时参考;(3)提供书店存货书目,供顾客挑选或补全、补缺;(4)提供网上书店的有关资料,如营业执照等,让顾客了解网上书店的可信程度;(5)开辟网上论坛,供顾客在网上讨论有关图书内容与网上发行中的有关问题;(6)通过网络收集顾客采访图书的计划与要求,顾客的阅读爱好、兴趣、阅读历史和对网上书店的建议与要求;(7)网上订购图书、期刊;(8)安全认证、数字签名、网上结算和支付,并提供正式发票;(9)图书配送;(10)退货处理;(11)质量监控。但是由于时间及本人能力方面的一些条件所限,本次毕业设计的网络书店销售管理系统主要是以实现购书和定单的功能作为设计的重点,实现了网络书店的一些最基本和必须的功能,其他的详细复杂的功能将在以后的改进中不断的完善。2.4系统在国内外发展的概况Internet带给大家的不仅是无穷的信息,更是商业模式和消费观念的变迁,电子商务业已成为时尚。由于图书信息易于判断和选择而独具优势,最适合于网上交易,所以网上书店成了电子商务的先锋。说到网上书店,就不可能不提到亚马逊(A)全球最大的网上书店。它为读者提供了方便舒适的网上购物环境,丰富的图书品种(达310万以上),优惠的价格(折扣率从20%到50%),完善的金融结算制度,以及高效率的配送服务,并且实现了零库存运转。 总的来讲,亚马逊在短短几年之内,获得了巨大的成功,成了全世界图书业界瞩目的对象。加入WTO为电子商务的发展带来了新的机遇。无论是出于仿效,还是迫于竞争,在国内,自杭州新华书店创办第一家网上书店后,网上书店如雨后春笋般涌现出来。 但总的来看,国内的网上售书缺乏规范,随意性强,买卖双方的权益保障都有缺陷。网上书店面临困境,究其原因,主要有:(1)电子商务的概念并未深入人心。(2)网络普及率不高。(3)网上购书优势不明显。网络的最大优势在于开展信息服务,而信息服务的“不完善、低质量”正是国内网上书店的一大败笔。(1)结算方式落后。(2)图书配送周期长、成本高。(3)安全保障问题令人担心。 但是,由于节省时间、节约费用、操作方便等优势,网上书店拥有广阔的前景。现在可以看到网上购物已经成为一种不可抵挡的时尚潮流。在中国,网上书店不仅有发展的必要,也有发展的基础,发展网上书店的各方面条件也日趋成熟。3 系统需求分析3.1业务及用户需求分析网上书店诞生早,规模大。1969年因特网出现不久就有了线上购书。经过20多年的发展,1997年全世界图书销售中,每5本书就有1本是通过网上书店销售的,占全世界图书销售总量的20%以上。它已成为网上贸易主力军之一。随着因特网的发展,网上书店的规模在不断拓展,功能在不断完善、提升。它不仅改变了传统的图书销售方式,也正在改变图书馆文献采访的传统模式与规则及其理论。图书发行量不断增加实际上也是读者对图书的需求不断扩大的真实写照。无论哪个书店,能经销如此巨量的图书,都将是一个神话。然而,Internet的出现打破了这个神话。如果某个书店能以Amazon为标准,提供书目达310万种,而平均年出版图书品种就以13万计算,则该书店能经销约23年内全国出版的全部图书,这是传统书店不可想象的。传统书店增多,整个图书市场一片繁荣,在这种情况下,网上书店的加入无疑将使得竞争更加激烈,但从另一个方面看,只有在这种激烈的竞争下,网上书店的优势才能更加得以体现。对于各个商家来说,充分地利用现代化的营销手段,可以极大地提高商业利润。因此建立网上书店是一个不容错过的商机。目前,网上书店大致可以分为以下四种类型: (1)以售书营利为目的的网上书店;(2)以提供信息服务为主的网上书店;(3)以电子版图书为主的网上书店;(4)以专业性为特点的网上书店。其中,以售书营利为目的的网上书店和以提供信息服务为主的网上书店主要是综合型的书店,它们依靠书目全、服务好、信息量大取胜,一般经营者需要具备相当的实力,比如新华书店。对于以电子版图书为主的网上书店,这种销售方式也将成为一种趋势,并有望成为销售盈利的突破口。而对于实力较弱的一般网上书店经营者,可采取“以专取胜”的策略:(1)书籍内容专。计算机技术发展迅速,选择计算机书籍,专业性强、需求量大;(2)销售对象专。针对IT界专业人士和广大计算机初学者或爱好者;(3)出版单位专。选择著名出版社,专卖它们出版的书。但书店仍然需要注意提供信息服务的问题和完善的图书交易问题。要设计一个实用的网络书店销售管理系统,就必须首先明确应用环境对系统的要求。本系统开发的总体设计目标为开发一个在线系统,实现图书的在线查找、销售,以及在线管理等功能。系统以Windows操作系统为平台,网络联接以TCP/IP协议为基础,使用Web服务器提供信息的浏览和查询,采用流行的B/S三层体系结构。因此,该系统需主要满足以下几方面需求。 (1)用户的管理,含注册、检验及修改等功能。(2)在线图书销售,包括查找、购物车及定单等功能。 (3)图书在线管理,如浏览、修改、添加和删除图书等。3.2系统可行性分析本节从技术的可行性,经济的可行性以及操作的可行性三个方面来论证本网站的可行性。3.2.1技术可行性(1)硬件:计算机的存储量大,运算速度快,外部设备的功能好、效率高、靠性高,通信设备的能力、质量都满足要求。(2)系统软件:操作系统Windows XP/2000接口能力强,数据库管理系统的功能足够。Java语言是一种优秀的编程语言。“The San Francisco product is written almost entirely in java and is believed to be one of the largest java development efforts at this time.”从这可以看出Java的发展是很快的。它最大的优点就是与平台无关,在Windows 、Linux以及其它平台上,都可以使用相同的代码。“一次编写,到处运行”的特点,使其在互联网上广泛采用。JSP+JavaBeans几乎可以在所有平台上通行无阻,从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译。除此之外Java语言还提供了一些有用的新特性,使得使用Java语言比C+语言更容易写出“无错代码”。(3)有专用的开发应用软件: Microsoft Office Access,主要针对数据库的建立。Dreamweaver,主要针对网页的制作。工欲善其事,必先利其器。Dreamweaver 是Macromedia公司推出的可视化网页制作工具,制作出来的网页兼容性比较好,制作效率也很高。可以控制和删除冗余代码,使网页文件的结构更加合理,从而能够快速下载。与其他软件不同,Deamweaver采用的是浮动面版的设计风格,而Dreamweaver的直观性与高效性是其他软件所无法比拟的。3.2.2经济可行性从经济角度看,书店对系统的投资要小于系统对书店的回报,书店决策者才会实施系统计划。从本系统开发的角度出发,系统开发成功会减低人员费用的支出,办公用品的支出,同时,大量的用户增加会给书店无法量化的估计,会使书店获得更大的收益。3.2.3操作可行性本系统大概需要四个月的时间完成。前三个星期主要是以看书以及收集有关系统方面的资料为主,接下来就是对系统的分析,到做数据库,界面,以及中间的连接。系统对于熟悉JSP编程的作者来说是可行的。3.3系统服务器配置及开发工具目前社会上网络书店销售管理系统的发展经过多年的探索和实践,已初步形成了一定的特色的相对成熟的体系,这为系统的开发奠定了良好的基础,是本系统开发研究的先决条件。本系统使用Microsoft Office Access建立数据库并用JSP进行系统的编程设计。(1)数据库:本系统数据库采用Microsoft Office Access即可满足需求。(2)Web服务器平台:可以选用Windows 2000/XP等。(3)Web服务器:Tomcat 成为Java Web Server的主流服务器是不可抵挡的趋势,它功能强大,性能稳定,完全可以做商业应用,所以采用Tomcat 5.0。(4)开发工具:Java Server Page,即JSP。(5)软件开发工具箱:J2SDK。(6)程序开发辅助工具:选用Dreamweaver MX2004来开发界面,编写及调试程序在Editplus和JBuilder中进行。(7)系统平台:Windows 2000 + Tomcat + Microsoft Office Access + JSP。系统开发工具JSP的介绍。JSP是Java Server Page的简称,是由Sun公司于1999年6月份推出,并有另外多家公司共同参与的一项动态WEB开发技术,其基于Java语言技术。JSP技术是用Java语言作为脚本语言的,Java是成熟的、强大的、易扩充的编程语言,并得到Java联盟组织的支持。其充分发挥了Java语言与平台无关性和面向对象等强大的功能。在同一个JSP页面上,用户可以根据自己的不同需要而发送不同的请求,进而可以相应得到不同的处理结果,从而实现了WEB页面的动态性与交互性。 JSP技术现在已经成为基于Java开发网络应用方案中不可缺少的一部分。由于它将标准标记文本同程序脚本和面向对象组件集成,而使应用逻辑可以与内容表现分离开来,因此JSP为网络上的应用开发提供了一套优秀的前端技术。JSP技术在实现系统的内容动态更新上也有许多优势。3.4系统开发技术基础及其关系图本网上书店系统开发应包括以下技术(1)通信平台技术(2)接口技术(3)程序设计代码技术(4)数据库存储技术它们的关系可以如图3-1来表示。图3-1 网上书店系统开发技术基础及其关系图3.5系统数据流程分析3.5.1顶层数据流图说明:未注册用户通过注册后可以登录到前台进行购书,管理员通过登录可以进入后台进行管理。系统顶层数据流图如图3-2所示。图3-2系统顶层数据流图3.5.2第二层数据流图前台购书和后台管理根据顶层数据流图,对前台购书和后台管理模块作进一步分解,得到第二层数据流图,分别如图3-3和图3-4。(1)前台购书用户登录后进行书籍浏览和查询,对书籍信息有了一定了解后可根据自己的需求进行购书,购书后将所需书放入购物车,最终确定要购买的图书,提交定单,等待定单的处理结果。系统第二层数据流图(前台购书)如图3-3所示。图3-3系统第二层数据流图(前台购书)(2)后台管理登陆到后台,查看定单信息,然后修改定单的信息,主要是审核定单的有效性。系统第二层数据流图(后台管理)如图3-4所示。图3-4系统第二层数据流图(后台管理)3.5.3第三层数据流图用户登陆处理 为保证数据的有效和客户的管理,系统必须登陆后才能进行购买图书的相关操作,登陆是系统安全和数据有效性验证的第一部分。系统第三层数据流图(用户登陆)如图3-5所示。图3-5系统第三层数据流图(用户登陆)3.6数据字典(DD)数据字典是在系统数据流程图的基础上。进一步定义和描述所有的数据项、数据结构、数据存储、处理过程和外部实体的详细逻辑内容与特征的工具。数据字典的任务是对于数据流程图中出现的元素的名字都有一个确切的解释。数据字典在系统开发中具有十分重要的意义,不仅在系统分析阶段要使用它,在系统的整个研制过程中以及系统运行中都要使用它提供帮助。见表3-1到3-8:,见表3-1所示。表3-1用户数据字典文件名:用户表编号:1组成:用户ID+用户名+用户密码+用户邮箱+用户地址+用户类型+邮递区号+用户电话 备注:这是所有的用户信息表,见表3-2所示。表3-2管理员数据字典。文件名:管理员表编号:2组成:管理员ID+管理员名+管理员密码备注: 这是管理员信息表表3-2数据文件“管理员表”的字典条目表3-3购书车数据字典。文件名:购书车表编号:3组成: 购书车ID+图书ID+用户名+购物数量+购书时间+购书审查+定单号+管理员审查+图书名称+图书价格备注:这里有所有购书的信息 表3-3数据文件“购书车表”的字典条目表3-4图书数据字典。文件名:图书表编号:4组成: 图书ID+图书名+图书价格+图书简介+图书数量+图书日期+图书照片+出版社+代理价格+批发价格+用户状态+作者+图书页数+开本+图书编号+推荐备注:这里有所有书籍的信息 表3-4数据文件“图书表”的字典条目表3-5友情链接数据字典。文件名:友情链接表编号:5组成: ID+链接地址+地址名称备注:这里有所有友情链接的信息 表3-5数据文件“友情链接表”的字典条目表3-6公告栏数据字典。文件名:公告栏表编号:6组成: ID+标题+内容+公告时间备注:这里有所有公告的信息 表3-6数据文件“公告栏表”的字典条目表3-7图书类别数据字典。文件名:图书类别表编号:7组成: ID+名称备注:这里有所有图书分类的信息 表3-7数据文件“图书类别表”的字典条目表3-8定单信息数据字典。文件名:定单信息表编号:8组成: 定单ID+购书车ID+用户名+定单时间+定单号+定单审查+下定单用户名+下定者邮箱+下定者电话+下定者地址+下定者邮编+付款方式备注:这里有所有定单的信息 表3-8数据文件“定单信息表”的字典条目4 系统设计4.1系统设计指导思想及原则(1)实用性。这是最主要的设计原则。以用户需求为导向,符合实际,切实解决网上书店系统中的实际问题。(2)先进性。计算机环境配置必须满足所提出的目标和所要实现的功能、指标等要求。体系结构、开发设计方法等要具有先进水平。在不久的将来,由于JSP的先进性,它势必取代ASP的广泛性。(3)可靠性。在误操作的情况下,要能保证系统正常运行。(4)安全性。根据网上书店的特点和要求,制定相应的安全策略和安全机制。(5)友好性。提供友好的用户界面,简单、直观、易于使用、方便操作。4.2系统结构图根据需求分析和方案设计,可得到系统结构图如图4-1所示。图4-1系统结构图4.3系统功能具体分析当用户登陆到本系统时,可以直接以点击的形式进入如下的版块:用户登陆、用户注册、图书查询、购书车、提交定单、图书信息维护、定单信息处理,以及辅助功能。用户登陆普通用户通过网络和浏览器,可以访问到网上书店,如果用户想在网站上购买图书,必须先登陆,如果用户没有登陆账号可以先免费注册。用户注册没有账号的用户,网站提供免费注册的功能,用户只需要在注册页面填写相关的内容,如果信息通过验证,用户则注册成功,如果用户输入的信息有诸如密码不能为空等类似的错误,则会显示出错误信息,让用户重新输入登陆信息。图书查询用户可以浏览图书信息,但是图书信息比较多,想找到合适自己的图书,有一定的难度,因此,用户可以通过查询功能,输入想找的图书的关键字,系统会模糊查询,显示出相关的图书信息,提供给用户选择,如果用户选择的图书数据库中找不到合适的匹配,则会提示没有相关图书的信息。购物车用户选择自己喜欢或者需要的图书后,可以把图书存放到购物车中,方便自己的二次查询,如果用户真的需要图书,可以付款购买图书。如果用户不需要图书,可以从购书车中删除图书信息。提交定单用户查看购书车中的信息,确认要购买的图书,可以直接提交定单,在定单中填写自己的相关信息,填写信息必须正确,填写完只要付款后,经过管理员的确认便可以得到邮购的图书。图书信息维护网站管理员登陆到管理员界面后,可以对图书数据进行添加,修改,删除操作,管理图书信息,方便管理员和用户浏览图书信息,管理员可以添加需要上架的新书以不断的补充书店的图书,让书店的图书更加丰富,对于已经明显显示出下滑趋势的图书,管理员可以进行删除处理,之后用户便不能再看到该书的信息。定单处理用户通过定单提交,确定自己的定单。管理员在后台维护界面可以查看所有的定单,定单和汇款单统一,如果用户汇款,管理员则处理定单,邮发图书到指定用户。辅助功能本系统还有一些其他辅助功能,比如:用户数据管理,公告管理,图书分类等。在用户数据管理中,管理员可以对用户的详细信息进行管理,如修改和删除用户信息,还可以给用户升级为VIP,以便让用户能享受到VIP会员价格。在公告管理中,管理员可以及时的添加新的公告,以便让用户更及时的知道该网络书店的最新动态,删除已经不再需要的信息。图书分类中,管理员可以进行图书分类的添加,比如管理员添加了一本新书在先有的图书分类中没有该类别,则管理员通过添加新的类别,可以把已经添加的图书并归到该类别中。4.4数据库的设计4.4.1概念结构设计概念结构设计是数据库设计的核心。概念结构独立于数据库的逻辑结构,也独立与所使用的具体的数据库管理系统。概念模型(E-R模型)的组成元素有:实体、属性、联系,E-R模型用E-R图表示。实体是用户工作环境中所涉及的事务,属性是对实体特征的描述,系统总体E-R图如图4-2所示。图4-2系统总体E-R图4.4.2逻辑结构设计表4-1系统实体用户用户ID,用户名,用户密码,用户邮箱,用户地址,用户类型,邮局管理员管理员ID,管理员名,管理员密码购物车购书车ID,图书ID,用户名,购书数量,购物时间,购书审查,定单号 管理员审查,图书名称,图书价格图书图书ID,图书名,图书价格,图书简介,图书数量,图书日期,图书照片,出版社,代理价格,批发价格,用户状态,作者,图书页数,开本,图书编号,推荐友情链接ID,链接地址,地址名称公告栏ID,标题,内容,公告时间图书类别ID,名称定单信息定单ID,购书车ID,用户名,定单时间,定单号,定单审查,下定单用户名,下定者邮箱,下定者电话,下定者地址,下定者邮编,付款方式表4-1系统实体及其属性描述4.4.3物理结构设计数据库物理模型如图4-3所示。图4-3数据库物理模型图5 系统功能模块实现5.1用户登陆模块这里介绍用户登陆的程序设计思路,数据库中存放有用户的基本信息,用户在网站中输入相关信息,通过匹配检测,便可以知道数据的有效性,下面是登陆程序流程图如图5-1所示。图 5-1 登陆程序流程图登陆模块中的主要程序介绍:user_name=request.getParameter("user_name");/获得用户名 user_pass=request.getParameter("user_pass");/获得用户密码String sql="select * from member where user_name='"+user_name+"'" ResultSet rs;/建立相关的记录集 rs=mdb.executeQuery(sql);下面只需要查看记录集是不是为空,如果为空,则说明登陆失败;否则,登陆成功。5.2用户注册模块注册模块,会出现在很多程序中,这里借鉴了其他注册程序的流程。注册模块的核心思想是向数据库中输入数据,并且数据要不能重复,下面是注册模块的程序流程图如下图5-2所示。图 5-2 注册程序流程图登陆模块中的主要程序介绍:String sql1; sql1="Insert intomember(user_name,user_pass,user_adds,user_mail,user_tel,user_regip,user_postcode,user_namec,user_type) values('"+user_name+"','"+user_pass+"','"+user_adds+"','"+user_mail+"','"+user_tel+"','"+request.getRemoteHost()+"','"+user_postcode+"','"+getStr(request.getParameter("user_namec")+"','会员')"mdb.executeInsert(sql1);数据通过验证后,向数据库输入数据,数据库会保存相关的注册信息。5.3提交定单模块在上面的功能描述中简单介绍了提交定单模块的功能,这里再叙述一些必要的补充,定单是系统的核心功能,一切数据都要围绕定单来展开。用户提交定单,然后等待管理员处理定单邮发图书;管理员在接到定单后,查询汇款情况,然后处理定单,下面是定单提交模块的程序流程图如图5-3所示。定单信息定单提交开始定单提交成功等待处理结果图5-3定单提交程序流程图由于和管理员处理定单联系比较紧密,下面一个小节会介绍主要代码。5.4定单处理模块网上书店建立的目的之一就是为了经济利益,定单处理是和经济利益有直接关系的模块,有效定单都是预付书款的定单,会增加书店的营业收入,可以说本模块是系统的核心模块,是系统的心脏,数据转存的中心。下面会详细介绍本模块。定单处理模块的设计思路:用户提交定单后,管理员通过后台数据处理,可以查看全部的定单信息,由于定单编号是按照时间来命名的,管理员很容易查看到最新的定单信息。同时,本模块还和其他两个系统有间接的关系,一个是付款系统,另外一个是物流系统。定单的有效性和付款系统有直接关系,管理员处理的定单,通过审核的条件必须是付过书款的。另外,如果是有效定单,必须通过物流给用户寄发图书。定单处理程序流程图如图5-4所示。图5-4定单处理程序流程图主要代码实现:tryClass.forName(sDBDriver);/处理异常catch(java.lang.ClassNotFoundException e)System.err.println("数据库连接:"+e.getMessage();/数据库的连接conn=DriverManager.getConnection(sConnStr); stmt=conn.createStatement(); for(int i=0;i<id.length;i+) int myUpdate=stmt.executeUpdate("update sub set sub_check=true where sub_number='"+idi+"'"); int mUpdate=stmt.executeUpdate("update basket set basket_admincheck=true where sub_number='"+idi+"'");/对定单数据进行具体到更新操作,更新两张表中的信息。本模块是系统的核心,主要负责定单的审查,是定单的流程最后一个环节,也是最重要的一个环节。书店的任何数据都和定单数据有直接或者间接的关系,有效的定单和书店的经济利益有直接的关系,收入和支出都是由定单引起的。程序当中也严格限制数据的有效性,无效数据不会录入到数据库中。5.5图书查询模块大量的数据中找到用户需要的数据,这样的数据挖掘很有必要。同样,系统中也提供这样的查询,在数据库的SQL中,查询实现很简单,本系统的查询也是根据SQL的查询语句实现的,通过模糊匹配,实现对图书信息的查询。其具体实现是输入关键字,如果数据库中有记录,便会显示出查询的结果,没有记录则显示找不到与之对应的书。这其中主要是在系统的数据库中进行查找。查询界面如图5-5所示。图5-5查询页面图主要的查询代码:String hw_name,sort_id; if(session.getAttribute("sort_id")=null) hw_name=getStr(request.getParameter("hw_name"); sql="select * from hw where hw_name like '%"+hw_name+"%' order by hw_id DESC" rs=mdb.executeQuery(sql); else sort_id=request.getParameter("sort_id"); hw_name=getStr(request.getParameter("hw_name"); sql="select * from hw where sort_id='"+sort_id+"' and hw_name like '%"+hw_name+"%' order by hw_id DESC"rs=mdb.executeQuery(sql);主要的程序设计思路是通过控件传递关键字给SQL语句,然后在数据库中进行查询操作。5.6图书信息维护模块本模块主要是修改模块,对图书信息的修改。管理员通过本模块可以查询到系统中现有的图书信息,然后选择相关的图书信息进行修改,程序主要是实现数据库中的更新SQL语句。图书信息维护程序流程如图5-6所示。图5-6图书信息维护程序流程图程序设计思路:本模块主要是通过获得有效的修改信息,直接在数据库中执行SQL语句,SQL语句在数据库中执行完成对数据的更新。6 系统测试6.1系统测试6.1.1 测试的目的软件测试的目标和定义: (1)测试是为了发现程序中的错误而执行程序的过程。 (2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。 (3)成功的测试是发现了至今为止尚未发现的错误的测试。 在对本网络书店销售管理系统测试时,也正是基于上述观点来进行的,测试的目的不是证明系统是完美的,而是发现问题,更好的解决问题,使系统不断完善,满足客户的需求。6.1.2测试的准则为了能设计出行之有效的测试方案,必须深入理解并正确运用指导软件测试的基本准则。下面列举主要的测试准则:(1) 所有的测试都应该追溯到用户需求。(2) 应该在开始测试之前就制定出测试计划。(3) 把Pareto原理应用到软件测试中。Pareto原理说明,测试发现的错误中80%很可能是由程序中的20%模块造成的。(4) 应该从“小模块”测试开始,并逐步进行“大模块”测试。(5) 穷举测试是不可能的。 (6) 为了达到最佳的测试效果,应该由独立的第三方从事测试工作。6.1.3测试的方法测试任何产品都有两种方法:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能正常使用;如果知道了产品的内部工作过程,可以通过测试来检测产品内部动作是否按照说明书的规定正常工作。前一种称为黒盒测试又称功能测试,后一种方法称为白盒测试又称结构测试。在测试本系统时,采用的是黑盒测试来设计测试用例,而且在测试过程中,由于条件原因,不能完全按照测试规则由第三方来测试,测试过程和方案设计由作者完成。6.2 单元测试实例测试一:在管理员登陆时,用户名或密码有一项为空或者填写错误,系统是否出现预先设定的操作提示。预期效果:输入错误及时报错。具体操作:用户名、密码、任意一项为空或者填写有误。结果:都出现相应的错误原因的信息提示。结论:要求管理员必须填写正确的用户名和密码,才能进入管理页面,测试成功。测试二:修改本站的公告返回前台,看其是否更新成功。预期效果:修改过后能及时更新内容。具体操作:通过信息管理页面中的修改公告功能修改公告的内容,看其是否修改成功。结果:公告内容更新为修改后的信息。结论:修改公告功能正常,测试成功。测试三:管理员删除一注册用户后,并让其登陆,看是否登陆成功。预期效果:该用户不能再进行登陆。具体操作:管理员删除一会员表中的用户后,该用户在前台登陆。结果:该用户无法登陆。结论:用户数据删除功能正常,测试成功。测试四:添加删除一条书籍信息返回前台,看其是否添加删除成功。预期效果:能立即更新添加或删除的内容。具体操作:在信息管理页面中添加删除一条书籍信息。结果:显示新添加的书籍信息内容、被删除的书籍没有再显示。结论:书籍的添加删除功能正常,测试成功。测试五:管理员删除一图书的信息,在前台按关键字查询,看其是否能找到对应的信息。预期效果:用户不能再查找到该书。具体操作:在图书管理页面中的图书查看与修改页面中删除一图书的信息。结果:在前台搜索中,按关键字查询不到此书信息。结论:删除图书信息功能正常,测试成功。6.3 综合测试在以上测试的基础上,对系统功能进行了整体测试,依次检验系统功能是否符合系统开发的目标。经过使用大量的数据多次进行系统测试,发现系统存在的问题并及时改进,最终