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

相关 举报
资源描述
. 网上购物系统 1.课程设计的目的 近年来,随着 Internet 的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。同时电子商务网站发展也面对新的机遇与挑战,在政府的大力倡导和扶持下,电子商务网站作为一种新的商业运作模式,推动 着社会流通方式的创新, 正深入企业活动和百姓生活, 成为促使经济发展的重要动力源。从大型的电子商务、政务系统,到普通的在线购物和复杂的电子商务,电子商务网站在 当今时代占据着重要地位,制作电子商务网站成为一个热点。网上购物对于消费者来说 身处任何地方只要有网络就可以进行消费, 不受时间的限制。可以买到当地没有的商品,可以不用辛苦的货比三家确定自己要买的东西,很方便的获得大量的商品信息。同时对 于商家来说,网上交易可以省去大量的人员和房租等成本,少量的人员即可进行经营,减少了库存、经营规模和场地的限制。提升了商家在电子商务行业里的核心竞争力,适应时代的潮流。 本文研究了运用了 ASP.NET 与 SQL Server 2000等关键技术建设网上购物系统。 着重论述了系统功能与实现、 数据流程及存储 ,包括商品目录、用户注册、网上订货与购物、后台数据库管理等。最终实现用户通过注册,浏览商品。 2.设计方案论证 2.1 需求分析 传统的购物两方面分别是买家和卖家。首先卖家开设店铺,展示自己的商品,买家需要到卖家开设店铺的具体地点,到达店铺后买家需要浏览自己喜欢和需求的商品,而对卖家来说需要雇佣人力来为买家介绍商品,最终双方会为商品当面交易付款。这是一个简单的传统购物流程。 对于网上购物来说我门可以把买家和卖家看作是客户和管理员。 首先管理员在一个购物网站申请一个店铺(一般都是免费的) ,然后在自己的网页上添加、更新自己的商品信息,包括图片、资料介绍等。此时等待客户浏览商品,当客户找到自己满意的商品 时,可联系管理员也就是卖家, 双方交易付款。这样一个完整的网上交易过程就结束了。 系统具体实现的主要有: 从整体操作来说:后台主要是使用 SQL Server 2000 来连接数据库,通过管理数据库实现对用户(客户和管理员)信息的管理,权限的设置,对商品信息的更新和保证数据信息的安全性。前台主要是建设用户注册页面、商品信息展示页面,客户反馈页面,购物车页面等等。 从运用对象来说:后台主要是指管理员操作系统。能够添加商品,更换商品信息,对客户的注册信息进行管理,对客户的反馈意见给予答复等等。前台主要是指客户能够注册用户和修改个人信息,能够浏览商品,能够管理购物车,能够留言反馈信息等。 2.2 系统管理模块 网上购物系统分为前台模块和后台模块,前台模块主要功能包括会员登录与注册,商品展示、最新商品、订购、销售排行、商品分类、个人信息管理和购物车管理等。后台模块主要功能包括用户信息管理、全局配置管理、商品信息管理、商品分类管理、退出后台。网上购物系统平台功能层次结构图如图 1 所示。 1 / 20 . 图 1 功能层次结构图 2.3 数据库逻辑结构设计 数据库逻辑结构设计依靠 E-R 图的关系来确定数据之间的依赖联系。 用户购买商品 产生相应的订单信息,管理员审核用户信息确认无误只后,对订单进行处理。 E-R 图如图 2 所示。 图 2 E-R 图 用户信息表:保存了所有个人用户的用户名、 密码等基本用户信息 ,具体的描述如下表 1 所示。 2 / 20 . 表 1 用户信息表 名称 类型 说明 Email varchar 注册会员邮箱 MDMail varchar 邮箱验证码 Password varchar 密码 CustomerName varchar 用户名 Address nvarchar 联系地址 Phone varchar 联系方式 Zip varchar 邮政编码 Regtime datetime 创建时间 IsActive bit 是否激活 RoleID bit 权限 ID IsSpeak bit 是否可用 商品明细表:商品明细表( products)用来保存商品的详细信息,具体的描述如下表 2 所示。 表 2 商品明细表 名称 类型 说明 ProductID int 商品 ID 号 ProductName nvarchar 商品名称 Author nvarchar 所属名称 IsRecommend bit 是否推荐 InPrice decimal 进货价格 StartPrice decimal 起始价格 SalePrice decimal 销售价格 Img nvarchar 图片 Description ntext 商品描述 RemainCout int 库存总数 StoreID int 分类商城 ID TypeID int 商品类型 Hits int 点击量 Store decimal 评论得分 AddTime datatime 上架时间 商城分类信息表:商城分类信息表( store)用来保存商城的分类信息。具体的描述如下表 3 所示。 表 3 商城分类信息表 名称 类型 说明 3 / 20 3 所示。 . BID int 信息 ID 号 Name nvarchar 信息名称 Content ntext 信息描述 2.4 模块详细设计 2.4.1 登录模块设计 登录模块由两个功能构成,分别是用户登录和游客注册功能。对于已经是会员的用户来说,直接点击用户登录按钮输入用户名和密码,经过数据库检测正确后直接跳转到网站首页。而非会员则点击现在注册按钮,系统跳转到注册界面,并填写个人信息之后系统提示用户转到首页。用户登录后可以看到自己的登录状态栏,显示自己的一些常用信息。登录模块的程序流程图如图 图 3 登录模块流程图 2.4.2 个人信息管理模块 个人信息管理模块包括用户注册填充,订单管理和修改用户密码。用户可以修改自己的个人信息,方便用户灵活的使用网站进行消费。用户可以查看、删除自己的订单,避免不必要的开支,提高网站的友好性。用户可以修改自己的登录密码,确保用户自己信息透漏给他人时,保持自己账户的安全。修改密码时,用户提交旧的登录密码,之后 4 / 20 . 输入新密码并且再次输入新密码确认, 确保两次密码输入一致以免发生手误导致账户不能正常使用,点击确认后系统自动更新,提示用户修改结果。修改密码模块的流程图如图 4 所示。 图 4 修改密码的流程图 3.设计结果与分析 网站商品展示模块是用户进入网站最先看到的界面,设计简洁,实用性强让用户可以最快的获取网站信息,大体分为两部分:根据商品添加时间显示最新的商品信息和该商品是否是热门商品显示商品信息。最新商品展示,按照商品添加时间的先后降序排列显示在 table 标签中的 Repeater控件,利用嵌套表格的形式,将数据绑定到其中。 3.1 商品分类 用户每次登录都可以看到网站更新的最新商品信息,保持网站的新鲜,追赶用户对新产品的需求。同时按照商品经用户购买使用过后,是否是热门商品,来展示比较受用户喜欢的商品,给消费者积极的消费提示。如图 5 所示。 5 / 20 . 图 5 商品分类 主要代码 : public partial class NewProducts : System.Web.UI.UserControl { protected void Page_Load(object sender, System.EventArgs e) { NewList.DataSource = BLL.Product.GetNewProductsList(); NewList.DataBind(); } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// 6 / 20 . /// 设计器支持所需的方法- 不要使用代码编辑器 /// 修改此方法的内容。 /// private void InitializeComponent() { } #endregion } 3.2 用户登录 对于已经是会员的用户来说,直接点击用户登录按钮输入用户名和密码,只有输入正确才可以直接跳转到网站首页。登录界面如图 6 所示。 图 6 登陆界面 主要代码: protected void Submit_Click(object sender, System.EventArgs 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(tempCartID, userId.ToString()); 7 / 20 . 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) { // 获得注册信息 string userName = LoginName.Text.Trim(); string password = Password.Text.Trim(); string question = Question.Text.Trim(); string answer = Answer.Text.Trim(); // 得到原来的 CartId BLL.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) { Message.Text = "用户名已存在! "; } else 8 / 20 . { //设置用户为通过验证 System.Web.Security.FormsAuthentication.SetAuthCookie(userId.ToString(),false); // 迁移购物车记录 cart.MigrateCart(tempCartId, userId.ToString()); //将用户重定向回用户帐户页面 Response.Redirect("MyAcount.aspx"); } } 3.4 主界面 成功登录系统后,进入主界面,包含修改密码、修改个人资料、购物车和我的购物记录。可以根据需求进行相应的操作。主界面如图 8 所示。 图 8 主界面 主要代码: namespace eshop { /// /// MyAcount 的摘要说明。 /// public partial class MyAcount : System.Web.UI.Page { protected void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // 9 / 20 . // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// /// 设计器支持所需的方法- 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { } #endregion } } 3.5 修改密码 为了保证系统的安全性,用户应该定期修改密码。如图 9所示。 图 9 修改密码 主要代码: protected void Submit_Click(object sender, System.EventArgs e) { BLL.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 = " 密码修改成功! "; } else { Message.Text = " 密码输入与原密码不匹配! "; } } 10 / 20 . 3.6 查询商品 在分类列表中,选择要购买的商品类型,点击计算机软件,依次列出符合需求的信 息,可以进行购买。可以节省用户的事件,提高系统的效率。如图 10 所示。 图 10 查询商品 主要代码: void ShowResult(int pageIndex, int pageSize) { // 绑定 Repeater控件 products.DataSource = BLL.Product.GetProductsByCategory(int.Parse(Request.QueryString["categoryId"]), pageSize, pageIndex); products.DataBind(); //调用 Product 类中的方法获得该类商品的总数 int resultCount = BLL.Product.GetProductCountByCategory(int.Parse(Request.QueryString["categoryId"])); int count; // 如果查询结果总数是页大小的整数倍 if (resultCount%PageSize == 0) { count = resultCount/PageSize; PageCount.Text = count.ToString(); } else { count = resultCount/PageSize+1; PageCount.Text = count.ToString(); } this.PageControl.Items.Clear(); // 绑定页码到 DropDownList 控件 for(int i=0; i /// 设计器支持所需的方法- 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { } #endregion } } 3.7 购物车界面 用户登录后可以使用购物车功能,将用户所选的商品添加到购物车中,通过 GridView 控件实现商品的添加。 用户点击购买商品, 通过产品 ID 字段添加到订单表中, 用户可以在购物车中随时查看信息,并且可以在购物车中删除或清空添加的物品。购物 车中的信息通过 session 保存在缓存中,当用户确定下单之后保存在订单表中。网站拥 有购物车功能,可以简化用户购买流程减少不必要的操作。购物车界面如图 12 所示。 图 12 购物车界面 主要代码: 13 / 20 . void ShowShoppingCartList() { BLL.ShoppingCart cart = new BLL.ShoppingCart(); // 得到用户的购物车 ID String cartID = cart.GetShoppingCartId(); // 如果购物车内没有商品 ,DataGrid 隐藏 if (cart.GetItemCount(cartID) == 0) { DetailsPanel.Visible = false; MyError.Text = " 购物车内没有商品。 "; } else { // 绑定购物车信息到 DataGrid MyList.DataSource = cart.GetItems(cartID); MyList.DataBind(); //显示总金额 lblTotal.Text = String.Format( "{0:c}", cart.GetTotal(cartID)); } } 加入购物车后,再次确认商品列表,如购买无误,点击“提交”按钮,成功结算商 品,进行付款,愉快的购物旅程就结束了。购物车确认界面如图 13 所示。 图 13 购物车提交界面 主要代码: public partial class CheckOut : System.Web.UI.Page 14 / 20 . { protected void Page_Load(object sender, System.EventArgs e) { if (!Page.IsPostBack) { // 得到 cartID BLL.ShoppingCart cart = new BLL.ShoppingCart(); string cartID = cart.GetShoppingCartId(); // 绑定购物车信息到 DataGrid MyDataGrid.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 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; } else { ShowErrorMsgBox(); } } } 15 / 20 . void ShowErrorMsgBox() { Response.Write(""); } } } 4.设计体会 通过这段时间的系统开发和文档撰写过程,通过查阅、研究大量的相关文献,分析相关领域的特色网站并结合实际,使我对电子商务网站方面的理论知识,包括对它的定 义,内涵,特点,功能,技术等方面的研究都有了 更深的了解。并亲自利用所学知识建立了一个网上购物网站。 虽然由于时间有限和本人能力有限, 这个系统还不够完善, 还有许多地方有待改进。但这短短一周的课程设计, 对我来说是对 学科的一次全面检查。 通过理论学习,在课程设计中得到实际上的应用,它使我懂得了如何去开发一个系统或者一个软件,它 也使我懂得了软件的结构,在设计过程中使我对 ASP.NET技术、 SQL Server 2000 数据库以及 WEB网站开发有了更深入的理解,对即将步入社会的我积累了经验。 通过本次设计开发, 让我对于编程有了更深入的体会。 认识到自己在技术上的不足,需要学习更多的设计方法和编程技术。在以后的开发过程中,要更加细致的分析用户的 需求和系统实现的方法,认真思考业务处理过程与用户需求之间的平衡。在分析和思考项目实现方法的过程中,学到了更加实用的知识,让我知道在以后的学习和工作中有了明确的指导方向。 5.参考文献 [1] 刘金岭 . 冯万利 . 数据库系统及应用教程 [M]. 清华大学出版社 .2013.6 [2] 微软公司 .ASP.NET标准教程 [M]. 中国劳动社会保障出版社 ,2011.12 [3] 王辉 .黄红超 .ASP.NET 实用教程 [M]. 清华大学出版社 .2014.2 [4] 金旭亮 .ASP.NET 程序设计教程 [M]. 北京:电子工业出版社 .2015.3 [5] 丛书 .ASP.NET 与网站开发实践教程 [M]. 北京:清华大学出版社 .2014.3 [6] 龙马 . ASP.NET+SQL Server 组建网站实例精讲 [M]. 北京 :人民邮电出版社 .2012.6 [7] 徐国智 .汪孝宜 .SQL SERVER 数据库开发实例精粹 [M]. 北京:电子工业出版社 .2010.1 [8] 薛万欣 .电子商务网站建设 [M]. 北京:机械工业出版社 . 2010.8 [9] 张启明 .ASP.NET+SQL SERVER 网络应用系统开发与实例 [M]. 北京:人民邮电出版社 .2011.2 [10] 陈建伟 .ASP.NET 网站开发教程(第二版) [M]. 北京:清华大学出版社 .2010.1 附录: 16 / 20 . 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; using System.Web.UI.HtmlControls; namespace eshop { /// /// Register 的摘要说明。 /// public partial class Register : System.Web.UI.Page { protected void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// /// 设计器支持所需的方法- 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { } #endregion 17 / 20 . protected void Submit_Click(object sender, System.EventArgs e) { // 获得注册信息 string userName = LoginName.Text.Trim(); string password = Password.Text.Trim(); string question = Question.Text.Trim(); string answer = Answer.Text.Trim(); // 得到原来的 CartId BLL.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) { Message.Text = " 用户名已存在! "; } else { //设置用户为通过验证 System.Web.Security.FormsAuthentication.SetAuthCookie(userId.ToString(),false); //迁移购物车记录 cart.MigrateCart(tempCartId, userId.ToString()); //将用户重定向回用户帐户页面 Response.Redirect("MyAcount.aspx"); } } } } u
展开阅读全文
相关搜索
收藏 分享(赏)
温馨提示:
道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

当前位置:首页 > 学术论文 > 管理论文


本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报