收藏 分享(赏)

宠物商店的设计与实现.doc

上传人:精品资料 文档编号:9912216 上传时间:2019-09-18 格式:DOC 页数:74 大小:8.02MB
下载 相关 举报
宠物商店的设计与实现.doc_第1页
第1页 / 共74页
宠物商店的设计与实现.doc_第2页
第2页 / 共74页
宠物商店的设计与实现.doc_第3页
第3页 / 共74页
宠物商店的设计与实现.doc_第4页
第4页 / 共74页
宠物商店的设计与实现.doc_第5页
第5页 / 共74页
点击查看更多>>
资源描述

1、 Aragorns File第 1 页 共 74 页1宠物商店系统的设计与实现作者详情一览表 外文名 中文名 代 号Aragorn 阿拉 贡 114Aragorns File第 2 页 共 74 页2目 录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 添加宠物功能实

2、现 .533.9 删除订单功能实现 .563.10 发送订单功能实现 583.11 修改密码功能实现 593.12 重新登录功能实现 603.13 在购物车中添加宠物功能实现 613.14 删除购物车中宠物功能实现 68结论 .72Aragorns File第 3 页 共 74 页31 绪论1.1项目开发的背景网上购物,这个逐渐流行于21世纪的购物方式已经为越来越多的人所接受。不论是腰缠万贯的大富翁、时尚的白领丽人还是普通的工薪阶层,其中大部分人可能都有过上网购物的经历。这其中有的也许仅仅想拥有这种体检的感觉,有的可能将此作为一种“知识人士”的标志,有的则可能已经将网上购物作为自己日常生活的重

3、要组成部分而取代了传统上街购物的方式。所以此时各种网购软件也就应运而生了。随着社会的发展,人们的生活也越来越好,更多的人愿意养一个宠物来陶冶一下情操了。而正在此时,我们做软件的程序员应该发现时代的气息、把我时代的走向,做出一款适合大众网购宠物的软件,所以我的宠物商店横空出世了。1.2 项目开发的意义 首先,对于消费者来说: 第一,可以在家“逛商店” ,订货不受时间、地点的限制; 第二,获得较大量的商品信息,可以买到当地没有的商品; 第三,网上支付较传统拿现金支付更加安全,可避免现金丢失或遭到抢劫; 第四,从订货、买货到货物上门无需亲临现场,既省时又省力; 第五,由于网上商品省去租店面、召雇员及

4、储存保管等一系列费用,总的来说其价格较一般商场的同类商品更便宜。其次,对于商家来说,由于网上销售没有库存压力、经营成本低、经营规模不受场地限制等。在将来会有更多的企业选择网上销售,通过互联网对市场信息的及时反馈适时调整经营战略,以此提高企业的经济效益和参与国际竞争的能力。再次,对于整个市场经济来说,这种新型的购物模式可在更大的范围内、更广的层面上以更高的效率实现资源配置。综上可以看出,网上购物突破了传统商务的障碍,无论对消费者、企业还是市场都有着巨大的吸引力和影响力,在新经济时期无疑是达到“多赢”效果的理想模式。Aragorns File第 4 页 共 74 页42 系统分析与设计2.1 项目

5、主要功能描述这是一个网上宠物商店系统,网店里提供了和实体店一样的宠物来供用户观看、购买,具体功能如下:系统的注册功能:在欢迎页可以实现用户的注册,注册之后可以登录。登录功能:注册完成后就可以使用刚才注册的账号进行登录,如果是管理员,登录后实现管理员的功能,如果是普通用户,可以购买宠物。下面来介绍管理员登陆后的功能:宠物类别的添加功能:使用该功能可以添加宠物种类和宠物种类的编号。宠物类别的删除功能:使用该功能可以删除某些宠物种类及其编号。宠物类别的查看功能:使用该功能可以查看所有的宠物种类和他们对应的编号。宠物数量的添加功能:使用该功能可以在一个宠物种类下添加一个具体的宠物,包括此宠物的价格、寿

6、命、重量等等宠物的具体属性。订单发送功能:该功能可以发送顾客已经购买的宠物的订单。订单删除功能:使用该功能可以删除任何顾客的购物车中的订单,不管顾客有没有购买,都可以删除。重新登录功能:使用该功能可以回到登录页面。密码修改功能:该功能可以实现用户密码的修改。现在介绍普通用户的功能:添加宠物的功能:使用该功能可以将任何宠物添加到购物车。删除宠物的功能:该功能可以删除购物车中的宠物。查看购物车功能:该功能可以看见自己目前选定了多少宠物。购买宠物功能:使用该功能可以购买购物车中选定的宠物。修改密码功能:使用该功能可以修改用户的密码。重新登录功能:使用该动能可以回到登录页面。Aragorns File

7、第 5 页 共 74 页52.2 数据库设计1.绘制 E-R 图进行概念建模。2.数据库表设计2-1 用户表(Customer)编号 字段名 数据类型 是否主见 字段意义1 userId int 是 用户的编号2 userName nvarchar(50) 否 用户名称3 userPassword nvarchar(50) 否 用户密码2-2 宠物表(Pets)普通用户管理员用户表存储管理订单项表订单表管理查看添加供应商表订单表订单项表宠物类别宠物Aragorns File第 6 页 共 74 页6编号 字段名 数据类型 是否主见 字段意义1 PetsId nvarchar(50) 是 宠物的

8、编号2 PetsName nvarchar(50) 否 宠物名称3 Weight nvarchar(50) 否 宠物重量4 PetsLife int 否 宠物寿命5 PurchasePrice smallmoney 否 宠物价格6 RetailPrice smallmoney 否 宠物零售价7 ActualSalePrice smallmoney 否 宠物售出的实际价格8 PetsGenreId nvarchar(50) 否 宠物所属种类的编号2-3 宠物种类表(PetsGenre)编号 字段名 数据类型 是否主见 字段意义1 PetsGenreId nvarchar(50) 是 宠物类别的编

9、号2 PetsGenreName nvarchar(50) 否 宠物种类名称2-4 订单表(Pets)编号 字段名 数据类型 是否主见 字段意义1 PurchaseOrderId int 是 订单的编号2 TotalMoney money 否 订单价格3 PurchaseDate Datetime 否 订单产生日期4 Demo nvarchar(50) 否 顾客评价5 SupplierId int 否 供应商编号6 CustomerId Int 否 用户编号7 PurchaseOrderItemIdint 否 订单项编号8 Mark int 否 用户是否购买的标记2-5 订单项表(Purcha

10、seOrderItem)编号 字段名 数据类型 是否主见 字段意义1 PurchaseOrderItemIdint 是 订单项的编号2 PetsQuanlity Int 否 宠物数量3 TotalPerchaseItemPricemoney 否 订单项价格4 PetsId nvarchar(50) 否 宠物编号5 PurchaseOrderId int 否 订单编号Aragorns File第 7 页 共 74 页72-6 供应商表(Supplier)编号 字段名 数据类型 是否主见 字段意义1 SupplierId int 是 供应商的编号2 SupplierName nvarchar(50

11、) 否 供应商名称3 Telephone nvarchar(50) 否 供应商电话4 Address nvarchar(50) 否 供应商地址5 FaxCode nvarchar(50) 否 供应商传真6 Memo nvarchar(50) 否 供应商备注Aragorns File第 8 页 共 74 页83 系统实现3.1 系统首页3.1.1 管理员角色首页3.1.2 普通用户角色首页Aragorns File第 9 页 共 74 页93.2 增加宠物种类的功能实现3.2.1 Model.Models 层public class PetsGenrepublic string PetsGenr

12、eId get; set; public string PetsGenreName get; set; 3.2.2 Model.IRepository 层public interface IPetsGenreRepositoryvoid Add(PetsGenre PetsGenre);/addvoid Save(PetsGenre PetsGenre);/savevoid Remove(PetsGenre PetsGenre);/deletePetsGenre FindBy(string id);/find according to id List FindAll();/ find all3

13、.2.3 Repository.Linq 层public class PetsGenreRepository:IPetsGenreRepositoryPetsShopSolutionDataContext db = new PetsShopSolutionDataContext();public void Add(PetsGenre PetsGenre)/将一个类中的信息传到那一个类中R_PetsGenre r_goodGenre = new R_PetsGenre();r_goodGenre.PetsGenreId = PetsGenre.PetsGenreId;r_goodGenre.Pe

14、tsGenreName = PetsGenre.PetsGenreName;db.R_PetsGenre.InsertOnSubmit(r_goodGenre);db.SubmitChanges();Aragorns File第 10 页 共 74 页10public void Save(PetsGenre PetsGenre)var r_petsGenre = db.R_PetsGenre.SingleOrDefault(u = u.PetsGenreId = PetsGenre.PetsGenreId);r_petsGenre.PetsGenreId = PetsGenre.PetsGen

15、reId;r_petsGenre.PetsGenreName = PetsGenre.PetsGenreName;db.SubmitChanges();public 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

16、id)PetsGenre petsGenre = new PetsGenre();var r_petsGenre = db.R_PetsGenre.SingleOrDefault(u = u.PetsGenreId = id);if (r_petsGenre != null)petsGenre.PetsGenreId = r_petsGenre.PetsGenreId;petsGenre.PetsGenreName = r_petsGenre.PetsGenreName;return petsGenre;elseAragorns File第 11 页 共 74 页11return null;p

17、ublic List FindAll()List petsGenres = new List();var r_petsGenres = db.R_PetsGenre.ToList();foreach (R_PetsGenre r_petsGenre in r_petsGenres)PetsGenre petsGenre = new PetsGenre();petsGenre.PetsGenreId = r_petsGenre.PetsGenreId;petsGenre.PetsGenreName = r_petsGenre.PetsGenreName;petsGenres.Add(petsGe

18、nre);return petsGenres;3.2.4 Model.Services 层public class PetsGenreServiceprivate IPetsGenreRepository _petsGenreRepository;public PetsGenreService(IPetsGenreRepository petsGenreRepository)_petsGenreRepository = petsGenreRepository;public PetsGenre FindBy(string petsGenreId)return _petsGenreReposito

19、ry.FindBy(petsGenreId);Aragorns File第 12 页 共 74 页12public bool IsExisted(string petsGenreId)var result = FindBy(petsGenreId);if (result != null)return true;else return false;public List FindAll()return _petsGenreRepository.FindAll();public bool IsExistedName(string petsGenreName)var result = FindAll

20、().Where(u = u.PetsGenreName = petsGenreName).ToList();if (result.Count 0)return true;else return false;public int Add(PetsGenre petsGenre)Aragorns File第 13 页 共 74 页13if (IsExisted(petsGenre.PetsGenreId) return 4; else _petsGenreRepository.Add(petsGenre);return 1;public int Save(PetsGenre petsGenre)

21、if (IsExisted(petsGenre.PetsGenreId)_petsGenreRepository.Save(petsGenre);return 2;else return 5;public int Remove(PetsGenre petsGenre)if (IsExisted(petsGenre.PetsGenreId)_petsGenreRepository.Remove(petsGenre);return 3;else return 6;Aragorns File第 14 页 共 74 页143.2.5 Service.ServiceFactory 层public sta

22、tic PetsGenreService CreatePetsGenreService()IPetsGenreRepository petsGenreRepoitory =new PetsGenreRepository();return new PetsGenreService(petsGenreRepoitory);3.2.6 Infrastructure 层public class StringHelperpublic static bool StringIsNull(string test)if (test.Trim() = “)return true;elsereturn false;

23、public static bool StringIsNotNull(string test)if (test.Trim() != “)return true;elsereturn false;Aragorns File第 15 页 共 74 页153.2.7 WebUI.ASPNET 层public partial class Create : System.Web.UI.PagePetsGenreService petsGenreService = ServiceFactory.CreatePetsGenreService();protected void Page_Load(object

24、 sender, EventArgs e)protected void ClearData() /此函数可清 textbox 中的数据txtPetsGenreId.Text = “;txtPetsGenreName.Text = “;protected bool ValidatePage()/此函数可判断 textbox 中的值是否为空if (StringHelper.StringIsNull(txtPetsGenreId.Text)Aragorns File第 16 页 共 74 页16Response.Write(“alert(请填写宠物类别号!);“);return false;if (

25、StringHelper.StringIsNull(txtPetsGenreName.Text)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 = txtPetsGenreId.T

26、ext;petsGenre.PetsGenreName = txtPetsGenreName.Text;int rel = petsGenreService.Add(petsGenre);Response.Write(“alert(宠物类别资料已经创建成功!);“);ClearData();Response.Redirect(“Index.aspx“);else 3.3 查看购物车功能的实现Aragorns File第 17 页 共 74 页173.3.1 Model.Models 层public class PurchaseOrderItempublic int PurchaseOrderI

27、temId 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; public int PurchaseOrderId set; get; public PurchaseOrderItem()Pets = new Model.Models.Pets();/PetList=new

28、List;/PurchaseOrder = new PurchaseOrder();public class PurchaseOrderpublic 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 se

29、t; get; /public List PurchaseOrderItemList set; get; public PurchaseOrderItem PurchaseOrderItem set; get; Aragorns File第 18 页 共 74 页18public PurchaseOrder()Supplier = new Supplier();Customer=new Customer();/ PurchaseOrderItemList = new List();PurchaseOrderItem = new PurchaseOrderItem();public class

30、Petspublic 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 Pets()PetsGenre =new PetsGenre();PetsPrice =new PetsPrice(); public class Customerpublic

31、 int userId set; get; public string userName set; get; public string userPassword set; get; Aragorns File第 19 页 共 74 页193.3.2 Model.IRepository 层public interface IPurchaseOrderRepositoryvoid Add(PurchaseOrder purchaseOrder);void Save(PurchaseOrder purchaseOrder);void Remove(PurchaseOrder purchaseOrd

32、er);PurchaseOrder FindBy(int id);/PurchaseOrder findby(string str);List FindAll();public interface IPurchaseOrderItemRepositoryvoid Add(PurchaseOrderItem PurchaseOrderItem);void Remove(PurchaseOrderItem PurchaseOrderItem);void Save(PurchaseOrderItem PurchaseOrderItem);PurchaseOrderItem FindBy(int id

33、);List Findall();public interface IPetsRepositoryvoid Add(Pets pets);/addvoid Save(Pets pets);/savevoid Remove(Pets pets);/deletePets FindBy(string id);/find according to idList FindAll();/find allAragorns File第 20 页 共 74 页20public interface ICustomerRepositoryvoid Add(Customer customer);void Remove

34、(Customer customer);void Save(Customer customer);Customer FindBy(string username);List FindAll();3.3.3 Repository.Linq 层public class PurchaseOrderRepository:IPurchaseOrderRepositoryPetsShopSolutionDataContext db = new PetsShopSolutionDataContext();public void Add(PurchaseOrder purchaseOrder)R_Purcha

35、seOrder r_pets = new R_PurchaseOrder();r_pets.CustomerId = purchaseOrder.Customer.userId;r_pets.Demo = purchaseOrder.Demo;r_pets.PurchaseDate = purchaseOrder.PurchaseDate;r_pets.PurchaseOrderId = purchaseOrder.PurchaseOrderId;r_pets.PurchaseOrderItemId = purchaseOrder.PurchaseOrderItem.PurchaseOrder

36、ItemId;r_pets.SupplierId = purchaseOrder.Supplier.SupplierId;r_pets.TotalMoney = purchaseOrder.TotalMoney;r_pets.Mark = purchaseOrder.Mark;db.R_PurchaseOrder.InsertOnSubmit(r_pets);db.SubmitChanges();Aragorns File第 21 页 共 74 页21public void Save(PurchaseOrder purchaseOrder)var r_purchaseOrder = db.R_

37、PurchaseOrder.SingleOrDefault(u = u.PurchaseOrderId = purchaseOrder.PurchaseOrderId);r_purchaseOrder.CustomerId = purchaseOrder.Customer.userId;r_purchaseOrder.Demo = purchaseOrder.Demo;r_purchaseOrder.PurchaseDate = purchaseOrder.PurchaseDate;r_purchaseOrder.PurchaseOrderId = purchaseOrder.Purchase

38、OrderId;r_purchaseOrder.PurchaseOrderItemId= purchaseOrder.PurchaseOrderItem.PurchaseOrderItemId;r_purchaseOrder.SupplierId = purchaseOrder.Supplier.SupplierId;r_purchaseOrder.TotalMoney = purchaseOrder.TotalMoney;r_purchaseOrder.Mark = purchaseOrder.Mark;db.SubmitChanges();public void Remove(Purcha

39、seOrder purchaseOrder)var r_purchasseOrder = db.R_PurchaseOrder.SingleOrDefault(u = u.PurchaseOrderId= purchaseOrder.PurchaseOrderId);db.R_PurchaseOrder.DeleteOnSubmit(r_purchasseOrder);db.SubmitChanges();public PurchaseOrder FindBy(int id)Aragorns File第 22 页 共 74 页22PurchaseOrder purchaseOrder = ne

40、w PurchaseOrder();var r_purchaseOrder = (from r in db.R_PurchaseOrder/join p in db.R_Supplier on r.SupplierId equals p.SupplierIdjoin q in db.R_Customer on r.CustomerId equals q.userIdjoin s in db.R_PurchaseOrderItem on r.PurchaseOrderItemId equals s.PurchaseOrderItemIdjoin p in db.R_Pets on s.PetsI

41、d equals p.PetsIdwhere r.PurchaseOrderId = idselect newid = r.PurchaseOrderId,customerid = r.CustomerId,customername=q.userName,demo = r.Demo,date = r.PurchaseDate,itemid = r.PurchaseOrderItemId,quality=s.PetsQuanlity,supplierid = r.SupplierId,totalmoney = r.TotalMoney,mark=r.Mark,petsid=p.PetsId,pe

42、tsname=p.PetsName).FirstOrDefault();/r).FirstOrDefault();if (r_purchaseOrder != null)/purchaseOrder.Customer.userId = r_purchaseOrder.CustomerId;purchaseOrder.Customer.userId = r_purchaseOrder.customerid;Aragorns File第 23 页 共 74 页23purchaseOrder.Demo = r_purchaseOrder.demo;purchaseOrder.PurchaseDate

43、 = r_purchaseOrder.date;purchaseOrder.PurchaseOrderId = r_purchaseOrder.id;purchaseOrder.PurchaseOrderItem.PurchaseOrderItemId = r_purchaseOrder.itemid;purchaseOrder.PurchaseOrderItem.PetsQuanlity = r_purchaseOrder.quality;purchaseOrder.Supplier.SupplierId = r_purchaseOrder.supplierid;purchaseOrder.

44、TotalMoney = r_purchaseOrder.totalmoney;purchaseOrder.Mark = r_purchaseOrder.mark;purchaseOrder.Customer.userName = r_purchaseOrder.customername;purchaseOrder.PurchaseOrderItem.Pets.PetsName = r_purchaseOrder.petsname;purchaseOrder.PurchaseOrderItem.Pets.PetsId = r_purchaseOrder.petsid;return purcha

45、seOrder;elsereturn null;public List FindAll()List purchaseOrders = new List();var r_purchaseOrders = db.R_PurchaseOrder.ToList();PurchaseOrderItemRepository poir = new PurchaseOrderItemRepository();PetsRepository pr = new PetsRepository();Aragorns File第 24 页 共 74 页24CustomerRepository cr = new Custo

46、merRepository();PurchaseOrderRepository pop=new PurchaseOrderRepository();Customer customer;PurchaseOrder po;PurchaseOrderItem purchaseOrderItem;Pets pets;foreach(R_PurchaseOrder r_PurchaseOrder in r_purchaseOrders)string str=pop.FindBy(r_PurchaseOrder.PurchaseOrderId).Customer.userName;/ customer =

47、 cr.FindBy(r_PurchaseOrder.);purchaseOrderItem = poir.FindBy(r_PurchaseOrder.PurchaseOrderItemId);pets = pr.FindBy(purchaseOrderItem.Pets.PetsId);PurchaseOrder purchaseOrder = new PurchaseOrder();purchaseOrder.Customer.userId = r_PurchaseOrder.CustomerId;purchaseOrder.Customer.userName = str;purchas

48、eOrder.Demo = r_PurchaseOrder.Demo;purchaseOrder.PurchaseDate = r_PurchaseOrder.PurchaseDate;purchaseOrder.PurchaseOrderId= r_PurchaseOrder.PurchaseOrderId;purchaseOrder.PurchaseOrderItem.PurchaseOrderItemId= r_PurchaseOrder.PurchaseOrderItemId;purchaseOrder.PurchaseOrderItem.PetsQuanlity= purchaseOrderItem.PetsQuanlity;purchaseOrder.PurchaseOrderItem.Pets.PetsId = pets.PetsId;purchaseOrder.PurchaseOrderItem.Pets.PetsName= pets.PetsName;Aragorns File第 25 页 共 74 页25purchaseOrder.Supplier.SupplierId= r_PurchaseOrder.SupplierId;purchaseOrder.TotalMoney = r_PurchaseOrder.TotalMon

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

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


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

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

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