《aspnet课程设计报告样本.doc》由会员分享,可在线阅读,更多相关《aspnet课程设计报告样本.doc(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。计 算 机 与 信 息 工 程 学 院ASP.NET课程设计 题目: 网上购物系统 姓 名: 学 号: 专 业: 计算机科学与技术 指导教师: 起止日期: .12.10 .01.10 目 录1 引言12 需求分析12.1 数据流图12.2 数据字典23 系统设计43.1 系统架构设计43.2 系统功能模块划分43.3 系统数据库设计54 系统实现74.1 前台功能74.1.1 会员注册登录74.1.2 商品展示94.1.3 商品搜索104.1.4 商品评论114.1.5 网站公告124.1.6 个人信息更改124.1.7 地址簿管理13
2、4.1.8 订单明细查询144.1.9 购物车管理164.2 后台功能174.2.1 用户登录与后台管理174.2.2 商品管理184.2.3 商品类别管理194.2.4 商品评论管理194.2.5 网站公告管理204.2.6 订单管理214.2.7 会员档案管理214.2.8 管理员密码修改225 总结236 参考文献231 引言在国家大力推进信息化建设的宏观背景下, 城市网络基础设施及应用水平均已得到了较大的完善和提升。愈来愈多的商贸服务企业意识到了用现代信息技术改造传统经营方式, 用电子商务手段提升管理和服务水平的重要性。已有许多企业在着手计划或已进行自身的电子商务建设, 这就有了对商贸
3、服务业电子商务应用平台的迫切需求。网上购物是一个电子商务平台。对于消费者来说, 能够在家”逛商店”, 订货不受时间的限制; 获得较大量的商品信息, 能够买到当地没有的商品; 网上支付较传统拿现金支付更加安全, 可避免现金丢失或遭到抢劫; 从订货、 买货到货物上门无需亲临现场, 既省时又省力; 由于网上商品省去租店面、 召雇员及储存保管等一系列费用, 总的来说其价格较一般商场的同类商品更便宜。对于商家来说, 网上购物是宣传企业形象的一种强有力的手段, 是一种廉价高效的方式。其优势在于发布信息及时、 准确, 图文并茂, 及时刷新。任何新登商品和促销、 广告信息都能够在第一时间呈现在消费者面前。消费
4、者与商家之间能够实现及时互动, 商家能够了解到市场的最新需求。对于整个市场经济来说, 这种新型的购物模式可在更大的范围内、 更多的层面上以更高的效率实现资源配置。2 需求分析本系统总体目标是为了实现产品的在线购物。经过系统实现网上购物的多项功能, 其中主要是管理员对商品的管理实现和用户的购物的实现。用户在线浏览所有商品, 按需求搜索相关商品, 以及注册为会员后对商品选购的操作, 购物结束后生成订单。管理员则可对商品的添加, 对商品的归类, 对用户购物订单进行处理, 以及管理员对网站进行维护操作。2.1 数据流图数据流图( DFD-Data Flow Diagram) 是描绘系统的逻辑模型, 图
5、中没有任何具体的物理元素, 只是描绘信息在系统中流动和处理的情况, 就是采用图形方式来表示系统的逻辑功能、 数据在系统内部的逻辑流向和逻辑变换过程。1、 系统顶层数据流图( 如图2-1所示) 。图2-1 顶层数据流图2、 会员子系统数据流图( 如图2-2所示) 。 图2-2 会员子系统数据流图 图2-3 管理员子系统数据流图3、 管理员子系统数据流图( 如图2-3所示) 。2.2 数据字典数据字典是关于数据的信息的集合, 也就是对数据流图中包含的所有元素的定义的集合。数据字典的作用是在软件的分析和设计过程中提供关于数据的描述信息。一般说来, 数据字典应该由下列四类元素构成: 数据元素, 数据流
6、, 数据存储和数据处理。数据存储是数据结构停留或保存的地方, 也是数据流的来源和去向之一。本系统所涉及到的数据存储表如表2-1至表2-9所示。表2-1 数据存储之会员信息表名字会员信息表描述记录用户在购物网站的注册信息组成会员编号, 邮箱地址, 会员密码, 会员真实姓名表2-2 数据存储之管理员信息表名字管理员信息表描述记录购物网站后台管理员的信息组成管理员编号, 管理员名, 管理员密码表2-3 数据存储之商品信息表名字商品信息表描述记录购物网站的所有商品信息组成商品编号, 商品名, 商品类别编号, 商品描述, 商品市场价, 商品会员价, 商品售出量, 商品图片, 商品浏览量, 商品发布时间表
7、2-4 数据存储之商品类别信息表名字商品类别信息表描述记录购物网站的所有商品的二级类别信息组成商品类别编号, 商品类别名, 父类别编号表2-5 数据存储之商品评论信息表名字商品评论信息表描述记录购物网站会员对商品的评论信息组成评论编号, 商品编号, 评论人, 评论级别, 评论内容, 评论时间表2-6 数据存储之订单信息表名字订单信息表描述记录购物网站会员所下发的订单信息组成编号, 邮箱地址, 地址编号, 订单总价, 订单时间, 订单状态, 邮寄类型, 订单号表2-7 数据存储之地址簿信息表名字地址簿信息表描述记录购物网站会员的商品邮寄地址信息组成地址编号, 邮箱地址, 收货人, 邮寄地址, 邮
8、政编码, 联系方式表2-8 数据存储之网站公告信息表名字网站公告信息表描述记录购物网站的公告信息组成公告编号, 公告标题, 公告内容, 公告来源, 公告浏览次数, 公告发布时间表2-9 数据存储之购物车信息表名字购物车信息表描述记录购物网站顾客所购买的商品信息组成经过SqlProvider将购物车保存在微软提供的aspnetdb数据库的Profile表3 系统设计3.1 系统架构设计本系统采用三层架构设计, 将整个业务应用划分为表示层、 业务逻辑层、 数据访问层三层。数据访问层DAL: 用于实现与数据库的交互和访问, 从数据库获取数据或保存数据到数据库的部分。业务逻辑层BLL: 业务逻辑层承上
9、启下, 用于对上下交互的数据进行逻辑处理, 实现业务目标。表示层UI: 主要实现和用户的交互, 接收用户请求或返回用户请求的数据结果的展现, 而具体的数据处理则交给业务逻辑层和数据访问层去处理。三层架构是将系统按其作用分成三部分, 每部分解决自己负责的流程。三层架构的功用之处, 在于驾驭大型web程序的结构, 使之便于管理和扩展。3.2 系统功能模块划分系统功能模块图如图3-1所示。图3-1 系统功能模块图3.3 系统数据库设计本系统采用SQL Server 建立和维护数据库, 系统中共有两个数据库: 商城数据库(B2C)和微软实例数据库(aspnetdb)。它们的任务分别为: 存储商品信息、
10、 商品类型信息、 商品评论信息、 订单信息、 订单详情信息、 订单状态信息、 会员信息、 地址薄信息、 管理员信息、 公告信息; 存储购物车信息。电子商城数据库包含以下10个表: 商品表(Commodity)、 商品类型表(CommodityType)、 商品评论表(CommodityComment)、 会员表(Users)、 地址薄表(Address)、 订单表(Orders)、 订单详情表(OrderDetail)、 订单状态表(OrderState)、 管理员表(Admin)、 公告表(News)。( 1) 会员表( Users) 用于记录会员的基本信息, 包括会员编号、 邮箱地址、 会
11、员密码、 真实姓名。其中会员编号为主键。会员表结构如图3-2所示。图3-2 会员表( 2) 地址薄表(Address)用于记录会员所购买商品的配送地址信息, 包括地址编号、 邮箱地址、 收货人、 邮寄地址、 邮政编码、 联系方式。其中地址编号为主键。地址薄表结构如图3-3所示。图3-3 地址薄表(3)管理员表(Admin)用于记录后台管理员的基本信息, 包括管理员编号、 管理员名、 管理员密码。其中管理员编号为主键。管理员表结构如图3-4所示。图3-4 管理员表(4)公告表(News)用于记录网站的公告信息, 包括公告编号、 公告标题、 公告内容、 公告来源、 公告浏览量、 公告发布时间。其中
12、公告编号为主键。公告表结构如图3-5所示。图3-5 公告表(5)商品表(Commodity)用于记录购物网站的商品信息, 包括商品编号、 商品名、 商品类型编号、 商品描述、 商品市场价、 商品会员价、 商品售出量、 商品图片、 商品浏览量、 商品发布时间。其中商品编号为主键。商品表结构如图3-6所示。图3-6 商品表(6)商品类型表(CommodityType)用于记录商品的类别信息, 包括商品类型编号、 商品类型名、 父类型编号。其中商品类型编号为主键。商品类型表结构如图3-7所示。图3-7 商品类型表(7)商品评论表(CommodityComment)用于会员对商品的评论信息, 包括商品
13、评论编号、 商品编号、 评论人、 评论级别、 评论内容、 评论时间。其中商品评论编号为主键。商品评论表结构如图3-8所示。图3-8 商品评论表(8)订单状态表(OrderState)用于记录订单的状态信息、 包括订单状态编号、 订单状态名。其中订单状态编号为主键。订单状态表结构如图3-9所示。图3-9 订单状态表(9)订单表(Orders)用于记录会员在购物网站所下发订单信息, 包括订单编号、 订单人、 地址编号、 订单总价、 订单时间、 订单状态、 邮寄类型、 订单号。其中订单编号为主键。订单表结构如图3-10所示。图3-10 订单表(10)订单详情表(OrderDetail) 用于记录每个
14、订单的详细购物信息, 包括订单详情编号、 订单号、 商品编号、 商品购买量。其中订单详情编号为主键。订单详情表结构如图3-11所示。图3-11 订单详情表4 系统实现4.1 前台功能4.1.1 会员注册登录会员注册页面如图4-1所示。如果输入信息有误则会提示错误信息, 需要重新输入。图4-1 会员注册页面主要代码如下: protected void ok_Click(object sender, EventArgs e) BLL.Users_BLL users_BLL = new BLL.Users_BLL(); users_BLL.EmailAddress = userEmail.Text;
15、 users_BLL.UserPwd = userPwd.Text; users_BLL.UserName = realName.Text; users_BLL.registerUserInfo(); FormsAuthentication.SetAuthCookie(users_BLL.EmailAddress, false); Response.Redirect(UserOrder.aspx); 会员登录页面如图4-2所示。如果输入信息有误则会提示错误信息, 需要重新输入。图4-2 会员登录页面主要代码如下: protected void ImageLogin_Click(object s
16、ender, ImageClickEventArgs e) BLL.Users_BLL users_BLL = new BLL.Users_BLL(); users_BLL.EmailAddress =txtEmail .Text ; users_BLL.UserPwd = txtPwd.Text; if (users_BLL.isLoginSucess ().Tables 0.Rows.Count =1) FormsAuthentication.SetAuthCookie(txtEmail .Text ,false ); Response.Redirect(UserOrder.aspx);
17、4.1.2 商品展示商品展示页面如图4-3所示。图4-3 商品展示页面主要代码实现如下: private void Bind() BLL.CommodityType_BLL commodityType_BLL = new BLL.CommodityType_BLL(); RepeaterFather.DataSource = commodityType_BLL.selectLevelOneType(); RepeaterFather.DataBind(); protected void RepeaterFather_ItemDataBound(object sender, RepeaterIt
18、emEventArgs e) DataRowView dr = (DataRowView)e.Item.DataItem; int id = Convert.ToInt32(drcommodityTypeId); Repeater repeaterSon = (Repeater)e.Item.FindControl(RepeaterSon); BLL.CommodityType_BLL commodityType_BLL = new BLL.CommodityType_BLL(); commodityType_BLL.CommodityTypeFatherId = id; repeaterSo
19、n.DataSource = commodityType_BLL.selectTypeByFatherId(); repeaterSon.DataBind(); DataList dataListFather = (DataList)e.Item.FindControl(DataListFather); BLL.Commodity_BLL commodity_BLL = new BLL.Commodity_BLL(); commodity_BLL.CommodityTypeId = id; dataListFather.DataSource = commodity_BLL.selectComm
20、odityByFather(); dataListFather.DataBind(); 4.1.3 商品搜索在如图4-4所示的商品搜索页面中选择商品类型并输入关键字, 点击”找商品”按钮搜索商品。图4-4 商品搜索页面搜索结果页面如图4-5所示。图4-5 商品搜索结果页面主要代码如下: protected void search_Click(object sender, EventArgs e) if (txtKey.Text.Trim() = ) Response.Write(alert(关键字不能为空!); else Response.Redirect(/web/SearchResult.
21、aspx?commodityTypeId=+ddlSon .SelectedValue + & key=+txtKey .Text .Trim(); private void Bind() int id = Convert.ToInt32(Request.QueryStringcommodityTypeId); string key = Request.QueryStringkey; BLL.Commodity_BLL commodity_BLL = new BLL.Commodity_BLL(); commodity_BLL.CommodityTypeId = id; commodity_B
22、LL.Key = key; DataSet ds = commodity_BLL.searchCommodity (); pds.DataSource = ds.Tables0.DefaultView; pds.AllowPaging = true; pds.PageSize = 15; DataList1.DataSource = pds; DataList1.DataBind(); if (pds.DataSourceCount = 0) noCommodity.Visible = true; myDiv.Visible = false; return; recordCount.Text
23、= pds.DataSourceCount.ToString(); currentPage.Text = (pds.CurrentPageIndex + 1).ToString(); totalPage.Text = pds.PageCount.ToString(); 4.1.4 商品评论会员登录后才能发表评论。商品评论页面如图4-6所示。图4-6 商品评论页面如果为匿名用户则提示如图4-7所示的提示信息。图4-7 提示信息主要代码如下: protected void ok_Click(object sender, EventArgs e) if(Profile .IsAnonymous )
24、Response.Write(alert(登录后才能对商品论!); return; int commodityId = int.Parse(Request.QueryStringcommodityId); string emailAddress = Profile.UserName;string commentContent = (FormViewData.FindControl(txtContent) as TextBox).Text; DateTime commentTime = DateTime.Now; BLL.CommodityComment_BLL commodityComment
25、_BLL = new BLL.CommodityComment_BLL(); commodityComment_BLL.CommodityId = commodityId; commodityComment_BLL.EmailAddress = emailAddress; commodityComment_BLL.CommentLevel = commentLevel; commodityComment_BLL.CommentContent = commentContent; commodityComment_BLL.CommentTime = commentTime; commodityCo
26、mment_BLL.insertComment(); Response .Redirect (CommodityComment.aspx?commodityId= + commodityId); 4.1.5 网站公告网站公告信息页面如图4-8所示。图4-8 网站公告信息主要代码如下: private void Bind() BLL .News_BLL news_BLL=new BLL.News_BLL (); Repeater1.DataSource = news_BLL.selectNews(); Repeater1.DataBind(); 4.1.6 个人信息更改个人信息更改页面如图4-9
27、所示。图4-9 个人信息更改页面主要代码如下: protected void ok_Click(object sender, EventArgs e) if (ds.Tables0.Rows0userPwd.ToString()=OldPwd .Text ) BLL.Users_BLL users_BLL = new BLL.Users_BLL(); users_BLL.EmailAddress = Profile.UserName; users_BLL.UserName = Username.Text; users_BLL.UserPwd = NewPwd.Text; users_BLL.u
28、pdateUserInfo(); else Response.Write(alert(原密码输入错误!); 4.1.7 地址簿管理地址薄管理页面如图4-10所示。图4-10 地址薄管理页面主要代码如下: private void Bind() BLL.Address_BLL address_BLL = new BLL.Address_BLL(); address_BLL.EmailAddress = Profile.UserName; DataSet ds = address_BLL.selectAddressByEmailAddress(); if (ds.Tables0.Rows.Coun
29、t 1) GridViewAddress.Visible = false; return; GridViewAddress.DataSource = ds; GridViewAddress.DataBind(); protected void addAddress_Click(object sender, EventArgs e) BLL.Address_BLL address_BLL = new BLL.Address_BLL(); address_BLL.EmailAddress = Profile.UserName; address_BLL.GetCommodityPerson = ge
30、tCommodityPerson.Text; address_BLL.PostAddress = address.Text; address_BLL.PostCode = postCode.Text; address_BLL.PhoneNum = phoneNum.Text; address_BLL.addAddress(); getCommodityPerson.Text = ; address.Text = ; postCode.Text = ; phoneNum.Text = ; GridViewAddress.Visible = true; Bind(); 4.1.8 订单明细查询会员
31、的订单列表如图4-11所示。图4-11 会员的订单列表查看订单详情如图4-12所示。图4-12 订单详情信息主要代码如下: private void Bind() BLL.Orders_BLL orders_BLL = new BLL.Orders_BLL(); orders_BLL.EmailAddress = Profile.UserName; DataSet ds=orders_BLL.selectOrderByEmail(); pds.DataSource =ds.Tables 0.DefaultView ; pds.AllowPaging=true ; pds.PageSize=10
32、; GridView1.DataSource = pds; GridView1.DataBind(); if(pds.DataSourceCount=0) noOrder.Visible = true; myDiv.Visible = false; return; recordCount.Text = pds.DataSourceCount.ToString(); currentPage.Text = (pds.CurrentPageIndex + 1).ToString(); totalPage.Text = pds.PageCount.ToString(); private void Bi
33、nd() string orderNum = Request.QueryStringorderNum; BLL.Orders_BLL orders_BLL = new BLL.Orders_BLL(); orders_BLL.OrderNum = orderNum; DataSet dsOrder = orders_BLL.selectOrder(); lblOrderNum.Text = orderNum; lblOrderTime.Text = dsOrder.Tables0.Rows0orderTime.ToString(); lblPostType.Text = dsOrder.Tab
34、les0.Rows0postType.ToString();lblTotalPrice.Text=decimal.Parse(dsOrder.Tables0.Rows0totalPrice.ToString(), System.Globalization.NumberStyles.Currency).ToString(c);int addressId = int.Parse(dsOrder.Tables0.Rows0addressId.ToString();BLL.Address_BLL address_BLL = new BLL.Address_BLL();address_BLL.Addre
35、ssId = addressId;DataSet dsAddress = address_BLL.selectAddressById();lblGetCommodityPerson.Text = dsAddress.Tables0.Rows0getCommodityPerson.ToString(); lblPostAddress.Text =dsAddress.Tables0.Rows0postAddress.ToString(); lblPostCode.Text = dsAddress.Tables0.Rows0postAddress.ToString(); lblPhoneNum.Te
36、xt = dsAddress.Tables0.Rows0phoneNum.ToString(); BLL.OrderDetail_BLL orderDetail_BLL = new BLL.OrderDetail_BLL(); orderDetail_BLL.OrderNum = orderNum; DataSet dsOrderDetail = orderDetail_BLL.selectOrderDetail();GridView1.DataSource = dsOrderDetail; GridView1.DataBind();4.1.9 购物车管理商品购买页面如图4-13所示。图4-1
37、3 商品购买页面点击订购, 放入购物车, 购物车页面如图4-14所示。图4-14 购物车页面配置文件作如下配置: protected void ImageBuy_Click(object sender, ImageClickEventArgs e) int commodityId = int.Parse(Request.QueryStringcommodityId); BLL.Commodity_BLL commodity_BLL = new BLL.Commodity_BLL(); commodity_BLL.CommodityId = commodityId; DataSet ds = commodity_BLL.selectCommodityById(); string commodityName = ds.Tables0.Rows0commodityName.ToString(); decimal commodityPrice = int.Parse (ds.Tables0.Rows0commodityPrice.ToString(); decimal commodityDiscountPrice =int.Parse (ds.Tables0.Rows0commodityDiscountPrice.ToStri