奥鹏作业答案-谋学网

 找回密码
 会员注册

扫一扫,访问微社区

手机验证码便捷登录

VIP会员,3年作业免费下 !奥鹏作业,奥鹏毕业论文检测新手作业下载教程,充值问题没有找到答案,请在此处留言!
2018年4月最新全国统考资料投诉建议,加盟合作!点击这里给我发消息 点击这里给我发消息
奥鹏课程积分软件(ver:3.1)
查看: 3039|回复: 0

基于.NET网上书店的设计与实现

[复制链接]
发表于 2015-3-3 22:16:49 | 显示全部楼层 |阅读模式
谋学网奥鹏作业答案


                         网络教育学院
本 科 生 毕 业 论 文(设 计)
                                          







                                          
题    目:基于.NET网上书店的设计与实现

学习中心:河北保定奥鹏学习中心[20]VIP
层    次:      专科起点本科     
专    业:         网络工程      
年    级:      2013年  春 季   
学    号:       131159305462   
学    生:         李晓亮         
指导教师:          郭明         
完成日期:   2015年  3月  2日   



内容摘要
网上书店是近年来随着网络技术的发展而产生的一种新型的书店形式。与传统书店相比,网上书店拥有许多的优势。网上书店的建立可以大大减少图书销售中的中间环节,节省大量的人力、物力,并且能够提供更多的书目信息。因此,对网上书店网站的设计成为现今图书市场的热点。
本文从软件背景,需求分析,设计等不同内容、不同角度,细述了网上书店设计过程,开发过程,搭建了一个商品供应商与顾客间的良好交易平台为服务宗旨,从而实现用户与商品供应商间利益的双盈。本文主要设计实现了用户注册、我的订单、商品浏览、个人管理等几个主要功能模块。

关键词:网上书店;网站设计;功能模块
目     录
内容摘要        I
1  概述        4
1.1  背景        4
1.2  本文的主要内容及组织结构        5
2  相关技术介绍        6
2.1  数据库简介        6
2.2  JSP简介        6
2.3  B/S模式        7
3  系统设计        9
3.1  需求分析        9
3.1.1功能需求        9
3.1.2页面需求        10
3.1.3 数据库需求:        11
3.2  系统设计        11
3.3  数据库设计        12
3.3.1数据库E-R图:        12
3.3.2数据库的表:        13
4  系统实现        17
4.1  系统登录        17
4.2  用户注册        18
4.3  用户信息管理        19
4.4  购物车的功能实现        20
4.5  图书查询        21
4.6  订单管理        22
4.7  后台管理系统        24
4.7.1 会员管理功能        24
4.7.2 图书管理功能        25
4.7.3 订单管理功能        26
4.7.4 信息管理功能        26
4.8  数据库连接公共模块        26
4.9  开发中遇到的难题及解决办法        28
5  结论        30
参考文献        31

1  概述
1.1  背景
电子商务开始流行起来,越来越多的商家在网上建起在线书店,向消费者展示出一种新颖的购物理念。作为电子商务的前端商务平台,网上购物系统起着重要的作用。近年来,随着网络技术的发展,一个新的网上书店系统被开发出来。与传统的网上书店相比,它有许多优点。建立网上书店可以大大减少在图书销售的中间环节,节省了大量的人力,物力,并能提供更多的书目信息【1】。此外,网上书店的读者将不再有地域限制,但在世界各地,这也大大拓展了发行的出版物的范围。网上书店,因为这些优势,正在迅速发展。
在1996年,燕莎友谊商场首次通过网上商城售货,虽然货款的支付不是在网上进行的,但这毕竟为我国零售业奏出了网上购物的先声。根据CNNIC的统计结果,截止2011年1月中国有互联网用户9050万人,而又有40.7%以上的网民在过去的一年里有过网上购物经历,这就说明中国有网上购物的用户达是3235.7万人,并且这一数字还在以17%左右的速度增长,这说明在中国发展网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。
西方国家网上书店起步较早,现今已较为成熟。20 世纪 90 年代开始,美国和欧洲的一些书商纷纷建立了网上书店。世界上第一家网上书店是 1991 年在美国联机公司(AOL)的网络上建立的“阅读美国”书店。在日本,网上书店也有较长的发展历史【2】。
当当网上书店成立于1999年11月,是全球最大的中文网上书店。当当由美国IDG集团、日本软库和中国科文公司共同投资,其管理团队拥有多年的图书出版、零售、信息技术及市场营销经验。“中国B2C电子商务领导者”卓越网,于 2000 年 1 月由国内顶尖 IT 企业金山公司及联想投资公司共同投资组建的,2003 年 9 月引入国际著名投资机构老虎基金成为第三大股东。卓越网主要经营音像、图书、软件、游戏、礼品等流行时尚文化产品。
本文就此问题展开论述,主要设计了网上书店的购物系统。本系统的设计目的,开发出一个具有开放体系结构的、易维护的、具有良好操作界面的、B2C模式的网上书店系统。改变传统商业交易,在互联网上进行交易,实现网上购买图书。为了实现上述目的,经过自己的调查实践以及指导老师的帮助,在对网上书店系统有了深一步的了解的情况下,开发了本基于B/S的网上书店系统。本系统的架构是基于JSP/JavaBean的模式,这种模式以其稳定性和优越的速度,被全球企业证明并且公认为是可以高效稳定的进行企业运算开发的平台。这种平台最大的优势在于可以跨系统,具有“一次编写、到处运行”的特点,以这种模式开发的产品,可以轻松移植到其他的平台,例如:Unix、Linux、Windows系统。这样在企业更换平台的时候可以节约成本,提高运算质量。
1.2  本文的主要内容及组织结构
本文简要介绍了网上书店系统的开发与设计。网上书店系统由前台和后台两个管理层面组成。前台主要面向消费者,包括浏览、查询、订购商品、用户信息修改等功能。后台主要面向销售者,包括公告、商品、订单和投诉管理等。
本文的组织结构:
全文共分四章。
第一章,主要是介绍本文选题的背景和本文的主要内容及结构,对本文进行概括性介绍。
第二章,介绍设计中所用到的基本技术,包括数据库、JSP、B/S模式技术。
第三章,对系统的整体进行设计。首先进行需求分析,包括对数据库需求、页面需求、功能需求等进行分析。然后完成了对系统的功能模块和数据库的设计。
第四章,设计主要功能模块的关键代码,主要包括我的订单模块、商品游览模块、购物车模块、用户注册模块。


2  相关技术介绍
2.1  数据库简介
.NET是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验
.NET就是微软用来实现XML,Web Services,SOA(面向服务的体系结构service-oriented architecture)和敏捷性的技术。对技术人员,想真正了解什么是.NET,必须先了解.NET技术出现的原因和它想解决的问题,必须先了解为什么他们需要XML,Web Services 和 SOA。技术人员一般将微软看成一个平台厂商。微软搭建技术平台,而技术人员在这个技术平台之上创建应用系统。从这个角度,.NET也可以如下来定义:.NET是微软的新一代技术平台,为敏捷商务构建互联互通的应用系统,这些系统是基于标准的,联通的,适应变化的,稳定的和高性能的。从技术的角度,一个.NET应用是一个运行于.NET Framework之上的应用程序。(更精确的说,一个.NET应用是一个使用.NET Framework类库来编写,并运行于公共语言运行时Common Language Runtime之上的应用程序。)如果一个应用程序跟.NET Framework无关,它就不能叫做.NET程序。比如,仅仅使用了XML并不就是.NET应用,仅仅使用SOAP SDK调用一个Web Service也不是.NET应用。.NET是基于Windows操作系统运行的操作平台,应用于互联网的分布式。
2.2  JSP简介
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
JSP可用一种简单易懂的等式表示为:HTML+Java=JSP。
JSP技术的优势
一次编写,到处运行。除了系统之外,代码不用做任何更改。
系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。
强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。
2.3  B/S模式
随着计算机技术特别是互联网程序的发展,客户端和服务器大容量数据的传输越发的频繁,传统C/S在大容量传输中暴露了很大的缺陷,使得C/S不能完全满足一些业务的要求。这种情况下,B/S模式应运而生。B/S模式就是采用浏览器和服务器相结合的模式,通过换联网进行相连。一个服务器可以对应多个应用程序。B/S模式得到越来越多的应用,主要是具有很多C/S模式所没有的优点。例如,首先,在客户端安装的是标准、易用的通用浏览器,无需像C/S模式那样在不同的客户机上安装不同的客户应用程序;其次,B/S模式的功能都在Web服务器上实现,使开发和维护工作简单易行;第三,它使用户的操作变得简单,使维护的限制因素更少;第四,B/S模式适用于网上信息发布。
B/S结构的优点
具有分布性特点,可以随时随地进行查询、浏览等业务处理。
业务扩展简单方便,通过增加网页即可增加服务器功能。
维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
开发简单,共享性强
实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。这种三层体系结构如图2.1所示。

图2.1 B/S三层架构示意图
这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,使客户机一下子"苗条"了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。


3  系统设计
3.1  需求分析
需求分析应科学化,其基本原则是[4]:
(1)按功能将复杂问题进行分解并逐层细化。一般若软件需处理的问题太广泛、关系过于复杂,那么就将其分解成几个部分,并确定部分间的接口,这样就可完成整体的功能。
(2)数据域和功能域必须能明确表达和理解问题。数据域包括主要有数据流、数据结构和数据内容。功能域主要反映数据域的控制信息。
(3)建立系统的逻辑模型。模型是一种表达形式,主要用来研究对象,它对于系统分析人员理解系统的信息和功能有利,是系统设计的基础。
3.1.1功能需求
通过对当当网,卓越网等网上书店的认识和分析,我对网上书店有了基本的了解,我觉得该系统至少应该具有以下的一些基本功能:
注册管理:能够对用户名,密码的简单验证;能够对电子邮箱,Email进行有效性验证;能够防止利用页面刷新重复注册,以及已经注册的用户不能重复注册。
商品浏览:分类显示商品;显示商品详情,提供购买链接;可以对商品进行模糊查询;显示当前用户的浏览记录。浏览商品时不要求用户登录,但下订单前用户必须登录,对于浏览过的商品有历史记录。
购物车管理:欲购买商品可以增添到购物车;也可以从购物车退回商品,清空购物车;对于同一件商品的多次购买只能在原来的商品上增添数量,还可以修改购物车中某个商品的数量,统计商品总金额。
订单管理:只有登录的用户可下订单;用户可以查看自己的订单。管理员可以修改订单的状态;也可以按某个时间段,状态查询订单及分页列表显示查询结果。
商品评论:显示某个商品的所有评论,只有登录用户才可以对某个商品发表评论,没有登陆时候跳转到登陆页面。
商品管理:管理员可以增添商品分类;修改商品基本信息;增添商品时候可以上传图片;商品基本信息删除的时候,存在订单的商品不能够被删除。
注册用户管理:管理员可以通过查询指定用户,并管理用户的启用,冻结,和重置密码。
注册:简单验证用户名,密码,电子邮件,电子邮件验证;可以防止刷新页面重复注册,以及注册用户不能重复登记。
商品游览:显示产品详细信息,购买链接;对货物的模糊查询;显示当前用户的浏览历史。浏览该商品的,不要求用户登录,但订单之前,用户必须登录货物的历史。
购物车管理:购买产品,可以添加到购物车,也可以返回购物车,购物车空的货物;一个号码多次购买的商品只能被添加到原来的货物,你可以修改购物车的商品的数量,统计,货物总金额。
订单管理:只有登录用户可以下订单,用户可以查看自己的订单。管理员可以修改订单的状态,也可以按一定的时间,状态查询,订单和分页列表显示查询结果。
商品评论:显示产品的所有意见,只有登录的用户,可以对产品发表评论,也没有登陆时跳转到登陆页面。
商品管理:管理员可以添加类别;修改商品的基本信息;附加商品可以上传图片;删除时,货物的基本信息,货物的订单的存在不能被删除。
用户管理:管理员可以指定用户查询和管理用户启用,冻结,并重置密码撤消修改。
3.1.2页面需求
软件界面是人—机之间的信息界面,交互是一个结合计算机科学、美学、心理学、人机工程学等工业和商业领域的行为,其目标是促进设计,执行和优化信息与通信系统以满足用户的需要。根据分析,软件界面设计应满足以下基本原则:概念模型、显示方式一致性,在类似情况下,一致的操作序列:如提示,菜单和帮助,以产生相同的条款,特别是指不同的应用系统应该有相似的外观和感觉,布局,类似的相互作用,以及类似的信息。用户界面设计保持高度一致,不会有太多的不同,以促进其他场合使用。构成一个易于使用的人机界面设计要求的一致性是非常重要的。

3.1.3 数据库需求:
网站的需求重点体现在各种信息的提供、保存、更新和查询。这就要求数据库结构能够满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为以后的具体设计打下基础。
针对网站的需求,通过对客户及商品信息管理过程进行分析,可以设计出以下的客户信息及商品信息的数据结构:
客户信息:客户编号、姓名、性别、省市、邮编、公司名称、公司地址、电话、传真、电子邮箱、密码、密码提示问题及答案等。
商品信息:零售价格、名称描述、价格特征、图片、库存、类别编号、类别、体积、重量、会员价格、VIP价格、特价显示、热卖显示。
3.2  系统设计
模块功能介绍:
用户注册:能够提供用户的注册,并且对用户的注册进行以下验证:用户名非空;密码不小于6位;邮箱Email的有效性;防止通过刷新重复提交。
购物车管理:所选商品须通过购物车进行保存;对于相同的书籍,在再次购买的时候,在购物车中相应的书籍上增加数量;在购物车中修改订单数量的时候防止输入非数字;在购物车然后生成订单。
我的订单:用户可以查看自己所有的订单,以及查看具体某一张订单,通过查看订单,用户可以查看订单现在的状态,查看订单的具体详情:收货人地址,收货方式,付款方式,具体商品,小计,总计等等。
商品浏览:用户可以通过商品的id或者商品的名称进行查找商品,并且对于浏览过的商品存在浏览历史,对于登陆后的用户可以对商品进行留言。
个人管理:用户可以管理自己账号的相关信息,比如:修改个人的基本信息,修改自己的密码。
用户可以通过注册评论商品代码实现以下功能。


图3.1 功能模块结构图
3.3  数据库设计
3.3.1数据库E-R图:
针对网站的需求,通过对客户及商品信息管理过程进行分析,可以设计出以下的客户信息及商品信息的数据结构:
客户信息:客户编号、姓名、性别、省市、邮编、公司名称、公司地址、电话、传真、电子邮箱、密码、密码提示问题及答案等。
商品信息:零售价格、名称描述、价格特征、图片、库存、类别编号、类别、体积、重量、会员价格、VIP价格、特价显示、热卖显示。
E-R图中用矩形表示实体;用椭圆表示属性;用菱形表示联系。本系统表示实体及其联系的E-R图。如图3.2所示。


图3.2 网上书店系统E-R图
3.3.2数据库的表:
本系统包括七个表,图书信息表 tb_bookinfo,用户信息表 tb_manager,管理员信息表 tb_Member,订单信息表 tb_order,投票信息表 tb_Poll,折扣信息表 tb_rebate,公告信息表 tb_BBS。
1、图书信息表
图书信息表(图书编号,书名,出版社,作者,类型,价格,出版日期,新书标识)
表3.1 图书信息表
字段名        数据类型        长度        主键否        描述
ISBN        varchar        15        Y        书编号
BookName        varchar        20        N        书名
publisher        varchar        20        N        出版社
Writer        varchar        10        N        作者
Type        varchar        20        N        类型
Price        money        8        N        价格
pDate        varchar        20        N        出版日期
newbook        Integer        自动        N        新书标识
2、用户信息表
用户信息表(用户编号,用户名,真实姓名,密码,地址,邮编,证件类型,证件号,用户级别,消费总额,联系电话,E-mail,状态)

表3.2 用户信息表
字段名        数据类型        长度        主键否        描述
ID        int        4        Y        用户编号
username        varchar        20        N        用户名
TrueName        varchar        10        N        真实姓名
PassWord        varchar        20        N        密码
address        varchar        100        N        地址
postcode        varchar        6        N        邮编
CardType        varchar        20        N        证件类型
CardNO        varchar        24        N        证件号码
grade        int        4        N        用户级别
Amount        money        8        N        消费总额
Tel        varchar        50        N        联系电话
E-mail        varchar        50        N       
freeze        Integer        自动        N        用户是否被注销
3、管理员信息表
管理员信息表 (管理员编号,用户名,密码,联系电话)

表3.3 管理员信息表
字段名        数据类型        长度        主键否        描述
ID        int        4        Y        管理员编号
manager        varchar        30        N        用户名
PWD        varchar        30        N        密码
Tel        varchar        50        N        联系电话

4.订单信息表
订单信息表 (订单编号,图书编号,用户编号,订单日期,订单数量,总价格)
表3.4 订单信息表
字段名        数据类型        长度        主键否        描述
orderID        Bigint        8        Y        订单编号
ISBN        Varchar        20        N        图书编号名
numberid        Int        4        N        用户编号
ordernumber        Int        4        N        订单数量
orderdate        datetime        8        N        订单日期
price        Money        8        N        总价格
5.投票信息表
投票信息表 (编号,投票项目,票数)

表3.5 投票信息表
字段名        数据类型        长度        主键否        描述
ID        Int        4        Y        编号
optionName        Varchar        50        N        投票项目
Pool        Int        4        N        票数

6.折扣信息表
说明:每消费满500元升一级,最高级别为5级,级别不同折扣不同。
折扣信息表 (用户级别,消费总额,折扣)

表3.6 折扣信息表
字段名        数据类型        长度        主键否        描述
grade        Int        4        Y        用户级别
Amount        Money        8        N        消费总额
rebate        Float        8        N        折扣

7.公告信息表
公告信息表 (编号,公告信息,信息更新时间)

表3.7 公告信息表
字段名        数据类型        长度        主键否        描述
ID        int        4        Y        编号
content        varchar        3000        N        公告信息
INTime        datetime        8        N        信息更新时间



4  系统实现
4.1  系统登录       
1、主对话框的实现
作为整个系统的载体,主对话框的设计显得尤为重要,它不仅是人机交互的界面,也是整个信息系统友好性和人性化的最直接的体现。

(1)提交用户登录请求,同时提交登录用户信息的表单
(2)提交登录用户用户名及密码的表单元素
(3)登录按钮
(4)重置按钮
(5)提交新用户注册请求的超链接并且用JavaScript验证是否为空
登陆对话框实现如图4.1:

图4.1  登陆界面
JS部分验证代码:function checkform(){
        if (document.loginbox.name.value.length ==0){
                alert("出错了,您没有填写用户名。");
                document.loginbox.name.focus();
                return false;
        }
        if (document.loginbox.password.value.length==0){
                alert("出错了,您没有填写密码。");
                document.loginbox.password.focus();
                return false;
        }
可在注册时调用相同代码。
在让主对话框操作简单明了的同时,一些个性化的设计也非常重要。为了让系统显得更加的人性化,根据操作员的一些常用操作,制作了专门的工具栏,这样操作员在做一些常用操作时就不用拉开繁杂的菜单,而可以直接点击工具栏中的图标来进行操作。并且可以显示点击量,为网站做一个统计。
代码如下:
<tr>
        <td align="center">您是第<font color="#FF0033"><%=jsqBean.getCount()%></font>位访问者</td>
</tr>
4.2  用户注册       

        1、提交新用户注册请求,同时提交新用户注册信息的表单
        2、提交注册用户姓名、地址、电子邮件地址、电话、密码以及确认密码的表单元素
        3、注册按钮
在本页面中注册用户可以在表单中输入对应的注册信息,在单击“注册”按钮后,将提交请求页面,同时提交新用户的相关注册信息,以便于进行后续新用户注册的处理。
        4、重置按钮
所填写的信息全部清除。


                图4.2  注册界面 带*号为必填项

可以调用登陆界面的JavaScript进行为空验证。
4.3  用户信息管理       
1、获取订单信息、客户信息
2、显示客户姓名、地址、电话
3、显示购物车中的信息
4、显示所购图书书名、数量、总价
5、显示订单编号
6、提交继续购书的请求
7、提交查看该用户所有订单的请求
8、修改注册信息
     修改密码的实现代码:
       String oldpassword;  
       String password1;
       String password2;
       String name;
          
        name=request.getParameter("name");
        oldpassword=request.getParameter("oldpassword");
        password1=request.getParameter("password1");
        password2=request.getParameter("password2");
               
                  customerBean.setName(name);
                  customerBean.setPassword(password1);//新密码
              customerBean.setPassword1(oldpassword);//老密码

             if(customerBean.update3() == 1) {   
   
                  out.println("<Script language=JavaScript>alert('密码修改成功');javascript:history.back();</Script>");
                   }else{
                       out.println("<Script language=JavaScript>alert('密码修改失败,可能旧密码不正确');javascript:history.back();</Script>");
}
4.4  购物车的功能实现       

购物车功能类似超市的购物车,它是网络虚拟的,实际上是存储和管理预购商品名称、价格、数量的数据库。用户只要点击选中图书(图书详情界面如图4.6所示)下面的“购买”按钮就可以将图书放入购物车中,以方便最终的购物。当然用户也可以对自己购物车中的图书进行修改,修改数量和删除等。为了保证数据库的安全及交易的顺利的进行,用户需要登录以后才可以购书。如果用户未登录会自动跳转到登录页面供用户登录,登录后会自动回到刚才购物的页面。即购物车是根据用户登陆的账号和图书的ID号的绑定来实现关联。购物车界面如图4.7所示,实现代码如下:
//加载数据
public void LoadData()
{
string sql = "select a.*,b.Buytime,b.Buycount from goods b left join books  a on a.id=b.bookid";
  gv.DataSource = GoodsBLL.GetGoodsDataTableBySql(sql, null);
  gv.DataBind();
}
     
//删除
protected void ImageButton3_Click(object sender, ImageClickEventArgs e)
{
  int id = Convert.ToInt32(((ImageButton)sender).CommandName);
  GoodsBLL.DeleteGoodByID(id);
  LoadData();
}
    //分页
protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
   gv.PageIndex = e.NewPageIndex;
   LoadData();
}

图4.3 购物车
4.5  图书查询
为了方便用户查询所需图书信息,在系统中设置了图书分类显示模块。单击导航条中的“图书分类”链接即可进入到图书分类显示页面,在该页面左侧的“图书分类列表”中列出数据库中的全部图书类别,用户单击某类别即可在右侧显示该类别的图书信息列表,单击书名可以查看相应图书的详细信息。如果用户已经登陆,还可以直接将图书信息添加到购物车中。

图4.4 图书查询界面展示
实现页面各功能主要代码:
ResultSet rs_Type=connDB.executeQuery("select Type from tb_bookinfo group by Type");                    // 从表中查询页面左侧列表中内容
rs_Type.first();
                                do{   //此处必须用do. . .while,否则会少一条记录
                                String Type=rs_Type.getString("Type");//产生列表
}while (rs_Type.next());
4.6  订单管理       
生成订单是网上书店的最终目的。生成订单时,不仅要保存用户所购买的图书信息和和价格,同时还需要返回一个可供用户随时查询的订单号。
用户单击查看购物车页面中的“却收银台结账”链接即可进入到收银台页面填写订单信息,在该页面中系统会根据用户登陆的用户名自动填写用户基本信息,除用户名不可更改外,其他的均可修改。
模块流程:

图4.5 生成订单流程图
界面展示:

图4.6 收银台界面展示
主要代码如下:
ResultSet rs_rebate=connDB.executeQuery("select rebate from V_Member where username='"+username+"'");//从出折扣表中取出该用户应打的折扣
String ISBN=mybookelement.ISBN;
                price=mybookelement.price*rebate;
                number=mybookelement.numner;
                sum=price*number;
                String str="insert into tb_order (orderID,ISBN,price,number) values("+orderID+",'"+ISBN+"',"+price+","+number+")";//向订单表中插入数据
                temp=connDB.executeUpdate(str);//更新订单表
//更新用户信息
        String sql_up="update tb_Member set Amount=Amount+"+Totalsum+" where username='"+username+"'";
        temp=connDB.executeUpdate(sql_up);//更新用户购书总额
String sql_upgrade="update tb_Member set grade="+grade+" where username='"+username+"'";
                        temp=connDB.executeUpdate(sql_upgrade);//更新用户等级
4.7  后台管理系统
后台管理系统,包含会员管理、图书管理、订单管理、信息管理。后台管理界面如图4.7所示


图4.7后台管理系统
4.7.1 会员管理功能
会员管理功能主要是为网站维护人员提供方便,更好的保证网上书店系统的正常营业。对前后台注册用户的审核、过期用户的删除以及后台管理人员的权限分配等。会员管理界面如图4.8所示,

图4.8会员管理
4.7.2 图书管理功能
图书管理功能主要维护整个系统的图书信息。包含图书信息的录入、修改、删除以及查看,对不同分类的图书进行调整等。图书管理界面如图4.9所示,对于图书的LOGO图标,统一根据入库的时间进行存放。实现代码如下:
     public bool Upfile(out string path)
    {
                    FileUpload files = fuAdImg;
           string tempDirectory = DateTime.Now.ToString("yyyyMMddhh");
           string filepath = string.Empty;
           Judge(files);
           try
           {
                if(System.IO.Directory.Exists(Server.MapPath("~/upImage/" + tempDirectory)) == false)//如果不存在就创建file文件夹
                {
               System.IO.Directory.CreateDirectory(Server.MapPath("~/upImage/" + tempDirectory));
                }
                if (!string.IsNullOrEmpty(files.FileName))
                {
                    files.SaveAs(Server.MapPath("~/upImage/" + tempDirectory + "/" + files.FileName));
                    filepath = "~/upImage/" + tempDirectory + "/" + files.FileName;
                }
           }
...
      }

图4.9 图书管理
4.7.3 订单管理功能
订单管理功能主要处理用户提交的订单。进行审核和确认,同时对网银支付的用户进行汇款处理等。订单管理界面如图4.10所示,

图4.10 订单管理
4.7.4 信息管理功能
        信息管理功能管理网站上所有的新闻信息。包含图书资讯信息的添加、修改、删除、以及图书销售排行榜的统计等。信息管理界面如图4.11所示

图4.11 信息管理

4.8  数据库连接公共模块       
使用jdbc--连接数据库
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTest {

        public static void main(String[] args) {
                try {
                        //2、加载驱动类
                        String driver = "驱动名";
                        Class.forName(driver);
                       
                        //3、创建数据库连接
                        String url = "地址";
                        String username = "数据库用户名";
                        String password = "密码";
                        Connectionconn=DriverManager.getConnection(url,username,password);
                        //4、创建Statement对象
                        Statement st = conn.createStatement();
                       
                        //5、执行SQL语句
                        String sql = "SQL语句";
                        ResultSet rs = st.executeQuery(sql);
                        //6、对语句进行处理
                        while(rs.next()){
                        //7、关闭数据库联接
                        rs.close();
                        st.close();
                        conn.close();
                } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                } catch (SQLException e) {
                        e.printStackTrace();
                }
        }
}
4.9  开发中遇到的难题及解决办法
1、总台设计
根据标准软件工程要求可知,系统总体设计主要是对系统的实现方式进行研究,从程序、文件、数据库、文档等元素来完成系统的整体实现。因此,系统的总体设计主要考虑以下几个方面:
根据已经完成的需求分析中明确的系统的总体功能,将本系统的总体功能进行分割、细化。根据软件工程的原理,根据所涉及的业务特点将本系统细分为若干个小模块并进一步明确各模块所要完成的功能。
将各模块的实现进行具体分析后,对各个模块的实现成功性进行分析。
后台数据库的选定。
最后对本系统的风格、总体布局、界面设计等进行进一步的明确。
在系统的总体设计阶段采用模块划分的方法,可以加快系统的开发速度,缩短开发时间。采用这种房可以同时开发互相没有关联的模块,可以使模块之间具有相对独立性。此外,还可以减小错误发生的概率和错误发现的困难性。
此外,虽然每个模块之间具有相对独立性,但是它们之间在数据的处理上、模块的风格以及工作流等方面具有的共同点和关联性。此外,有一些模块还需要另外一些模块的协助才能进行操作。例如,为了保护系统安全所采用的身份认证机制,则规定了用户在访问系统各个模块之前,都需要先在登录模块进行身份认证。
2、系统安全性
为了保证系统运行的稳定性,系统在开发过程中需要进行系统的安全性设计。为了使系统的安全性能更好的得以体现。在总体设计模块,应该加强各个模块运行的安全性以及潜在危机的漏洞发现。因此,要求:
在各个模块的设计和具体代码编写过程中,都需要进行相应的出错处理能力,这样可以避免因为某一个模块的错误而造成整体系统运行出错。
一些必要的模块要有相应的用户使用验证机制。该机制是确保用户的安全使用该系统的有力保障。
3、在系统的功能实现时,明确功能是服务器端功能还是客户端功能。
由于本系统主要运行在服务器端,大流量下会对服务器造成很大的负荷,因此在开发过程中要把一部分功能放在客户端执行,这样可以充分利用客户端的处理能力。
4、考虑系统在不同刘loan器上的兼容性。
当今浏览器市场上主要由FireFox和Microsoft的Internet Explorer所霸占,而两者之间存在着一定的差异,有的不兼容。如FireFox就不支持VBScript脚本,只支持JavaScript脚本,而Internet Explorer即支持VBScript又支持JavaScript脚本。因此,针对浏览器的差异,以及客户的使用习惯,本系统决定采用**Script脚本语言作为客户端脚本语言。
5、在开发过程中因为采用了过多的层间调用而致使系统运行缓慢。
本系统与用户交互的过程是:用户在使用本系统时,将操作的数据发送到服务器端,服务器根据结构到的用户请求,将符合要求的数据发送给用户,在这个过程中会根据用户所在的网络情况等因素而产生一定的延时。因此,为了减少这种和服务器的交互次数,系统应该尽量在一个界面中提供较多的服务。这样还能减少因为网络而对系统造成的压力。

5  结论
本文以网上书店系统开发项目为背景,对网上书店系统技术、设计方案和实现展开研究,分析网上书店系统在建设过程中的相关技术,对所涉及的软件开发技术、网络性能进行了详细的分析,对网上书店系统规划实施过程中的需求分析、总台方案设计、软件开发以及网络性能实施等相关环节进行了深入地研究。给未来网上书店系统的研究提供了可靠的雏形。
本系统采用了数据库和程序分开的模式,对于数据库采用了专用服务器进行存储,保证了数据的安全性,用户可以通过此刺痛来访问数据库。数据库的服务器可允许多用户同时访问。而系统的程序部分则通过采用B/S结构模式来实现。在系统安装过程中,只需要把开发的程序放在专用的Web服务器中,用户不需要进行任何安装,通过电脑中的浏览器即可访问本系统。这样就大大减少了对很多用户端进行特殊的设置和软件的安装。此外,采用这种方式不仅减少了系统开发的成本、周期,并且保证了关键数据的安全性,操作的快速性、简洁性和方便性。
本文从本系统的需求分析、系统业务流程、以及本系统所要实现的功能、系统设计的数据流以及采用的数据库等方面进行了详细的论述,并通过编码工作实现了本系统。但是由于作者水平有限,时间仓促,设计和开发中存在一些不足之处,有待于在今后的实践中不断完善和改进,敬请各位老师、专家和读者给予批评和指正。


参考文献

[1] 郑人杰、殷人昆、陶永雷:《实用软件工程》第二版.清华大学出版社,2004.5.1
[2] 闫洪亮、潘勇:《 Asp.net程序设计教程》上海交大出版社, 2006.1.
[3] 石志国:《asp.net程序设计实用教程》电子工业出版社, 2006.4.
[4] 微软公司:《基于.NET的需求分析和解决方案设计》,2004.10.
[5] 闪吧:《网叶设计专家门诊》,清华大学出版社 2005.7.
[6] 张俊、乔宇峰、周欣:《C#程序设计入门》,吉林电子出版社 2005.2.
[7] 微软公司:《SQL Server 2000数据库程序设计》,高等教育出版社 2004.2.
[8] 微软公司:《ADO.NET程序设计》,高等教育出版社 2004.2.
[9] 金雪云:《ASP.NET简明教程(C#篇)》,清华大学出版社 2006.1.
[10] 季久峰:《专家门诊Asp.net开发答疑》,人民邮电出版社 2004.9.
[11] 张海藩.软件工程导论(修订版).北京:清华大学出版社,2002. [12] 张海藩,牟永敏.面向对象程序设计实用教程.北京:清华大学出版社,2001.
奥鹏作业答案,奥鹏在线作业答案
高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

投诉建议
 
 
客服一
客服二
客服三
客服四
点这里给我发消息
点这里给我发消息
谋学网奥鹏同学群2
微信客服扫一扫
快速回复 返回顶部 返回列表