《宠物商店的设计与实现.doc》由会员分享,可在线阅读,更多相关《宠物商店的设计与实现.doc(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 Aragorns File宠物商店系统的设计与实现 作者详情一览表 外文名中文名代号Aragorn阿拉贡114第 1 页 共 74 页74Aragorns File目 录1 绪论11.1项目开发的背景11.2 项目开发的意义12 系统分析与设计22.1项目主要功能描述22.2数据库设计23 系统实现53.1 系统首页53.2 增加宠物种类的功能实现63.3 查看购物车功能的实现143.4 注册功能实现423.5 登录功能实现443.6查看宠物类别详情功能实现473.7删除宠物种类功能实现513.8添加宠物功能实现533.9删除订单功能实现563.10发送订单功能实现583.11修改密码功能
2、实现593.12重新登录功能实现603.13在购物车中添加宠物功能实现613.14删除购物车中宠物功能实现68结论72第 74 页 共 74 页1 绪论1.1项目开发的背景 网上购物,这个逐渐流行于21世纪的购物方式已经为越来越多的人所接受。不论是腰缠万贯的大富翁、时尚的白领丽人还是普通的工薪阶层,其中大部分人可能都有过上网购物的经历。这其中有的也许仅仅想拥有这种体检的感觉,有的可能将此作为一种“知识人士”的标志,有的则可能已经将网上购物作为自己日常生活的重要组成部分而取代了传统上街购物的方式。所以此时各种网购软件也就应运而生了。随着社会的发展,人们的生活也越来越好,更多的人愿意养一个宠物来陶
3、冶一下情操了。而正在此时,我们做软件的程序员应该发现时代的气息、把我时代的走向,做出一款适合大众网购宠物的软件,所以我的宠物商店横空出世了。1.2 项目开发的意义 首先,对于消费者来说:第一,可以在家“逛商店”,订货不受时间、地点的限制; 第二,获得较大量的商品信息,可以买到当地没有的商品; 第三,网上支付较传统拿现金支付更加安全,可避免现金丢失或遭到抢劫; 第四,从订货、买货到货物上门无需亲临现场,既省时又省力;第五,由于网上商品省去租店面、召雇员及储存保管等一系列费用,总的来说其价格较一般商场的同类商品更便宜。 其次,对于商家来说,由于网上销售没有库存压力、经营成本低、经营规模不受场地限制
4、等。在将来会有更多的企业选择网上销售,通过互联网对市场信息的及时反馈适时调整经营战略,以此提高企业的经济效益和参与国际竞争的能力。 再次,对于整个市场经济来说,这种新型的购物模式可在更大的范围内、更广的层面上以更高的效率实现资源配置。 综上可以看出,网上购物突破了传统商务的障碍,无论对消费者、企业还是市场都有着巨大的吸引力和影响力,在新经济时期无疑是达到“多赢”效果的理想模式。 2 系统分析与设计2.1项目主要功能描述这是一个网上宠物商店系统,网店里提供了和实体店一样的宠物来供用户观看、购买,具体功能如下: 系统的注册功能:在欢迎页可以实现用户的注册,注册之后可以登录。 登录功能:注册完成后就
5、可以使用刚才注册的账号进行登录,如果是管理员,登录后实现管理员的功能,如果是普通用户,可以购买宠物。 下面来介绍管理员登陆后的功能:宠物类别的添加功能:使用该功能可以添加宠物种类和宠物种类的编号。宠物类别的删除功能:使用该功能可以删除某些宠物种类及其编号。宠物类别的查看功能:使用该功能可以查看所有的宠物种类和他们对应的编号。宠物数量的添加功能:使用该功能可以在一个宠物种类下添加一个具体的宠物,包括此宠物的价格、寿命、重量等等宠物的具体属性。订单发送功能:该功能可以发送顾客已经购买的宠物的订单。订单删除功能:使用该功能可以删除任何顾客的购物车中的订单,不管顾客有没有购买,都可以删除。重新登录功能
6、:使用该功能可以回到登录页面。密码修改功能:该功能可以实现用户密码的修改。现在介绍普通用户的功能:添加宠物的功能:使用该功能可以将任何宠物添加到购物车。删除宠物的功能:该功能可以删除购物车中的宠物。查看购物车功能:该功能可以看见自己目前选定了多少宠物。购买宠物功能:使用该功能可以购买购物车中选定的宠物。修改密码功能:使用该功能可以修改用户的密码。重新登录功能:使用该动能可以回到登录页面。2.2数据库设计 1.绘制E-R图进行概念建模。用户表管理宠物类别宠物订单项表订单表订单项表存储订单表供应商表管理管理员普通用户查看添加2.数据库表设计 2-1用户表(Customer)编号字段名数据类型是否主
7、见字段意义1userIdint是用户的编号2userNamenvarchar(50)否用户名称3userPasswordnvarchar(50)否用户密码 2-2宠物表(Pets)编号字段名数据类型是否主见字段意义1PetsIdnvarchar(50)是宠物的编号2PetsNamenvarchar(50)否宠物名称3Weightnvarchar(50)否宠物重量4PetsLifeint否宠物寿命5PurchasePricesmallmoney否宠物价格6RetailPricesmallmoney否宠物零售价7ActualSalePricesmallmoney否宠物售出的实际价格8PetsGen
8、reIdnvarchar(50)否宠物所属种类的编号 2-3宠物种类表(PetsGenre)编号字段名数据类型是否主见字段意义1PetsGenreIdnvarchar(50)是宠物类别的编号2PetsGenreNamenvarchar(50)否宠物种类名称 2-4订单表(Pets)编号字段名数据类型是否主见字段意义1PurchaseOrderIdint是订单的编号2TotalMoneymoney否订单价格3PurchaseDateDatetime否订单产生日期4Demonvarchar(50)否顾客评价5SupplierIdint否供应商编号6CustomerIdInt否用户编号7Purcha
9、seOrderItemIdint否订单项编号8Markint否用户是否购买的标记 2-5订单项表(PurchaseOrderItem)编号字段名数据类型是否主见字段意义1PurchaseOrderItemIdint是订单项的编号2PetsQuanlityInt否宠物数量3TotalPerchaseItemPricemoney否订单项价格4PetsIdnvarchar(50)否宠物编号5PurchaseOrderIdint否订单编号 2-6供应商表(Supplier)编号字段名数据类型是否主见字段意义1SupplierIdint是供应商的编号2SupplierNamenvarchar(50)否供
10、应商名称3Telephonenvarchar(50)否供应商电话4Addressnvarchar(50)否供应商地址5FaxCodenvarchar(50)否供应商传真6Memonvarchar(50)否供应商备注3 系统实现3.1 系统首页3.1.1 管理员角色首页3.1.2 普通用户角色首页3.2 增加宠物种类的功能实现3.2.1 Model.Models层 public class PetsGenre public string PetsGenreId get; set; public string PetsGenreName get; set; 3.2.2 Model.IReposit
11、ory层 public interface IPetsGenreRepository void Add(PetsGenre PetsGenre);/add void Save(PetsGenre PetsGenre);/save void Remove(PetsGenre PetsGenre);/delete PetsGenre FindBy(string id);/find according to id List FindAll();/ find all 3.2.3 Repository.Linq层 public class PetsGenreRepository:IPetsGenreRe
12、pository PetsShopSolutionDataContext db = new PetsShopSolutionDataContext(); public void Add(PetsGenre PetsGenre) /将一个类中的信息传到那一个类中 R_PetsGenre r_goodGenre = new R_PetsGenre(); r_goodGenre.PetsGenreId = PetsGenre.PetsGenreId; r_goodGenre.PetsGenreName = PetsGenre.PetsGenreName; db.R_PetsGenre.InsertO
13、nSubmit(r_goodGenre); db.SubmitChanges(); public void Save(PetsGenre PetsGenre) var r_petsGenre = db.R_PetsGenre.SingleOrDefault (u = u.PetsGenreId = PetsGenre.PetsGenreId); r_petsGenre.PetsGenreId = PetsGenre.PetsGenreId; r_petsGenre.PetsGenreName = PetsGenre.PetsGenreName; db.SubmitChanges(); publ
14、ic void Remove(PetsGenre PetsGenre) var r_petsGenre = db.R_PetsGenre.SingleOrDefault (u = u.PetsGenreId = PetsGenre.PetsGenreId); db.R_PetsGenre.DeleteOnSubmit(r_petsGenre); db.SubmitChanges(); public PetsGenre FindBy(string id) PetsGenre petsGenre = new PetsGenre(); var r_petsGenre = db.R_PetsGenre
15、.SingleOrDefault (u = u.PetsGenreId = id); if (r_petsGenre != null) petsGenre.PetsGenreId = r_petsGenre.PetsGenreId; petsGenre.PetsGenreName = r_petsGenre.PetsGenreName; return petsGenre; else return null; public List FindAll() List petsGenres = new List(); var r_petsGenres = db.R_PetsGenre.ToList()
16、; foreach (R_PetsGenre r_petsGenre in r_petsGenres) PetsGenre petsGenre = new PetsGenre(); petsGenre.PetsGenreId = r_petsGenre.PetsGenreId; petsGenre.PetsGenreName = r_petsGenre.PetsGenreName; petsGenres.Add(petsGenre); return petsGenres; 3.2.4 Model.Services层 public class PetsGenreService private I
17、PetsGenreRepository _petsGenreRepository; public PetsGenreService(IPetsGenreRepository petsGenreRepository) _petsGenreRepository = petsGenreRepository; public PetsGenre FindBy(string petsGenreId) return _petsGenreRepository.FindBy(petsGenreId); public bool IsExisted(string petsGenreId) var result =
18、FindBy(petsGenreId); if (result != null) return true; else return false; public List FindAll() return _petsGenreRepository.FindAll(); public bool IsExistedName(string petsGenreName) var result = FindAll(). Where(u = u.PetsGenreName = petsGenreName).ToList(); if (result.Count 0) return true; else ret
19、urn false; public int Add(PetsGenre petsGenre) if (IsExisted(petsGenre.PetsGenreId) return 4; else _petsGenreRepository.Add(petsGenre); return 1; public int Save(PetsGenre petsGenre) if (IsExisted(petsGenre.PetsGenreId) _petsGenreRepository.Save(petsGenre); return 2; else return 5; public int Remove
20、(PetsGenre petsGenre) if (IsExisted(petsGenre.PetsGenreId) _petsGenreRepository.Remove(petsGenre); return 3; else return 6; 3.2.5 Service.ServiceFactory层 public static PetsGenreService CreatePetsGenreService() IPetsGenreRepository petsGenreRepoitory = new PetsGenreRepository(); return new PetsGenreS
21、ervice(petsGenreRepoitory); 3.2.6 Infrastructure层 public class StringHelper public static bool StringIsNull(string test) if (test.Trim() = ) return true; else return false; public static bool StringIsNotNull(string test) if (test.Trim() != ) return true; else return false; 3.2.7 WebUI.ASPNET层 public
22、 partial class Create : System.Web.UI.Page PetsGenreService petsGenreService = ServiceFactory.CreatePetsGenreService(); protected void Page_Load(object sender, EventArgs e) protected void ClearData() /此函数可清textbox中的数据 txtPetsGenreId.Text = ; txtPetsGenreName.Text = ; protected bool ValidatePage()/此函
23、数可判断textbox中的值是否为空 if (StringHelper.StringIsNull(txtPetsGenreId.Text) Response.Write(alert(请填写宠物类别号!);); return false; if (StringHelper.StringIsNull(txtPetsGenreName.Text) Response.Write(alert(请填写宠物名称!);); return false; return true; protected void Button1_Click(object sender, EventArgs e)/触发button按钮
24、事件 if (ValidatePage() Model.Models.PetsGenre petsGenre = new Model.Models.PetsGenre(); petsGenre.PetsGenreId = txtPetsGenreId.Text; petsGenre.PetsGenreName = txtPetsGenreName.Text; int rel = petsGenreService.Add(petsGenre); Response.Write(alert(宠物类别资料已经创建成功!);); ClearData(); Response.Redirect(Index.
25、aspx); else 3.3 查看购物车功能的实现3.3.1 Model.Models层 public class PurchaseOrderItem public int PurchaseOrderItemId set; get; public int PetsQuanlity set; get; /public decimal PetsPrice set; get; public decimal ?TotalPerchaseItemPrice set; get; public Pets Pets set; get; /public List PetList set; get; publi
26、c int PurchaseOrderId set; get; public PurchaseOrderItem() Pets = new Model.Models.Pets(); /PetList=new List; /PurchaseOrder = new PurchaseOrder(); public class PurchaseOrder public int PurchaseOrderId set; get; public decimal ?TotalMoney set; get; public DateTime ? PurchaseDate set; get; public str
27、ing Demo set; get; public int ?Mark set;get; public Supplier Supplier set; get; public Customer Customer set; get; /public List PurchaseOrderItemList set; get; public PurchaseOrderItem PurchaseOrderItem set; get; public PurchaseOrder() Supplier = new Supplier(); Customer=new Customer(); / PurchaseOr
28、derItemList = new List(); PurchaseOrderItem = new PurchaseOrderItem(); public class Pets public string PetsId get; set; public string PetsName get; set; public string Weight get; set; public int ? PetsLife get; set; public PetsGenre PetsGenre get; set; public PetsPrice PetsPrice get; set; public Pet
29、s() PetsGenre =new PetsGenre(); PetsPrice =new PetsPrice(); public class Customer public int userId set; get; public string userName set; get; public string userPassword set; get; 3.3.2 Model.IRepository层 public interface IPurchaseOrderRepository void Add(PurchaseOrder purchaseOrder); void Save(Purc
30、haseOrder purchaseOrder); void Remove(PurchaseOrder purchaseOrder); PurchaseOrder FindBy(int id); /PurchaseOrder findby(string str); List FindAll(); public interface IPurchaseOrderItemRepository void Add(PurchaseOrderItem PurchaseOrderItem); void Remove(PurchaseOrderItem PurchaseOrderItem); void Sav
31、e(PurchaseOrderItem PurchaseOrderItem); PurchaseOrderItem FindBy(int id); List Findall(); public interface IPetsRepository void Add(Pets pets);/add void Save(Pets pets);/save void Remove(Pets pets);/delete Pets FindBy(string id);/find according to id List FindAll();/find all public interface ICustom
32、erRepository void Add(Customer customer); void Remove(Customer customer); void Save(Customer customer); Customer FindBy(string username); List FindAll(); 3.3.3 Repository.Linq层 public class PurchaseOrderRepository:IPurchaseOrderRepository PetsShopSolutionDataContext db = new PetsShopSolutionDataContext(); public void Add(PurchaseOrder purchaseOrder) R_PurchaseOrder r_pets = new R_PurchaseOrder(); r_pets.CustomerId = purchaseOrder.Customer.userId;