《宠物商店的设计实现分析.doc》由会员分享,可在线阅读,更多相关《宠物商店的设计实现分析.doc(62页珍藏版)》请在课桌文档上搜索。
1、-宠物商店系统的设计与实现作者详情一览表 外文名中文名代号Aragorn阿拉贡114. z.-目 录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修改密码功能实现593.12重新登录功能实现603.13在购物车中添加宠物功能实现61
2、3.14删除购物车中宠物功能实现68结论72. z.-1 绪论1.1工程开发的背景 网上购物,这个逐渐流行于21世纪的购物方式已经为越来越多的人所承受。不管是腰缠万贯的大富翁、时尚的白领丽人还是普通的工薪阶层,其局部人可能都有过上网购物的经历。这其中有的也许仅仅想拥有这种体检的感觉,有的可能将此作为一种“知识人士的标志,有的则可能已经将网上购物作为自己日常生活的重要组成局部而取代了传统上街购物的方式。所以此时各种网购软件也就应运而生了。随着社会的开展,人们的生活也越来越好,更多的人愿意养一个宠物来冶一下情操了。而正在此时,我们做软件的程序员应该发现时代的气息、把我时代的走向,做出一款适合群众网
3、购宠物的软件,所以我的宠物商店横空出世了。1.2 工程开发的意义 首先,对于消费者来说:第一,可以在家“逛商店,订货不受时间、地点的限制; 第二,获得较大量的商品信息,可以买到当地没有的商品; 第三,网上支付较传统拿现金支付更加平安,可防止现金丧失或遭到抢劫; 第四,从订货、买货到货物上门无需亲临现场,既省时又省力;第五,由于网上商品省去租店面、召雇员及储存保管等一系列费用,总的来说其价格较一般商场的同类商品更廉价。 其次,对于商家来说,由于网上销售没有库存压力、经营本钱低、经营规模不受场地限制等。在将来会有更多的企业选择网上销售,通过互联网对市场信息的及时反应适时调整经营战略,以此提高企业的
4、经济效益和参与国际竞争的能力。 再次,对于整个市场经济来说,这种新型的购物模式可在更大的围、更广的层面上以更高的效率实现资源配置。 综上可以看出,网上购物突破了传统商务的障碍,无论对消费者、企业还是市场都有着巨大的吸引力和影响力,在新经济时期无疑是到达“多赢效果的理想模式。2 系统分析与设计2.1工程主要功能描述这是一个网上宠物商店系统,网店里提供了和实体店一样的宠物来供用户观看、购置,具体功能如下: 系统的注册功能:在欢送页可以实现用户的注册,注册之后可以登录。 登录功能:注册完成后就可以使用刚刚注册的账号进展登录,如果是管理员,登录后实现管理员的功能,如果是普通用户,可以购置宠物。 下面来
5、介绍管理员登陆后的功能:宠物类别的添加功能:使用该功能可以添加宠物种类和宠物种类的编号。宠物类别的删除功能:使用该功能可以删除*些宠物种类及其编号。宠物类别的查看功能:使用该功能可以查看所有的宠物种类和他们对应的编号。宠物数量的添加功能:使用该功能可以在一个宠物种类下添加一个具体的宠物,包括此宠物的价格、寿命、重量等等宠物的具体属性。订单发送功能:该功能可以发送顾客已经购置的宠物的订单。订单删除功能:使用该功能可以删除任何顾客的购物车中的订单,不管顾客有没有购置,都可以删除。重新登录功能:使用该功能可以回到登录页面。密码修改功能:该功能可以实现用户密码的修改。现在介绍普通用户的功能:添加宠物的
6、功能:使用该功能可以将任何宠物添加到购物车。删除宠物的功能:该功能可以删除购物车中的宠物。查看购物车功能:该功能可以看见自己目前选定了多少宠物。购置宠物功能:使用该功能可以购置购物车中选定的宠物。修改密码功能:使用该功能可以修改用户的密码。重新登录功能:使用该动能可以回到登录页面。2.2数据库设计1.绘制E-R图进展概念建模。用户表管理宠物类别宠物订单项表订单表订单项表存储订单表供给商表管理管理员普通用户查看添加2.数据库表设计 2-1用户表Customer编号字段名数据类型是否主见字段意义1userIdint是用户的编号2userNamenvarchar(50)否用户名称3userPassw
7、ordnvarchar(50)否用户密码 2-2宠物表Pets编号字段名数据类型是否主见字段意义1PetsIdnvarchar(50)是宠物的编号2PetsNamenvarchar(50)否宠物名称3Weightnvarchar(50)否宠物重量4PetsLifeint否宠物寿命5PurchasePricesmallmoney否宠物价格6RetailPricesmallmoney否宠物零售价7ActualSalePricesmallmoney否宠物售出的实际价格8PetsGenreIdnvarchar(50)否宠物所属种类的编号 2-3宠物种类表PetsGenre编号字段名数据类型是否主见字段
8、意义1PetsGenreIdnvarchar(50)是宠物类别的编号2PetsGenreNamenvarchar(50)否宠物种类名称 2-4订单表Pets编号字段名数据类型是否主见字段意义1PurchaseOrderIdint是订单的编号2TotalMoneymoney否订单价格3PurchaseDateDatetime否订单产生日期4Demonvarchar(50)否顾客评价5SupplierIdint否供给商编号6CustomerIdInt否用户编号7PurchaseOrderItemIdint否订单项编号8Markint否用户是否购置的标记 2-5订单项表PurchaseOrderIt
9、em编号字段名数据类型是否主见字段意义1PurchaseOrderItemIdint是订单项的编号2PetsQuanlityInt否宠物数量3TotalPerchaseItemPricemoney否订单项价格4PetsIdnvarchar(50)否宠物编号5PurchaseOrderIdint否订单编号 2-6供给商表Supplier编号字段名数据类型是否主见字段意义1SupplierIdint是供给商的编号2SupplierNamenvarchar(50)否供给商名称3Telephonenvarchar(50)否供给商4Addressnvarchar(50)否供给商地址5Fa*Codenva
10、rchar(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.IRepository层public interface IPetsGenreRepository void Add(PetsGenre PetsGenre
11、);/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:IPetsGenreRepository PetsShopSolutionDataConte*t db = new PetsShopSolutionDataConte
12、*t(); 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.InsertOnSubmit(r_goodGenre); db.SubmitChanges(); public void Save(PetsGenre Pe
13、tsGenre) var r_petsGenre = db.R_PetsGenre.SingleOrDefault (u = u.PetsGenreId = PetsGenre.PetsGenreId); r_petsGenre.PetsGenreId = PetsGenre.PetsGenreId; r_petsGenre.PetsGenreName = PetsGenre.PetsGenreName; db.SubmitChanges(); public void Remove(PetsGenre PetsGenre) var r_petsGenre = db.R_PetsGenre.Si
14、ngleOrDefault (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.SingleOrDefault (u = u.PetsGenreId = id); if (r_petsGenre != null) pet
15、sGenre.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(); foreach (R_PetsGenre r_petsGenre in r_petsGenres) PetsGenre petsGenre
16、 = 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 IPetsGenreRepository _petsGenreRepository; public PetsGenreService(IPets
17、GenreRepository petsGenreRepository) _petsGenreRepository = petsGenreRepository; public PetsGenre FindBy(string petsGenreId) return _petsGenreRepository.FindBy(petsGenreId); public bool IsE*isted(string petsGenreId) var result = FindBy(petsGenreId); if (result != null) return true; else return false
18、; public List FindAll() return _petsGenreRepository.FindAll(); public bool IsE*istedName(string petsGenreName) var result = FindAll(). Where(u = u.PetsGenreName = petsGenreName).ToList(); if (result.Count 0) return true; else return false; public int Add(PetsGenre petsGenre) if (IsE*isted(petsGenre.
19、PetsGenreId) return 4; else _petsGenreRepository.Add(petsGenre); return 1; public int Save(PetsGenre petsGenre) if (IsE*isted(petsGenre.PetsGenreId) _petsGenreRepository.Save(petsGenre); return 2; else return 5; public int Remove(PetsGenre petsGenre) if (IsE*isted(petsGenre.PetsGenreId) _petsGenreRe
20、pository.Remove(petsGenre); return 3; else return 6; 3.2.5 Service.ServiceFactory层 public static PetsGenreService CreatePetsGenreService() IPetsGenreRepository petsGenreRepoitory = new PetsGenreRepository(); return new PetsGenreService(petsGenreRepoitory); 3.2.6 Infrastructure层 public class StringHe
21、lper 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层 PetsGenreService petsGenreService = ServiceFactory.CreatePetsGenreService();
22、protected void Page_Load(object sender, EventArgs e) protected void ClearData() /此函数可清te*tbo*中的数据 t*tPetsGenreId.Te*t = ; t*tPetsGenreName.Te*t = ; protected bool ValidatePage()/此函数可判断te*tbo*中的值是否为空 if (StringHelper.StringIsNull(t*tPetsGenreId.Te*t) Response.Write(alert(请填写宠物类别号!);); return false; i
23、f (StringHelper.StringIsNull(t*tPetsGenreName.Te*t) Response.Write(alert(请填写宠物名称!);); return false; return true; protected void Button1_Click(object sender, EventArgs e)/触发button按钮事件 if (ValidatePage() Model.Models.PetsGenre petsGenre = new Model.Models.PetsGenre(); petsGenre.PetsGenreId = t*tPetsGe
24、nreId.Te*t; petsGenre.PetsGenreName = t*tPetsGenreName.Te*t; int rel = petsGenreService.Add(petsGenre); Response.Write(alert(宠物类别资料已经创立成功!);); ClearData(); Response.Redirect(Inde*.asp*); else 3.3 查看购物车功能的实现3.3.1 Model.Models层 public class PurchaseOrderItem public int PurchaseOrderItemId set; get; pu
25、blic int PetsQuanlity set; get; /public decimal PetsPrice set; get; public decimal TotalPerchaseItemPrice set; get; public Pets Pets set; get; /public List PetList set; get; public int PurchaseOrderId set; get; public PurchaseOrderItem() Pets = new Model.Models.Pets(); /PetList=new List; /PurchaseOr
26、der = new PurchaseOrder(); public class PurchaseOrder public int PurchaseOrderId set; get; public decimal TotalMoney set; get; public DateTime PurchaseDate set; get; public string Demo set; get; public int Mark set;get; public Supplier Supplier set; get; public Customer Customer set; get; /public Li
27、st PurchaseOrderItemList set; get; public PurchaseOrderItem PurchaseOrderItem set; get; public PurchaseOrder() Supplier = new Supplier(); Customer=new Customer(); / PurchaseOrderItemList = new List(); PurchaseOrderItem = new PurchaseOrderItem(); public class Pets public string PetsId get; set; publi
28、c 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 Pets() PetsGenre =new PetsGenre(); PetsPrice =new PetsPrice(); public class Customer public int userId set; get; public string use
29、rName set; get; public string userPassword set; get; 3.3.2 Model.IRepository层 public interface IPurchaseOrderRepository void Add(PurchaseOrder purchaseOrder); void Save(PurchaseOrder purchaseOrder); void Remove(PurchaseOrder purchaseOrder); PurchaseOrder FindBy(int id); /PurchaseOrder findby(string
30、str); List FindAll(); public interface IPurchaseOrderItemRepository void Add(PurchaseOrderItem PurchaseOrderItem); void Remove(PurchaseOrderItem PurchaseOrderItem); void Save(PurchaseOrderItem PurchaseOrderItem); PurchaseOrderItem FindBy(int id); List Findall(); public interface IPetsRepository void
31、 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 ICustomerRepository void Add(Customer customer); void Remove(Customer customer); void Save(Customer customer); Customer FindBy(string
32、username); List FindAll(); 3.3.3 Repository.Linq层 public class PurchaseOrderRepository:IPurchaseOrderRepository PetsShopSolutionDataConte*t db = new PetsShopSolutionDataConte*t(); public void Add(PurchaseOrder purchaseOrder) R_PurchaseOrder r_pets = new R_PurchaseOrder(); r_pets.CustomerId = purchas
33、eOrder.Customer.userId; r_pets.Demo = purchaseOrder.Demo; r_pets.PurchaseDate = purchaseOrder.PurchaseDate; r_pets.PurchaseOrderId = purchaseOrder.PurchaseOrderId; r_pets.PurchaseOrderItemId = purchaseOrder.PurchaseOrderItem.PurchaseOrderItemId; r_pets.SupplierId = purchaseOrder.Supplier.SupplierId; r_pets.TotalMoney = purchaseOrder.TotalMoney; r_pets.Mark = purchaseOrder.Mark; db.R_PurchaseOrder.InsertOnSubmit(r_pets); db.Sub
链接地址:https://www.desk33.com/p-7220.html