《网上超市管理系统毕业论文.docx》由会员分享,可在线阅读,更多相关《网上超市管理系统毕业论文.docx(27页珍藏版)》请在三一办公上搜索。
1、安徽财贸职业学院毕业论文(设计)网上超市管理系统摘 要随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以及计算机与网络技术为基础的信息系统正处以蓬勃发展的时期。网上超市系统,是在网络上建立一个虚拟的购物商场,避免了挑选商品的繁琐过程,是顾客的购物过程变得轻松,快捷。本文详细地讲述了开发一个基于Web的“网上超市系统”所用到的技术和方法。其中运用了ASP技术、ADO技术、SQL Server2005数据库技术等等,并从几个不同的方面用上述技术来实现系统。关键词 ASP.NET、ADO.NET、SQL Server2005目 录第一章 绪论- 1 -1.1开发背景- 1 -1.2
2、 开发运行环境- 1 -1.2.1软件需求- 1 -1.2.2开发工具的选择- 2 -第二章 功能需求- 3 -2.1功能模块划分- 3 -2.2功能模块描述- 3 -2.2.1前台功能- 3 -2.2.2 后台管理功能:- 3 -第三章 业务流程设计- 5 -3.1 系统功能模块- 5 -3.2网站前台功能图- 6 -33后台管理功能图- 6 -第四章 逻辑设计- 7 -4.1数据库表的设计- 7 -第五章 系统实现- 11 -5.1首页(登录、注册、浏览商品)- 11 -5.2 根据条件查询符合条件的相应商品- 12 -5.3购物车的实现- 14 -5.3.1添加商品到购物车的实现- 15
3、 -5.3.2对购物车商品的修改的实现- 17 -5.4 订单的产生- 19 -5.5添加商品(后台界面)- 21 -第六章 系统总结- 23 -6.1系统特点、优势- 23 -6.2系统不足- 23 -致 谢- 24 -参考文献- 25 - 25 -第一章 绪论1.1开发背景随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以及计算机与网络技术为基础的信息系统正处以蓬勃发展的时期。网上超市系统,是在网络上建立一个虚拟的购物商场,避免了挑选商品的繁琐过程,是顾客的购物过程变得轻松,快捷。网上超市管理系统是一个针对网上销售商品、管理商品的一个专门软件。随着网络的广泛普及,网络支付
4、手段的逐步完善,越来越多的人逐渐习惯于网上购物,习惯于鼠标点击下订单,送货上门的快捷便利的购物方式。传统的购物观念 正在被网上购物这种快捷的方式所冲击。现在的网上超市,具有强大的功能,在线展示商品,在线购买商品,在线交易,在线网店的管理等,借助网络的跨地域特点,更是将传统的商店的地域限制加以突破,全国各地的顾客都可以通过网络在同一个网上超市购买商品,从而大大增加了客户的数量。网上超市在线网站致力于提供商品展示及订购为核心的网上购物服务宣传自己商店的产品并将自己的产品展示给客户,让客户通过网站便能对自由的选择的购买商品。该网站是通过用户登录浏览商品、购买、确定购买、查看订单、实现用户模块功能。其
5、中订单的生成,网站后台管理系统,团购系统管理员来管理商品、订单、用户来实现。1.2 开发运行环境 1.2.1软件需求操作系统:WindowsXP数据库公交:SQL Server 2005开发工具:Microsoft Visual Studio 20081.2.2开发工具的选择本系统的开发主要是用Microsoft Visual Studio 2008的开发环境,利用SQL Server2005进行数据库的设计。下面对他们分别进行简单的介绍:1.Microsoft Visual c#/ASP.NET介绍:Visual Studio 2008是微软公司推出的开发环境。是目前挺流行的 Windows
6、平台应用程序开发环境。目前已经开发到 10.0 版本,也就是 Visual Studio 2010。Visual Studio 2008可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。Visual Studio 2008版本特点:Visual Studio 2008 在三个方面为开发人员提供了关键改进:快速的应用程序开发 高效的团队协作 突破性的用户体验 Visual Studio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。Visua
7、l Studio 2008 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web 应用程序。开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP.NET 应用程序服务和 Microsoft 平台。2.SQL Server
8、 2005介绍:SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应SQL Server安装界面用。 第二章 功能需求2.1功能模块划分网上超市共分
9、两个部分,一是前台管理部分,包括:客户在线注册、浏览商品、购买商品、提交订单等操作;二是后台管理部分,包括:商品的添加、查询、修改和删除,订单的管理、用户的管理、商品类别的管理等。2.2功能模块描述2.2.1前台功能1.注册功能:客户首先要注册为该商店的用户。注册时要填写顾客的登录用户名,真实姓名,登录密码,详细家庭住址等信息即可。注册后,用户可修改自己的信息或者对信息的补充。2.选择商品功能:顾客浏览网上商店的商品,将自己需求的产品放入到购物车中,可连续添加商品。3.购物车的管理:顾客选择完商品后可进入购物车也面,查看自己要购买的商品,可修改某一商品数量、取消购买某商品和情况整个购物车。4.
10、订单的生成:当顾客选择完商品后,确定购买商品,根据客户选择的商品,产生订单,把商品的部分信息如数量,购买总价保存起来。在并附上订单的详细信息。2.2.2 后台管理功能:1.管理人员部分:管理员拥有最高权限,可访问所有订单,订单处理,可浏览、查询、修改订单,可进行界面管理,可浏览、修改客户的一些资料。2.订单的管理:管理员根据客户的订单,修改订单的状态,是否已发货。以及顾客收到商品后更改顾客的付款状态。3. 管理商品功能:(1)添加新商品:管理员可以通过这个功能向本商店录入新的商品,添加的信息包括:商品的名称、商品册图片、商品的ISBN编号、商品的类别、商品的生产厂商、商品的单价、商品的生产日期
11、、商品的有效截止日期(这里的有效截止日期可以为空,因为对于某些商品来说,如电子商品,就没有有效截止日期)、商品的卖出数量(这里商品的卖出数量是在顾客确定购买商品后,订单产生过后自动修改的)、还有商品的库存量。(2)修改商品的信息:管理员可以进行对商品信息的修改,如商品名称,库存量等。(3)删除商品管理员可以对过期的商品进行删除。(4)商品类别的管理:管理员可添加、修改、删除类别信息。第三章 业务流程设计3.1 系统功能模块图3-1 系统功能图3.2网站前台功能图图3-2 前台功能图33后台管理功能图图3-3 后台功能图 第四章 逻辑设计4.1数据库表的设计1顾客表(Customers)顾客表是
12、指网站的客户,主要在前台进行活动。主要含有如下字段:顾客的编号、顾客登录系统时的登录名(这里申请的用户登录名不能重复)、顾客的真实姓名、顾客的登录密码、顾客的详细的家庭住址、顾客的出生日期、顾客的性别、顾客的照片以及客户的权限所对应的权限编号。序号列名数据类型长度小数位标识主键允许空默认值说明1CusIDInt0是否2LoginNamevarchar500是3CusNamevarchar500是4CusPwdvarchar200是5Addressvarchar500是6BirthdayDatetime0是7GenderChar20是8PhotoNvarchar500是9ReghtIDint0是
13、表4-1 顾客表2一级商品类别表(FirstCategry)一级商品类别表包括以下字段:有商品的一级类别的类别编号、一级商品类别的类别名称。序号字段数据类型长度小数位标识主键允许空默认值说明1firstCateIDInt0是否2firstNameVarchar300是表4-2 一级商品类别表3二级商品类别表(SendCategry)二级商品类别表包括以下字段:有商品的二级类别编号、有商品的二级类别名称、以及二级类别所对应的一级类别的编号。 序号字段数据类型长度小数位标识主键允许空默认值说明1sendCateIDInt0是否2SendNameVarchar300是3ParentIdInt是表4-
14、3 二级商品类别表4.商品表(Goods)商品表包括以下字段:有商品的编号、商品的名称、商品册图片、商品的ISBN编号、商品的类别编号(这里指的的二级类别的类别编号)、商品的生产厂商、商品的单价、商品的生产日期、商品的有效截止日期(这里的有效截止日期可以为空,因为对于某些商品来说,如电子商品,就没有有效截止日期)、商品的卖出数量(这里商品的卖出数量是在顾客确定购买商品后,订单产生过后自动修改的)、还有商品的库存量。序号字段数据类型长度小数位标识主键允许空默认值说明1GoodsIDInt0是否2GoodsNameVarchar500是3PictureNvarchar500是4ISBNVarcha
15、r500是5CategoryIDInt0是6CompanyVarchar500是7UnitPriceFloat0是8PublishDateDatetime0是9EndDateVarchar500是10SellNumInt0是11StoreNumint0是12MemberPricefloat0是13IsHotInt0是14DisCountint0是15Descriptiontext0是表4-4 商品表5.管理员表(Managers)管理员表是指登录系统的后台的人员,主要包括以下字段:管理员的编号、管理员的真实姓名(可允许为空)、管理员的登录密码、管理员的照片等。序号字段数据类型长度小数位标识主键
16、允许空默认值说明1ManagersIDInt0是否2ManaNameVarchar200是3ManaPwdVarchar500是4RightIDInt0是5PhotoVarchar500是6LoginNamevarchar200是表4-5 管理员表6.订单表(Orders)订单表主要包括以下字段:订单编号、产生订单的日期、购买客户编号、购买的商品的总价格、购买的商品的总数量、标识该订单是否已经付过款以及店家是否发货的条件。序号字段数据类型长度小数位标识主键允许空默认值说明1OrdersIDInt0是否2PublishDateDatetime0否3UserIDInt0否4TotalPriceFl
17、oat0否5TotalCountInt0否6IsPayInt0是7IsSendint0是表4-6 订单表7.订单详细表(OrderDetails)订单详细表是对订单表的进一步补充,主要包括以下字段:有详细订单的编号、所对应的订单编号、购买的商品的编号、购买某种商品的数量、商品的单价。序号字段数据类型长度小数位标识主键允许空默认值说明1OrderDetailsIDInt0是否2OrderIDInt0否3GoodsIDInt0否4QuantityInt0否5UnitPricefloat0否表4-7 订单详细表8.权限表(Right)权限表主要包括以下字段:有权限的编号、权限名称。序号字段数据类型长
18、度小数位标识主键允许空默认值说明1RightIDInt0是否2RightNamevarchar500是表4-8 权限表第五章 系统实现5.1首页(登录、注册、浏览商品)图5-1 系统首页图功能介绍:本系统的首页显示了本网店的一些商品的信息,用户可以在首页点击某商品显示商品的详细信息。首页商品显示的代码,在本页面主要采用了数据源SqlDataSource 和gridView:数据源SqlDataSource的源代码如下:5.2 根据条件查询符合条件的相应商品图5-2 根据条件查找商品图5-3 查找到的商品如图5-2所示,根据首页客户选择的商品类别以及在关键字的文本框中输入的值,来搜索符合相应条件
19、的商品列表(如图5-3所示),实现代码如下:首先是在Default.aspx 首页中要选择相应类别的“类别编号”和输入“文本框”中的信息,然后再跳转到SearchByKey.aspx也面;实现该功能的代码如下(在母版也得ImgButton按钮的事件):protected void ImageButtonSearch_Click(object sender, ImageClickEventArgs e) string key = txtSearchKey.Text.Trim(); int firId =Convert .ToInt32 ( ddlFirCategry.SelectedValue)
20、; Response.Redirect(SearchByKey.aspx?firId=+firId +&key=+key); 运行上述代码后,会跳转到SearchByKey.aspx页面,该页面要接受相应传过来的数据,并进行数据绑定,实现代码如下: protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) int firId =Convert .ToInt32 ( Request.QueryStringfirId); string keys = Request.QueryStringkey.ToString();
21、 BindByKeys(firId ,keys); string strCon = ConfigurationManager.ConnectionStringsMyCon.ToString(); SqlConnection cn = null ; SqlDataAdapter da = null; DataSet ds = new DataSet(); private void BindByKeys(int firId, string keys) string sql = select distinct Goods.* FROM Goods,SendCategry,FirstCategry W
22、HERE Goods.CategoryID=SendCategry.SendCateID and SendCategry.ParentId=+firId+ and Goods.GoodsName like %+keys +%; cn = new SqlConnection(strCon); cn.Open(); da = new SqlDataAdapter(sql ,cn); da.Fill(ds); SearchByKeyWords.DataSource = ds.Tables0; SearchByKeyWords.DataBind(); 5.3购物车的实现图5-4 选中某商品,查看某商品
23、信息图5-5 某商品(图5-4)详细信息图5-6 购物车图功能介绍:当用户登录到系统的首页后,用户可浏览相应商品的信息,点击商品(如图5-4所示)查看商品的详细信息,即进入图5-5所示的见面,当用户确定购买商品后把商品添加到购物车中,然后可对购物车中的商品数量进行修改,也可以对已加入到“购物车”中,最后又不想购买的商品进行删除。首先是把商品添加的购物车中代码的实现,要添加到购物车是,要对用户是否登录进行判断,若登录过后就进入购物车界面看到已选择的商品(如图5-6所示),否则,进入用户登录界面,实现代码如下:5.3.1添加商品到购物车的实现 protected void imgBtnBuy_Cl
24、ick(object sender, ImageClickEventArgs e) if (SessionCurrentUser != null) if (SessionCart = null) this.CreateCart(); else DataTable cart = SessionCart as DataTable; if (this.ExistGoods(cart) this.AddGoodsToSession(cart); Response.Redirect(Cart.aspx); else Response.Redirect(UserLogin.aspx); / 新建购物车表
25、private void CreateCart() DataTable cart = new DataTable(); cart.Columns.Add(GoodsID); cart.Columns.Add(GoodsName); cart.Columns.Add(Quantity); cart.Columns.Add(UnitPrice); cart.Columns.Add(Picture); this.AddGoodsToSession(cart); /判断商品是否已经存在购物车中,若有某商品,数量加1 private bool ExistGoods(DataTable cart) for
26、each (DataRow dr in cart.Rows) if (drGoodsName.ToString().Equals(this.labGoodsName.Text.Trim() drQuantity = Convert.ToInt32(drQuantity) + 1; SessionCart = cart; Response.Redirect(Cart.aspx); return true; / 添加新商品 public void AddGoodsToSession(DataTable cart) DataRow dr = cart.NewRow(); drGoodsID = Vi
27、ewStateGoodsID.ToString(); drGoodsName = this.labGoodsName.Text.Trim(); drQuantity = 1; drUnitPrice = this.labPrice.Text.Substring(0, this.labPrice.Text.Length - 1); ; drPicture = this.imgPhoto.ImageUrl; cart.Rows.Add(dr); SessionCart = cart; 5.3.2对购物车商品的修改的实现protected void gvCart_RowCommand(object
28、sender, GridViewCommandEventArgs e) if (e.CommandName = Add) int goodsId = Convert.ToInt32(e.CommandArgument); foreach (DataRow dr in (DataTable)SessionCart).Rows) if (Convert.ToInt32(drGoodsID) = goodsId) drQuantity = Convert.ToInt32(drQuantity) + 1; BindCart(); if (e.CommandName = Minus) int goods
29、Id = Convert.ToInt32(e.CommandArgument); foreach (DataRow dr in (DataTable)SessionCart).Rows) if (Convert.ToInt32(drGoodsID) = goodsId) drQuantity = Convert.ToInt32(drQuantity) - 1; if (Convert.ToInt32(drQuantity) = 1) Button btnMinus = gvCart.FindControl(btnMinus) as Button; btnMinus.Enabled = fals
30、e; BindCart(); protected void gvCart_RowDeleting(object sender, GridViewDeleteEventArgs e) DataTable cart = SessionCart as DataTable; cart.Rowse.RowIndex.Delete(); SessionCart = cart; BindCart(); private void BindCart() cart = (DataTable)SessionCart; TotalPrice(cart); gvCart.DataSource = cart; gvCar
31、t.DataBind(); 5.4 订单的产生用户点击“结算”按钮时,同时产生订单。实现代码如下:protected void imgBtnCaculate_Click(object sender, ImageClickEventArgs e) int goodsQuantity = 0; if (SessionCart = null | (DataTable)SessionCart).Rows.Count = 0) Response.Write(alert(你的购物车为空,请选购商品!);document.location=Default.aspx;); return; Orders ord
32、ers = new Orders(); orders.PublishDate = DateTime.Now; if (labTotalPrice.Text != String.Empty) orders.TotalPrice = Convert.ToDecimal(labTotalPrice.Text); /根据loginName获得id orders.UserID = CustomersBLL.GetUserIDByName(SessionCurrentUser.ToString(); / 计算购买商品的数目 foreach (DataRow dr in (DataTable)Session
33、Cart).Rows) goodsQuantity += Convert.ToInt32(drQuantity); orders.TotalCount = goodsQuantity; OrdersBLL.AddOrders(orders);/ 订单生成 /详细订单 OrderDetails orderDetails = new OrderDetails(); Goods goods = new Goods(); Orders order = new Orders(); foreach (DataRow dr in (DataTable)SessionCart).Rows) orderDeta
34、ils.GoodsID = Convert.ToInt32(drGoodsID); orderDetails.OrderID = OrdersBLL.GetMaxID(); orderDetails.Quantity = Convert.ToInt32(drQuantity); orderDetails.UnitPrice = (float)Convert.ToDouble(drUnitPrice); OrdersDetailsBLL.AddOrderDetails(orderDetails); foreach (DataRow dr in (DataTable)SessionCart).Rows) int goodsId = Convert.ToInt32(drGoodsID); int quantity = Convert.ToInt32(drQuantity); int storeNum = GoodsBLL.GetStoreNum(goodsId); int sellNum = GoodsBLL.GetSellNum(goodsId); GoodsBLL.UpdateStoreNum(s