1、 . 新月网上书店SinYue Book Store Online目 录摘要IABSTRACTII第1章绪论11.1 开发背景与意义11.2 本系统使用的开发软件简介11.3 系统简介1第2章需求分析22.1 系统需求分析22.2 数据库需求分析32.3 可行性分析3第3章概要设计43.1 系统结构图43.2 系统流程图4第4章数据库设计64.1 数据库逻辑设计64.2 存储过程7第5章详细设计与实现95.1 MYBU类库95.2 MYDAL类库105.3 界面层105.3.1 用户管理模块115.3.2 购物车管理模块115.3.3 结帐管理模块125.3.4 图书检索模块135.3.5 母
2、版页135.3.6 DHTML14结论15参考文献1619 / 23摘 要随着信息时代的发展,市场日益呈现出需求个性化和需求快速变化两大基本特征。虚拟经营模式以其柔性管理,快速反应的特点,日益成为当代企业管理模式的新选择。网上虚拟经营把销售网络建立在网络上,最大化的降低成本,以提高企业的竞争力。 在当代的软件行业中多层架构思想几乎成为该行业的标准,“不出现一个sql语句”的目标就要实现。前台应用程序与后台数据库平衡利用大大节省了计算机资源本文按照软件的生命周期为序详细叙述了新月书店的分析、设计与实现以与相关技术。关键词 新月书店、多层架构、数据库、DHTMLABSTRACTAlong with
3、 the information time development, the market presents thedemand individuality and the demand fast changes two bigbasic characteristicsday by day. The virtual management pattern by its flexible management, therapid reaction characteristic, becomes the new choice at present age businessmanagement pat
4、tern day by day. The on-line sale in the network, themaximization reduces the cost, enhances the enterprise the competitiveability.The multilayered overhead construction thought nearly becomes thisprofession in the contemporary software profession the standard, doesnot appear a sql sentence the goal
5、 must realize. The onstage application procedure and the backstage database balanceuse has greatly saved the computer resources.This paper order by soft ware life periodintroduce sinyue bookstore analyse、design、realize aswell as correlationtechnique。Keywords SinYue Book Store, Multilayer,DataBase, D
6、HTML第1章 绪论本章主要介绍了网上书店的开发背景和与其意义,并简单介绍了该系统的功能,同时也对本系统的开发工具与技术做了简单介绍。1.1 开发背景与意义在传统的购物方式四出寻找商品所化费的时间、付出的交通费用以与体力上的透支相对于越来越烦忙的人们来说是一种浪费,随着Internet的普与以与人们生活质量的提高,消费者渐渐意识到网上购物方便快捷的优越性,成为一支新兴的重要的不断壮大的消费队伍,因此,构建网上书店,是适应消费者消费方式转变的需要。赢得消费者才能赢得市场,有市场的企业才能生存发展。1.2 本系统使用的开发软件简介Microsoft .NET 是 Microsoft XML Web
7、 services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。1.3 系统简介新月网上书店分为登录模块、查询模块、购物车模块、订单模块几大部分。其中登录模块实现了密码找回的功能;系统可以通过用户提供的信息进行图书查询;用户可以通过购物车预览,查看自己的购物车里的商品并进行操作;用户结账后可以查看自己的订单信息第2章 需求分析需求分析是程序开发中不可或
8、缺的部分,它们为程序开发的顺利进行作了准备工作,同时也使开发团队有了明确的目标。本章主要讲了本系统个模块的需求和本系统的概要设计。2.1 系统需求分析作为一个基于B/S模式的系统,需要记录大量的数据信息,而这些数据信息需要同时能够提供给使用人员查询和修改,必然需要一个大型的数据库系统和一台网络服务器,虽然两台服务器性能相差无几,但人总是将大多数的任务交给网络服务器,数据库服务器中只有少量的必要数据,这样严重浪费了计算机资源,同时也造成网络服务器压力过大,访问数度减慢。当网上书店的用户完成注册后,系统会在数据库中加入用户的资料,包括用户名称、用户密码、用户真实、用户E-Mail等,用户可以对自己
9、的资料进行修改;用户可以通过自己号进行密码找回。当注册的用户登录系统后,系统会为此用户准备一个购物车;用户可以向购物车中添加需要购买的若干本书籍,也可以买多册同样的书籍;用户可以修改购物车里的购物情况,每次完成购买后,可以查看在购物车中的详细信息,确认无误后就可以提交订单,然后结账。用户在首页的左边选择搜索的方式,然后输入搜索容,便可显示出符合搜索条件的图书,此时用户可以直接购买搜索出的图书;用户通过浏览图书分类目录找到所需要的图书之后,可以单击图书的书名来查看图书的详细信息。用户在最好确定购物车里图书后完成结算,结算时系统自动生成订单,每个订单上都包括此次购买图书的信息:图书名称,图书数量,
10、图书价格,总价格,还有当时时间。2.2 数据库需求分析随着软件业的发展,计算机利用力的提高,人们越来越认识到,应用程序和数据库系统平衡的重要性。“在应用程序中不出现一个SQL语句”成为人们开发软件的目标。这就需要程序员把更多的算法或者是方法实现放到数据库中实现,因此,数据库中的存储过程、游标、触发器、用户自定义函数成为软件开发中不可缺少的一部分。2.3 可行性分析系统具有完善的用户信息维护和用户操作功能,满足了用户购书的需求;强大的数据查询与存储过程功能,帮助书店人员根据分析结构进行新的规划,以适应变化的市场。该系统才有SQL Server2000数据库,以保证数据的安全、高效和稳定。前台采用
11、Microsoft Visual Studio 2005作为主要的开发工具,可以与SQL Server2000数据库无缝连接。第3章 概要设计概要设计主要分析了本的结构,以与系统流程,为程序的开发奠定了基础。3.1 系统结构图本主要分为四大模块:用户管理模块,图书检索模块,订单管理模块,如图3-1所示:网上图书销售系统图书检索模块用户管理模块购物车模块订单管理模块 3-1系统结构图3.2 系统流程图用户在可以在非登录情况下进行图书检索,但只有在登录之后才可以进行图书的购买。如果用户遗失密码,可以通过有效的方式进行找回密码。用户在购买时可以通过购物车来进一步处理自己想买的图书,购买之后,系统可以
12、自动生成一个订单,如图3-2所示:3-2系统流程图图书查询购物车管理订单查询用户登录注销密码找回修改信息第4章 数据库设计数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库与其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。4.1 数据库逻辑设计数据库中各个表的关系如图4-1所示:图4-1 数据库关系图 数据库中包含有多个表,下面只列出两个表:表4-1为数据库中订单详细表,词表中主要包括DetailID,OrderID等字段。表4-1 订单详细信息表代码名称默认值类型PFMDetailID明细ID,自增Int
13、OrderID订单编号IntBookID图书编号IntBookQuanlity购买数量IntUnitCost图书销售价格Money表4-2显示为购物车表,其中的主要字段有CartID,UserID,还有BookID。表4-2 购物车表代码名称默认值类型PFMCartID购物产ID,自增IntUserID用户编号IntBookID图书编号IntBookQuanlity购买数量MoneyShoppingDate购买日期GetDate()DateTime4.2 存储过程存储过程在服务器端执行,执行速度快;存储过程执行一次后,其执行规划就驻留在高速缓冲存储器中,只需从高速缓冲存储器调用已编译好的二进制
14、代码执行,提高系统的性能;确保数据库的安全。使用存储过程可以完成所有的数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限;自动完成需要预先执行的认为需要执行的任务。CREATE Procedure UpdateShoppingCart (UserIDint,BookID int,BookQuantity int)ASUPDATE ShoppingCartsSETBookQuantity = BookQuantityWHEREUserID = UserIDANDBookID = BookIDGO此存储过程主要任务是更新购物车的信息,其过UserID,BookID,BookQuanli
15、ty参数修改购物车。第5章 详细设计与实现为了进行有效率的程序开发,现在各个软件公司开始理由多层架构的思想,这样有利于代码的封装和移植,可以使不能模块同时进行开发节省了时间。多层一般为三层:界面层、业务逻辑层、数据访问层(更多的时候此层又划分为实体层和弱数据类型层,通过这两层的配合共同完成数据层的操作)。另外本章重点还有JavaScript,Css等(主要在界面层)。5.1 MYBU类库该类库是本程序的数据库层,主要提供用来进行数据库的访问前的准备工作。1.AddItemtoShoppingCart类主要方法:public void AddISC(int UserID,int BookID,i
16、nt BookQuantity)该方法调用了数据库中proc AddItemtoShoppingCart,其中UserID,BookID,BookQuantity为输入参数,ItemId(购物车ID)为输出参数,该方法实现了购物车的增加。2.AddOrder类主要方法:public void AddORDER(int UserID,string OrderDate)该方法调用数据库中proc AddOrder,其中UserID,OrderDate为输入参数,OrderID(订单号)是输出参数,AddORDER方法实现了订单增加。3.AddUser类方法:public bool AddUS(st
17、ring str)该方法通过接收注册页面的一系列信息(汇总到str数组),进行用户数据库用户注册。4.ReadOrderList类方法:public DataSet ReadOL(int UserID)通过用户ID查询该用户的订单信息。其中UserID为输入参数,该方法返回一个DataSet,该DataSet用于页面中数据绑定。5.ReadShoppingCart类方法:public void ReadSC(int UserID)该类类似于ReadOrderList类,但类中的方法并没有直接返回一个DataSet,而是在方法中填充了DataSet,如果需要绑定这个DataSet,需要调用该类中
18、的public DataSet DS属性。5.2 MYDAL类库该类库中只有一个类mycommconn,但MYBU类库中的每一个类都需要用到该类中的方法。1.public mycommconn()此构造函数实现了无参数的数据库连接(连接字符串):ConfigurationManager.ConnectionStringsDBConnectionString.ConnectionString2. public mycommconn(string connectstring)带构造函数为重载构造函数;如果需要更改数据库连接,需要提供新的连接字符串。3.public int ExecuteNoQue
19、ry(string SqlOrStore, CommandType commtype, SqlParameter paras)该方法是数据库方法和操作的通用方法,参数SqlOrStore是要调用此方法的方法指名数据库访问是通过sql语句还是proc;commtype指数据库要进行的是什么操作(增、删、改、查),paras是其他方法提供给的参数列表。4.public void Close()虽然.NET提供了垃圾回收机制,但个人主动关闭数据库连接,数据库类的释放能与时地提高系统运行效率,更中要的是养成良好的编程习惯。5.3 界面层由于系统比较简单,多层架构只划分为2层。下面就反馈管理各模块功能技
20、术作详细描述。5.3.1 用户管理模块此模块提供了用户登录、用户注册、修改信息、密码找回等功能。其中有客户端验证,和服务器端验证,这样确保了数据的安全性。客户端验证:客户端验证避免了向服务器提交的步骤,减少了资源的浪费;本机系统客户端验证才用了MS提供的自带验证控件.服务器端验证:客户端验证并不能完全满足验证需要,所以服务段验证必不可少;ul1.CheckUser(this.username.Text,this.password.Text)该方法实现了服务端的验证FormsAuthentication.RedirectFromLoginPage(this.username.Text,false
21、)表示用户:this.username.Text通过验证,该用户拥有购买图书的权利。5.3.2 购物车管理模块用户将所需图书放入购物车(如图5-2所示):5-2购物车界面usc1.UpdateSC(Int32.Parse(Session当前用户ID.ToString(), Int32.Parse(lab2.Text), Int32.Parse(tex1.Text);更新购物车(包括删除,数量修改):for (int i = 0; i MyList.Rows.Count; i+)GridViewRow row1 = MyList.Rowsi;object obj1 = row1.FindCont
22、rol(Remove);if (obj1 != null & obj1 is CheckBox)CheckBox chb1 = (CheckBox)obj1;Labellab1 = (Label)row1.FindControl(BookID);TextBox tex1 =(TextBox)row1.FindControl(BookQuantity);if (chb1.Checked | tex1.Text=0)if (delbid = )delbid = lab1.Text;elsedelbid = delbid + , + lab1.Text;5.3.3 结帐管理模块当用户每次结算时,系统
23、会自动产生一个订单(订单号,时间,购买书的信息如图5-3所示)。this.ReadShoppingCartInfo();/从购物车里读取信息ao1.AddORDER(Int32.Parse(Session当前用户ID.ToString(),DateTime.Now.ToString();/生成新的订单5-3 订单界面 5.3.4 图书检索模块在该模块中实现了确切查询和模糊查询。用户可以根据自己的需要进行有效的查询。1.根据类别查询在此功能中,首先将绑定属性值传给BookList.aspx页面,该页面直接通过传过来的值进行确切查询:sbl1.SBookLT(Int32.Parse(Request
24、.QueryStringCategoryID);该方法就是通过书类别进行确切查找。2.根据书名或作者查询sb1.SearchBK(sql,Request.QueryStringSearch);该方法不提供模糊查询,模糊查询在存储过程SearchBookByBookName和SearchBookByAuthorName进行。5.3.5 母版页使用ASP.NET母版页可以为应用程序中的页创建一致的布局。单个母版页可以为应用程序中的所有页(或一组页)定义所需的外观和标准行为。然后可以创建包含要显示的容的各个容页。当用户请求容页时,这些容页与母版页合并以将母版页的布局与容页的容组合在一起输出。引用母板
25、页:Page属性:MasterPageFile=/WebModel.master引用之后,还需要用到5.3.6 DHTMLDHTML(Dynamic HTML)属于一种HTML标记动态效果的新技术。DHTML主要由HTML、CSS和Script语言三种技术组成。其中Script语言就是指VBScript 或JavaScript。1.CSS:即Cascading Style Sheet(级联样式单)的缩写,我们又常称这为风格样式单Style Sheet,是用来进行网页风格设计的。比如,我想让我的字未点击时是蓝色的,当鼠标移上去后字变成红色的且有下划线,这就是一种风格。通过设立样式表,我们可以统一
26、地控制HMTL中各标志的显示属性。.BackStyleborder-right:solid 1pt #cccccc;border-top:solid 0pt #cccccc;border-left:solid 1pt #cccccc;border-bottom:solid 1pt #cccccc;background-color:White;text-align:left; 样式类的引用很简单,只需在标志后面设置Class属性值为样式类名即可,引用格式如下: 2.JavaScript:经过7秒后自动跳转到login.aspx页面:setTimeout(transfer(),7000);func
27、tion transfer()window.navigate(login.aspx);结 论当设计一个程序时,代码的安全性和封装性直接关系到程序的质量。应该充分利用面向对象的3大特性:继承,封装,多态。这个时候抽象类,接口,类重写显得尤为重要。前端代码与后台数据库设计的平衡,解决了前台代码开发的压力,同时也节约了前台WEB服务器的压力,使后台数据库服务器的资源得以有效利用。Javascript减少了WEB页面刷新的频率,同时减少了服务器与客户机的压力,加快了的访问速度;同时利用Javascript可以进行有效的客户端验证,增加了的安全性。参考文献1 瑞新. C#网络编程与应用. :机械工业,2004年6月 2 . 突破C#编程实例五十讲. :中国水利水电,2002年9月3 瑞新.C#网络编程与应用开发实例与习题解答. :机械工业,2004年6月4 飞思科技(著).C#编程指南.电子工业,2002年11月l
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100