《网上书店系统的设计与实现(共33页).doc》由会员分享,可在线阅读,更多相关《网上书店系统的设计与实现(共33页).doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上上海软件技术学院毕业设计(论文)题 目: 网上书店系统的设计与实现 系 别: 网络技术 专 业: ACCP 学 号: 姓 名: 指导老师: 完成日期: 2009 年 3 月 5 日目 录专心-专注-专业前 言随着Internet信息技术的高速发展和个人、企业上网的迅速普及,企业的WWW网站在商业活动中发挥着越来越大的作用,在信息时代,建立一个功能强大、界面美观的电子商务网站,建立电子商务系统平台,对企业的发展是至关重要的。所谓电子商务,是指各种具有商业活动能力的实体(生产企业、商贸企业、金融机构、政府机构、个人消费者等)利用网络和先进的数字化传媒技术进行的各项商业贸易
2、活动。其中特别要强调的特点,一是其商业背景,二是网络化和数字化。简言之,电子商务就是通过电子网络渠道达成的商务活动。电子商务是计算机网络的第二次革命,它通过电子手段建立新的经济秩序,不仅涉及电子技术和商业交易本身,而且涉及诸如金融、税务、教育等社会其他层面。对于电子商务的研究始于20世纪70年代末,而其实施要更晚些,实施又分为两步,其中电子数据交换(Electronic Data Interchange,EDI)始于20世纪80年代中期,Internet上的电子商务始于20世纪90年代初期。电子商务活动相应分成两大类:企业组织-企业组织(Business-Business,B2B)型和企业组织
3、-消费者(Business-Consumer,B2C)型。根据统计,目前电子商务活动中80%的收属于B2B型商务活动,这由于企业组织的信息化程度和技术水平比个体消费者明显要高,主要面向的是企业与企业,为企业提供进行采购、销售和结算等业务的平台。B2C则是我们最熟悉的,它直接面向终端的大众消费者。它通常也有两种形式,一种是类似一个大的超市,里面摆放着大量的商品,提供给消费者直接去选择购买;而另一种形式则类似一个大商城,商城中有许多柜台,用户可以直接到柜台选择和购买自己中意的东西,然后去结算,这种商城只提供柜台和相关的服务,并收取相应的柜台使用费。一般意义上,一个完整的电子商务系统包括信息流、资金
4、流与物流三个要素,三者相辅相成。信息流就是通过电子网络向客户揭示所售商品的相关信息,引导客户通过网络进行购物。资金流就是使客户在选择商品后,能够通过网络支付相关费用,一般包括预付款支付、网上银行支付、货到付款等多种形式。目前有些电子商务网站也可以接受邮局汇款。物流就是把客户所购买的商品通过物流配送系统送到客户手中,对于一些特殊行业和领域和电子商务,如证券、金融信息类商品,也可能不需要配送系统的支持就可以把商品送到客户手中(如股票、电子杂志、域名注册等)。在电子商务中,除了上述三个要素外,网络安全也是需要重点考虑的因素。据调查,有1/3的网民认为网络安全是影响其网上购物的因素,因此为了保证网络交
5、易的安全,电子商务网站需要采用数据加密、电子签名等多种措施进行安全认证。需求分析网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。一个典型的网上商城一般都需要实现商品信息的动态展示、购物车管理、客户信息注册登录管理、订单处理等模块。一、 用户需求分析本网上书店系统主要完成以下具体任务:1图书查询需求当客户进入网上书店时,应该在主页面中分类显示最新的书目信息,以供客户选择所需图书,同时也应该提供按照图书名称,或者作者住处快速查询所需书目信息的功能。2购物车管理需求当客户选择购买某图书产品时,应该能够将对应图书信息,例如:价格、数量记录到购物车中,并允许客户返回书目查询页面,选择其他商品
6、,并添加到购物车中,当对购物订单生成后,应该能够自动清除以生成订单的购物车中的信息。3订单处理需求对应客户购买图书商品信息的需求,在确定了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式及付款方式,最终生成对应的订单记录,以便于网站配货人员依据订单信息进行后续的出货、送货和处理。4管理员与客户的分类功能为了能够实现管理员和用户各自的所享有的功能,特将他们分类处理。网上书店系统的用例图上网用户图书查询 购物车管理订单管理图2-1网上书店USE Case 系统开发技术一、 MVC模式简介MVC是Model(模型)View(视图)Controller(控制器)的缩写,它适用于大型可扩展的
7、Web应用的开发,它强制性地将应用程序的输入、处理和输出分开,将其划分为模型、视图和控制器三个核心部分,使它们各司其职,各自完成不同的任务,其中任何一部分的修改都不会影响其它两部分。在MVC模式中,模型封装了应用问题的核心数据、逻辑关系和业务规则,提供了业务逻辑的处理过程。模型一方面被控制器调用,完成问题处理的操作过程,另一方面为视图获取显示数据提供了访问数据的操作。因为模型是与数据格式无关的,因此一个模型可以为多个视图提供数据,这样一个模型一次编写可以被多个视图重用,从而避免了代码的重复编写。视图是MVC模式下用户看到的并与之交互的界面。视图从模型处获得数据,视图的更新由控制器控制。视图不包
8、含任何业务逻辑的处理,它只是作为一种输出数据的方式。MVC模式中,控制器主要起导航的作用,它根据用户的输入调用相应的模型和视图去完成用户的请求。控制器本身不输出任何东西,它接受用户请求并决定调用哪个模型构件去处理,以及由哪个视图来显示模型处理之后返回的数据。MVC的处理过程是这样的:对于每一个用户输入的请求,首先被控制器接收,并决定由哪个模型来进行处理,然后模型通过业务处理逻辑处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过显示页面呈现给用户。图1-1所示为模型、视图、控制器这三个模块各自的功能以及它们之间的相互关系:图1-1 MVC模式31.电子商务概况摘要电子商
9、务模式是目前互联网人士思考较多的一个话题,在有了BC, BB等模式之后,一些网站最近又在尝试一种全新的概念BBC模式,而且看来这一模式已经被许多的网上书店所接受。在解释BBC模式时,书生科技公司总裁王东临先生认为:“该模式的意思是中间的 B直接面对客户,把订单交给第一个B来执行。这种模式看起来好像只是传统的渠道销售的翻版,在互联网时代根本不可行,因为互联网经济的一大特征就是压扁渠道,Amazon等大行其道的原因也正是基于这种“中间商死亡”的论调,他们抢占的正是原来中间商的利润。因此,BBC模式长期以来被认为是一种不可能成立的模式。其实,如果中间的B能够提供一种独特的服务,把消费者都吸引到它那里
10、去,并通过它下订单,则该模式就是可行的。EBook网络业务支持平台采用B/S结构,三层运行模式,同时适用于Intranet/Internet。浏览器为第一层,作为系统的应用界面;应用逻辑服务为第二层;数据链接为第三层,作为系统的数据存取服务。此架构无须安装客户端软件,便于软件的分发和维护升级,适应了众多应用客户端分散环境下的运行和维护需求。本篇论文介绍了本系统开发环境和运行平台、ASP.NET、应用框架。而后台的数据库则使用Microsoft SQL Server 2000管理平台的数据。EBook网络业务支持平台实现网上书店大型系统,添加独特的物流子系统、在线客服子系统、Wap子系统让客户能
11、够有效的掌握,有效的处理各类所需相关信息,以及促进各个子系统管理的信息化、规范化和集成化,实现计算机的智能化管理,以提高工作效率和经济效益。系统总体设计1.UML活动关系图下面是进入网上书店可以进行的操作。具体的UML活动如下图所示:图书查询购物车管理会员登录新会员注册订单管理图3-1UML活动关系图2.系统组成表3-1构成网上书店系统的各个组件用户表示层(视图)控制处理层(控制器)业务逻辑(模型)addAdmin.aspxaddBook.aspxaddCart.aspxbookInfo.aspxcart.aspxcartlist.aspxcollect.aspxdefault.aspxfun
12、ction.aspxfunctionlist.aspxindex.htmmain.htmorderInfo.aspxpinglun.aspxpinglun1.aspxsearchbook.aspxsearchuser.aspxshoucang.aspxtotalmoney.aspxtourst.aspxwelcome.aspxdalbllAccount.csAssemblyInfo.csBookComment.csBookInfo.csBookType.csOrderInfo.csAccount.csAssemblyInfo.csBookComment.csBookInfo.csBookTyp
13、e.csOrderInfo.csAccount.csAssemblyInfo.csBookComment.csBookInfo.csBookType.csOrderInfo.cs3.功能设计(1)图书信息管理该模块实现图书书目信息的分类显示,也提供了新增,删除,修改和查询等功能。此外,在用户选择了对应书目信息后,还可以显示出有关该图书的详细信息,以便于客户了解所购商品。(2)购物车管理用于维护每一个进入网上书店的客户对应的购物车。即将客户所选购的图书商品信息记录到对应的购物车中,以便于到收银台进行结账处理。(3)会员注册实现网上书店客户信息的注册、及身份验证。由于目前网上商城普遍采用的方式为送
14、货上门或者邮寄,因此需要收集与客户相关的联系方式、通信地址等信息。(4)订单处理根据客户购物车中的信息,以及客户所选择的送货方式和付款方式,连同客户对应的个人信息生成订单,以便于后续进行送货处理。数据库设计与实现一、 数据库的需求分析依据网上书店的处理需求,对应数据表的设计及功能如下:一、图书基本信息表:存放网上书店所销售图书的基本信息。二、图书分类基本信息表:存放网上书店所提供图书分类的信息。三、客户基本信息表:存放书店客户的基本信息。四、订单信息表:存放与客户相关的订单的基本信息。五、订单条目详细信息表:存放订单中详细条目的基本信息。1.数据库的逻辑设计根据以上需求分析,在确定了各个表主键
15、字段的基础上,依据表与表之间相关字段之间的联系建立了各表之间的关系,对应的关系图如图4-1所示:AccountAccountIdAccountPwd BalanceTrueName sex Auth(权限)email telephonelogintimesbookcomment commenttitlecommentcontentbookidBookinfobooknamebooktype price pubspicturepath descriptions booknumbookauthoraddtimeaddpersonbooktypetypeidtypenameOrderInfoorde
16、rid booknumbookname bookidisconfirm orderperson ordertime priceorderip pay图4-1数据库逻辑图2.数据表基本结构(1)图书信息表图书信息表(bookinfo)是用来保存网上书店每一种图书基本信息的数据表,是维护管理图书数据的依据。表4-1书图书信息表字段名描 述类 型长 度是否允许为空是否主键Id书本idInt 4否是booktype图书种类varchar50否否pubs出版社varchar50否否bookname图书名称varchar100否否price图书价格double15否否description图书介绍varc
17、har255是否bookauthor图书作者varchar50是否(2)图书评论基本信息表图书分类基本信息表(bookcomment)记录了与网上书店图书分类相关信息。表4-2图书分类基本信息表字段名描 述类 型长 度是否允许为空是否为主键bookId书本idint4否是CommentTitle评论标题varchar40否否commentContent评论内容varchar40否否(3)客户基本信息表客户基本信息表(account)存放了网上书店对应的客户信息,包括客户的姓名、联系方式等信息。表4-3客户基本信息表字段名描述类型长度是否允许为空是否主键accountId用户名varchar20
18、否是accountpwd密码varchar20否否balance余额varchar20否否truename真实姓名varchar20否否sex客户性别varchar50否否author权限(区分管理员和客户)boolean2否否email客户邮箱varchar50否否Telephone客户联系方式Varchar50否否(4)订单信息表表4-4订单信息表字段名描述类型长度是否允许为空是否主键orderid订单编号integer11否是ordername订单用户名varchar20否否bookNum书本数量Int4否否ordertime产生订单时间datetime19否否Isconfirm确认是否
19、发货Boolean2否否Price总价Int 4否否3.创建数据表脚本在基本的数据表的结构确定后,就可以在mysql中完成数据表的创建工作,下面给出建立对应数据表的SQL脚本。(1)图书基本信息表:CREATE TABLE bookinfo ( id int(4) NOT NULL auto_increment, booktype varchar(50) NOT NULL, bookname varchar(50) NOT NULL default , price double(15,3) NOT NULL default 0.000, description varchar(255) NOT
20、 NULL default , pubss varchar(50) default NULL, PRIMARY KEY (id) (2)图书评论基本信息表:CREATE TABLE bookcomment ( id int(4) NOT NULL default 0, commentTitle varchar(50) default NULL,commentContent varchar(50) default NULL, PRIMARY KEY (id) (3)客户基本信息表:CREATE TABLE storeuser ( AccountId varchar(20) NOT NULL de
21、fault , AccountPwd varchar(20) NOT NULL default , truename varchar(20) NOT NULL default , telephone varchar(20) NOT NULL default , sex varchar(100) NOT NULL default , email varchar(50) default NULL,balance varchar(20) default NULL,author boolean(2) default 0, PRIMARY KEY (AccountId ) (4)订单信息表:CREATE
22、 TABLE orders ( orderid int(11) NOT NULL auto_increment, ordername varchar(20) NOT NULL default , ordertime datetime NOT NULL default 0000-00-00 00:00:00, isConfirm boolean(2) NOT NULL default , price varchar(20) NOT NULL default , PRIMARY KEY (orderid) 系统实现过程开发平台服务器:IIS;数据库: Sql Server 2000;平台:Micr
23、osoft Visual Studio 2005 操作系统:windows XP一、系统各组件实现用户表示层在用户表示层中主要是一些相关的页面。该层对应的页面应该放在WEB应用目录根目录下。1.网上书店首页:本页面分为上下2个部分。上面的部分是个万年历,从万年历上可以查询各种各样的时间,节日,农历,节气等信息,此晚年里是从网上找到的一段脚本script脚本代码,美观大方,非常使用。下面的部分是登陆和注册页面,主要实现登陆和注册功能。登陆有2种情况,一个是管理员登陆,另一个是客户登陆,管理员登陆后的页面是一些后台的操作,而客户登陆后的页面是图书列表及收藏夹和购物车还有1些评论。注册有各种信息的输
24、入,在用户名一栏中,比如数据库中已经存在了一个用户名,如果一位客户申请的时候写了一个一模一样的用户名,则在点击旁边的“检查用户名是否存在”的按钮后会出现“此用户名已经存在”,提示重新输入一个其他的用户名。(1)注册的主要的代码如下protected void btnAdd_Click(object sender, EventArgs e) Accountmod.AccountId = tbusername.Text.Trim(); Accountmod.AccountPwd = tbpwd.Text.Trim(); Accountmod.Auth = 0; Accountmod.Email =
25、 tbEmail.Text.Trim(); Accountmod.Logintimes = 0; Accountmod.LogIp = Request.ServerVariablesRemote_Addr.ToString(); Accountmod.Telephone = tbphone.Text.Trim(); Accountmod.TrueName = tbTruename.Text.Trim(); Accountmod.Sex = RadioButtonList1.SelectedValue; Accountmod.Balance = 0; lbshow.Text = 用户注册成功!;
26、 Accountbll.Add(Accountmod); Panel1.Visible = false; protected void btnCheck_Click(object sender, EventArgs e) DataSet ds = Accountbll.GetList(AccountId= + tbusername.Text.Trim() + ); if (ds.Tables0.Rows.Count = 0) lbshow.Text = 该账户可以使用; btnAdd.Enabled = true; else lbshow.Text = 该账户已被占用!; btnAdd.Ena
27、bled = false; 2.图书详细信息显示: 本页面是客户登陆成功后的页面,上面会显示出各种图书的列表,本页面还包括加入购物车,加入收藏夹,查看购物车,查看收藏夹,图书详细信息以及图书评论等内容。 当用户对某本书感兴趣的时候,可以在对应的图书图片下点击图书详细信息按钮,在弹出的页面上就会显示此图书的具体内容。具体代码如下:LinkButton lb = (LinkButton)e.Item.FindControl(LinkButton3); lb.Attributes.Add(href, bookinfo.aspx?id= + lbid.Text.Trim() + )可以看出,系统是根据
28、书本id找到对应的详细信息的。用户还可以把书放进购物车中,但只局限于下次找此书在此操作的电脑上,如果想在任何电脑上都能看见你的收藏的话,就将此书放入收藏夹中,以便下次可以很方便的找到你想要找到的图书信息。(1)实现的主要代码如下:protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) modbookinfo = bllbookinfo.GetModel(Convert.ToInt32(GridView1.DataKeyse.RowIndex.Value); lbsum.Text = (Conv
29、ert.ToDecimal(lbsum.Text) + Convert.ToInt32(TextBox)(GridView1.Rowse.RowIndex.Cells3.FindControl(tbtest).Text) * modbookinfo.Price).ToString(); EBook.BLL.OrderInfo bll= new EBook.BLL.OrderInfo(); EBook.Model.OrderInfo model=new EBook.Model.OrderInfo(); string bookid= GridView1.DataKeyse.RowIndex.Val
30、ue.ToString(); string bookname=GridView1.Rowse.RowIndex.Cells0.Text.Trim(); int bookNum = int.Parse(TextBox)GridView1.Rowse.RowIndex.Cells3.FindControl(tbtest).Text); if (ViewStatedingdanhao = null) int orderid = Convert.ToInt32(DateTime.Now.ToString(MMddmmss); /订单编号 ViewStatedingdanhao = orderid.To
31、String(); model.BookId = Convert.ToInt32(bookid); model.BookName = bookname; model.OrderId = ViewStatedingdanhao.ToString(); model.OrderIP = Request.ServerVariablesREMOTE_ADDR; model.OrderPerson = SessionUserTrueName .ToString(); model.Price = Convert.ToDecimal(modbookinfo.Price); model.OrderTime =
32、DateTime.Now; model.BookNum = bookNum; bll.Add(model); EBook.BLL.OrderInfo blldingdan = new EBook.BLL.OrderInfo(); GridView2.DataSource = blldingdan.GetList(orderid= + ViewStatedingdanhao); GridView2.DataBind(); protected void DataList1_SelectedIndexChanged(object sender, EventArgs e) protected void
33、 btnchakan_Click(object sender, EventArgs e) if (Sessioncart = null) Response.Write(alert(请先把书籍添加进购物车!);); GridView1.Visible = true; string cart = SessionCart.ToString(); cart = cart.Substring(0, cart.Length - 1); DataSet ds = bllbookinfo.GetList( Id in ( + cart + ); GridView1.DataSource = ds; GridV
34、iew1.DataBind(); protected void btnqingkong_Click(object sender, EventArgs e) Session.Abandon(); SessionCart = ; protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e) Label lbid = (Label)e.Item.FindControl(lbid); LinkButton lbk = (LinkButton)e.Item.FindControl(LinkButton1);
35、lbk.Attributes.Add(href, addcart.aspx?id= + lbid.Text.Trim() + ); LinkButton link = (LinkButton)e.Item.FindControl(Linkbutton2); link.Attributes.Add(href, shoucang.aspx?id= + lbid.Text.Trim() + ); LinkButton lb = (LinkButton)e.Item.FindControl(LinkButton3); lb.Attributes.Add(href, bookinfo.aspx?id=
36、+ lbid.Text.Trim() + ); protected void GridView2_RowDeleting(object sender, GridViewDeleteEventArgs e) EBook.BLL.OrderInfo dele = new EBook.BLL.OrderInfo(); string dingdanid = GridView2.DataKeyse.RowIndex.Value.ToString(); /订单的ID dele.Delete(int.Parse(dingdanid); GridView2.DataSource = dele.GetList(
37、orderid= + ViewStatedingdanhao); GridView2.DataBind(); Response.Write(alert(订单取消成功);); protected void Button2_Click(object sender, EventArgs e) Session.Abandon(); Response.Write(window.location.href=Default.aspx;); protected void Button1_Click(object sender, EventArgs e) Response.Write(window.locati
38、on.href=collect.aspx;);、3.购物车订单计算功能该功能存在于客户登陆后的图书列表页面,当用户点击加入购物车后,然后点击查看购物车,在这部分表格中会显示购买数量,客户可以自己输入数量,然后点击确认购买,系统会将计算的结果显示在页面上,而且会将其转发到后台的订单处理页面,以便管理员一目了然确认发货。(1)实现主要代码如下:modbookinfo = bllbookinfo.GetModel(Convert.ToInt32(GridView1.DataKeyse.RowIndex.Value); lbsum.Text = (Convert.ToDecimal(lbsum.Tex
39、t) + Convert.ToInt32(TextBox)(GridView1.Rowse.RowIndex.Cells3.FindControl(tbtest).Text) * modbookinfo.Price).ToString();4.购物车取消购买功能: 本功能是用户在点击购买后计算价格的时候,突然不想买了,则用户可以点击取消购买按钮,每个书本的后面都对应有取消购买按钮,点击了次按钮后,系统会自动将价格减去。(1)关键代码如下:EBook.BLL.OrderInfo dele = new EBook.BLL.OrderInfo(); string dingdanid = GridVi
40、ew2.DataKeyse.RowIndex.Value.ToString(); /订单的ID dele.Delete(int.Parse(dingdanid); GridView2.DataSource = dele.GetList(orderid= + ViewStatedingdanhao); GridView2.DataBind(); Response.Write(alert(订单取消成功););5.管理员后台管理页面: 本页面是管理员登陆后台操作界面之后进行各种管理活动的页面,包括:用户管理(添加用户、查看用户),图书管理(新书上架、图书查看、图书统计),订单管理(订单查看、订单统计),评论管理(主要包括查看图书评论),最后一项是退出系统。在树状列表上面,可以获取用户名所对应的真实姓名,主要代码为:lbtruename.Text = SessionUserTrueName.ToString()(1