• 670.50 KB
  • 2022-04-22 13:49:56 发布

网上书店系统毕业论文.doc

  • 35页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'网上书店系统毕业论文目录1绪论11.1课题背景11.2开发目标12系统分析22.1需求分析22.2可行性分析22.2.1需求可行性22.2.2技术可行性23总体设计43.1设计方案43.2数据库设计43.2.1数据库概念设计43.2.2数据库E-R图53.2.3数据库逻辑结构设计53.3模块划分74实现数据库访问层104.1一般数据库操作的封装104.2存储过程操作的封装125详细设计与实现135.1用户管理模块135.1.1用户注册135.1.2用户登录145.1.3找回丢失密码155.1.4修改个人信息165.2图书管理模块175.2.1管理图书类别185.2.2添加、删除、修改图书信息185.2.3列表显示图书195.2.4搜索图书205.3购物车管理模块225.3.1查看购物列表225.3.2结账235.4订单管理模块245.4.1客户订单管理245.4.2管理员订单管理255.5后台管理模块2733 5.5.1查询用户信息285.5.2查询销售情况296系统测试306.1单元测设306.2集成测试30结论31致谢29参考文献3333 基于ASP.NET的网上书店系统的设计与实现1绪论1.1课题背景随着网络技术的迅猛发展,越来越多的人热衷于上网,网上购物俨然已成为一种时尚和潮流。人们只要打开电脑,轻点鼠标,登录到购物网站,即可突破地域的限制,恣意遨游于信息的海洋。书籍作为一种文化的载体、智慧的结晶,也加入到了网络购物的热潮之中,越来越多的网上书店诞生了,并且生机勃勃。1.2开发目标在VisualStudio2010开发工具和SQLServer2008数据库软件基础上,采用ASP.NET语言,开发一套网上书店系统,实现管理员可以通过Web浏览器进入后台,实现网上图书添加、删除、图书分类管理及定单管理、用户管理等功能,以及用户登录、注册,在站内进行搜索等功能。33 2系统分析2.1需求分析网上书店系统包括如下基本功能。l用户注册和登录:为用户提供注册、登录、找回丢失密码、修改个人信息等功能。l图书信息查询及管理:对信息进行灵活的分类、存储,方便用户迅速从少则几万,多则几十万甚至上百万种图书中找出自己所需图书。l购物车管理:用语存储用户选择好的图书,完成购物后可以自动生成订单以供管理者进行管理。l订单管理:为用户提供订单查询功能,同时为管理者提供订单查询功能及处理功能。l后台管理:为管理者提供用户信息查询和销售情况查询等功能。2.2可行性分析2.2.1需求可行性网上书店为人们提供了诸多方便。l更加广阔的环境:人们不受时间、空间的限制,不受传统购物的诸多限制,可随时随在网上交易。l更加广阔的市场:在网上这个世界将会变得很小,一个商家可以面对全球的消费者,而一个消费者可以在全球的任何一家商家购物。l更加快速的流通和低廉的价格:电子商务减少了商品流通的中间环节,节省大量开支,从而大大降低了商品流通和交易成本。l更加符合时代要求:如今人们越来越追求时尚、讲究个性,注重购物的环境,网上购物,更能体现个性化的购物过程。综合应用所学知识,构建网上书店系统,并重点实现网上书店系统所涉及的功能,从而使本人把所学的理论知识能够很好的运用到实践当中。2.2.2技术可行性近年来随着Internet技术的飞速发展及用户需求的不断升级,Web页面技术也不断的推陈出新,使得Web站点的功能越来越强大,能够提供的服务种类越来越繁多。从HTML、ClientScript到CGI,从JAVA的诞生到ActiveX,Web页面设计人员不断受到冲击,微软公司在总结了以往技术,重新思考Web页面设计的真正需要后,推出了ActiveServerPages(ASP),一种用以取代CGI(CommonGatewayInterface,通用网关接口)的技术。简单讲,ASP是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式Web服务器应用程序,如交互式的动态网页,包括使用HTML33 表单收集和处理信息,上传与下载等等。更重要的是,ASP使用的ActiveX技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的Web编写工具所远远不及的地方。使用ASP还有个好处,就在于ASP可利用ADO(ActiveDataObject,微软的一种新的数据访问模型)方便快捷地访问数据库,从而使得开发基于WWW的应用系统成为可能,这也是本系统选择ASP作为开发工具最重要的原因之一。33 3总体设计3.1设计方案为实现需求分析中所提到的网上书店的功能,本系统分为4层,分别为表示层(由ASP.NETWeb窗体组成,主要用于显示信息和与用户交互)、商务逻辑层(用于抽象表示层功能,为表示层提供服务)、数据访问层(为商务逻辑层提供访问数据库系统的接口)和系统数据库。表示层页面包括3类:用户处理相关图书信息的Book*.aspx、用于处理用户信息的User*.aspx页面、用于实现管理的Manage*.asp页面。商务逻辑层包含Book.cs、User.cs、ShopCart.cs、Order.cs、Admin.cs文件,分别封装了为实现对图书、用户、购物车、订单、管理进行操作而需要的方法。该层可以直接访问数据访问层,并为表示层提供了访问接口,起到了表示层和数据访问层的桥梁的作用。数访问层包含了SqlAcess.cs文件,封装了对SQLServer2008数据库中数据的读取和对储存过程的操作。图3.1系统分层图3.2数据库设计3.2.1数据库概念设计该系统的数据库中涉及到的实体有:图书、用户、购物车、订单。图书的属性有:图书类别、图书名称、图书作者、图书译者、图书出版社、图书价格、图书封面、图书介绍。用户的属性有:用户角色、用户名称、用户真名、用户密码、用户邮箱、用户提示问题、提示问题答案。购物车的属性有:图书编号、图书名称、图书价格、购书数量。订单的属性有:订单日期、订单总额、所购图书名称、所购图书单价、所购图书数量。33 3.2.2数据库E-R图图3.2数据库E-R图3.2.3数据库逻辑结构设计本系统是典型的电子商务系统,数据库包含6个表。① 图书类别表(e-BookCategory)网站的图书种类繁多,用图书类别表存储网站图书种类信息,可以简化图书管理。该表字段说明如下表3.1所示:表3.1图书类别表字段名类型长度允许空键值备注CategoryIdint4否是图书类别IDCategoryNamenvarchar50是否图书类别名称② 图书信息表(e-Booklnfo)图书信息表存储网站图书具体信息,该表引用BookCategory表的CategoryId字段作为外键,具体字段说明如下表3.2所示:表3.2图书信息表字段名类型长度允许空键值备注BookIdint4否是图书IDBookNamenvarchar50是否图书名称Coverbinary50是否图书封面CategoryIdint4是否图书类别IDAuthornvarchar50是否图书作者Translatornvarchar50是否图书译者Pressnvarchar50是否图书出版社Pricedecimal9是否图书价格Intorductionnvarchar200是否图书介绍33 ① 订单表(e-Order)订单表用以存储用户订单,引用Userlnfo表中的UserId字段作为外键,其具体字段内容如下表3.3所示。表3.3订单表字段名类型长度允许空键值备注OrderIdint4否是订单IDUserIdint4是否用户IDOrderDatedatetime8是否订单日期Statusnvarchar50是否订单状态② 订单信息表(e-Orderlnfo)订单信息表包含具体订单信息,引用BookInfo表的BookId作为外键,具体字段说明如下表3.4所示:表3.4订单信息表字段名类型长度允许空键值备注OrderIdint4否是订单IDBookIdint4否是图书IDQuantityint4是否图书数量UnitCostdecimal9是否图书价格③ 购物车表(e-ShopCart)购物车表主要存储网站用户购物车信息,该表引用Booklnfo表的BookId作为外键,其具体字段说明如下表3.5所示:表3.5购物车表字段名类型长度允许空键值备注Idint4否是IDCartIdnvarchar50是否购物车IDBookIdint4是否图书IDQuantityint4是否图书数量CreatedDatedatetime6是否创建日期33 ① 用户信息表(e-Userlnfo)用户信息表主要用于储存网站用户信息,字段说明如下表3.6所示。表3.6用户信息表字段名类型长度允许空键值备注UserIdint4否是用户IDUserNamenvarchar50是否用户名称UserPwdnvarchar50是否用户密码UserRolenvarchar50是否用户角色UserRealNamenvarchar50是否用户真实姓名Questionnvarchar50是否用户提问Answernvarchar50是否提问答案Emailnvarchar50是否邮箱地址3.3模块划分该系统的整体模块组织图所示。图3.3管理员功能设计图图3.4普通用户功能设计图33 该系统为普通用户和管理员提供了不同的操作界面,为普通用户设计的操作界设计面如下图3.5所示,为管理员设计的操作界设计面如图3.6所示。图3.5普通用户界面设计图图3.6管理员操作界面图33 普通用户界面划分为修改信息、修改密码、管理购物车、管理订单、搜索等模块,管理员界面划分为修改信息、修改密码、管理图书类别、增加图书、管理图书信息、管理订单、管理用户信息、查询销售信息和搜索等模块。33 4实现数据库访问层在动态网页设计中,很多都要涉及到对数据库的操作,这是一件枯燥、费时、而且容易出错的工作,如果使用类来实现对数据库操作的封装,就可以使写出的程序在很小的改动下完成后台数据库的操作。4.1一般数据库操作的封装SqlAcess.cs文件中封装了对一般数据库的操作,下面简单介绍下该文件中的主要数据库访问函数。lExecuteNonQuery函数该函数执行Sql命令,参数为连接字符串connString、命令类型cmdType、存储过程名称或T-SQL命令cmdText、SQL参数组cmdParms,返回值为受影响的行数val。publicstaticintExecuteNonQuery(stringconnString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]cmdParms){SqlCommandcmd=newSqlCommand();//定义SqlCommand对象using(SqlConnectionconn=newSqlConnection(connString))//定义SqlConnection对象{PrepareCommand(cmd,conn,null,cmdType,cmdText,cmdParms);//调用PrepareCommand方法intval=cmd.ExecuteNonQuery();//调用执行查询方法cmd.Parameters.Clear();//清空参数returnval;//返回val}}lExecuteReader函数该函数执行Sql命令,参数为连接字符串connString、命令类型cmdType、存储过程名称或T-SQL命令cmdText、SQL参数组cmdParms,返回值为SqlDataReader数据集。publicstaticSqlDataReaderExecuteReader(stringconnString,CommandTypecmdType,stringcmdText,paramsSqlParameter[]cmdParms){SqlCommandcmd=newSqlCommand();//定义SqlCommand对象SqlConnectionconn=newSqlConnection(connString);//定义SqlConnection对象try{PrepareCommand(cmd,conn,null,cmdType,cmdText,cmdParms);//调用PrepareCommand方法33 SqlDataReaderrdr=md.ExecuteReader(CommandBehavior.CloseConnection);cmd.Parameters.Clear();//清空参数returnrdr;//}catch//捕获异常{conn.Close();//关闭链接throw;//抛出异常}}lExecuteDataset函数该函数通过SqlConnection执行Sql命令,参数为SqlConnection对象connection、命令类型cmdType、存储过程名称或T-SQL命令cmdText、SQL参数组cmdParms,返回值为DataSet数据集。publicstaticDataSetExecuteDataset(SqlConnectionconnection,CommandTypecommandType,stringcommandText,paramsSqlParameter[]commandParameters){//创建一个SqlCommand对象,并对其进行初始化SqlCommandcmd=newSqlCommand();PrepareCommand(cmd,connection,(SqlTransaction)null,commandType,commandText,commandParameters);//创建SqlDataAdapter对象以及DataSetSqlDataAdapterda=newSqlDataAdapter(cmd);DataSetds=newDataSet();//填充dsda.Fill(ds);//清除cmd的参数集合cmd.Parameters.Clear();returnds;//返回ds}lPrepareCommand函数该函数完成数据库的连接和对命令的执行,供以上函数调用。privatestaticvoidPrepareCommand(SqlCommandcmd,SqlConnectionconn,SqlTransactiontrans,CommandTypecmdType,stringcmdText,SqlParameter[]cmdParms){//判断连接的状态。如果是关闭连接,则打开if(conn.State!=ConnectionState.Open)conn.Open();//关闭连接//cmd属性赋值33 cmd.Connection=conn;cmd.CommandText=cmdText;//是否需要用到事物处理if(trans!=null)cmd.Transaction=trans;cmd.CommandType=cmdType;//添加cmd需要的存储过程参数if(cmdParms!=null){foreach(SqlParameterparmincmdParms)cmd.Parameters.Add(parm);}}4.2存储过程操作的封装网上书店系统的商务逻辑层调用数据访问层函数,完成对SQLServer数据库中存储过程的操作,这是因为使用存储过程封装应用有以下优点。l代码模块化,以减少数据库操作员和程序员的错误。l提高数据库安全性。l减少网络通信流量。l移植性较强。33 5详细设计与实现5.1用户管理模块用户管理是一个网上书店系统补课缺少的部分,该模块主要实现用户注册、用户登录、找回丢失密码和修改个人信息等功能,用户管理模块主要包括以下页面。l用户注册页面UserRegister.aspx,代码隐藏文件为UserRegister.aspx.cs。l用户登录页面UserLogin.aspx,代码隐藏文件为UserLogin.aspx.cs。l找回丢失密码页面UserGetPassWord.aspx。代码隐藏文件UserGetPassWord.aspx.cs。l修改个人信息页面UserChangeInfo.aspx,代码隐藏文件为UserChangeInfo.aspx.cs。图5.1User类中的主要函数列表5.1.1用户注册在如图5.2所设计的各项文本框中输入对应信息,然后单击【注册】按钮,可以注册新用户。图5.2用户注册界面设计图33 用户注册的功能由函数AddUser_Click实现。函数AddUser_Click代码如下,该段代码保存在UserRegister.aspx.cs文件中。protectedvoidAddUser_Click(objectsender,System.EventArgse){//得到用户注册信息stringuserName=LoginName.Text.Trim();//定义用户名stringpassword=Password.Text.Trim();//定义密码stringquestion=Question.Text.Trim();//定义问题stringanswer=Answer.Text.Trim();//定义问题答案stringuserrealname=UserRealName.Text.Trim();//定义用户真实姓名stringemail=Email.Text.Trim();//定义邮件地址stringrole="用户";Useruser=newUser();intuserId=user.RegisterUser(userName,password,question,answer,userrealname,email,role);//得到用户ID//如果返回值为-1,表示用户名已经存在if(userId==-1){Message.Text="您注册的用户已经存在";}else{//设置用户为通过验证System.Web.Security.FormsAuthentication.SetAuthCookie(userId.ToString(),false);//迁移购物车记录//将用户重定向至用户帐户页面Response.Redirect("UserLogin.aspx");}}5.1.2用户登录在为用户登录所设计的图5.3中,输入对应信息,然后单击【登录】按钮,可以完成用户登录。33 图5.3用户登录界面设计图用户登录的功能由函数LoginUser_Click实现,函数LoginUser_Click代码如下,该段代码保存在UserLogin.aspx.cs文件中。protectedvoidLoginUser_Click(objectsender,System.EventArgse){//实体化User对象Useruser=newUser();intuserId=user.Login(LoginName.Text,Password.Text);//注册用户Session["UserRole"]=user.GetUserRole(userId);//得到用户角色if(userId==0)//如果返回为空{lblMessage.Text="您输入的用户或密码有误";}else{System.Web.Security.FormsAuthentication.RedirectFromLoginPage(userId.ToString(),CheckCookie.Checked);}}5.1.3找回丢失密码在如图5.4所设计的【用户名】、【提示问题】、【问题答案】和【E-mail】文本框中输入对应信息,然后单击【提交】按钮,即可完成用户找回丢失密码的操作。33 图5.4找回丢失密码界面用户找回丢失密码的功能由函数Submit_Click实现。函数Submit_Click代码如下所示。该段代码保存在UserGetPassWord.aspx.cs文件中。其中User类中的GetBackPassword函数具体内容代码保存在了User.cs中。protectedvoidSubmit_Click(objectsender,System.EventArgse){//实例化user对象Useruser=neweBookShop.User();intresult=user.GetBackPassword(LoginName.Text.Trim(),Question.Text.Trim(),Answer.Text.Trim(),Email.Text);//得到密码if(result==1)//如果返回1{Message.Text="您的6位密码已发送,请到邮箱查收";//提示成功}else{Message.Text="您的输入信息有误";//提示失败}}5.1.4修改个人信息在程序执行后的界面如图5.5所示,在真实姓名、问题、答案、E-mail文本框中输入对应信息,然后单击【提交】按钮,即可完成用户个人信息的修改。33 图5.5修改个人信息界面修改个人信息的功能由函数UpdateUserInfo实现。函数UpdateUsernfo代码如下所示,这段代码保存在文件UserInfo.aspx.cs中。voidUpdateUserInfo(){//实例化user对象Useruser=newUser();user.ChangeProfile(User.Identity.Name,RealName.Text,Question.Text,Answer.Text,Email.Text);//改变用户信息}5.2图书管理模块图书管理是系统的重要组成部分,它主要实现图书类别的添加和删除,图书的添加、删除和修改,列表显示图书,图书搜索等功能。图5.6Book类的主要函数列表33 5.2.1管理图书类别图书类别管理的执行流程如图5.7所示。在如图5.8所示的图书类型文本框中输入图书类型信息,然后点击【添加】按钮,可以完成图书类型的添加操作。图5.7图书类别管理的执行流程图5.8管理图书类别添加图书类型的功能由函数Add_Click实现,Add_Click函数代码保存在ManageBookType.aspx.cs文件中。5.2.2添加、删除、修改图书信息添加、删除、修改图书信息的执行流程如图5.9所示。33 在本节代码实现后,如图5.9所示的【图书名称】、【作者】、【译者】、【出版社】、【价格】、【介绍】文本框中输入对应信息,并单击【浏览】按钮,选择图书封面后单击【确定】按钮,选择图书类别,然后单击【添加】按钮,即可完成新书的添加操作。开始修改选择添加、删除、修改修改成功删除成功添加成功结束添加确定修改确定删除确定添加删除填写修改信息选中删除填写图书信息图5.9添加、删除、修改图书信息的执行流程图5.10添加图书实现图5.2.3列表显示图书图书列表显示功能由DataListBind函数实现,函数DataListBind(代码如下,该段代码保存在文件BookByType.aspx.cs中。33 voidDataListBind(){dl_BookByType.DataSource=Product.GetBookByCategory(int.Parse(ViewState["BookTypeId"].ToString()));//设置数据源dl_BookByType.DataBind();//绑定数据}图5.11为按类别列表显示信息的界面实现图。图5.11列表显示图书图5.2.4搜索图书搜索图书的流程如图5.12所示,在如图5.13所示的【图书名称】、【作者】、【译者】、【出版社】文本框中输入对应信息,在【图书类型】下拉列表框中选择图书种类,然后单击【查找】按钮以实现搜索功能。33 显示相关数据存在不存在开始数据库中搜索信息是否存在填写搜索信息结束图5.12搜索图书的执行流程图5.13搜索图书图5.14搜索结果图5.14以列表形式实现了显示搜索结果的程序,图书具体搜索功能由函数Bind实现。33 5.3购物车管理模块购物车模块使用户可以在购物时随时查看自己购买的商品,并可以随时添加和删除所购买的商品。图5-15ShopCart类中的主要函数列图5.3.1查看购物列表查看购物列表的执行流程如图5.16所示。用户可以通过点击图书旁边的“加入购物车”按钮,将图书加入购物车。图5.17显示了用户购物车,具体包括图书编号、图书名称、价格、数量、总金额记忆合计金额等内容。开始查看购物列表更新购物车修改购物车结算购物列表是否有误结束是否图5.16查看购物车列表的执行流程33 图5.17查看购物车列表购物车列表显示功能由函数showshopcart实现,该代码保存在MyShopCart.aspx.cs中。5.3.2结账用户结账的执行流程如图5.18所示。图5.19为购物车结账界面,结账功能的实现与前面查看购物列表功能实现相似。是开始判断数据是否正确查看购物列表提交结束修改购物列表否图5.18用户结账的执行流程图5.19购物车结账界面33 图5.19为代码实现后的截图,如果提交的购物记录出错,可跳转到购物车列表程序,而后再选择对现有的数据库的删除与修改操作。5.4订单管理模块图5.20订单Orders类中的主要函数列图5.4.1客户订单管理开始订单列表订单细节查询结束查询客户信息的执行流程如图5.21所示。图5.22显示了客户所提供的订单,包括订单号、订单时间、订单总额等信息。图5.21查询客户信息的执行流程图5.22客户订单浏览设计图33 客户订单浏览功能在函数page_load中实现,其代码如下所示,该段代码保存在MyOrder.aspx.cs文件中。protectedvoidPage_Load(objectsender,System.EventArgse){stringuserID=User.Identity.Name;//得到用户IDOrdersorderHistory=newOrders();//创建Orders对象MyList.DataSource=orderHistory.GetOrderList(userID);//设置数据源MyList.DataBind();//数据绑定if(MyList.Items.Count==0)//判断订单是否为空{MyList.Visible=false;MyError.Text="您没有订单记录";}}单击查询按钮可以查看具体某条订单的细节,如图5.23所示执行结果。图5.23客户订单细节浏览5.4.2管理员订单管理订单管理的执行流程如图5.24所示。图5.25的执行结果图为管理员显示了全部客户已经提交的订单,改页面提供了浏览订单详细内容及订单处理的功能。33 查看第一条订单开始处理订单查看该订单细节该订单是否需处理查看下一条订单结束是否为最后一条订单是是否否图5.24订单管理的执行流程图5.25管理员订单浏览33 客户订单显示的功能在函数Bind中实现,其代码如下所示。该点代码保存在ManageOrder.aspx.cs文件中。voidBind(){try{//实例化Orders对象Ordersorders=newOrders();DataSetds=orders.GetAllOrder();//定义DataSet对象this.Datagrid1.DataSource=ds.Tables[0].DefaultView;//设置数据源′this.Datagrid1.DataBind();//数据绑定this.Message.Text="您共有"+ds.Tables[0].Rows.Count.ToString()+"条订单";//提示订单条数}catch{this.Message.Text="发生错误";//提示失败}}通过调用Orders类的GetAllOrder方法获得全部订单信息,并在列表中显示。5.5后台管理模块后台管理模块包含查询用户信息和查询销售信息,可以通过查询用户信息来增加管理员,通过查询销售信息从总体上了解图书销售数量及金额。图5.26Admin类中主要函数图33 5.5.1查询用户信息查询用户信息的执行流程如图5.27所示。图5.28为管理员提供了用户列表显示及角色管理的功能。角色管理的功能由函数GridUsers_UpdateCommand实现。开始显示用户列表角色修改保存是否需修改结束是否图5.27查询用户信息的执行流程图5.28用户管理GridUsers_UpdateCommand函数代码如下所示,该段代码保存在ManageUser.aspx.cs文件中。voidGridUsers_UpdateCommand(objectsource,System.Web.UI.WebControls.DataGridCommandEventArgse){stringrole=((TextBox)e.Item.FindControl("Role")).Text.Trim();//得到用户角色//获取要更改的用户的UserIdintuserId=Convert.ToInt32(GridUsers.DataKeys[e.Item.ItemIndex]);AdminDBadmin=newAdminDB();//创建admindb对象admin.UpdateUserRole(role,userId.ToString());//改变用户角色33 GridUsers.EditItemIndex=-1;//退出编辑状态BindGrid();//绑定}5.5.2查询销售情况查询销售情况的执行流程如图5.29所示。图5.30所显示的查询销售情况页面为管理员提供了按月、日查询图书销售种类、数量、金额的功能。开始填写时间是否图示结果为空显示查询数据所查信息是否为空结束是否继续查询是否图5.29查询销售情况的执行流程图5.30查询销售情况该功能主要由函数BindGrid实现,相关代码保存在ManageSales.aspx.cs文件中。33 6系统测试6.1单元测设l测试一:在一般用户登陆时,用户名或密码有一项为空或者填写错误,系统是否出现预先设定的操作提示。具体操作:用户名、密码、任意一项为空或者填写有误。结果:都出现相应的错误原因的信息提示。结论:要求用户必须填写正确的用户名和密码,才能进入管理页面。l测试二:管理员删除一注册用户后,并让其登陆,看是否登陆成功。具体操作:管理员删除一会员表中的用户后,该用户在前台登陆。结果:该用户无法登陆。结论:用户数据删除功能正常。l测试三:管理员删除一图书的信息,在前台按关键字查询,看是否能找到对应的信息。具体操作:在图书管理页面中的图书查看与修改页面中删除一图书的信息。结果:在前台搜索中,按关键字查询不到此书信息。结论:删除图书信息功能正常。6.2集成测试网上书店的建设基本上就算完成了,但是发现了这样一个事实,一个用户在访问一个网站时一般来讲只对该网站的部分内容感兴趣,而且这种兴趣会持续一段时间。这点启发我们,如果能根据用户的喜好为不同的用户显示其个性化的页面,即着重显示该用户感兴趣的内容,将为用户节约大量的检索时间,而且这样的网页显然是更具有吸引力的。一些站点已经在这方面作出了一定的尝试,通常采用的方法是,在用户登陆时为其提供一系列选项,使用户能够对站点进行一些自主的设置。这样做能够使站点呈现一定程度的个性化,但对用户来讲,仍旧比较烦琐,并且在用户了解一个站点前让其对站点进行设置,其结果未免有些粗糙。于是构想了这样一种方案,对用户登陆后的动作进行跟踪,分析,发掘用户点击规律,即用户先后点击的关联规则,这样,在用户点击一个主题(链接)之后,系统能够自动生成一页面,其中包含了该主题下用户经常关注的内容(若干链接),这样便再无须用户作出任何额外工作的情况下实现了为用户量身订做的个性化页面。本次课程设计主要完成了网上书店的用户注册、登陆、图书分类浏览、图书信息查询、加入购物车、生成订单等功能,以及管理员的一系列相关操作。以上提出的改进想法以后将继续不断探索和完善。33 结论本系统是在VisualStudio2010开发工具和SQLServer2008数据库软件基础上,在同学和老师的帮助下经过两个多月的时间设计完成的。但是仍有一些未实现的功能,如网上支付。但是通过本次网上书店系统的设计与完成,自己在网站建设方面有了很大的提高。望大家多多见谅与包涵,我会努力去学习更多的知识来充实自己,完善自我,相信我以后会做的更好、更理想。本系统的设计实现中,主要有以下技术亮点:l介绍了表示层、商务逻辑层和数据访问层的设计结构。l图书信息添加、显示模块中,以二进制格式上传、下载图片文件,是ASP.NET的一个技术难点,也是网上开发中的一个重点。这其中应用了文件对象操作。lDataGrid控件、DataList控件和Repeater控件的使用,使数据显示和更新更加多样话、灵活化、丰富化。l本系统实现了用户注册、登录、个人信息修改、图书信息管理、购物车管理、订单管理、销售查询等功能,这些功能是网上购物系统中不可缺少的部分。33 致谢毕业论文马上就要结束了,这这也意味着我的大学生活也即将结束。回忆四年前的自己,满怀希望和憧憬走进了我的大学。庆幸在这四年里,我没有蹉跎岁月,在众多老师的谆谆教诲之下,在亲朋好友的鼓励之下,始终以积极的态度面对学习和生活。本次论文的写作虽稍显枯燥却极富挑战。大家对我的支持鼓励,是我坚持完成本次论文的动力源泉。在此我要特别的感谢我的指导老师赵建立老师。从论文的选题、资料的收集、系统的设计到最终的程序完成和论文定稿,赵老师都费尽心血。没有赵老师的辛勤栽培就没有我毕业设计的顺利完成。感谢信息工程学院的各位领导、老师和同学对我的理解、鼓励和帮助,正是因为有了你们,我所做的一切才更有意义;也正是因为有了你们,我才有了追求进步的胆量和动力。时间的仓促以及自身专业水平的不足,整个毕业设计肯定存在尚未发现的缺点和错误。恳请大家给予批评与指正,不胜感激!33 参考文献[1]高屹,沙俊星.网路应用程序设计教程[M].北京:机械工业出版社,2008:22-99.[2]页子青.ASP网络开发入门与实践[M].北京:人民邮电出版社,2006:449-457.[3]王华章.ASP.NET2.0网络系统开发[M].北京:中国铁道出版社,2006:303-331.[4]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2008:12-22.[5]彭雪冬,柯建林.网站建设实用开发精粹[M].北京:人民邮电出版社,2005:252-258.[6]朱沭红.ASP.NET网站开发典型模块[M].北京:电子工业出版社,2006:247-300.[7]李玉林.ASP.NET网络编程从入门到精通[M].北京:清华大学出版社,2006:401-50133'