欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业设计(论文)网络商店系统的设计与测试.doc

    • 资源ID:3984543       资源大小:541.50KB        全文页数:26页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计(论文)网络商店系统的设计与测试.doc

    网络商店系统的设计与测试摘 要随着软件技术的不断进步和发展,信息化的管理方式越来越广泛的应用于各个领域,对于任何网站系统的管理来说开发一套现代化的成员管理软件是十分必要的。通过这样的软件系统,可以做到成员的规范管理和快速查询,从而减少管理方面的工作量。有效的管理所有成员的信息就是成员管理系统完成的功能。销售管理系统是使用MS.NET平台中的ASP.NET开发基于B/S体系结构的Web应用程序,在Microsoft Visual Studio .NET 环境下,使用 C# 编程语言并结合Microsoft SQL Server 2000 数据库开发出一套网络版的销售管理系统。该系统由前端输入和后端管理组成。前端实现了用户注册,用户登录,购物车,定单查询,商品浏览(包括热门商品和新到商品),商品搜索等。后台实现了用户信息管理,管理员信息管理,商品信息管理,销售管理。通过这个系统,可以大大的提高网络管理者的工作效率和工作精度。关键词:网络商店;销售管理系统;模块;控件;C#.NETThe Design and Realization of the Network Shops Selling Management SystemAbstractAlong with the unceasing progress and development of the software technology, the management information system is more and more widely applied to each domain, it is extremely essential to develop a members management software for a website. Through such a system, we can reduce the management workload by member's standard management and fast inquiry. The effective management of all members' information is a function which the member management system management system completes. The selling management system is developed based on B/S system structure, using ASP.NET of MS.NET as the platform. Its a web application procedure in Microsoft Visual under the Studio NET environment, using the C# programming language and unifying Microsoft SQL Server 2,000 databases. This system is composed of the onstage for input and the backstage for management. Functions such as registration, log on, the user land, shopping vehicle, ordering form inquiry, commodity browsing (including popular commodity and newly arrived commodity), and commodity searching and so on, are realized on the onstage. The functions such as the users information management, the managers information management, the commodity information management and the selling management are realized on backstage. Through this system, we may greatly enhance the network superintendent's work efficiency and the work precision.Key words: Network shop; Sale management system; Module; Controls; C#.NET目 录论文总页数:25页1引言11.1开发背景11.2系统功能11.3系统软硬件配置要求21.4相关软件及技术介绍22项目模块及框图22.1 系统功能模快设计22.2 网络销售管理流程图32.3网络销售管理系统模块组织图43 项目方案需求43.1 项目特色43.2 方案选择53.2.1 数据库需求分析53.2.2数据库逻辑结构设计54模块设计、分析、开发74.1主页面设计74.1.1页面头部控件设计74.1.2 商品分类导航控件的设计84.3 用户信息管理模块设计94.3.1登录页面设计94.3.2 注册页面的设计104.4购物车功能的设计与实现114.5 购物车的结算设计与实现134.6查询销售情况页面的设计145.结果测试,性能分析175.1 测试主页面175.2测试登录页面175.3测试购物车195.4测试查询销售情况205.5测试查询、修改用户信息页面20结 论21参考文献21声 明24 1 引言1.1开发背景随着网络技术的飞速发展,网络经济与人们的生活越来越紧密的联系在一起,随着信息技术的发展,网上购物与网上销售也在逐渐发展和普及。消费者与销售商都迫切需要一种简便与高速高效的购物与销售方式,在线商店管理系统的出现正好满足人们的这种需要,通过网络的简便与高效可以使消费者节省时间,价格公开合理。而使销售者更合理的调节商品的数量以免造成商品的积压,也同时使生产者真正随着市场经济的需求而调节产品的种类和数量。随着网络的不断的普及,网页技术的不断发展,人们对网页的要求也不再是文字,图片的简单堆砌或是单调枯燥的内容,而是实时性,交互性和丰富性,使用动态网页技术的网页越来越受欢迎。应用ASP.NET技术的灵活性可以方便的访问数据库,ASP.NET把数据库搬上了WEB页面,使人们可以通过互联网使用大型的包含数据库功能的系统。系统正是使用ASP.NET技术的动态网页与SQL Server2000数据库结合打造的一个网上商店管理系统,一般用户通过网络访问该系统,提供用户注册功能,商品查询功能;系统用户(已注册用户)可以修改注册信息,购买商品等;管理员可以修改、删除、添加、模糊查询用户信息、配送商、供应商信息,对顾客的定单安排配送商(即进行销售)以及向供应商定货和处理供应商发送来的货物(即进货和库存管理)。本系统充分发挥了ASP.NET技术显示于客户端,运行于服务器端的特点,保护用户资料的安全性。经过分析,本文作者使用的是Microsoft公司的visual 开发工具,利用其提供的面向对象的开发工具,尤其是数据窗口这一能方便而简洁操作数据库的智能化对象,首先在短时间内建立系统应用原型,然后对初始原型系统进行需求迭代,不断修正和改进,直到完成系统。1.2系统功能整个网络销售管理系统的包括用户,超级管理员和一般管理员三种角色,系统为不同的角色提供不同的入口。两个管理员是一种隶属关系,一般管理员要受超级管理员的限制。用户和管理员具有不同的操作权限,用户可以注册新用户,修改自己的密码、个人资料。查看/搜索自己的喜欢的商品的信息;超级管理员具有添加新管理员、删除管理员、修改密码,添加、删除商品类别;添加、修改、删除商品信息;查询用户信息、修改用户的账户金额,还有查询销售情况。一般管理员具有除添加管理员、删除管理员之外的其他权限。1.3系统软硬件配置要求在运行本系统前,请先检查一下软硬件配置是否符合以下要求:硬件环境:服务器端/客户端:处理器:Intel Pentium4内存: 128M硬盘空间:20G 安装 NET运行环境软件环境:操作系统:Windows 2000网络协议:TCP/IP浏览器:Internet Explore 6.0显示器:VGA或更高分辨率的1.4相关软件及技术介绍141 ASP.NET技术ASP.NET 是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。ASP.NET构架是可以用Microsoft(R)公司最新的产品 Visual Studio开发环境进行开发ASP.NET是基于通用语言的编译运行的程序,可以使它运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.NET的Web应用中。142 SQL ServerSQL Server 是一个具备完全 Web 支持的数据库产品,提供了对可扩展标记语言 (XML) 的核心支持以及在 Internet 上和防火墙外进行查询的能力,提供了以 Web 标准为基础的扩展数据库编程功能。143 Visual S 2003它是Microsoft推出.NET应用程序开发工具。它易学易用的特性得到很多的好评。Microsoft又推出新版的.NET应用程序开发工具 Visual Studio.NET 2005,加入更多的好用功能,是.net的好开发工具。2项目模块及框图2.1 系统功能模快设计系统主体采用B/ S(Browser/ Server ,浏览器/ 服务器) 结构,即采用目前分布式系统流行的3 层软件结构,即在传统的客户和服务器之间加入应用服务器(Application server) ,3 层即是表现层(浏览器) 、业务逻辑层(Web 服务器) 、数据层(数据服务器) ,系统简图如图21所示。数据服务器与Web 服务器是完全分开的,分开之后的3 层软件结构功能明确:客户层只提供应用程序的用户界面,负责与用户交互;业务逻辑层是应用系统的关键,它负责处理所有用户请求,进行具体的运算和决定程序的流程,并把处理结果返回给表现层;服务器层仍然提供的是数据库支持、维护和更新应用程序的数据。2.2 网络销售管理流程图浏览商品添加商品详细信息添加到购物车登 录结 账注册新用户是否注册是否登录账户金额<购物金额生成定单,提示购买成功出错了!请联系管理员添加账户存款否否否 录是 录是录是是图1 网络销售管理系统数据流程2.3网络销售管理系统模块组织图网络销售管理系统前 台用户信息管理商品信息购物车定单图2A系统模块组织图网络销售管理系统后 台销售管理用户信息管理管理员信息商品信息管理图2B系统模块组织图3 项目方案需求3.1 项目特色项目采用Visual Studio .net2003 与SQL Server 2000进行开发。Visual Studio .net2003是微软最新推出的强大的可视化集成开发环境. VS.NET是ASP. NET中的一员,它继承了VB6.0通俗易懂的语法和可视化的应用程序界面设计,同时加入完全面向对象的设计思想,使应用程序的设计更加方便、快捷。另外,ADO.NET的引入使得访问数据库更加容易。项目在启动时需要进行登录验证,由于用户的信息保存在服务器的数据库中,所以在本地应当连接数据库服务器的信息 把所得到的信息进行验证(服务器的名称,登录数据库的用户名、密码等),用户通过验证后在给予用户相应的权限,在进入系统进行操作。3.2 方案选择3.2.1 数据库需求分析网络商店销售管理系统数据库系统,针对它要实现的业务功能,数据库中应该具有以下的模块: 用户信息:包括用户的编号、用户名、密码、帐户金额、姓名等内容。商品信息:包括商品编号、商品名称、商品价格、描述以及所属类别等。管理员信息:与用户信息相类似,包括管理员编号、登录名、密码、角色类别等。管理员日志:包括日志编号、发生事件以及时间。购物车:用来存储用户购物的信息,如商品的编号、数量等定单:一笔完整的定单记录应该包括它所相关的商品集合以及各个商品的数量等信息3.2.2数据库逻辑结构设计系统共涉及9张表,分别是:用户信息表Userinfo、商品信息表Productinfo、商品类别字典表Category、购物车表Shoppingcate、定单表Orders、定单信息表Orderitems、管理员信息表Admin、管理员角色字典表Adminrole和管理员日志表Adminaction。主要设计思想: 尽管在需求分析中,商品类别仅仅是商品的一个属性,但是数据库设计中一般将其分离出去创建单独的表。这就是面向对象的思想,这种做法有利于系统的扩展,同样的思想也体现在了Admin和Adminrole表的设计中。还有就是由于定单可能包括多种商品。而且数量不一。所以也用两个表来共同体现定单的这个实体。9张表如下:表1:用户基本信息表Userinfo编号字段名称数据类型说明1Useridint用户ID(主键)2UsernameNvarchar(50)用户登录名3UserpwdNvarchar(50)用户密码4QustionNvarchar(50)密码提示问题5AnswerNvarchar(50)提示问题答案6AcountDecimal账户金额7UserrealnameNvarchar(50)用户真实姓名8SexNvarchar(50)性别9AddressNvarchar(50)地址10EmailNvarchar(50)电子邮件11ZipcodeNvarchar(50)邮编表2:商品信息表Productifo编号字段名称数据类型说明1Productidint商品编号(主键)2ProductnameNvarchar(50)商品名称3ProductpriceDecimal价格4IntroNvarchar(50)商品介绍5Categoryidint所属分类编号6Clickcountint点击数量表3:商品分类表Category编号字段名称数据类型说明1Categoryidint商品分类ID(主键)2CategorynameNvarchar(50)分类名称表4:购物车表Shopping编号字段名称数据类型说明1Recordidint记录ID(主键)2CartidNvarchar(50)购物车ID3Productidint所购商品编号4CreatedateDatetime购物时间5Quantityint购买数量表5:定单表Orders编号字段名称数据类型说明1Orderidint定单号(主键)2Useridint所属用户ID3OrderdateDatetime成交时间表6:定单详细信息表Orderitems编号字段名称数据类型说明1Orderidint定单号(主键)2Productidint商品ID(主键)3Quantityint该商品的购买数量4UnitcostDecimal该商品的单价表7:管理员信息表Admin编号字段名称数据类型说明1Adminidint管理员id(主键)2LiginnameNvarchar(50)管理员登录名3LoginpwdNvarchar(50)管理员密码4Rolreidint管理员角色ID表8:管理员角色表Adminrole编号字段名称数据类型说明1Roleidint角色ID(主键)2RolenameNvarchar(50)角色名称 表9:管理员日志表Adminaction编号字段名称数据类型说明1Actionidint日志ID(主键)2ActionNvarchar(50)角色名称3ActiondateDatetime日志时间4Adminidint所属管理员编号4模块设计、分析、开发4.1主页面设计主页面是直接展示给用户的部分。在这一模块中,主要包括以下自定义控件和页面的实现:页面头部控件(HeadMenu.ascx):主要包括登录链接和搜索框商品分类导航控件(CategoryList.ascx):显示所有商品的列表,作为页面的左侧导航目录。4.1.1页面头部控件设计页面头部控件是为了方便用户快速导航到某个页面的,在HeaderMenu.ascx的设计中,具有技巧性的地方是如何展示给登录用户和匿名用户不同的导航条,为了区别登录用户和匿名用户,在HeaderMenu.ascx中将匿名用户所拥有的链接放在一个Span容器中,并将Span设为“Runat=Server”,这样就方便在代码中对去是否可见进行控制。同样,将登录用户需要的链接也放在另一个Span中。另外,“搜索”也是一个超级链接,但它并非链接到某个Url。而是执行一条JavaScript语句“javascript:searh.submit()”,即把页面提交。如下图所示:图3登录用户导航条 图 4匿名用户导航条控件代码的实现在HeaderMenu的代码中,主要是判断用户的情况并控制Span容器的可见性。在HeaderMenu.ascx.cs中定义了下面的方法:void showButton()/是否是匿名用户if (Request.IsAuthenticated != true) /登录用户区域不可见areaLoggedIn.Visible = false;/匿名用户区域可见areaLoggedOut.Visible = true; else areaLoggedIn.Visible = true;areaLoggedOut.Visible = false; 这样在窗体加载即执行Pvage_Load()是调用上面的方法就可以实现效果了:Private void Page_Load(object sender,System.EventArgs e) showButton();4.1.2 商品分类导航控件的设计 该控件显示所有商品的分类,单击目录中某个商品类别是将显示相应类别的商品列表页面。在CategoryList.ascx中主要用到了DataList控件,它用来绑定数据源。控件代码的实现private void Page_Load(object sender, System.EventArgs e)/ 设置目录的选定项string selectionID = Request.Params"selection"if ( selectionID != null)MyList.SelectedIndex = Int32.Parse(selectionID);/将数据源绑定至DataList控件MyList.DataSource = BLL.Product.GetCategoryList();MyList.DataBind();可以看到,MyList的绑定数据源是方法GetCategoryList()的返回值,这个方法在BLL层中的Product类中,他调用数据库的存储过程GetCatergoryList。4.3 用户信息管理模块设计4.3.1登录页面设计图5 用户登录界面在这个系统中采用Froms验证方式,当自定义的验证程序确认用户身份时,可以让Froms验证系统发出Cookie,Cookie中除了包含验证票据之外,还可以通过程序写入被验证用户的标识信息,比如用户编号,然后使用该Cookie访问个人的信息。Forms验证方式还可以保证有权限要求的页面无法被匿名用户访问。例如,密码修改页面(ChangePwd.aspx)不能被匿名用户访问,要达到上诉目标,需要在配置文件Web。Config里面创建一个项。代码如下:<!_验证方式为Forms_><authentication mode=”Forms”> <formsname=”eshop” loginUrl=”signIn.aspx”protecon=”all”path=”/”/></authentication> 需要注意的是,<forms>标记中,name的值为验证系统所发出的Cookie的名称,loginUrl表示匿名用户被重定向到的页面的地址。如何防止ChangPwd不被匿名用户直接访问呢,也需要创建下面的项:<location path=”ChangePwd.aspx”><system.web> <authorization> <!-拒绝匿名用户-> <deny user=”?”/> </authorization> </system.web></location>同样,用户可以注销验证信息,注销页面(SignOut.aspx)代码如下: private void Page_Load(object sender, System.EventArgs e)/注销验证信息System.Web.Security.FormsAuthentication.SignOut();/清空SessionSession.Clear();/返回首页Response.Redirect("default.aspx");4.3.2 注册页面的设计 注册新用户时候,仅需输入最基本的信息,个人详细资料在注册之后再进行修改,Register.aspx的界面主要是接收一些用户输入的文本框,以及相应的验证控件、“注册”按钮和显示提示信息的Lable控件。图6 注册页面代码的实现:通过存储过程AddNewUser实现注册的功能:CREATE PROCEDURE AddNewUser( username nvarchar(50), password nvarchar(50), question nvarchar(50), answer nvarchar(50), result int output)AS /*是否存在相同的用户名*/ if not exists (SELECT * FROM USERINFO WHERE USERNAME=USERNAME ) BEGIN/*插入新的用户记录*/INSERT INTO USERINFO (USERNAME, USERPWD, QUESTION, ANSWER) VALUES (USERNAME, PASSWORD, question, answer)/*将Result赋值为新添加用户的UserId*/SELECT result = SCOPE_IDENTITY() END ELSE BEGINSET RESULT = -1 END 该存储过程带有输出参数,如果有相同的用户存在,输出参数为-1,否则,输出的参数的值为该用户的UserID。在User类中定义方法AddNewUser()调用AddNewUser存储过程,4.4购物车功能的设计与实现在前面的流程图中,我们可以看到这个购物流程是不允许匿名用户拥有购物车的,匿名用户注册并登录之后,才能使用购物车。登录用户的购物车编号CartID为用户编号。CartID生成过程中用到了Cookie,Cookie是用来保存个人信息的对象,它存在于客户端。针对购物车的功能,设计了ShoppingCart类,其中定义了GetShoppingCartID(),代码如下:public String GetShoppingCartID() HttpContext Context = HttpContext.Current;/ 如果该用户已经通过验证后登录了系统, 那么以该用户的UserID作为购物车ID if (Context.User.Identity.Name != "") Response.Redirect("/esop/SignIn.aspx"); if (Context.Request.Cookies"ShoppingCartID" != null) return Context.Request.Cookies"ShoppingCartID".Value; 在数据库中定义了存储过程ShoppingCartAddItem,实现向购物车添加商品的功能,代码如下:CREATE Procedure ShoppingCartAddItem( CartID nvarchar(50), ProductID int, Quantity int)AsDECLARE CountItems intSELECT CountItems = Count(ProductID)FROM ShoppingCartWHERE ProductID = ProductID AND CartID = CartIDIF CountItems > 0 /* 该购物车中已有该商品的记录,更新数量 */ UPDATE ShoppingCart SET Quantity = (Quantity + ShoppingCart.Quantity) WHERE ProductID = ProductID AND CartID = CartIDELSE /* 该购物车中没有这个商品的记录,插入新记录 */ INSERT INTO ShoppingCart ( CartID, Quantity, ProductID ) VALUES ( CartID, Quantity, ProductID )GO4.5 购物车的结算设计与实现图 7 商品结算界面如果用户的预存款金额不足够支付本次购物,则会出现“存款不足”的提示如果能够支付,则生成新的订单,实现预存款支付订单的存储过程代码如下:CREATE PROCEDURE PayOrderuserId int,totalcost decimal,result int output ASDECLARE tmp decimal/*tmp为当前用户预存款金额*/SELECT tmp = acount FROM UserInfoWHERE userID = userId/*如果预存款不足*/IF tmp <totalcostBEGIN/*置标志为-1*/SET result = -1END/*预存款足够支付,扣除相应的金额*/ELSEBEGINUPDATE UserInfo SET acount = acount -totalcost WHERE userId= userId/*置标志为1*/SET result = 1ENDGO4.6查询销售情况页面的设计 模块的查询支持按月查询、日查询。查询的结果是每种商品的相关的定单数、售出数量和销售收入。页面主要包括3个DropDownList,分别用来选择年、月、日,两个按钮分别进行按月查询和按日查询,以及显示查询的结果的DataGrid。页面第一次加载时,显示日期为当前日期,并绑定到当前的销售情况。图8销售情况图代码的实现查询销售情况的存储过程定义为GetSails,有3个输入参数,分别为year(年)、month(月)、day(日)。当day为0时,表示查询月记录,否则为查询当日记录。 在adminDB类中定义GetSails()方法调用上面的GetSails存储过程,并返回记录集。代码如下: public DataSet GetSails(string year, string month, string day)SqlParameter para = new SqlParameter("year", int.Parse(year), new SqlParameter("month", int.Parse(month), new SqlParameter("day", int.Parse(day) ;return eshop.DAL.SQLHelper.ExecuteDataset(eshop.DAL.SQLHelper.CONN_STRING, CommandType.StoredProcedure, "GetSails", para);在用户表示层,首先需要绑定选择日期的DropDownList。定义BindDate()方法,代码如下:void BindDate()/绑定年for (int i=2007; i<2020; i+)ListItem item = new ListItem(Convert.ToString(i),Convert.ToString(i); Year.Items.Add(item);/绑定月for (int i = 1 ; i<13 ; i+)ListItem item1 = new ListItem(Convert.ToString(i),Convert.ToString(i); Month.Items.Add(item1);/绑定日for (int i=1; i<32; i+)ListItem item2 = new;Day.Items.Add(item2);此外,定义绑定DataGrid的方法BindGrid():void BindGrid(string year, string month, string day)GridSails.DataSource = new AdminDB().GetSails(year, month, day);GridSails.DataBind();在页面加载时间处理方法Page_Load()中对数据进行绑定,并显示当前日期以及当日销售记录:private void Page_Load(object sender, System.EventArgs e)if (!Page.IsPostBack)BindDate();/绑定当天记录BindGrid(DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString(), DateTime.Now.Day.ToString();/显示为当前日期Year.SelectedValue = DateTime.Now.Year.ToString();Month.SelectedValue = DateTime.Now.Month.ToString();Day.SelectedValue = DateTime.Now.Day.ToString();/插入日志AdminDB.InsertAction("查看当日销售记录", System.DateTime.Now, User.Identity.Name);最后,在两个按钮单击事件处理方法中添加绑定数据以及插入日志的代码:/查询所选日期的月销售记录 private void QueryMonth_Click(object sender, System.EventArgs e)BindGrid(Year.SelectedValue, Month.SelectedValue, "0");AdminDB.InsertAction("查看"+Year.SelectedValue+"年"+Month.SelectedValue+"月"+ "的销售记录", System.DateTime.Now, User.Identity.Name); /查询所选日期的日销售记录privat

    注意事项

    本文(毕业设计(论文)网络商店系统的设计与测试.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开