网上购物系统课程设计.doc

上传人:牧羊曲112 文档编号:4296357 上传时间:2023-04-14 格式:DOC 页数:19 大小:375.50KB
返回 下载 相关 举报
网上购物系统课程设计.doc_第1页
第1页 / 共19页
网上购物系统课程设计.doc_第2页
第2页 / 共19页
网上购物系统课程设计.doc_第3页
第3页 / 共19页
网上购物系统课程设计.doc_第4页
第4页 / 共19页
网上购物系统课程设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《网上购物系统课程设计.doc》由会员分享,可在线阅读,更多相关《网上购物系统课程设计.doc(19页珍藏版)》请在三一办公上搜索。

1、网上购物系统1.课程设计的目的近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。同时电子商务网站发展也面对新的机遇和挑战,在政府的大力倡导和扶持下,电子商务网站作为一种新的商业运作模式,推动着社会流通方式的创新,正深入企业活动和百姓生活,成为促使经济发展的重要动力源。从大型的电子商务、政务系统,到普通的在线购物和复杂的电子商务,电子商务网站在当今时代占据着重要地位,制作电子商务网站成为一个热点。网上购物对于消费者来说身处任何地方只要有网络就可以进行

2、消费,不受时间的限制。可以买到当地没有的商品,可以不用辛苦的货比三家确定自己要买的东西,很方便的获得大量的商品信息。同时对于商家来说,网上交易可以省去大量的人员和房租等成本,少量的人员即可进行经营,减少了库存、经营规模和场地的限制。提升了商家在电子商务行业里的核心竞争力,适应时代的潮流。本文研究了运用了 ASP.NET和SQL Server 2000等关键技术建设网上购物系统。着重论述了系统功能和实现、数据流程及存储,包括商品目录、用户注册、网上订货和购物、后台数据库管理等。最终实现用户通过注册,浏览商品。2.设计方案论证2.1需求分析传统的购物两方面分别是买家和卖家。首先卖家开设店铺,展示自

3、己的商品,买家需要到卖家开设店铺的具体地点,到达店铺后买家需要浏览自己喜欢和需求的商品,而对卖家来说需要雇佣人力来为买家介绍商品,最终双方会为商品当面交易付款。这是一个简单的传统购物流程。对于网上购物来说我门可以把买家和卖家看作是客户和管理员。首先管理员在一个购物网站申请一个店铺(一般都是免费的),然后在自己的网页上添加、更新自己的商品信息,包括图片、资料介绍等。此时等待客户浏览商品,当客户找到自己满意的商品时,可联系管理员也就是卖家,双方交易付款。这样一个完整的网上交易过程就结束了。系统具体实现的主要有:从整体操作来说:后台主要是使用SQL Server 2000 来连接数据库,通过管理数据

4、库实现对用户(客户和管理员)信息的管理,权限的设置,对商品信息的更新和保证数据信息的安全性。前台主要是建设用户注册页面、商品信息展示页面,客户反馈页面,购物车页面等等。从运用对象来说:后台主要是指管理员操作系统。能够添加商品,更换商品信息,对客户的注册信息进行管理,对客户的反馈意见给予答复等等。前台主要是指客户能够注册用户和修改个人信息,能够浏览商品,能够管理购物车,能够留言反馈信息等。2.2系统管理模块网上购物系统分为前台模块和后台模块,前台模块主要功能包括会员登录和注册,商品展示、最新商品、订购、销售排行、商品分类、个人信息管理和购物车管理等。后台模块主要功能包括用户信息管理、全局配置管理

5、、商品信息管理、商品分类管理、退出后台。网上购物系统平台功能层次结构图如图1所示。图1 功能层次结构图2.3数据库逻辑结构设计数据库逻辑结构设计依靠E-R图的关系来确定数据之间的依赖联系。用户购买商品产生相应的订单信息,管理员审核用户信息确认无误只后,对订单进行处理。E-R图如图2所示。图2 E-R图用户信息表:保存了所有个人用户的用户名、密码等基本用户信息,具体的描述如下表1所示。表1 用户信息表名称类型说明Emailvarchar注册会员邮箱MDMailvarchar邮箱验证码Passwordvarchar密码CustomerNamevarchar用户名Addressnvarchar联系地

6、址Phonevarchar联系方式Zipvarchar邮政编码Regtimedatetime创建时间IsActivebit是否激活RoleIDbit权限IDIsSpeakbit是否可用商品明细表:商品明细表(products)用来保存商品的详细信息,具体的描述如下表2所示。表2 商品明细表名称类型说明ProductIDint商品ID号ProductNamenvarchar商品名称Authornvarchar所属名称IsRecommendbit是否推荐InPricedecimal进货价格StartPricedecimal起始价格SalePricedecimal销售价格Imgnvarchar图片D

7、escriptionntext商品描述RemainCoutint库存总数StoreIDint分类商城IDTypeIDint商品类型Hitsint点击量Storedecimal评论得分AddTimedatatime上架时间商城分类信息表:商城分类信息表(store)用来保存商城的分类信息。具体的描述如下表3所示。表3 商城分类信息表名称类型说明BIDint信息ID号Namenvarchar信息名称Contentntext信息描述2.4模块详细设计2.4.1登录模块设计登录模块由两个功能构成,分别是用户登录和游客注册功能。对于已经是会员的用户来说,直接点击用户登录按钮输入用户名和密码,经过数据库检

8、测正确后直接跳转到网站首页。而非会员则点击现在注册按钮,系统跳转到注册界面,并填写个人信息之后系统提示用户转到首页。用户登录后可以看到自己的登录状态栏,显示自己的一些常用信息。登录模块的程序流程图如图3所示。图3 登录模块流程图2.4.2个人信息管理模块个人信息管理模块包括用户注册填充,订单管理和修改用户密码。用户可以修改自己的个人信息,方便用户灵活的使用网站进行消费。用户可以查看、删除自己的订单,避免不必要的开支,提高网站的友好性。用户可以修改自己的登录密码,确保用户自己信息透漏给他人时,保持自己账户的安全。修改密码时,用户提交旧的登录密码,之后输入新密码并且再次输入新密码确认,确保两次密码

9、输入一致以免发生手误导致账户不能正常使用,点击确认后系统自动更新,提示用户修改结果。修改密码模块的流程图如图4所示。图4 修改密码的流程图3.设计结果和分析网站商品展示模块是用户进入网站最先看到的界面,设计简洁,实用性强让用户可以最快的获取网站信息,大体分为两部分:根据商品添加时间显示最新的商品信息和该商品是否是热门商品显示商品信息。最新商品展示,按照商品添加时间的先后降序排列显示在table标签中的Repeater控件,利用嵌套表格的形式,将数据绑定到其中。3.1商品分类用户每次登录都可以看到网站更新的最新商品信息,保持网站的新鲜,追赶用户对新产品的需求。同时按照商品经用户购买使用过后,是否

10、是热门商品,来展示比较受用户喜欢的商品,给消费者积极的消费提示。如图5所示。图5 商品分类主要代码:public partial class NewProducts : System.Web.UI.UserControlprotected void Page_Load(object sender, System.EventArgs e)NewList.DataSource = BLL.Product.GetNewProductsList();NewList.DataBind();#region Web 窗体设计器生成的代码override protected void OnInit(Event

11、Args e)/ CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。/InitializeComponent();base.OnInit(e);/ /设计器支持所需的方法 - 不要使用代码编辑器/修改此方法的内容。/ private void InitializeComponent()#endregion3.2用户登录对于已经是会员的用户来说,直接点击用户登录按钮输入用户名和密码,只有输入正确才可以直接跳转到网站首页。登录界面如图6所示。图6 登陆界面主要代码:protected void Submit_Click(object sender, System.EventA

12、rgs e)BLL.User user = new eshop.BLL.User();int userId = user.SignIn(LoginName.Text,Password.Text);/得到临时的购物车编号BLL.ShoppingCart cart = new BLL.ShoppingCart();string tempCartID = cart.GetShoppingCartId();if (userId = 0)Message.Text = 用户名或密码错误!;else/将未通过验证时该用户的匿名购物信息迁移至该用户的个人记录中cart.MigrateCart(tempCart

13、ID, userId.ToString();System.Web.Security.FormsAuthentication.RedirectFromLoginPage(userId.ToString(), CheckCookie.Checked);Response.Redirect(MyAcount.aspx);3.3用户注册而非会员则点击现在注册按钮,系统跳转到注册界面,并填写个人信息之后系统提示用户转到首页。如图7所示。图7 用户注册主要代码:protected void Submit_Click(object sender, System.EventArgs e)/获得注册信息strin

14、g userName = LoginName.Text.Trim();string password = Password.Text.Trim();string question = Question.Text.Trim();string answer = Answer.Text.Trim();/得到原来的CartIdBLL.ShoppingCart cart = new eshop.BLL.ShoppingCart();string tempCartId = cart.GetShoppingCartId();/试图添加新用户BLL.User user = new eshop.BLL.User

15、();int userId = user.AddNewUser(userName, password, question, answer);/如果返回值为-1,则表示用户名存在if (userId = -1)Message.Text = 用户名已存在!;else/设置用户为通过验证System.Web.Security.FormsAuthentication.SetAuthCookie(userId.ToString(),false);/迁移购物车记录cart.MigrateCart(tempCartId, userId.ToString();/将用户重定向回用户帐户页面Response.Re

16、direct(MyAcount.aspx);3.4主界面成功登录系统后,进入主界面,包含修改密码、修改个人资料、购物车和我的购物记录。可以根据需求进行相应的操作。主界面如图8所示。图8 主界面主要代码:namespace eshop/ / MyAcount 的摘要说明。/ public partial class MyAcount : System.Web.UI.Pageprotected void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面#region Web 窗体设计器生成的代码override protec

17、ted void OnInit(EventArgs e)/ CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。/InitializeComponent();base.OnInit(e);/ / 设计器支持所需的方法 - 不要使用代码编辑器修改/ 此方法的内容。/ private void InitializeComponent() #endregion3.5修改密码为了保证系统的安全性,用户应该定期修改密码。如图9所示。图9 修改密码主要代码:protected void Submit_Click(object sender, System.EventArgs e)BLL

18、.User user = new BLL.User();int result = user.ChangePassword(OldPwd.Text.Trim(), NewPwd.Text.Trim(), int.Parse(User.Identity.Name);if (result = 1)Message.Text = 密码修改成功!;elseMessage.Text = 密码输入和原密码不匹配!;3.6查询商品在分类列表中,选择要购买的商品类型,点击计算机软件,依次列出符合需求的信息,可以进行购买。可以节省用户的事件,提高系统的效率。如图10所示。图10 查询商品主要代码:void Show

19、Result(int pageIndex, int pageSize)/绑定Repeater控件products.DataSource = BLL.Product.GetProductsByCategory(int.Parse(Request.QueryStringcategoryId),pageSize, pageIndex);products.DataBind();/调用Product类中的方法获得该类商品的总数int resultCount = BLL.Product.GetProductCountByCategory(int.Parse(Request.QueryStringcateg

20、oryId);int count;/如果查询结果总数是页大小的整数倍if (resultCount%PageSize = 0)count = resultCount/PageSize;PageCount.Text = count.ToString();elsecount = resultCount/PageSize+1;PageCount.Text = count.ToString();this.PageControl.Items.Clear();/绑定页码到DropDownList控件for(int i=0; icount; i+)ListItem item = new ListItem(i

21、+1).ToString(), i.ToString();this.PageControl.Items.Add(item);this.PageControl.SelectedIndex = pageIndex;选中需要购买的商品名字,单击“购买”按钮,即可加入购物车。如图11所示。图11 购买商品主要代码:protected void Page_Load(object sender, System.EventArgs e)/页面第一次加载时if (!Page.IsPostBack)ShowProductInfo();void ShowProductInfo()/获取Get方式传递的Produc

22、tId参数的值int productId = int.Parse(RequestProductId);/获取某个商品的详细信息BLL.ProductDetails pro = BLL.Product.GetProductInfo(productId);/商品是否存在if (pro = null)lblSearchResults.Text = 没有这个商品;else/显示商品详细信息lblProductName.Text = pro.productName;lblPrice.Text = pro.productPrice.ToString();lblIntro.Text = pro.intro;

23、lblClickCount.Text = pro.clickCount.ToString();#region Web 窗体设计器生成的代码override protected void OnInit(EventArgs e)/ CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。/InitializeComponent();base.OnInit(e);/ / 设计器支持所需的方法 - 不要使用代码编辑器修改/ 此方法的内容。/ private void InitializeComponent() #endregion3.7购物车界面用户登录后可以使用购物车功能,将用户所选

24、的商品添加到购物车中,通过GridView控件实现商品的添加。用户点击购买商品,通过产品ID字段添加到订单表中,用户可以在购物车中随时查看信息,并且可以在购物车中删除或清空添加的物品。购物车中的信息通过session保存在缓存中,当用户确定下单之后保存在订单表中。网站拥有购物车功能,可以简化用户购买流程减少不必要的操作。购物车界面如图12所示。图12 购物车界面主要代码:void ShowShoppingCartList() BLL.ShoppingCart cart = new BLL.ShoppingCart();/ 得到用户的购物车IDString cartID = cart.GetSh

25、oppingCartId();/ 如果购物车内没有商品,DataGrid隐藏if (cart.GetItemCount(cartID) = 0) DetailsPanel.Visible = false;MyError.Text = 购物车内没有商品。;else / 绑定购物车信息到DataGridMyList.DataSource = cart.GetItems(cartID);MyList.DataBind();/显示总金额lblTotal.Text = String.Format( 0:c, cart.GetTotal(cartID);加入购物车后,再次确认商品列表,如购买无误,点击“提

26、交”按钮,成功结算商品,进行付款,愉快的购物旅程就结束了。购物车确认界面如图13所示。图13 购物车提交界面主要代码:public partial class CheckOut : System.Web.UI.Pageprotected void Page_Load(object sender, System.EventArgs e)if (!Page.IsPostBack)/得到cartID BLL.ShoppingCart cart = new BLL.ShoppingCart();string cartID = cart.GetShoppingCartId();/绑定购物车信息到Data

27、GridMyDataGrid.DataSource = cart.GetItems(cartID);MyDataGrid.DataBind();/得到购物车总花费TotalLbl.Text = String.Format( 0:c, cart.GetTotal(cartID);protected void SubmitBtn_Click(object sender, System.EventArgs e)BLL.ShoppingCart cart = new BLL.ShoppingCart();string cartID = cart.GetShoppingCartId();decimal

28、totalCost = cart.GetTotal(cartID);string userID = User.Identity.Name;if (cartID!=null & userID!=null)BLL.Orders order = new BLL.Orders();if (order.PayOrder(userID, totalCost) = 1)int orderID = order.PlaceOrder(userID, cartID);Message.Text = 您的订单号为+orderID;SubmitBtn.Visible = false;elseShowErrorMsgBo

29、x();void ShowErrorMsgBox()Response.Write();Response.Write(window.alert(您的预存款不足);Response.Write();4设计体会通过这段时间的系统开发和文档撰写过程,通过查阅、研究大量的相关文献,分析相关领域的特色网站并结合实际,使我对电子商务网站方面的理论知识,包括对它的定义,内涵,特点,功能,技术等方面的研究都有了 更深的了解。并亲自利用所学知识建立了一个网上购物网站。虽然由于时间有限和本人能力有限,这个系统还不够完善,还有许多地方有待改进。但这短短一周的课程设计,对我来说是对学科的一次全面检查。通过理论学习,在课

30、程设计中得到实际上的使用,它使我懂得了如何去开发一个系统或者一个软件,它也使我懂得了软件的结构,在设计过程中使我对ASP.NET技术、SQL Server 2000数据库以及WEB网站开发有了更深入的理解,对即将步入社会的我积累了经验。通过本次设计开发,让我对于编程有了更深入的体会。认识到自己在技术上的不足,需要学习更多的设计方法和编程技术。在以后的开发过程中,要更加细致的分析用户的需求和系统实现的方法,认真思考业务处理过程和用户需求之间的平衡。在分析和思考项目实现方法的过程中,学到了更加实用的知识,让我知道在以后的学习和工作中有了明确的指导方向。5参考文献1刘金岭.冯万利.数据库系统及使用教

31、程M.清华大学出版社.2013.62微软公司.ASP.NET标准教程M.中国劳动社会保障出版社,2011.12 3王辉.黄红超.ASP.NET实用教程M.清华大学出版社.2014.24金旭亮.ASP.NET程序设计教程M.北京:电子工业出版社.2015.35丛书.ASP.NET和网站开发实践教程M.北京:清华大学出版社.2014.36龙马. ASP.NET+SQL Server组建网站实例精讲M.北京:人民邮电出版社.2012.67徐国智.汪孝宜.SQL SERVER数据库开发实例精粹M.北京:电子工业出版社.2010.18薛万欣.电子商务网站建设M.北京:机械工业出版社. 2010.89张启

32、明.ASP.NET+SQL SERVER 网络使用系统开发和实例M.北京:人民邮电出版社.2011.210陈建伟.ASP.NET网站开发教程(第二版)M.北京:清华大学出版社.2010.1附录:using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls

33、;using System.Web.UI.HtmlControls;namespace eshop/ / Register 的摘要说明。/ public partial class Register : System.Web.UI.Pageprotected void Page_Load(object sender, System.EventArgs e)/ 在此处放置用户代码以初始化页面#region Web 窗体设计器生成的代码override protected void OnInit(EventArgs e)/ CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。/

34、InitializeComponent();base.OnInit(e);/ / 设计器支持所需的方法 - 不要使用代码编辑器修改/ 此方法的内容。/ private void InitializeComponent() #endregionprotected void Submit_Click(object sender, System.EventArgs e)/获得注册信息string userName = LoginName.Text.Trim();string password = Password.Text.Trim();string question = Question.Text

35、.Trim();string answer = Answer.Text.Trim();/得到原来的CartIdBLL.ShoppingCart cart = new eshop.BLL.ShoppingCart();string tempCartId = cart.GetShoppingCartId();/试图添加新用户BLL.User user = new eshop.BLL.User();int userId = user.AddNewUser(userName, password, question, answer);/如果返回值为-1,则表示用户名存在if (userId = -1)M

36、essage.Text = 用户名已存在!;else/设置用户为通过验证System.Web.Security.FormsAuthentication.SetAuthCookie(userId.ToString(),false);/迁移购物车记录cart.MigrateCart(tempCartId, userId.ToString();/将用户重定向回用户帐户页面Response.Redirect(MyAcount.aspx);using System;using System.Collections;using System.ComponentModel;using System.Data

37、;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;namespace eshop/ / Search 的摘要说明。/ public partial class Search : System.Web.UI.Pageprivate static int PageSize = 10;protected void Page_Load(object

38、 sender, System.EventArgs e)if (!Page.IsPostBack)if (Request.QueryStringkeywords!=)ShowResult(0, PageSize);void ShowResult(int pageIndex, int pageSize)products.DataSource = BLL.Product.SearchProducts(Request.QueryStringkeywords, pageSize, pageIndex);products.DataBind();int resultCount = BLL.Product.

39、GetSearchResultCount(Request.QueryStringkeywords);int count;if (resultCount%PageSize = 0)count = resultCount/PageSize;PageCount.Text = count.ToString();elsecount = resultCount/PageSize+1;PageCount.Text = count.ToString();this.PageControl.Items.Clear();for(int i=0; icount; i+)ListItem item = new List

40、Item(i+1).ToString(), i.ToString();this.PageControl.Items.Add(item);this.PageControl.SelectedIndex = pageIndex;#region Web 窗体设计器生成的代码override protected void OnInit(EventArgs e)/ CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。/InitializeComponent();base.OnInit(e);/ / 设计器支持所需的方法 - 不要使用代码编辑器修改/ 此方法的内容。/ private void InitializeComponent() #endregionprotected void page_SelectedIndexChanged(object sender, System.EventArgs e)ShowResult(this.PageControl.SelectedIndex, PageSize);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号