《网上家具销售系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《网上家具销售系统的设计与实现毕业论文.doc(45页珍藏版)》请在三一办公上搜索。
1、网上家具销售系统的设计与实现摘 要本设计以ASP.NET为开发技术,以SQL SERVER 2005作为后台数据库,以C#为开发语言,阐述一个在线电子商务购物系统的设计思路,并对系统的具体实现进行分析。该系统分为前台展示和用户中心、后台管理三个模块,其中前台管理模块包括会员登录、产品展示、购物车,后台管理模块包括订单管理、库存管理、系统管理、用户管理、管理员管理。普通客户在浏览页面时,可以进行商品的浏览、购买、下定单、注册成为会员,查看和修改用户信息等操作。管理员登录成功后,将进入后台管理模块,管理员可以进行商品的添加、修改、删除,对用户订单进行处理,查询客户信息,以及对客户基本信息进行操作等
2、。通过这些前台、后台功能模块的设计,基本上实现了整个网上在线交易过程。经测试,系统运行正确。关键词:ASP.NET;SQL Server 2005;在线电子商务购物AbstractThis design with for development technology, with SQL SERVER 2005 as the backend database in c #, for developing language, this paper expounds an online e-commerce shopping system design, and implementation of
3、system is analyzed. This system is divided into front desk management and management background two modules, which receptionist management module includes members login, product exhibition, shopping cart, background management module includes order anagement, inventory management, system management,
4、 user management, the administrator management. Ordinary customers in the browse pages, can undertake commodity browsing, purchase and order, registered membership, viewing and modify user information operations. Administrator, will enter after login successfully background management module, the ad
5、ministrator can undertake commodity add, modify and delete, user order processing, inquires the customer information, as well as to the basic information about the clients operation, etc. Through these front desk, backstage function module design, basically realized the whole on-line transaction. By
6、 test of the operation of the system, correct. Keyword:ASP.NET;SQL Server 2005;Online e-commerce shopping目 录引 言1第1章 系统分析11.1 需求分析11.2 可行性分析1第2章 系统设计22.1 系统目标22.2 系统流程图32.3 系统功能结构42.4 系统预览42.5 构建开发环境62.6 数据库设计62.7 文件夹组织结构12第3章 详细设计133.1 公共类的设计133.2 系统前台模块设计173.3 系统后台模块设计23结 论32参考文献33致 谢34附 录35 引 言随着网
7、络的迅猛发展,对人们传统的生活方式产生了巨大的冲击,传统的销售模式已不能满足大众的需求,电子商务这种虚拟的销售模式开始得到人们青睐,网上购物已经被越来越多的大众所接受。电子商务平台系统主要的目的是实现网上购物信息化管理。它主要的业务是在线销售,因此本系统最核心的功能便是实现网上在线销售功能。项目实施后,将为企业提供一个崭新的销售渠道,面对的将是一个庞大的消费群体,可以快速并广泛的扩大企业知名度,同时还能够扩展企业销售渠道,扩大商品消费群体,提高企业效益。而系统的维护和管理仅需要几个人就能完成,企业无需另外支付销售人员工资及柜台装修费用,可以极大地提高企业的经济效益和企业的竞争力。第1章 系统分
8、析1.1 需求分析 随着中国市场经济的日趋成熟,多种销售模式已经成为提高企业生存的一种竞争力,在这信息化的时代,如何能够利用电子商务平台提高企业内部管理效率、对外展示产品信息及销售已经成为企业普遍面临的问题。1.2 可行性分析1) 经济性 通过网站对企业的产品进行全面的展示及销售,一方面可以利用网络对产品进行宣传,扩大产品的知名度,另一方面利用电子商务平台对产品销售,大大提高了人员的工作效率,同时在经营过程中,企业能够动态的了解到产品的市场需求情况,为企业经营决策提供直观的数据,提高企业的经济效益。2) 技术性利用电子商务平台,实现了通过网络对产品信息进行发布,展示,销售等一系列功能。系统中设
9、置了管理产品及销售模块,为客户提高了一个良好的购物平台,同时也方便管理,大大提高个人办公的工作效率,提高企业的竞争力。第2章 系统设计2.1 系统目标根据具有销售功能的网站平台,对数据流量的要求比较高,为满足使用方便,操作灵活等设计需求,系统设计时应满足以下几个目标:1) 界面设计美观友好,操作简便。2) 全面、分类展示商城内的所有商品。3) 显示商品的详细信息,方便顾客了解商品信息。4) 采用诸如SQL2005大型数据库结构。5) 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为错误。6) 系统最大限度的实现易维护性和易操作性。7) 系统运行稳定、安全可靠。2.2 系统流程图网上家具
10、销售系统流程图,如图2.1所示。网上家具销售系统网站访问者网站管理员注册登录进行商品信息管理、订单管理等登录选择商品购物车更改商品数量查看订单购买支付浏览网站其他模块否否是是否是否否是是图2.1网上家具销售系统流程图2.3 系统功能结构网上家具销售系统前台管理功能结构如图2.2所示。网上家具销售系统后台管理系统订单管理库存管理系统管理管理员管理用户管理编辑订单查询订单商品添加商品管理商品类别添加商品类别管理上传管理管理会员添加管理员删除管理员图2.2 后台功能结构图2.4 系统预览网上家具销售系统是由多个web页面组成,下面列出几个典型页面,其他页面参见作品。网站首页如图2.3所示,该页面展示
11、了站内商品,并提供了商品分类导航等信息。图2.3 网站首页网站商品分类导航页面如图2.4所示,该页面可以使客户选定具体分类后显示的所有相关材质商品,客户可以通过此页面浏览到商品的相关信息。图2.4 商品分类导航页面网站购物车页面如图2.5所示,通过该页面,网站会员可以详细了解和处理购物信息。图2.5 网站购物车页面网站后台页面如图2.6所示,该页面主要包括订单管理、库存管理、系统贡献、用户管理等。图2.6 网站后台页面2.5 构建开发环境 1)网站开发环境网站开发环境:Microsoft Visual Web Developer 2005集成开发环境。网站开发语言:ASP.NET+C#。网站后
12、台数据库:SQL Server 2005。开发环境运行平台:Windows XP(sp2)/ Windows Server2003(sp1) 2)服务器端操作系统:Windows Server 2003(sp1)。Web服务器:Internet信息服务(IIS)管理器。浏览器:IE6.0网站服务器运行环境:Microsoft.NET Framework SDK v2.0. 3)客户端浏览器:Internet Explorer6.0分辨率:最佳效果1024*7682.6 数据库设计本系统数据库采用SQL Server 2005数据库,系统数据库名称为db_NetStore。数据库db_NetSt
13、ore中包含7张数据表。下面分别给出数据表概要说明、数据库E-R图、数据表的结构。1)数据表概要说明 针对网站后台数据库的设计,为使数据库数据表能更清晰明朗化,在此展示后台数据表属性结构图,该图中包含系统中所有的数据表,如图2.7所示。管理员信息表商品信息表商品类型表订单详细表图片信息表会员信息表商品订单表图2.7 数据表树形结构图2)数据库E-R图分析。通过对网站进行的需求分析、网站流程设计以及系统功能结构的确定,规划出系统中使用的数据库实体对象分别为 “会员信息”、“商品类型”、“商品信息”、 “商品订单”、“订单详细”、“管理员信息”和“图片信息”实体,实体E-R图如下所示。为了使用户能
14、够购买到产品,必须注册成为该网站的会员。会员信息的实体E-R图如图2.8所示。会员信息用户名密码真实姓名性别创建日期邮编联系地址联系号码E-mail地址图2.8 会员信息的实体E-R图为了使用户在网上购物时,能够按照自己所需要的商品类别进行选购,将所有商品划分类别。商品类型的实体E-R图如图2.9所示。商品类型类型编号类型名称图2.9 商品类型的实体E-R图对于网上商城所展示的商品,为了使客户详细了解商品,将商品所有相关信息都展示出来,商品信息实体E-R图如图2.10所示。商品市场价是否为卧室商品图片商品热销价商品信息是否为餐厅商品简介商品编号进货日期是否为客厅商品类别商品名称图2.10 商品
15、信息实体E-R图当消费者选购好商品放入购物车后,如果不再继续购物,便可以前往服务台,进行选择商品运输方式等相关操作,然后提交订单。商品订单实体E-R图如图2.11所示。订单详细表号商品对应订单号商品总金额备注商品订单详细商品代号商品数量图2.11 商品订单实体E-R图当用户提交完商品订单,需要进一步了解所购买商品的信息,如所购买商品的金额、数量、订单号等。商品订单详细E-R图如图2.12所示。商品市场价商品订单编号是否发货运输方式商品订单是否打折接收姓名商品费用订单总费用 图2.12 商品订单详细E-R图在网站的维护过程中,管理员的角色尤为重要。管理员实体E-R图如图2.13所示。管理员密码管
16、理员登录名管理员真实姓名E-mail地址管理员信息管理员编号创建时间 图2.13 管理员实体E-R图在网站后台操作过程中,管理员需要将商品图片上传。图片信息实体E-R图如图2.14所示。图片信息图片名称商品图片图2.14 图片信息实体E-R图3)数据库逻辑结构设计完成实体E-R图后根据需要设计数据表结构,本系统中应用的数据表共7个表,具体信息如下。 tb_Admin(管理员信息表)表tb_Admin用于保存管理员的基本信息,如图2.15所示。图2.15 tb_Admin管理员信息表 tb_BookInfo(商品信息表)表tb_BookInfo用于保存商品的基本信息。在商品信息表(tb_Book
17、Info)中,ClassID字段是用来确定该商品所属类别的ID代号,与商品类别表(tb_Class)的主键ClassID相对应,如图2.16所示。图2.16 tb_BookInfo商品信息表 tb_Class(商品类别表)表tb_Class用于保存商品类别的基本信息,如图2.17所示。图2.17 tb_Class商品类别表 tb_Detail(订单详细表)表tb_Detail用于存储订单中商品的详细信息,如图2.18所示。图2.18 tb_Detail订单详细表 tb_Image(图片信息表)表tb_Image用于存储管理员上传的图片详细信息,如图2.19所示。图2.19 tb_Image图片
18、信息表 tb_Member(会员信息表)表tb_Member用于存储会员的基本信息,包括用户名、密码、真实姓名等,如图2.20所示。图2.20 tb_Member会员信息表 tb_OrderInfo(商品订单表)表tb_OrderInfo用于保存用户购买商品生成的订单信息,在订单信息表(tb_OrderInfo)中,IsConfirm用来标识订单是否被确认,当确认完成后,开始发送货物,发送货物状态用IsSend字段来表示,货物是否交到用户手中,用IsEnd字段来表示。从确认到货物移交到用户手中的每一步,都需要一个跟单员,其中跟单员的ID代号用字段AdminID来表示,该字段与管理员表(tb_A
19、dmin)中的主键AdminID相对应,如图2.21所示图2.21 tb_OrderInfo商品订单表2.7 文件夹组织结构本系统完成后,整体文件组织结构展示如图2.22所示。公共类文件夹数据库文件夹图片文件夹会员管理文件夹用户控件文件服务台页面网站首页产品展示页面母版页面用户注册购物车页面商品信息页面更新会员信息系统配置文件图2.22 网站文件组织结构图第3章 详细设计3.1 公共类的设计在本系统中,以类的形式来组织、封装一些常用的方法和事件,以达到提高代码的重用率。3.1.1 Web.Config文件设计 在本系统中Web.Config文件配置系统的总体信息,如设置数据库连接的信息。连接数
20、据库代码如下: /appSettings3.1.2 数据库操作类的编写在本系统中共建了6个类,具体如下。CommonClass:用于管理在项目中用到的公共方法,如弹出提示对话框、随机验证码等。DBClass:用于管理在项目中队数据库的各种操作,如连接数据库、获取数据集等。GoodsClass用于管理对商品信息的各种操作。OrderClass:用于对购物订单信息的各种操作。OrderProperty:用于对购物订单信息的确认操作。UserClass:用于管理对用户信息的各种操作。下面以CommonClass、DBClass两个类的创建为例进行具体分析。 1)类的创建在项目中找到App_Code文
21、件夹,然后单击鼠标右键,在弹出的菜单中选择“添加新项”“类”,并将其命名为相对应的类,如CommonClass,单击“添加”按钮即可创建一个新类。 2)CommonClass类 CommonClass类用于管理在项目中用到的公共方法,主要包括MessageBox,MessageBoxPage,RandomNum方法,下面分别介绍。 MessageBox(string TxtMessage)方法 MessageBox方法用于在客户端弹出对话框,提示用户的某种操作。其代码如下:public string MessageBox(string TxtMessage) string str; str =
22、 alert( + TxtMessage + ); return str; MessageBoxPage (string TxtMessage) 方法 MessageBoxPage方法用于在客户端弹出对话框,提示用户执行某种操作或已完成了某种操作,并刷新页面。代码如下:public string MessageBoxPage(string TxtMessage) string str; str = alert( + TxtMessage + );location=javascript:history.go(-1); return str; RandomNum(int n) 方法 RandomN
23、um(int n) 方法用来生成英文字母和数字组合成4位的验证码,常用于登录界面,用于防止用户利用注册机子都注册、登录或灌水。代码如下:public string RandomNum(int n) string strchar = 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z; string VcArray = strchar.Split(,); string VNum = ; int temp
24、 = -1; Random rand = new Random(); for (int i = 1; i n + 1; i+) if (temp != -1) rand = new Random(i * temp * unchecked(int)DateTime.Now.Ticks); int t = rand.Next(61); if (temp != -1 & temp = t) return RandomNum(n); temp = t; VNum += VcArrayt; return VNum; 3)DBClass类 DBClass类用于管理在项目中对数据库的各种操作,主要包括Get
25、Connection、ExecNonQuery、ExecScalar、GetDataSet、GetCommandProc方法等,下面分别详细介绍。 GetConnection方法,代码如下: public SqlConnection GetConnection() string myStr = ConfigurationManager.AppSettingsConnectionString.ToString(); SqlConnection myConn = new SqlConnection(myStr); return myConn; ExecNonQuery方法,代码如下: public
26、 void ExecNonQuery(SqlCommand myCmd) try if (myCmd.Connection.State != ConnectionState.Open) myCmd.Connection.Open(); myCmd.ExecuteNonQuery(); catch (Exception ex) throw new Exception(ex.Message,ex); finally if (myCmd.Connection.State = ConnectionState.Open) myCmd.Connection.Close(); ExecScalar方法,代码
27、如下:public string ExecScalar(SqlCommand myCmd) string strSql; try if (myCmd.Connection.State != ConnectionState.Open) myCmd.Connection.Open(); strSql=Convert.ToString(myCmd.ExecuteScalar(); return strSql ; catch (Exception ex) throw new Exception(ex.Message, ex); finally if (myCmd.Connection.State =
28、ConnectionState.Open) myCmd.Connection.Close(); GetDataSet方法,代码如下: public DataTable GetDataSet(SqlCommand myCmd, string TableName) SqlDataAdapter adapt; DataSet ds = new DataSet(); try if (myCmd.Connection.State != ConnectionState.Open) myCmd.Connection.Open(); adapt = new SqlDataAdapter(myCmd); ada
29、pt.Fill(ds,TableName); return ds.TablesTableName; catch (Exception ex) throw new Exception(ex.Message, ex); finally if (myCmd.Connection.State = ConnectionState.Open) myCmd.Connection.Close(); GetCommandProc方法,代码如下:public SqlCommand GetCommandProc(string strProcName) SqlConnection myConn = GetConnec
30、tion(); SqlCommand myCmd = new SqlCommand(); myCmd.Connection = myConn; myCmd.CommandText = strProcName; myCmd.CommandType = CommandType.StoredProcedure; return myCmd; 3.2 系统前台模块设计本网站前台页面共设计了多个链接页面,分别为首页、客厅、卧室、餐厅、购物车,以及分类导航栏的各分类链接页面,主要以首页和购物车管理页面为例进行分析。3.2.1 前台页面技术分析在设计网站功能模块时,主要采用了母版页技术,用来封装前台每个页面的
31、页头、页尾、分类导航和用户登录。而在母版页的这些设计中又主要应用了用户自定义控件,在本系统中设计了5个自定义控件,分别为:menu.ascx、LoadingControl.ascx、navigate.ascx、righ.ascx、bottom.ascx。创建步骤如下: 1)打开解决方案资源管理器,在项目名称上单击鼠标右键选择“添加新项”“Web用户控件”,并为其命名,单击“添加”按钮将Web用户控件添加到项目中。2)将弄好的控件拖动到母版页。3.2.2 首页实现过程首页运行效果如图3.1所示。图3.1 首页运行效果设计步骤: 1)在应用程序中新建一个Web窗体,命名为Default.aspx,
32、再勾选母版页,将MasterPage.master母版页加载到Default.aspx页面中。 2)在页面中添加一个表格,在表格中插入对应的背景图片。3.2.3 购物车管理页面实现过程 1、购物车的功能概述购物车功能的实现是本网站的关键,主要用于显示及管理用户的购物信息。用户在浏览过程中,如果遇到想要买的商品,单击商品下方的“购买”按钮,即可将商品信息添加到购物车中,通过导航页中的“购物车”连接进入购物车页面,可以购买了商品进行查看和编辑等操作,购物车管理页包括的功能主要有:1)将商品添加到购物车。2)浏览购物车中的商品信息。3)修改购物车中的商品数量。4)删除购物车中的商品。5)清空购物车。
33、购物车管理页的运行效果如图3.2所示。图3.2 购物车管理页2、购物车的设计步骤1)在应用程序中新建一个WEB窗体,命名为shopCart.aspx,再勾选母版页,将MasterPage.master母版页加载到shopCart.aspx页面中。2)在页面中添加一个Table表格控件为整个页面布局。从“工具箱”选项中拖放2个Label控件、一个GridView控件和4个LinkButton控件,通过属性窗口设置控件的属性。页面中各个控件的属性设置及用途如下表所示。表3.0 shopCart.aspx中各控件的属性设置及其用途控件类型控件名称主要属性设置用途labMessageVisible属性
34、设置为“False”显示提示信息labTotaPriceText属性设置为“0.00¥”显示购物商品总价lnkbtnUpdateText属性设置为”更新购物车”执行“更新购物车”操作lnkbtnClearText属性设置为“清空购物车”执行“清空购物车”操作lnkbtnCheckText属性设置为“前往服务台”执行“前往服务台”操作lnkbtnContinueText属性设置为“继续购物”执行“继续购物”操作gvShopCartAllowPaging属性设置为TrueAutoGeneratoColumns属性设置为FalsePageSize属性设置为6显示用户购买的商品信息 3、代码实现: 在
35、shopCart.aspx.cs页中首先需要定义CommonClass和DBClass类型,以便调用该类中的方法,然后再定义全局变量。其代码如下: CommonClass ccObj = new CommonClass(); DBClass dbObj = new DBClass(); string strSql; DataTable dtTable; Hashtable hashCar; 在Page_Load事件中,创建一个自定义数据源,将其绑定到GridView控件中,显示购物车的商品信息。代码如下:protected void Page_Load(object sender, Event
36、Args e) if (!IsPostBack) ST_check_Login(); if (SessionShopCart = null) this.labMessage.Text = 您还没有购物!; this.labMessage.Visible = true; this.lnkbtnCheck.Visible = false; this.lnkbtnClear.Visible = false; this.lnkbtnContinue.Visible = false; else hashCar = (Hashtable)SessionShopCart; if (hashCar.Count
37、 = 0) this.labMessage.Text = 您购物车中没有商品!; this.labMessage.Visible = true; this.lnkbtnCheck.Visible = false; this.lnkbtnClear.Visible = false; this.lnkbtnContinue.Visible = false; else dtTable = new DataTable(); DataColumn column1 = new DataColumn(No); DataColumn column2 = new DataColumn(BookID); Data
38、Column column3 = new DataColumn(BookName); DataColumn column4 = new DataColumn(Num); DataColumn column5 = new DataColumn(price); DataColumn column6 = new DataColumn(totalPrice); dtTable.Columns.Add(column1); dtTable.Columns.Add(column2); dtTable.Columns.Add(column3); dtTable.Columns.Add(column4); dtTable.Columns.Add(column5); dtTable.Columns.Add(column6); DataRow row; foreach (object key in hashCar.Keys) row = dtTable.NewRow(); rowBookID = key.ToString(); rowNum = hashCarkey.ToString(); dtTable.Rows.Add(row); DataTable dstable; int i =