山西大学论文编号:论文题目网上购书系统的设计与实现姓名院系计算机与信息技术学院专业软件工程学习年限2007年9月至2011年7月指导教师学位级别学士2011年5月28日1网上购书系统的设计和实现学生姓名:指导教师:内容提要本论文设计并实现了网上购书系统。通过对当前购书现状的分析以及网上购书系统的功能需求分析,该系统包括前台在线购书子系统和后台管理子系统两个独立的子系统,其中在线购书子系统主要包括:图书浏览和搜索、购物车管理、我的订单等模块,管理子系统包括图书管理、订单查询等模块。在开发该系统的过程中用到的工具包括JSP、Tomcat、Oracle、JavaScript、Css、Hibernate等。关键词网上购书系统,用户,购物车,订单1引言1.1课题背景随着网络的普及和发展,电子商务(electroniccommerce)在当今网络时代扮演着越来越重要的角色,并将有力地推动信息和信息服务业的发展。它不仅涉及电子技术和商业交易本身,而且涉及到诸如金融、税务、教育等其他社会层面,是一个与社会大环境息息相关并独具完整结构体系的系统工程。随着通信技术和网络技术的飞速发展,电子商务的发展势在必行,21世纪电子商务将成为主流的商业模式。由于书籍具有数量大、产品的差别性小等特点,因此最适宜网络营销。网上购书系统是随着网络技术的发展而出现的一种新型图书购买渠道。它通过人与电子通信方式的结合,依靠计算机网络,以通讯技术为基础,实现图书的网上交易。下面我们就以网上购书来比较网络销售较之传统市场营销所具有的特点:第一、从间接经济到直接经济,交易成本降低传统的市场营销模式必须有许多中间环节,图书出版商与消费者之间存在大量的批发商、零售商为中介,这就决定了“间接经济”的特点。网络购书的出现从根本上减少了传统售书的中间环节,缩短了供与求之间的距离,同时也大大减少了各种不必要的消耗,使我们进入“直接经济”时代。网上书店的网上服务也可以提供全新的服务方式。网上购书使得买卖双方的交易成本大大降低,具体表现在:(1)购书者和售书者通过网络进行商务活动,无需中介者参与,减少了交易的有关环节,所以网上书店的书的价格比传统书店低。(2)售书方可以通过互联网进行书籍的介绍,宣传,避免了在传统方式下做广告等大量费用。(3)互联网使买卖双发即使沟通供需信息,使无库存销售成为可能,从而使库存成本降为零。(4)传统的售书平台使地面地铺,新的网上书店的售书平台则使在网吧、家庭或者办公室。第二、让购书者的购买区域从当地扩展到全球由于传统售书模式的限制,购书者往往只能在当地书店选购买书籍,很少有人会为了买一本书特地去别的省市,即便让人代购也烦人烦己,而且各个书店的进货渠道有所不同,使得书店销售的书目品种存在差异,这就会让购买者要多跑几家才可能买到想要的书。互联网能够把全世界的顾客2送到地球上开设的任何一家网络书店,消费者只需要在电脑面前就跨市、跨省甚至跨国选购自己想要的书籍,这家网上书店如果有需求,只需要鼠标一点即可进入另外一家网上书店,方便快捷,省钱省力。第三、大小书店公平竞争,交易透明化互联网为所有书店提供了平等的竞争环境。在传统售书行业中,出版商和销售商必须投入巨大资金和人力去建立其营销网络,对于一些中小书店来说,是一个非常庞大的障碍。然后现在,互联网使最小的书店也可以与最大的书店一样平等地出现在全世界的客户面前,像销售渠道之类的障碍在网络经济时代完全瓦解了。买卖双方整个交易过程都在网络上进行。通畅、快捷的信息传输可以保证各种信息之间相互核对,可以防止伪造信息的流通。1.2系统目标系统的主要设计目的就是利用现代化的电子及网络技术,为企业和客户搭建一个互动平台——网上购书系统。作为一个在网上实现图书浏览和购买的系统,它是电子商务中一个比较典型的系统,在降低企业运营成本的同时,还方便了客户购书,达到双赢的目的。一方面,企业减少了地面店铺的租凭费用,减少了宣传货物的广告费用,减少了雇佣员工的费用;另一方面,电子及网络技术使得企业运作更加快捷方便,为企业赢得宝贵的时间和商机。对于客户来说,客户省去了逛书店的时间,同时可以将自己的需求迅速地反馈给企业,使自己的需求可以更好地得到满足。该系统可以使顾客通过访问该网上书店的网址,浏览新书和好书,或查找到所需要的书籍,最后下订单,等待邮寄或送货上门的服务。本系统是在WindowsXP环境下开发,其设计思想是建立在MVC模式下的:用JSP做显示,用Servlet做控制,用JavaBean连接Oracle数据库,并用Hibernate实现数据持久化。系统包括两大子系统:前台在线购书子系统,后台管理子系统。通过在线购书子系统,用户可以通过Web浏览器登录到此网站。在此网站,用户可以注册登录,搜索要找的书,查看详细信息,购书(将所要购买的图书加入购物车),用户选择后自动生成订单,包含书籍数量与价格。通过后台管理子系统,书店管理人员登录后可对网站进行添加、删除和修改图书,查看和管理订单信息。2需求分析和设计2.1系统需求通过调查分析,我认为网上购书系统应该具有以下功能:前台在线购书子系统功能描述浏览查询功能:所有人员都可以浏览查询系统发布的书籍信息。用户注册:用户若要购书,就必须注册为该系统的会员,获得登录系统的用户名和密码。购物车功能:注册用户能将自己中意的书放到自己的购物车中。订单功能:用户能向系统发送订单。管理子系统管理描述书籍管理功能:管理员可以根据图书类别添加、删除和修改书籍。订单查看,管理员可以按时间先后查看一年以来图书的销售情况,一目了然。2.2数据流图网上购书系统的数据流图(见图2-1)3网上购书系统管理员用户购买意向订单信息查询信息发布图2-1网上购书系统的数据流图2.3系统开发技术(1)JavaJava是一种面向对象的编程语言,它不但有着强大类库,而且还包含了大量的高效代码和面向对象的特性。同时由于java语言在编程中具有很强的灵活性,为程序员带来更高效的开发方式,它不仅能用于WEB网站服务程序,而且还能开发强大的系统工具,总体来说,它具有以下特性:Java代码在MVC框架提供的受控环境下运行,不允许视图层直接操作数据库,增强了程序的安全性。C/C++中的指针已经不在Java中出现了。Java具有面向对象语言编程的一切特性,如封装,继承,多态等。在Java的类型系统中,每种类型都可以看作是一个对象,但Java只允许单继承,这样避免了类型定义的混乱。(2)SQLSQL是英文StructuredQueryLanguage的缩写。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Mysql,Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。(3)HibernateHibernate是对象/关系映射(Object/RelationMapping)的解决方案,是一个可以自动的根据XML配置文件来完成对象关系映射,并持久化到数据库的开源组件。(4)JavaScriptJavaScript一种由SunMicrosystems所开发的程序脚本语言(它是一种严密的物件导向的语言,适合在网际网络上发展主从架构的应用程序),常常简称JS。(5)CssCss(CascadingStyleSheets)层叠样式表。是用来控制网页样式,并允许将样式信息与网页内容分离的一种标记性语言。Css是标准的布局语言,用来控制元素的尺寸、颜色、排版。2.4系统开发工具开发平台:Myeclipse6.5应用服务器:Tomcat6.0数据库:Oracle辅助工具:Office2003、Officevisio2007、GoogleChrome3数据库设计3.1实体联系图4概念模型是用户和数据库设计人员之间进行交流的工具。该系统的实体有用户(包括管理员)、订单、订单条目、书以及图书分类。图3-1显示了该系统中各实体间的联系及它们在系统中的地位。图3-1网上购书系统的E-R图3.2数据库表说明数据表的设计主要涉及数据的类型、大小、含义、说明以及约束。其中数据约束主要包括Oracle数据库所要求的实体完整性,参照完整性和用户定义的完整性约束。该系统中用到的表为:(1)图书表(编号,名称,作者,出版社,出版年月,价格,书评,类别)(2)用户表(编号,昵称,密码,邮编,地址,电话,电子邮箱)(3)图书种类表(编号,种类名称)(4)订单条目表(编号,共买的数量,所属订单号,所属产品号)(5)订单表(编号,购买者id,订单日期,订单总价)具体数据库表结构见表3-1至表3-5:5表3-1book表(图书表)序号列名数据类型长度主键外键非空描述1idint4是否是编号2nameVarchar2100否否是名称3authorVarchar2100否否否作者4publisherVarchar2100否否否出版社5publishyearVarchar2100否否否出版月6priceDouble126否否是价格7descsVarchar21000否否否书评8cateidint19否是是类别表3-2customer表(用户表)序号列名数据类型长度主键外键非空描述1idint19是否是编号2nameVarchar220否否否(已在页面上判断)昵称3passwordVarchar220否否否密码4ZipVarchar220否否否邮编5addressVarchar250否否否地址6telephoneVarchar220否否否电话7emailVarchar230否否否电子邮箱表3-3bookcate表(图书类别表)序号列名数据类型长度主键外键非空描述1idint19是否是编号2nameVarchar2100否否否种类名称6表3-4orderline表(订单条目表)序号列名数据类型长度主键外键非空描述1idint19是否是编号2numint19否否是共买的数量3orderidvarchar19否是否所属订单号4bookidvarchar19否是否所属产品号表3-5orderform表(订单表)序号列名数据类型长度主键外键非空描述1idint19是否是(order)编号2costdouble126否否否订单总价3orderdatedate6否否否订单日期4customeridint19否是否购买者编号4应用程序设计4.1设计概述本系统共分为两个子系统:前台在线购书子系统、后台管理子系统。其中前台在线购书子系统主要包括:注册登录、浏览与搜索图书、购物车、我的订单四大模块模。管理子系统包括图书管理、订单查看两大模块。4.2系统功能模块图(见图4-1)7前台在线购书子系统后台管理子系统网上购书系统我的订单我的购物车浏览和搜索图书注册登录查看订单图书管理图4-1网上购书系统功能模块图通过上图说明各个功能模块:4.2.1前台在线购书子系统用户在浏览该系统时,可以点击查看该系统中所有的图书,并且可以点击购买,放入购物车中。当用户购买完成后,可以点击提交订单--确认订单,完成购买操作。如果该用户为游客时则不能完成购买操作。这时用户需要先进行登录操作,如果登录失败会有相应的提示信息。如果登录前用户未注册,此时需要先进行注册,注册时还会判断用户提交的信息是否完整。其中,当该用户登陆成功后,如果在其登陆过程中,一直没有关掉浏览器,则先前其购买的购物车还会以条目的形式(对应订单条目表)保留,这样就可以使用户不必再返回去重新购买,用户确认后就会生成订单。而且当用户退出该系统时,在一定的时间段内,还可以参看我的订单。(1)用户登录模块进行用户验证,经系统验证无误才能登录到系统并且购物,这样才能够确保系统的安全。(2)用户注册模块