基于C#+asp.net+sqlserver的网上鲜花销售系统设计与实现(毕业论文+程序源码)
大家好,今天给大家介绍基于C#+asp.net+sqlserver的网上鲜花销售系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦
文章目录:
1、项目简介
- 本系统实现了一般电子商务所具备的功能,如商品浏览、用户登录注册、网上与购物、结算、后台数据库管理等,利用这些功能可以对鲜花销售信息进行较好的管理。
- 网上鲜花销售系统的使用者主要是客户和销售管理者,对于客户来说,实现的功能包括客户浏览鲜花(搜索查询),存放选中的商品的购物车,最后产生订单;对于销售管理者来说,需要对客户的信息,鲜花的信息,以及销售的信息进行管理。
2、资源详情
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:9497个字26页
包含内容:整套源码+完整毕业论文
3、关键词:
购物车;鲜花管理;销售管理;客户管理;搜索查询4、毕设简介
提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。
引言
1.1网上购物
省略
1.2网上购物的优点
省略
1.3基础知识
本系统以方便人们生活,提高人们的生活效率为目标,以先进的计算机信息技术为人们带来更先进更高效率的运作模式,所需要掌握的基础知识如下:了解应用开发工具的现状;ASP.net编程基础;MSSQL Server基础;设计数据库;设计界面;开发数据库。
数据库实现的一些功能有:数据和数据说明的醒目显示;多条件的查询;数据库的设计、界面的设计。
1.4系统软硬件配置要求
服务器端建议用户的计算机使用以下配置(或更高):
(1)CPU:Intel或兼容机PentiumPentium3500MHz或更高
(2)硬盘:7200转/分,剩余空间>100M
(3)内存:建议512MB或更多
(4)WindowsServer、
(5)Microsoft.Visual.Studio.Team.Suite
(6)SQL企业版、
客户端推荐配置
(1)B/S模式,客户端要求不高
(2)显示卡:SVGA,16K色以上显示模式
(3)IE
2系统特色及方案选择
系统采用ASP.NET+MS SQL,B/S模式开发。本系统采用三层架构模式,表示层(view)、数据访问层(DAL)、数据库(database)。三层架构将显示部分和逻辑流程控制分开,利用服务器应用程序实现显示部分,利用商务逻辑层实现程序的流程控制,分层使维护变得方便一些,而且执行效率也会有所提高。
HTML(Hyper Text Markup Language超文本标记语言)是一种用来制作超文本文档的简单标记语言。与常见的字处理文件不同,Web页以超文本标识语言编排格式。它能独立于各种操作系统平台(如UNIX,WINDOWS等)。
HTML文档(即Homepage的源文件)是一个放置了标记的ASCII文本文件,通常它带有.html或.html的文件扩展名。一般的HTML页面具有如下的结构:一对标记作为文件的开头和结尾,在标记后是头部标记,其后是实体标记。
由于本系统涉及到许多数据的处理,这就需要有一个强大的后台数据库管理系统支持。目前主要的数据库有:Access、FoxPro、Excel、Sybase、Oracle、Informix、SQL Server等,其中网络型的SQL Server、Oracle产品安全性远远高于桌面型的Access、FoxPro等数据库。本系统采用的是微软公司的SQL Server2000。SQL Server与XP服务器紧密集成,而XP服务器具有很好的安全性,能够排除所有未经授权的非法用户的访问,确保了SQLServer2000服务器的安全性,符合系统对安全性的要求;用户可以使用Web浏览器查询存储在SQL Server2000数据库中的数据,符合系统远程访问数据库的要求。容量庞大,每个数据库中可创建多达20万个数据表,数据表中的记录的行数只受服务器硬盘空间的限制。ASP.net与SQL Server的完美组合,为中小型乃至企业级的web商业模型提供了一个更为稳定,高效,安全的运行环境。
系统选择B/S结构,B/S(Browser/Server)(图1)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,无需安装特定客户端,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。采用该结构软件的优势在于架构管理软件更是方便、快捷、高效:(1)无须开发客户端软件,维护和升级方便;(2)可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统;(3)具有良好的开放性和可扩充性;(4)可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。因此该结构在管理信息系统开发领域中获得飞速发展,成为应用软件研制中一种流行的体系结构。
页面模块化,很多页面共用的部分集成为一个模块,无须重新编写重复代码,提高了开发效率。
用户或者管理员出现错误操作或者非法操作时或予以屏蔽并给出错误提示,方便修正,保证系统正常运行。
图1 B/S结构图
3系统需求分析与流程设计
3.1系统功能需求分析
网上鲜花销售系统的使用着主要是客户和销售管理者,对客户来说,实现的功能包括客户浏览鲜花,存放选中的商品的购物车,最后产生订单;对销售管理者来说,需要对客户的信息,鲜花的信息,以及销售的信息进行管理(如图2)。
前台客户功能可以概括为以下几点:
鲜花信息模块:包括鲜花信息的浏览,查询搜索等;
用户信息管理模块:处理用户注册、登录验证;
购物车模块:可以添加自己喜欢的鲜花;
订单模块:此模块中的信息由购物车结账产生,可以供客户查询订单状态,以及及时修改订单信息。
后台管理者功能可以概括为以下几点:
客户管理:可以查询、修改客户信息;
鲜花管理:可以添加、修改、删除鲜花信息;
销售管理:处理客户的订单,查询订单以及销售的情况;
3.2系统流程分析
客户购物的流程是整个系统流程最重要的部分,不管客户是否登录都可以进行商品浏览以及进行购物,未登录的客户可以在最后结账时进行登录验证,客户登录流程如图3所示。
图3 购物流程图
4数据库设计
4.1 系统E-R图
由于直接将显示世界信息按具体的数据组织模型进行组织,必须同时考虑很多因素,设计工作非常复杂,并且效果也不很理想,因此,需要一种方法来对现实世界的信息结构进行描述。E-R方法就是一种实体–关系方法,而其使用的工具就是E-R图。E-R图由实体、实体的属性以及实体之间的关系三部分组成,实体是具有相同的性质并且彼此之间可以相互区分的现实世界对象的集合;属性是实体所具有的特征,它是描述实体或者关系的性质的数据项;实体之间的关系通常是指不同实体之间的关系。网上鲜花销售系统的E-R图如图4,5,6,7所示:
4.2数据库表设计
鲜花列表,记录鲜花的基本信息,主要包括FlowerID鲜花编号,FlowerSerialNumber鲜花序列号,FlowerName鲜花名称,FlowerStock鲜花货存,FlowerPrice,FlowerDescription鲜花说明,FlowerImage鲜花图像,其中鲜花编号为鲜花列表的主键。
表1 鲜花信息表
订单表,一张订单可以订购多种鲜花,所以用两张表来存储数据。订单的基本信息表里面不包含具体的订购哪种鲜花的信息,这张表主要包括OrderID订单编号,UserID用户编号,Address地址,PostCode邮编,Telephone电话,OrderDate下单时间,Dispatched是否已经发货,其中订单编号为订单表的主键。
表2 存储订单表
定单详情表,这张表中存储了订单中具体的关于已订购鲜花的信息,主要包括OrderDetailID订单详情编号,OrderID订单编号,FlowerID鲜花编号,Quantity数量,其中订单详情编号为订单详情表的主键。
表3 订单详情表
购物车表,顾客将商品放在购物车里面时,购物车表中就会添加一条记录。其中的CartID中存放的是顾客的UserID,由于顾客可以先选购后登录然后下订单,所以CartID在这种情况下就存放临时产生的顾客ID,这张表主要包括RecordID购物车记录编号,CartID购物车编号,FlowerID鲜花编号,Quantity数量,DateCreated购物车创建时间,其中购物车记编号为购物车表的主键。
表4 购物车表
用户信息表,用来记录用户的一些基本信息,主要包括UserID用户编号,UserName用户名,Password密码,Address地址,PostCode邮编,Telephone电话,其中用户编号为用户信息表的主键。
表5 用户信息表
5用户管理权限
管理员:在此系统中有且只有一个管理员,即系统管理员。他具有一般用户所没有的权限。他能够通过用户名(admin)密码(admin)进行登录,在管理栏中能够进行鲜花的增加与删除。
普通用户:主要是分为两种,一种之前已经注册过的用户,一种是一般的浏览网站的用户。已经注册过的用户可以浏览鲜花并且下单购买,然而一般的普通用户,只能浏览鲜花,他们只有在注册过后才能够下单购买鲜花。
6系统实现与分析
6.1购物车
购物车分为两种,一种是已经登录过的用户的购物车,在购物车编号中可以看到一个为具体数字的编号,购物车的ID等于用户ID另外一中是未登录过的用户的购物车,在购物车编号中可以看到一个字符串,该字符串保留在cookies,是利用System.GuidClass产生一个随机GUID(全局唯一标识符),回写到客户端指定的Cookie中,同时返回TempCartId作为购物车的编号。
注释:没有登录过的用户其购物车的编号是一个字符串,如图8,4906132b-567b-47f8-8be4-9a77cf697dcc,它是利用System.Guid.Class产生一个随机全局唯一标识符GUID。
图8 购物车1
注释:已登录过的用户其购物车编号为一个整型数字如图9。
主要代码如下:
public String GetShoppingCartID()
{
HttpContext Context = HttpContext.Current;
// 如果该用户已经通过验证后登录了系统,
那么以该用户的UserID作为购物车ID
if (Context.User.Identity.Name != "")
{
return Context.User.Identity.Name;
}
// 否则, 如果浏览器Cookie中已经分配给该用户一个购物车ID
if (Context.Request.Cookies["ShoppingCartID"] != null)
{
return Context.Request.Cookies["ShoppingCartID"].Value;
}
else
{
// 利用System.Guid Class产生一个随机GUID(全局唯一标识符)
Guid TempCartId = Guid.NewGuid();
// 回写到客户端指定的Cookie中
Context.Response.Cookies["ShoppingCartID"].Value = TempCartId.ToString();
// 同时返回TempCartId
return TempCartId.ToString();
}
}
注释:送货地址采用了一个必须输入验证,邮编和联系电话采
6.2用户登录与注册
当已经注册过的用户输入其用户名以及密码单击登录按钮便可以登录,但如果为新用户,单击注册按钮,在下一个页面中输入信息后再单击注册按钮后便可成为注册用户。
用户登录主要实现过程:通过spUserLogin存储过程获得UserID,作为用户ID,在通过GetShoppingCartID()获得TempCartID,之后再调用一个存储过程spShoppingCartMigrate将购物车合并。用户注册的实现过程与用户登录的实现过程基本上一样。
主要代码如下:
用户登录
if (Page.IsValid)
{
String ID = da.spUserLogin(tbUserName.Text.Trim(), tbPassword.Text.Trim());
if (ID != null)
{
String TempCartID = da.GetShoppingCartID();
// 将当前临时的购物车清单转换到登录用户名下
da.spShoppingCartMigrate(TempCartID, ID);
// 保存登录用户Cookies
Response.Cookies["ShoppingCartUser"].Value = tbUserName.Text.Trim();
// 重定向浏览器到目标页面
FormsAuthentication.RedirectFromLoginPage(ID, false);
}
else
{
da.Alert("用户名或密码错误!");
}
}
用户注册的实现代码:
if (Page.IsValid)
{
//保存旧的购物车编号,以便注册后合并购物车
String TempCartID = da.GetShoppingCartID();
//添加用户信息到数据库
String UserID = da.AddUser(tbUserName.Value,tbPassword.Value,
tbAddress.Value, tbPostCode.Value, tbTelephone.Value);
if (UserID != "")
{
//将用户ID指定为通过安全登录的信息
FormsAuthentication.SetAuthCookie(UserID,false);
//合并购物车
da.spShoppingCartMigrate(TempCartID,UserID);
//将用户姓名保存到Cookies中
Response.Cookies["UserName"].Value = Server.HtmlEncode(tbUserName.Value.Trim());
//重定向到购物车界面
Response.Redirect("shopcart.aspx");
}
else
{
da.Alert("该用户名已被注册!");
}
}
在用户注册的时候需要输入电话号码,电话号码采用了一个正则表达式,只有输入正确的格式才能注册,否则将提示错误信息。
6.3注销
用户可以变化身份登录,主要采取的方法是用户注销,再重新以另外一种身份登录。
注销的实现过程:通过调用.NET的一个控件FormsAuthentication.SignOut()来完成。
主要代码如下:
protected void btnLogout_Click(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
Response.Redirect("index.aspx");
}
6.4下订单
客户在购物车的页面中填完送货地址、邮编及电话后按保存按钮可以下订单,在管理页面中点击查看订单详情可以查看所下订单,如图10,11所示。
主要实现过程:1)获取当前用户的OrderID
2)利用ShoppingCart表和Flower表的内联接,将当前用户的当前购物车复制到当前所产生的订单详情中
3)利用OrderDetails 表和Flower表的内联接,扣除Flower表中的鲜花库存
4)调用另一存储过程spShoppingCartEmpty将购物车清空
图10 下订单
主要代码如下:
CREATE PROCEDURE dbo.spOrdersInsert
(
@UserID INT, @CartID NVARCHAR(50),
@Address VARCHAR(50), @PostCode CHAR(10),
@Telephone VARCHAR(50), @OrderID INT OUTPUT
)
AS
BEGIN TRAN OrdersInsert /* 产生订单 */
INSERT INTO Orders
(
UserID, Address, PostCode, Telephone, OrderDate
)
VALUES
(
@UserID, @Address, @PostCode, @Telephone
GETDATE()
)
6.5撤消订单
客户可以在规定的时间内将自己所下的订单撤消,如图12。
主要实现过程:将Orders表中的Dispatched值设置为1,因为系统的默认为0,0表示未发货,1代表已发货,如果已经发了货,自然就相当于将订单删除。
图12 撤消订单
主要的代码如下:
public void spCancelOrder(int iUserID, int iOrderID)
{
ConnOpen();
SqlCommand1 = new SqlCommand("spCancelOrder", SqlConnection1);
SqlCommand1.CommandType = CommandType.StoredProcedure;
SqlParameter Param1 = new SqlParameter("@UserID", SqlDbType.Int, 4);
SqlParameter Param2 = new SqlParameter("@OrderID", SqlDbType.Int, 4);
SqlCommand1.Parameters.Add(Param1);
SqlCommand1.Parameters.Add(Param2);
Param1.Value = iUserID;
Param2.Value = iOrderID;
SqlCommand1.ExecuteNonQuery();
ConnClose();
}
6.6鲜花管理
当为管理员登录的时候,会在页面的右方看见一个DetailsView的表,可以进行鲜花的添加、删除操作。如果不是管理员登录则不会显示该表,如图13。
主要实现过程:利用SQL语句中的DELETE、INSERT 、UPDATE方法分别实现鲜花的删除,新建,编辑功能。
图13 鲜花添加删除
主要代码如下:
try
{
int UserID = Convert.ToInt32(User.Identity.Name);
if (UserID == 1)
{
lblUserName.Text = "管理员";
DetailsView1.Visible = true;
}
string sSQL = "SELECT [UserID], [UserName], [IdealMoney] FROM [Users] WHERE ([UserID] = " + UserID + ")";
}
catch
{
Response.Redirect("error.aspx?info=请先登录或注册!");
}
}
SQL语句包含在页面上,主要代码如下:
DeleteCommand="DELETE FROM [Flower] WHERE [FlowerID] = @FlowerID"
InsertCommand="INSERT INTO [Flower] ([FlowerSerialNumber], [FlowerName], [FlowerStock], [FlowerPrice], [FlowerDescription], [FlowerImage]) VALUES (@FlowerSerialNumber, @FlowerName, @FlowerStock, @FlowerPrice, @FlowerDescription, @FlowerImage)"
SelectCommand="SELECT * FROM [Flower]"
UpdateCommand="UPDATE [Flower] SET [FlowerSerialNumber] = @FlowerSerialNumber, [FlowerName] = @FlowerName, [FlowerStock] = @FlowerStock, [FlowerPrice] = @FlowerPrice, [FlowerDescription] = @FlowerDescription, [FlowerImage] = @FlowerImage WHERE [FlowerID] = @FlowerID">
结 论
本文简要介绍了典型B/S电子商务网上购物系统的主要体系结构及功能模块,重点讨论了系统开发工具、开发语言等关键技术以及系统的数据库建设,系统流程图和功能模块的代码分析。这些过程的讨论和分析,可以对系统的体系结构,功能模块等有了更深的了解。目前此系统基本可以完全的实现网上购物的功能。但系统仍然有一些不尽人意,而这些问题主要集中在系统的安全上,虽然系统已经通过相关的控制语句对登录用户身份进行验证,但是在当今网络信息安全中,仅仅对用户身份验证是不够的,还需要对传送数据进行加密,防止数据传输过程中被篡改等攻击进行防御。因此在今后的工作里,这些功能的实现还需要更高的技术支持,也只有这样才能完善网上购物系统。
参考文献
[1] 方睿,刁仁宏.数库库原理及应用[M].成都:四川大学出版社,2005。
[2] 石志国,刘冬梅.ASP.NET应用教程[M].北京:清华大学出版社和北京交通大学出版社出版,2005。
[3] 许静雯,谢黎文.ASP.NET网站开发[M].北京:电子工业出版社出版,2006。
[4] RebeccaM.Riordan.ADO.NET程序设计[M].北京:清华大学出版社,2002。
[5] StephenWalthe.ASP.NET揭秘(第二版)[M].北京:中国电力出版社,2004。
[6] 江广顺,余松.ASP.NET 2.0+SQL SERVER热门网络应用开发详解[M].北京:人民邮电出版社,2007。
[7] 龚赤兵.ASP.NET 2.0网站开发实例教程[M].北京:人民邮电出版社,2006。
致 谢
省略
5、资源下载
本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。
序号 | 毕业设计全套资源(点击下载) |
---|---|
本项目源码 | 基于C#+asp.net+sqlserver的网上鲜花销售系统设计与实现(源码+文档)_C#_BS架构_网上鲜花销售系统.zip |