MyPetShop实验报告书_第1页
MyPetShop实验报告书_第2页
MyPetShop实验报告书_第3页
MyPetShop实验报告书_第4页
MyPetShop实验报告书_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Web程序设计MyPetShop程序实验报告书班 级: 计算机科学与技术A1201 学生姓名: 学生学号: 学生组别: 第七组 指导老师: 朱广福 2014年06月23日目录MyPetShop系统概述2实验内容2实验规划2 网站设计中心思想和大体构架2 系统的整体架构4实验过程以及代码4 母板页4 数据库6 登录模板8 购物车9 订单结算14 地图功能19心得21MyPetShop系统概述随着因特网的不断普及和信息高速公路的逐步延伸,人类社会现今已昂首步入信息社会时代,而商品交易模式在不断地发生着变化。在社会化大生产以及社会分工日趋专业化的今天,网上购物无形的占据着主要的地位。网上购物系统一般

2、由商品管理,购物车管理,系统管理和会员管理等要素组成,是一个网上交易过程。其主要任务是交易各方以电子交易方式而不是通过当面交换或直接面谈方式进行的任何方式的商业交易。显然,这与“网上购物”的概念和内容既有联系,又有明显的区别。它们涉及的信息范围,服务功能以及社会意义等都不相同。网上购物系统搜集和管理的是特定的信息,其范围较窄,功能和目标比较明确,具体,主要是为特定的领域和机构的决策和管理服务;而信息管理则要对各类信息及其相关要素进行全方位管理,而对全社会开展信息服务,以便有效地满足社会的信息需求。今天,我们可以确信网上购物毋庸置疑是未来的发展方向。然而网上购物系统却还没有一个严格的定义。Int

3、el公司认为:网上购物=电子市场+电子交易+电子服务;IBM认为:网上购物=web;HP公司则说:“网上购物是通过电子化的手段来完成商业贸易活动的一种方式。”如此等等。实验内容组内成员一起完成购物网站的设计与开发实验规划 1、 网站设计中心思想和大体构架1.前台商品浏览模块按照电子商务网站的一般规划和人们使用电子商务网站的习惯,前台商品浏览模块主要实现按照各种条件显示、查看商品的前台显示功能。2.用户注册登录模块用户注册和登录模块与通常的会员系统类似,用户注册以后就可以成为系统的会员。用户只有在成功登录系统后,才可以实现商品的购买。注册用户还具有修改密码和找回密码的功能。 3.购物车模块购物车

4、是每个电子商务站点的基本元素。不允许匿名用户访问购物车。购物车中包含了用户决定购买的所以商品信息,包括商品编号、商品名称、商品价格、购买数量以及用户应付总价等。用户在查看商品详细信息时,如果决定购买即可将商品加入购物车,然后可以继续浏览其它产品。4.订单结算模块用户完成购物后即可进入结算中心,系统对用户的产品及数量进行价格计算,最后生成用户应付款金额。然后用户向系统下达订单并提供送货地址和付款方式等信息。 5.后台管理功能模块后台管理功能模块是根据系统数据维护要求而设计的后台管理平台,只有拥有管理员角色的用户才可进入后台功能模块实现系统的维护与管理。2、 系统的整体架构系统功能模块设计、用户控

5、件设计、系统数据库总体设计web.config配置文件的设计 实验过程以及代码首先我们应该先建立一个ASP的网站然后我们添加该模板页然后对模板页面进行编辑代码和布局增加控件public partial class MasterPage : System.Web.UI.MasterPage protected void Page_Load(object sender, EventArgs e) Initialize(); protected void Initialize() if (Roles.GetAllRoles().Length = 0) Roles.CreateRole(Member)

6、; Roles.CreateRole(Admin); protected void lnkbtnReset_Click(object sender, EventArgs e) WebPartManager webPartManager = new WebPartManager(); webPartManager = WebPartManager.GetCurrentWebPartManager(Page); webPartManager.Personalization.ResetPersonalizationState(); protected void imgbtnSearch_Click(

7、object sender, ImageClickEventArgs e) string strQuery = ; if (txtSearch.Text.Trim() = ) strQuery = ; else strQuery = ?SearchText= + txtSearch.Text.Trim(); Response.Redirect(/Search.aspx + strQuery, true); 母版页的布局代码实现的效果然后增添数据库,商品的数据可和用户的数据库商品种类的数据库数据库表中的相互关系将注册的用户添加到数据库里面 注册新的用户界面public partial class

8、 Login : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) Login1.Focus(); 登录控件代码购物车的功能部分代码允许匿名用户访问购物车,购物车中包含了用户决定购买的所有商品信息,包括商品编号、商品名称、商品价格、购买数量以及用户应付总价等,用户在查看商品详细信息时,如果决定购买即可将商品加入购物车,然后可以继续浏览其他产品。 public partial class ShopCart : System.Web.UI.Page DataConn dataconn = new Data

9、Conn(); protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) if (Request.QueryStringProductId != null) int productId = int.Parse(Request.QueryStringProductId); AddProduct(productId); lblHint.Text = 温馨提示:更改购买数量后,请单击重新计算按钮进行更新!; Bind(); protected void AddProduct(int productId) int isE

10、xit = 0; for (int j = 0; j Profile.Cart.ProName.Count; j+) if (productId = (int)Profile.Cart.ProIdj) int qty = (int)Profile.Cart.Qtyj; qty+; Profile.Cart.Qtyj = qty; Profile.Save(); isExit = 1; if (isExit = 0) var products = from r in dataconn.Product where r.ProductId = productId select r; foreach

11、(var product in products) Profile.Cart.ListPrice.Add(product.ListPrice); Profile.Cart.Qty.Add(1); Profile.Cart.ProId.Add(product.ProductId); Profile.Cart.ProName.Add(product.Name); Profile.Save(); protected void Bind() Profile.Cart.TotalPrice = TotalPrice().ToString(); lblTotalPrice.Text = Profile.C

12、art.TotalPrice; DataTable dt = new DataTable(); dt.Columns.Add(ProId); dt.Columns.Add(ProName); dt.Columns.Add(ListPrice); dt.Columns.Add(Qty); for (int i = 0; i Profile.Cart.ProName.Count; i+) DataRow row = dt.NewRow(); row0 = Profile.Cart.ProIdi; row1 = Profile.Cart.ProNamei; row2 = Profile.Cart.L

13、istPricei; row3 = Profile.Cart.Qtyi; dt.Rows.Add(row); gvCart.DataSource = dt; gvCart.DataBind(); if (gvCart.Rows.Count != 0) pnlCart.Visible = true; lblCart.Text = ; else pnlCart.Visible = false; lblCart.Text = 购物车内无商品,请先购物!; protected decimal TotalPrice() decimal sum = 0; for (int j = 0; j Profile

14、.Cart.ProName.Count; j+) int qty = (int)Profile.Cart.Qtyj; decimal listPrice = (decimal)Profile.Cart.ListPricej; sum += qty * listPrice; return sum; protected void btnDelete_Click(object sender, EventArgs e) int productId = 0; GridView gvCart = new GridView(); gvCart = (GridView)Page.Master.FindCont

15、rol(ContentPlaceHolder2).FindControl(gvCart); if (gvCart != null) for (int i = 0; i gvCart.Rows.Count; i+) CheckBox chkProduct = new CheckBox(); chkProduct = (CheckBox)gvCart.Rowsi.FindControl(chkProduct); if (chkProduct != null) if (chkProduct.Checked) productId = int.Parse(gvCart.Rowsi.Cells1.Text

16、); DeleteProduct(productId); Bind(); protected void DeleteProduct(int productId) int j = 0; for (int i = 0; i Profile.Cart.ProName.Count; i+) if (productId = (int)Profile.Cart.ProIdi) j = i; break; Profile.Cart.ListPrice.RemoveAt(j); Profile.Cart.ProId.RemoveAt(j); Profile.Cart.ProName.RemoveAt(j);

17、Profile.Cart.Qty.RemoveAt(j); Profile.Save(); protected void btnClear_Click(object sender, EventArgs e) Profile.Cart.Qty.Clear(); Profile.Cart.ProName.Clear(); Profile.Cart.ProId.Clear(); Profile.Cart.ListPrice.Clear(); Profile.Save(); Response.Redirect(Default.aspx, true); protected void btnCompute

18、Again_Click(object sender, EventArgs e) lblError.Text = ; GridView gvCart = new GridView(); gvCart = (GridView)Page.Master.FindControl(ContentPlaceHolder2).FindControl(gvCart); if (gvCart != null) for (int i = 0; i product.Qty) lblError.Text += Error:库存不足,商品名为 + gvCart.Rowsi.Cells2.Text + 的库存数量为 + p

19、roduct.Qty.ToString() + ; else ChangeQty(int.Parse(gvCart.Rowsi.Cells1.Text), int.Parse(txtQty.Text); Bind(); protected void ChangeQty(int productId, int qty) for (int i = 0; i Profile.Cart.ProName.Count; i+) if (productId = (int)Profile.Cart.ProIdi) Profile.Cart.Qtyi = qty; Profile.Save(); protecte

20、d void btnSettle_Click(object sender, EventArgs e) if (User.Identity.IsAuthenticated) Response.Redirect(SubmitCart.aspx, true); else Response.Redirect(Login.aspx); 执行控件功能有增添商品 删除商品 清空购物车 重新计算等功能public partial class SubmitCart : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e)

21、if (!User.Identity.IsAuthenticated) Response.Redirect(/Login.aspx, true); pnlConsignee.Visible = true; lblMsg.Text = ; protected void btnSubmit_Click(object sender, EventArgs e) DataConn dataconn = new DataConn(); Order order = new Order(); order.UserName = User.Identity.Name; order.OrderDate = Date

22、Time.Now; order.Addr1 = txtAddr1.Text.Trim(); order.Addr2 = txtAddr2.Text.Trim(); order.City = txtCity.Text.Trim(); order.State = txtState.Text.Trim(); order.Zip = txtZip.Text.Trim(); order.Phone = txtPhone.Text.Trim(); order.Status = 未审核; dataconn.Order.InsertOnSubmit(order); dataconn.SubmitChanges

23、(); int orderId = order.OrderId; for (int i = 0; i Profile.Cart.ProName.Count; i+) OrderItem orderItem = new OrderItem(); orderItem.OrderId = orderId; orderItem.ProName = (string)Profile.Cart.ProNamei; orderItem.ListPrice = (decimal)Profile.Cart.ListPricei; orderItem.Qty = (int)Profile.Cart.Qtyi; or

24、derItem.TotalPrice = (int)Profile.Cart.Qtyi * (decimal)Profile.Cart.ListPricei; var product = (from c in dataconn.Product where c.ProductId = (int)Profile.Cart.ProIdi select c).First(); product.Qty -= orderItem.Qty; dataconn.OrderItem.InsertOnSubmit(orderItem); dataconn.SubmitChanges(); Profile.Cart

25、.Qty.Clear(); Profile.Cart.ProName.Clear(); Profile.Cart.ProId.Clear(); Profile.Cart.ListPrice.Clear(); Profile.Cart.TotalPrice = ; pnlConsignee.Visible = false; lblMsg.Text = 谢谢光临本店,祝您购物愉快!; 对产品进行收货发货地址的填写public partial class Search : System.Web.UI.Page protected void Page_Load(object sender, Event

26、Args e) if (!IsPostBack) Bind(); protected void Bind() if (Request.QueryStringSearchText != null) string strSearchText = Request.QueryStringSearchText.ToString(); DataConn dataconn = new DataConn(); var products = from p in dataconn.Product where SqlMethods.Like(p.Name, % + strSearchText.Trim() + %)

27、 select p; gvProduct.DataSource = products; gvProduct.DataBind(); else lblError.Text = 无搜索结果!; protected void gvProduct_PageIndexChanging(Object sender, GridViewPageEventArgs e) gvProduct.PageIndex = e.NewPageIndex; Bind(); 商品的浏览和是否加入购物车用户浏览时候的界面public partial class UserControl_NewProduct : System.W

28、eb.UI.UserControl protected void Page_Load(object sender, EventArgs e) DataConn dataconn = new DataConn(); var products = (from c in dataconn.Product orderby c.ProductId descending select c).Take(7); gvProduct.DataSource = products; gvProduct.DataBind(); 商品显示的名称和价格若已经登录则则跳转若没有登录则跳转至登录界面public partia

29、l class Default2 : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) try DataSet ds = WeatherClass.getSupportDataSet(); if (!Page.IsPostBack) DataTable dt = ds.Tables0; ddlProvince.DataSource = dt; ddlProvince.DataValueField = ID; ddlProvince.DataTextField = Zone; ddlProvince.D

30、ataBind(); ddlCity.SelectedIndex = 1; CityDataBind(1); GetWeatherByCode(54511); catch (Exception) lblTitle.Text = 网络连接异常; protected void CityDataBind(string zoneID) DataView dv = new DataView(WeatherClass.getSupportDataSet().Tables1); dv.RowFilter = ZoneID = + zoneID; ddlCity.DataSource = dv; ddlCit

31、y.DataTextField = Area; ddlCity.DataValueField = AreaCode; ddlCity.DataBind(); ddlCity.Items.Insert(0, new ListItem(选择城市, 0); ddlCity.SelectedIndex = 0; protected void GetWeatherByCode(string cityCode) String wa = WeatherClass.GetCityWeather(cityCode.Trim(); lblNow.Text = wa10; lblToday.Text = wa6 +

32、     + wa5 +     + wa7; lblTomorrow.Text = wa13 +     + wa12 +     + wa14; lblAfterTmr.Text = wa18 +     + wa17 +     + wa19; lblExponent.Text = wa11.Replace(n, ); lblCityIntro.Text = wa22.Replace(n, ); lblTime.Text = DateTime.Parse(wa4).ToString(yyyy年MM月dd日 dddd HH:mm); lblCity.Text = wa0 + / + wa1; imgWeathertrendsTdS.ImageUrl = /img/weather/ + wa8; imgWeathertrendsTdE.ImageUrl = /img

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论