1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。 (此文档为word格式, 下载后您可任意编辑修改! ) 毕业设计( 论文) 题 目: 网上书店系统的设计与实现 系 别: 软件技术 专 业: ACCP 学 号: 姓 名: 指导老师:
2、 完成日期: 年 3 月 5 日 目 录 目 录 2 前 言 2 需求分析 4 一、 用户需求分析 4 1.图书查询需求 4 2.购物车管理需求 4 3.订单处理需求 4 4.管理员与客户的分类功能 4 系统开发技术 6 一、 MVC模式简介 6 1.电子商务概况摘要 7 系统总体设计 9 1.UML活动关系图 9 2.系统组成 10 3.功能设计 10 ( 1) 图书信息管理 10 ( 2) 购物车管理 10 ( 3) 会员注册 10 ( 4
3、) 订单处理 11 数据库设计与实现 12 一、 数据库的需求分析 12 1.数据库的逻辑设计 12 2.数据表基本结构 14 3.创立数据表脚本 15 系统实现过程 17 开发平台 17 一、 系统各组件实现 17 用户表示层 17 系统测试与运行 26 一、 系统测试 26 二、 测试结果 26 结 论 29 参考文献 30 谢 辞 31 毕业设计( 论文) 成绩评定表( 理科) 32 前 言 随着Internet信息技术的高速发展和个人、 企业上网的迅速普及, 企业的WWW网站在商业活动中发挥着越来越大的作用, 在信息时代, 建立一个功能
4、强大、 界面美观的电子商务网站, 建立电子商务系统平台, 对企业的发展是至关重要的。 所谓电子商务, 是指各种具有商业活动能力的实体( 生产企业、 商贸企业、 金融机构、 政府机构、 个人消费者等) 利用网络和先进的数字化传媒技术进行的各项商业贸易活动。其中特别要强调的特点, 一是其商业背景, 二是网络化和数字化。简言之, 电子商务就是经过电子网络渠道达成的商务活动。 电子商务是计算机网络的第二次革命, 它经过电子手段建立新的经济秩序, 不但涉及电子技术和商业交易本身, 而且涉及诸如金融、 税务、 教育等社会其它层面。对于电子商务的研究始于20世纪70年代末, 而其实施要更晚些, 实施又分
5、为两步, 其中电子数据交换( Electronic Data Interchange,EDI) 始于20世纪80年代中期, Internet上的电子商务始于20世纪90年代初期。电子商务活动相应分成两大类: 企业组织-企业组织(Business-Business,B2B)型和企业组织-消费者(Business-Consumer,B2C)型。根据统计, 当前电子商务活动中80%的收属于B2B型商务活动, 这由于企业组织的信息化程度和技术水平比个体消费者明显要高, 主要面向的是企业与企业, 为企业提供进行采购、 销售和结算等业务的平台。B2C则是我们最熟悉的, 它直接面向终端的大众消费者。它一般也
6、有两种形式, 一种是类似一个大的超市, 里面摆放着大量的商品, 提供给消费者直接去选择购买; 而另一种形式则类似一个大商城, 商城中有许多柜台, 用户能够直接到柜台选择和购买自己中意的东西, 然后去结算, 这种商城只提供柜台和相关的服务, 并收取相应的柜台使用费。 一般意义上, 一个完整的电子商务系统包括信息流、 资金流与物流三个要素, 三者相辅相成。信息流就是经过电子网络向客户揭示所售商品的相关信息, 引导客户经过网络进行购物。资金流就是使客户在选择商品后, 能够经过网络支付相关费用, 一般包括预付款支付、 网上银行支付、 货到付款等多种形式。当前有些电子商务网站也能够接受邮局汇款。物流就
7、是把客户所购买的商品经过物流配送系统送到客户手中, 对于一些特殊行业和领域和电子商务, 如证券、 金融信息类商品, 也可能不需要配送系统的支持就能够把商品送到客户手中( 如股票、 电子杂志、 域名注册等) 。在电子商务中, 除了上述三个要素外, 网络安全也是需要重点考虑的因素。据调查, 有13的网民认为网络安全是影响其网上购物的因素, 因此为了保证网络交易的安全, 电子商务网站需要采用数据加密、 电子签名等多种措施进行安全认证。 需求分析 网上书店系统主要是实现网上选书、 购书、 产生订单等
8、功能的系统。一个典型的网上商城一般都需要实现商品信息的动态展示、 购物车管理、 客户信息注册登录管理、 订单处理等模块。 一、 用户需求分析 本网上书店系统主要完成以下具体任务: 1.图书查询需求 当客户进入网上书店时, 应该在主页面中分类显示最新的书目信息, 以供客户选择所需图书, 同时也应该提供按照图书名称, 或者作者住处快速查询所需书目信息的功能。 2.购物车管理需求 当客户选择购买某图书产品时, 应该能够将对应图书信息, 例如: 价格、 数量记录到购物车中, 并允许客户返回书目查询页面, 选择其它商品, 并添加到购物车中, 当对购物订单生成后, 应该能够自动清除以生成订
9、单的购物车中的信息。 3.订单处理需求 对应客户购买图书商品信息的需求, 在确定了所购图书商品的价格、 数量等信息后, 提示用户选择对应的送货方式及付款方式, 最终生成对应的订单记录, 以便于网站配货人员依据订单信息进行后续的出货、 送货和处理。 4.管理员与客户的分类功能 为了能够实现管理员和用户各自的所享有的功能, 特将她们分类处理。 网上书店系统的用例图 上网用户 图书查询 购物车管理 订单管理 图2-1网上书店USE Case 系统开发技术 一、 MVC模式简介
10、MVC是Model( 模型) ——View( 视图) ——Controller( 控制器) 的缩写, 它适用于大型可扩展的Web应用的开发, 它强制性地将应用程序的输入、 处理和输出分开, 将其划分为模型、 视图和控制器三个核心部分, 使它们各司其职, 各自完成不同的任务, 其中任何一部分的修改都不会影响其它两部分。 在MVC模式中, 模型封装了应用问题的核心数据、 逻辑关系和业务规则, 提供了业务逻辑的处理过程。模型一方面被控制器调用, 完成问题处理的操作过程, 另一方面为视图获取显示数据提供了访问数据的操作。因为模型是与数据格式无关的, 因此一个模型能够为多个视图提供数据, 这样一个模型
11、一次编写能够被多个视图重用, 从而避免了代码的重复编写。 视图是MVC模式下用户看到的并与之交互的界面。视图从模型处获得数据, 视图的更新由控制器控制。视图不包含任何业务逻辑的处理, 它只是作为一种输出数据的方式。 MVC模式中, 控制器主要起导航的作用, 它根据用户的输入调用相应的模型和视图去完成用户的请求。控制器本身不输出任何东西, 它接受用户请求并决定调用哪个模型构件去处理, 以及由哪个视图来显示模型处理之后返回的数据。 MVC的处理过程是这样的: 对于每一个用户输入的请求, 首先被控制器接收, 并决定由哪个模型来进行处理, 然后模型经过业务处理逻辑处理用户的请求并返回数据, 最后
12、控制器用相应的视图格式化模型返回的数据, 并经过显示页面呈现给用户。图1-1所示为模型、 视图、 控制器这三个模块各自的功能以及它们之间的相互关系: 图1-1 MVC模式[3] 1.电子商务概况摘要 电子商务模式是当前互联网人士思考较多的一个话题, 在有了B-C, B-B等模式之后, 一些网站最近又在尝试一种全新的概念——B-B-C模式, 而且看来这一模式已经被许多的网上书店所接受。在解释B-B-C模式时, 书生科技公司总裁王东临先生认为: ”该模式的意思是中间的 B直接面对客户, 把订单交给第一个B来执行。这种模式看起来仿佛只是传统的渠道销售的翻版, 在互联网时代根本不可行,
13、因为互联网经济的一大特征就是压扁渠道, Amazon等大行其道的原因也正是基于这种”中间商死亡”的论调, 她们抢占的正是原来中间商的利润。因此, B-B-C模式长期以来被认为是一种不可能成立的模式。其实, 如果中间的B能够提供一种独特的服务, 把消费者都吸引到它那里去, 并经过它下订单, 则该模式就是可行的。 EBook网络业务支持平台采用BS结构, 三层运行模式, 同时适用于IntranetInternet。浏览器为第一层, 作为系统的应用界面; 应用逻辑服务为第二层; 数据链接为第三层, 作为系统的数据存取服务。此架构无须安装客户端软件, 便于软件的分发和维护升级, 适应了众多应用客户端
14、分散环境下的运行和维护需求。本篇论文介绍了本系统开发环境和运行平台、 ASP.NET、 应用框架。而后台的数据库则使用Microsoft SQL Server 管理平台的数据。 EBook网络业务支持平台实现网上书店大型系统, 添加独特的物流子系统、 在线客服子系统、 Wap子系统让客户能够有效的掌握, 有效的处理各类所需相关信息, 以及促进各个子系统管理的信息化、 规范化和集成化, 实现计算机的智能化管理, 以提高工作效率和经济效益。 系统总体设计 1.UML活动关系图 下面是进入网上书
15、店能够进行的操作。具体的UML活动如下图所示: 图书查询 购物车管理 会员登录 新会员注册 订单管理 图3-1UML活动关系图 2.系统组成 表3-1构成网上书店系统的各个组件 用户表示层 ( 视图) 控制处理层 ( 控制器) 业务逻辑 ( 模型) addAdmin.aspx addBook.aspx addCart.aspx bookInfo.aspx cart.aspx cartlist.aspx collect.aspx default.aspx function.aspx functionlist.aspx index...a
16、spx pinglun1.aspx searchbook.aspx searchuser.aspx shoucang.aspx totalmoney.aspx tourst.aspx welcome.aspx dal bll Account.cs AssemblyInfo.cs BookComment.cs BookInfo.cs BookType.cs OrderInfo.cs Account.cs AssemblyInfo.cs BookComment.cs BookInfo.cs BookType.cs OrderInfo.cs Account
17、cs AssemblyInfo.cs BookComment.cs BookInfo.cs BookType.cs OrderInfo.cs 3.功能设计 ( 1) 图书信息管理 该模块实现图书书目信息的分类显示, 也提供了新增, 删除, 修改和查询等功能。另外, 在用户选择了对应书目信息后, 还能够显示出有关该图书的详细信息, 以便于客户了解所购商品。 ( 2) 购物车管理 用于维护每一个进入网上书店的客户对应的购物车。即将客户所选购的图书商品信息记录到对应的购物车中, 以便于到收银台进行结账处理。 ( 3) 会员注册 实现网上书店客户信息的注册、 及身份验证。由于
18、当前网上商城普遍采用的方式为送货上门或者邮寄, 因此需要收集与客户相关的联系方式、 通信地址等信息。 ( 4) 订单处理 根据客户购物车中的信息, 以及客户所选择的送货方式和付款方式, 连同客户对应的个人信息生成订单, 以便于后续进行送货处理。 数据库设计与实现 一、 数据库的需求分析 依据网上书店的处理需求, 对应数据表的设计及功能如下: 一、 图书基本信息表: 存放网上书店所销售图书的基本信息。 二、 图书分类基本信息表: 存放网上书店所提供图书分类的信息。 三、
19、 客户基本信息表: 存放书店客户的基本信息。 四、 订单信息表: 存放与客户相关的订单的基本信息。 五、 订单条目详细信息表: 存放订单中详细条目的基本信息。 1.数据库的逻辑设计 根据以上需求分析, 在确定了各个表主键字段的基础上, 依据表与表之间相关字段之间的联系建立了各表之间的关系, 对应的关系图如图4-1所示: Account AccountId AccountPwd Balance TrueName sex Auth(权限) email telephone logintimes bookcomment commenttitle
20、 commentcontent bookid Bookinfo bookname booktype price pubs picturepath descriptions booknum bookauthor addtime addperson booktype typeid typename OrderInfo orderid booknum bookname bookid isconfirm orderperson ordertime price orderip pay 图4-1数据库逻辑图 2.数据
21、表基本结构 ( 1) 图书信息表 图书信息表( bookinfo) 是用来保存网上书店每一种图书基本信息的数据表, 是维护管理图书数据的依据。 表4-1书图书信息表 字段名 描 述 类 型 长 度 是否允许为空 是否主键 Id 书本id Int 4 否 是 booktype 图书种类 varchar 50 否 否 pubs 出版社 varchar 50 否 否 bookname 图书名称 varchar 100 否 否 price 图书价格 double 15 否 否 description 图书介绍 v
22、archar 255 是 否 bookauthor 图书作者 varchar 50 是 否 ( 2) 图书评论基本信息表 图书分类基本信息表( bookcomment) 记录了与网上书店图书分类相关信息。 表4-2图书分类基本信息表 字段名 描 述 类 型 长 度 是否允许为空 是否为主键 bookId 书本id int 4 否 是 CommentTitle 评论标题 varchar 40 否 否 commentContent 评论内容 varchar 40 否 否 ( 3) 客户基本信息表 客户基本信息表(ac
23、count)存放了网上书店对应的客户信息, 包括客户的姓名、 联系方式等信息。 表4-3客户基本信息表 字段名 描述 类型 长度 是否允许为空 是否主键 accountId 用户名 varchar 20 否 是 accountpwd 密码 varchar 20 否 否 balance 余额 varchar 20 否 否 truename 真实姓名 varchar 20 否 否 sex 客户性别 varchar 50 否 否 author 权限( 区分管理员和客户) boolean 2 否 否 va
24、rchar 50 否 否 Telephone 客户联系方式 Varchar 50 否 否 ( 4) 订单信息表 表4-4订单信息表 字段名 描述 类型 长度 是否允许为空 是否主键 orderid 订单编号 integer 11 否 是 ordername 订单用户名 varchar 20 否 否 bookNum 书本数量 Int 4 否 否 ordertime 产生订单时间 datetime 19 否 否 Isconfirm 确认是否发货 Boolean 2 否 否 Price 总价 Int
25、 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', `de
26、scription` varchar(255) NOT 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 (
27、`id`) ) ( 3) 客户基本信息表: CREATE TABLE `storeuser` ( `AccountId` varchar(20) NOT NULL default '', `AccountPwd` varchar(20) NOT NULL default '', `truename` varchar(20) NOT NULL default '', `telephone` varchar(20) NOT NULL default '', `sex` varchar(100) NOT NULL default '', `emailch
28、ar(50) default NULL, `balance` varchar(20) default NULL, `author` boolean(2) default 0, PRIMARY KEY (`AccountId `) ) ( 4) 订单信息表: CREATE TABLE `orders` ( `orderid` int(11) NOT NULL auto_increment, `ordername` varchar(20) NOT NULL default '', `ordertime` datetime NOT NULL default
29、 '0000-00-00 00:00:00', `isConfirm` boolean(2) NOT NULL default '', `price` varchar(20) NOT NULL default '', PRIMARY KEY (`orderid`) ) 系统实现过程 开发平台 服务器: IIS; 数据库: Sql Server ; 平台: Microsoft Visual Studio 操作系统: windows XP 一、 系统各组件实现 用户表示层 在用户表示层中主要是一些相
30、关的页面。该层对应的页面应该放在WEB应用目录根目录下。 1.网上书店首页: 本页面分为上下2个部分。 上面的部分是个万年历, 从万年历上能够查询各种各样的时间, 节日, 农历, 节气等信息, 此晚年里是从网上找到的一段脚本script脚本代码, 美观大方, 非常使用。 下面的部分是登陆和注册页面, 主要实现登陆和注册功能。 登陆有2种情况, 一个是管理员登陆, 另一个是客户登陆, 管理员登陆后的页面是一些后台的操作, 而客户登陆后的页面是图书列表及收藏夹和购物车还有1些评论。 注册有各种信息的输入, 在用户名一栏中, 比如数据库中已经存在了一个用户名, 如果一位客户申请的时候写
31、了一个一模一样的用户名, 则在点击旁边的”检查用户名是否存在”的按钮后会出现”此用户名已经存在”, 提示重新输入一个其它的用户名。 ( 1) 注册的主要的代码如下 protected void btnAdd_Click(object sender, EventArgs e) { Accountmod.AccountId = tbusername.Text.Trim(); Accountmod.AccountPwd = tbpwd.Text.Trim(); Accountmod.Auth = "0"; Acco
32、untmod.EmailEmail.Trim(); Accountmod.Logintimes = 0; Accountmod.LogIp = Request.ServerVariables["Remote_Addr"].ToString(); Accountmod.Telephone = tbphone.Text.Trim(); Accountmod.TrueName = tbTruename.Text.Trim(); Accountmod.Sex = RadioButtonList1.Selected
33、Value; Accountmod.Balance = 0; lbshow.Text = "用户注册成功! "; Accountbll.Add(Accountmod); Panel1.Visible = false; } protected void btnCheck_Click(object sender, EventArgs e) { DataSet ds = Accountbll.GetList("AccountId='" + tbusername.Text.Trim(
34、) + "'"); if (ds.Tables[0].Rows.Count == 0) { lbshow.Text = "该账户能够使用"; btnAdd.Enabled = true; } else { lbshow.Text = "该账户已被占用! "; btnAdd.Enabled = false; } } 2.图书详细信息显示: 本页面是客户登陆成功后的
35、页面, 上面会显示出各种图书的列表, 本页面还包括加入购物车, 加入收藏夹, 查看购物车, 查看收藏夹, 图书详细信息以及图书评论等内容。 当用户对某本书感兴趣的时候, 能够在对应的图书图片下点击图书详细信息按钮, 在弹出的页面上就会显示此图书的具体内容。具体代码如下: LinkButton lb = (LinkButton)e.Item.FindControl("LinkButton3"); lb.Attributes.Add(" = Session["UserTrueName"] .ToString(); model.Price = C
36、onvert.ToDecimal(modbookinfo.Price); model.OrderTime = DateTime.Now; model.BookNum = bookNum; bll.Add(model); EBook.BLL.OrderInfo blldingdan = new EBook.BLL.OrderInfo(); GridView2.DataSource = blldingdan.GetList("orderid=" + ViewState["dingdanhao"]);
37、 GridView2.DataBind(); } protected void DataList1_SelectedIndexChanged(object sender, EventArgs e) { } protected void btnchakan_Click(object sender, EventArgs e) { if (Session["cart"] == null) { Response.Write("