您的当前位置:首页正文

网上超市管理系统毕业设计

2024-01-14 来源:好走旅游网
 网上超市管理系统

目 录

第一章 绪论 ......................................................... - 1 - 1.1开发背景 ......................................................... - 1 - 1.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 - 3.3后台管理功能图 .................................................. - 6 - 第四章 逻辑设计 .................................................... - 7 - 4.1数据库表的设计 ................................................... - 7 - 第五章 系统实现 ....................................................- 11 - 5.1首页(登录、注册、浏览商品) .................................... - 11 - 5.2 根据条件查询符合条件的相应商品 ................................. - 12 - 5.3购物车的实现 .................................................... - 14 - 5.3.1添加商品到购物车的实现 ..................................... - 15 - 5.3.2对购物车商品的修改的实现 ................................... - 17 - 5.4 订单的产生 ...................................................... - 19 - 5.5添加商品(后台界面) ............................................ - 21 - 第六章 系统总结 ....................................................- 23 - 6.1系统特点、优势 .................................................. - 23 - 6.2系统不足 ........................................................ - 23 -

第一章 绪论

1.1开发背景

随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以及计算机与网络技术为基础的信息系统正处以蓬勃发展的时期。网上超市系统,是在网络上建立一个虚拟的购物商场,避免了挑选商品的繁琐过程,是顾客的购物过程变得轻松,快捷。网上超市管理系统是一个针对网上销售商品、管理商品的一个专门软件。随着网络的广泛普及,网络支付手段的逐步完善,越来越多的人逐渐习惯于网上购物,习惯于鼠标点击下订单,送货上门的快捷便利的购物方式。传统的购物观念 正在被网上购物这种快捷的方式所冲击。现在的网上超市,具有强大的功能,在线展示商品,在线购买商品,在线交易,在线网店的管理等,借助网络的跨地域特点,更是将传统的商店的地域限制加以突破,全国各地的顾客都可以通过网络在同一个网上超市购买商品,从而大大增加了客户的数量。

网上超市在线网站致力于提供商品展示及订购为核心的网上购物服务宣传自己商店的产品并将自己的产品展示给客户,让客户通过网站便能对自由的选择的购买商品。

该网站是通过用户登录浏览商品、购买、确定购买、查看订单、实现用户模块功能。其中订单的生成,网站后台管理系统,团购系统管理员来管理商品、订单、用户来实现。

1.2 开发运行环境

1.2.1软件需求

操作系统:WindowsXP

数据库公交:SQL Server 2005

开发工具:Microsoft Visual Studio 2008

- 1 -

1.2.2开发工具的选择

本系统的开发主要是用Microsoft Visual Studio 2008的开发环境,利用SQL Server2005进行数据库的设计。下面对他们分别进行简单的介绍:

1.Microsoft Visual c#/ASP.NET介绍:

Visual Studio 2008是微软公司推出的开发环境。是目前挺流行的 Windows平台应用程序开发环境。目前已经开发到 10.0 版本,也就是 Visual Studio 2010。Visual Studio 2008可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。

Visual Studio 2008版本特点:

Visual Studio 2008 在三个方面为开发人员提供了关键改进: 快速的应用程序开发 高效的团队协作 突破性的用户体验

Visual Studio 2008 提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。

Visual Studio 2008 包括各种增强功能,例如可视化设计器(使用 .NET Framework 3.5 加速开发)、对 Web 开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。Visual Studio 2008 为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持 AJAX 的 Web 应用程序。开发人员能够利用这些丰富的客户端和服务器端框架轻松构建以客户为中心的 Web 应用程序,这些应用程序可以集成任何后端数据提供程序、在任何当前浏览器内运行并完全访问 ASP.NET 应用程序服务和 Microsoft 平台。

2.SQL Server 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 -

第二章 功能需求

2.1功能模块划分

网上超市共分两个部分,一是前台管理部分,包括:客户在线注册、浏览商品、购买商品、提交订单等操作;二是后台管理部分,包括:商品的添加、查询、修改和删除,订单的管理、用户的管理、商品类别的管理等。

2.2功能模块描述

2.2.1前台功能

1.注册功能:

客户首先要注册为该商店的用户。注册时要填写顾客的登录用户名,真实姓名,登录密码,详细家庭住址等信息即可。注册后,用户可修改自己的信息或者对信息的补充。

2.选择商品功能:

顾客浏览网上商店的商品,将自己需求的产品放入到购物车中,可连续添加商品。 3.购物车的管理:

顾客选择完商品后可进入购物车也面,查看自己要购买的商品,可修改某一商品数量、取消购买某商品和情况整个购物车。

4.订单的生成:

当顾客选择完商品后,确定购买商品,根据客户选择的商品,产生订单,把商品的部分信息如数量,购买总价保存起来。在并附上订单的详细信息。

2.2.2 后台管理功能:

1.管理人员部分:

管理员拥有最高权限,可访问所有订单,订单处理,可浏览、查询、修改订单,

- 3 -

可进行界面管理,可浏览、修改客户的一些资料。

2.订单的管理:

管理员根据客户的订单,修改订单的状态,是否已发货。以及顾客收到商品后更改顾客的付款状态。

3. 管理商品功能: (1)添加新商品:

管理员可以通过这个功能向本商店录入新的商品,添加的信息包括:商品的名称、商品册图片、商品的ISBN编号、商品的类别、商品的生产厂商、商品的单价、商品的生产日期、商品的有效截止日期(这里的有效截止日期可以为空,因为对于某些商品来说,如电子商品,就没有有效截止日期)、商品的卖出数量(这里商品的卖出数量是在顾客确定购买商品后,订单产生过后自动修改的)、还有商品的库存量。

(2)修改商品的信息:管理员可以进行对商品信息的修改,如商品名称,库存量等。 (3)删除商品

管理员可以对过期的商品进行删除。 (4)商品类别的管理:

管理员可添加、修改、删除类别信息。

- 4 -

第三章 业务流程设计

3.1 系统功能模块

图3-1 系统功能图

- 5 -

3.2网站前台功能图

图3-2 前台功能图

3.3后台管理功能图

图3-3 后台功能图

- 6 -

第四章 逻辑设计

4.1数据库表的设计

1.顾客表(Customers)

顾客表是指网站的客户,主要在前台进行活动。主要含有如下字段:顾客的编号、顾客登录系统时的登录名(这里申请的用户登录名不能重复)、顾客的真实姓名、顾客的登录密码、顾客的详细的家庭住址、顾客的出生日期、顾客的性别、顾客的照片以及客户的权限所对应的权限编号。

序号 1 2 3 4 5 6 7 8 9 列名 CusID LoginName CusName CusPwd Address Birthday Gender Photo ReghtID 数据类型 Int varchar varchar varchar varchar Datetime Char Nvarchar int 长度 小数位 标识 50 50 20 50 2 50 0 0 0 0 0 0 0 0 0 主键 是 允许空 否 是 是 是 是 是 是 是 是 默认值 说明

表4-1 顾客表

2.一级商品类别表(FirstCategry)

一级商品类别表包括以下字段:有商品的一级类别的类别编号、一级商品类别的类别名称。 序号 1 2 字段 firstCateID firstName 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 Int Varchar 30 0 0 是 否 是 表4-2 一级商品类别表

3.二级商品类别表(SendCategry)

- 7 -

二级商品类别表包括以下字段:有商品的二级类别编号、有商品的二级类别名称、以及二级类别所对应的一级类别的编号。

序号 1 2 3 字段 sendCateID SendName ParentId 数据类型 Int Varchar Int 长度 30 小数位 0 0 标识 主键 允许空 默认值 是 否 是 是 说明

表4-3 二级商品类别表

4.商品表(Goods)

商品表包括以下字段:有商品的编号、商品的名称、商品册图片、商品的ISBN编号、商品的类别编号(这里指的的二级类别的类别编号)、商品的生产厂商、商品的单价、商品的生产日期、商品的有效截止日期(这里的有效截止日期可以为空,因为对于某些商品来说,如电子商品,就没有有效截止日期)、商品的卖出数量(这里商品的卖出数量是在顾客确定购买商品后,订单产生过后自动修改的)、还有商品的库存量。

序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 字段 GoodsID GoodsName Picture ISBN CategoryID Company UnitPrice PublishDate EndDate SellNum StoreNum MemberPrice IsHot DisCount 数据类型 Int Varchar Nvarchar Varchar Int Varchar Float Datetime Varchar Int int float Int int 长度 50 50 50 50 50 小数位 0 0 0 0 0 0 0 0 0 0 0 0 0 0 标识 主键 是 允许空 否 是 是 是 是 是 是 是 是 是 是 是 是 是 默认值 说明 - 8 -

15 Description text 0 是 表4-4 商品表

5.管理员表(Managers)

管理员表是指登录系统的后台的人员,主要包括以下字段:管理员的编号、管理员的真实姓名(可允许为空)、管理员的登录密码、管理员的照片等。

序号 1 2 3 4 5 6 字段 ManagersID ManaName ManaPwd RightID Photo LoginName 数据类型 Int Varchar Varchar Int Varchar varchar 长度 小数位 标识 20 50 50 20 0 0 0 0 0 0 主键 是 允许空 否 是 是 是 是 是 默认值 说明

表4-5 管理员表

6.订单表(Orders)

订单表主要包括以下字段:订单编号、产生订单的日期、购买客户编号、购买的商品的总价格、购买的商品的总数量、标识该订单是否已经付过款以及店家是否发货的条件。

序号 1 2 3 4 5 6 7 字段 OrdersID PublishDate UserID TotalPrice TotalCount IsPay IsSend 数据类型 Int Datetime Int Float Int Int int 长度 小数位 标识 0 0 0 0 0 0 0 主键 允许空 默认值 是 否 否 否 否 否 是 是 说明

表4-6 订单表

7.订单详细表(OrderDetails)

订单详细表是对订单表的进一步补充,主要包括以下字段:有详细订单的编号、

- 9 -

所对应的订单编号、购买的商品的编号、购买某种商品的数量、商品的单价。

序号 字段 1 2 3 4 5 数据类型 长度 小数位 标识 主键 0 0 0 0 0 是 允许空 默认值 说明 否 否 否 否 否 OrderDetailsID Int OrderID GoodsID Quantity UnitPrice Int Int Int float 表4-7 订单详细表

8.权限表(Right)

权限表主要包括以下字段:有权限的编号、权限名称。

序号 字段 1 2 RightID RightName 数据类型 Int varchar 长度 50 小数位 标识 0 0 主键 是 允许空 默认值 说明 否 是

表4-8 权限表

- 10 -

第五章 系统实现

5.1首页(登录、注册、浏览商品)

图5-1 系统首页图

功能介绍:本系统的首页显示了本网店的一些商品的信息,用户可以在首页点击某商品显示商品的详细信息。

首页商品显示的代码,在本页面主要采用了数据源SqlDataSource 和gridView: 数据源SqlDataSource的源代码如下:

ProviderName=\"System.Data.SqlClient\" SelectCommand=\"select top 12 * from Goods order by SellNum desc\">

- 11 -

5.2 根据条件查询符合条件的相应商品

图5-2 根据条件查找商品

图5-3 查找到的商品

如图5-2所示,根据首页客户选择的商品类别以及在‘关键字’的文本框中输入的值,来搜索符合相应条件的商品列表(如图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);

Response.Redirect(\"SearchByKey.aspx?firId=\"+firId +\"&key=\"+key); }

运行上述代码后,会跳转到SearchByKey.aspx页面,该页面要接受相应传过来的数据,并进行数据绑定,实现代码如下:

- 12 -

protected void Page_Load(object sender, EventArgs e) {

if (!IsPostBack) {

int firId =Convert .ToInt32 ( Request.QueryString[\"firId\"]); string keys = Request.QueryString[\"key\"].ToString(); BindByKeys(firId ,keys); } }

string strCon =

ConfigurationManager.ConnectionStrings[\"MyCon\"].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 WHERE 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.Tables[0]; SearchByKeyWords.DataBind(); }

- 13 -

5.3购物车的实现

图5-4 选中某商品,查看某商品信息

图5-5 某商品(图5-4)详细信息

图5-6 购物车图

功能介绍:

- 14 -

当用户登录到系统的首页后,用户可浏览相应商品的信息,点击商品(如图5-4所示)查看商品的详细信息,即进入图5-5所示的见面,当用户确定购买商品后把商品添加到购物车中,然后可对购物车中的商品数量进行修改,也可以对已加入到“购物车”中,最后又不想购买的商品进行删除。

首先是把商品添加的购物车中代码的实现,要添加到购物车是,要对用户是否登录进行判断,若登录过后就进入购物车界面看到已选择的商品(如图5-6所示),否则,进入用户登录界面,实现代码如下:

5.3.1添加商品到购物车的实现

protected void imgBtnBuy_Click(object sender, ImageClickEventArgs e) {

if (Session[\"CurrentUser\"] != null) {

if (Session[\"Cart\"] == null) {

this.CreateCart(); } else {

DataTable cart = Session[\"Cart\"] as DataTable; if (this.ExistGoods(cart)) {

this.AddGoodsToSession(cart); } }

Response.Redirect(\"Cart.aspx\"); } else {

- 15 -

Response.Redirect(\"UserLogin.aspx\"); } }

/// 新建购物车表 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) {

foreach (DataRow dr in cart.Rows) {

if (dr[\"GoodsName\"].ToString().Equals(this.labGoodsName.Text.Trim())) {

dr[\"Quantity\"] = Convert.ToInt32(dr[\"Quantity\"]) + 1; Session[\"Cart\"] = cart; Response.Redirect(\"Cart.aspx\"); } } return true; }

- 16 -

/// 添加新商品

public void AddGoodsToSession(DataTable cart) {

DataRow dr = cart.NewRow();

dr[\"GoodsID\"] = ViewState[\"GoodsID\"].ToString(); dr[\"GoodsName\"] = this.labGoodsName.Text.Trim(); dr[\"Quantity\"] = \"1\";

dr[\"UnitPrice\"] = this.labPrice.Text.Substring(0, this.labPrice.Text.Length - 1); ;

dr[\"Picture\"] = this.imgPhoto.ImageUrl; cart.Rows.Add(dr); Session[\"Cart\"] = cart; }

5.3.2对购物车商品的修改的实现

protected void gvCart_RowCommand(object sender, GridViewCommandEventArgs e) {

if (e.CommandName == \"Add\") {

int goodsId = Convert.ToInt32(e.CommandArgument); foreach (DataRow dr in ((DataTable)Session[\"Cart\"]).Rows) {

if (Convert.ToInt32(dr[\"GoodsID\"]) == goodsId)

dr[\"Quantity\"] = Convert.ToInt32(dr[\"Quantity\"]) + 1; }

BindCart(); }

if (e.CommandName == \"Minus\") {

- 17 -

int goodsId = Convert.ToInt32(e.CommandArgument); foreach (DataRow dr in ((DataTable)Session[\"Cart\"]).Rows) {

if (Convert.ToInt32(dr[\"GoodsID\"]) == goodsId) {

dr[\"Quantity\"] = Convert.ToInt32(dr[\"Quantity\"]) - 1; }

if (Convert.ToInt32(dr[\"Quantity\"]) == 1) {

Button btnMinus = gvCart.FindControl(\"btnMinus\") as Button; btnMinus.Enabled = false; } }

BindCart(); } }

protected void gvCart_RowDeleting(object sender, GridViewDeleteEventArgs e) {

DataTable cart = Session[\"Cart\"] as DataTable; cart.Rows[e.RowIndex].Delete(); Session[\"Cart\"] = cart; BindCart(); }

private void BindCart() {

cart = (DataTable)Session[\"Cart\"]; TotalPrice(cart); gvCart.DataSource = cart; gvCart.DataBind();

- 18 -

}

5.4 订单的产生

用户点击“结算”按钮时,同时产生订单。实现代码如下:

protected void imgBtnCaculate_Click(object sender, ImageClickEventArgs e) {

int goodsQuantity = 0;

if (Session[\"Cart\"] == null || ((DataTable)Session[\"Cart\"]).Rows.Count == 0) {

Response.Write(\"\");

return; }

Orders orders = new Orders(); orders.PublishDate = DateTime.Now; if (labTotalPrice.Text != String.Empty) {

orders.TotalPrice = Convert.ToDecimal(labTotalPrice.Text); }

//根据loginName获得id orders.UserID =

CustomersBLL.GetUserIDByName(Session[\"CurrentUser\"].ToString());

/// 计算购买商品的数目

foreach (DataRow dr in ((DataTable)Session[\"Cart\"]).Rows) {

goodsQuantity += Convert.ToInt32(dr[\"Quantity\"]); }

orders.TotalCount = goodsQuantity; OrdersBLL.AddOrders(orders);// 订单生成

- 19 -

//详细订单

OrderDetails orderDetails = new OrderDetails(); Goods goods = new Goods(); Orders order = new Orders();

foreach (DataRow dr in ((DataTable)Session[\"Cart\"]).Rows) {

orderDetails.GoodsID = Convert.ToInt32(dr[\"GoodsID\"]); orderDetails.OrderID = OrdersBLL.GetMaxID(); orderDetails.Quantity = Convert.ToInt32(dr[\"Quantity\"]);

orderDetails.UnitPrice = (float)Convert.ToDouble(dr[\"UnitPrice\"]); OrdersDetailsBLL.AddOrderDetails(orderDetails); }

foreach (DataRow dr in ((DataTable)Session[\"Cart\"]).Rows) {

int goodsId = Convert.ToInt32(dr[\"GoodsID\"]); int quantity = Convert.ToInt32(dr[\"Quantity\"]); int storeNum = GoodsBLL.GetStoreNum(goodsId); int sellNum = GoodsBLL.GetSellNum(goodsId);

GoodsBLL.UpdateStoreNum(storeNum - quantity, goodsId); GoodsBLL.UpdateSellNum(sellNum + quantity, goodsId); }

Session.Remove(\"Cart\");

Response.Write(\"\");

}

- 20 -

5.5添加商品(后台界面)

图5-7 商品添加图

功能介绍:

如上图所示,当管理员进入到商品的添加页面时,输入商品的信息,当点击“添加商品”按钮后,下面的gridview控件数据会更新,把刚插入的最新的信息显示在最上面,以确保商品添加成功!实现代码如下:

protected void btnAddGoods_Click(object sender, EventArgs e) {

Goods goods = new Goods();

goods.GoodsName = txtGoodsName.Text; goods.Picture = FileUploadPic.FileName; goods.ISBN = txtISBN.Text;

goods.CategoryID = Int32.Parse(ddlCategory.SelectedItem.Value); goods.Company = txtCompany.Text;

goods.UnitPrice = float.Parse(txtUnitPrice.Text);

- 21 -

goods.PublishDate = DateTime.Parse(txtPublishDate.Text); if (txtEndDate.Text.Trim() != null) {

goods.EndDate = txtEndDate.Text; }

goods.StoreNum = Int32.Parse(txtStoreNum.Text.Trim()); fileName));

}

if (cb_IsHot.Checked) {

goods.IsHot = 1; }

if (FileUploadPic.HasFile) {

string picPath = FileUploadPic.PostedFile.FileName;

string fileName = picPath.Substring(picPath.LastIndexOf(\"\\\\\") + 1); string picExtend = picPath.Substring(picPath.LastIndexOf(\".\") + 1); goods.Picture = fileName;

FileUploadPic.SaveAs(Server.MapPath(\"~\" + \"/goodsPic/\" + goodsBll.AddGoods(goods); } else {

Response.Write(\"请上传图片!\")

}

- 22 -

第六章 系统总结

6.1系统特点、优势

本系统前台能完成顾客的登录、浏览商品、进一步浏览商品的详细信息、更加条件查找商品、选购商品、查看订单、修改购物车中的商品的数量、删除购物车中的商品、结算购车车中购买的商品、产生订单。根据客户购买的商品数量修改数据库中商品的数量。

本系统的后台管理员主要完成商品的添加、商品一级类别、二级类别的添加、商品的修改、客户的管理、以及订单的出来等功能。

6.2系统不足

外界面的友好性可能还不够,也许有些地方只是按照自己的理解设计的,可能存在缺陷,以后慢慢拓宽和改善,也由于自己努力不够,能力有限,希望在以后的学习中让系统尽可能的从各方面完善。

- 23 -

因篇幅问题不能全部显示,请点此查看更多更全内容