宠物商店的设计与实现.docx
《宠物商店的设计与实现.docx》由会员分享,可在线阅读,更多相关《宠物商店的设计与实现.docx(78页珍藏版)》请在冰豆网上搜索。
宠物商店的设计与实现
宠物商店系统的设计与实现
作者详情一览表
外文名
中文名
代号
Aragorn
阿拉贡
114
1绪论
1.1项目开发的背景
网上购物,这个逐渐流行于21世纪的购物方式已经为越来越多的人所接受。
不论是腰缠万贯的大富翁、时尚的白领丽人还是普通的工薪阶层,其中大部分人可能都有过上网购物的经历。
这其中有的也许仅仅想拥有这种体检的感觉,有的可能将此作为一种“知识人士”的标志,有的则可能已经将网上购物作为自己日常生活的重要组成部分而取代了传统上街购物的方式。
所以此时各种网购软件也就应运而生了。
随着社会的发展,人们的生活也越来越好,更多的人愿意养一个宠物来陶冶一下情操了。
而正在此时,我们做软件的程序员应该发现时代的气息、把我时代的走向,做出一款适合大众网购宠物的软件,所以我的宠物商店横空出世了。
1.2项目开发的意义
首先,对于消费者来说:
第一,可以在家“逛商店”,订货不受时间、地点的限制;
第二,获得较大量的商品信息,可以买到当地没有的商品;
第三,网上支付较传统拿现金支付更加安全,可避免现金丢失或遭到抢劫;
第四,从订货、买货到货物上门无需亲临现场,既省时又省力;
第五,由于网上商品省去租店面、召雇员及储存保管等一系列费用,总的来说其价格较一般商场的同类商品更便宜。
其次,对于商家来说,由于网上销售没有库存压力、经营成本低、经营规模不受场地限制等。
在将来会有更多的企业选择网上销售,通过互联网对市场信息的及时反馈适时调整经营战略,以此提高企业的经济效益和参与国际竞争的能力。
再次,对于整个市场经济来说,这种新型的购物模式可在更大的范围内、更广的层面上以更高的效率实现资源配置。
综上可以看出,网上购物突破了传统商务的障碍,无论对消费者、企业还是
市场都有着巨大的吸引力和影响力,在新经济时期无疑是达到“多赢”效果的理
想模式。
2系统分析与设计
2.1项目主要功能描述
这是一个网上宠物商店系统,网店里提供了和实体店一样的宠物来供用户观看、购买,具体功能如下:
系统的注册功能:
在欢迎页可以实现用户的注册,注册之后可以登录。
登录功能:
注册完成后就可以使用刚才注册的账号进行登录,如果是管理员,登录后实现管理员的功能,如果是普通用户,可以购买宠物。
下面来介绍管理员登陆后的功能:
宠物类别的添加功能:
使用该功能可以添加宠物种类和宠物种类的编号。
宠物类别的删除功能:
使用该功能可以删除某些宠物种类及其编号。
宠物类别的查看功能:
使用该功能可以查看所有的宠物种类和他们对应的编号。
宠物数量的添加功能:
使用该功能可以在一个宠物种类下添加一个具体的宠物,包括此宠物的价格、寿命、重量等等宠物的具体属性。
订单发送功能:
该功能可以发送顾客已经购买的宠物的订单。
订单删除功能:
使用该功能可以删除任何顾客的购物车中的订单,不管顾客有没有购买,都可以删除。
重新登录功能:
使用该功能可以回到登录页面。
密码修改功能:
该功能可以实现用户密码的修改。
现在介绍普通用户的功能:
添加宠物的功能:
使用该功能可以将任何宠物添加到购物车。
删除宠物的功能:
该功能可以删除购物车中的宠物。
查看购物车功能:
该功能可以看见自己目前选定了多少宠物。
购买宠物功能:
使用该功能可以购买购物车中选定的宠物。
修改密码功能:
使用该功能可以修改用户的密码。
重新登录功能:
使用该动能可以回到登录页面。
2.2数据库设计
1.绘制E-R图进行概念建模。
2.数据库表设计
2-1用户表(Customer)
编号
字段名
数据类型
是否主见
字段意义
1
userId
int
是
用户的编号
2
userName
nvarchar(50)
否
用户名称
3
userPassword
nvarchar(50)
否
用户密码
2-2宠物表(Pets)
编号
字段名
数据类型
是否主见
字段意义
1
PetsId
nvarchar(50)
是
宠物的编号
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)
是
宠物类别的编号
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
PurchaseOrderItemId
int
否
订单项编号
8
Mark
int
否
用户是否购买的标记
2-5订单项表(PurchaseOrderItem)
编号
字段名
数据类型
是否主见
字段意义
1
PurchaseOrderItemId
int
是
订单项的编号
2
PetsQuanlity
Int
否
宠物数量
3
TotalPerchaseItemPrice
money
否
订单项价格
4
PetsId
nvarchar(50)
否
宠物编号
5
PurchaseOrderId
int
否
订单编号
2-6供应商表(Supplier)
编号
字段名
数据类型
是否主见
字段意义
1
SupplierId
int
是
供应商的编号
2
SupplierName
nvarchar(50)
否
供应商名称
3
Telephone
nvarchar(50)
否
供应商电话
4
Address
nvarchar(50)
否
供应商地址
5
FaxCode
nvarchar(50)
否
供应商传真
6
Memo
nvarchar(50)
否
供应商备注
3系统实现
3.1系统首页
3.1.1管理员角色首页
3.1.2普通用户角色首页
3.2增加宠物种类的功能实现
3.2.1Model.Models层
publicclassPetsGenre
{
publicstringPetsGenreId{get;set;}
publicstringPetsGenreName{get;set;}
}
3.2.2Model.IRepository层
publicinterfaceIPetsGenreRepository
{
voidAdd(PetsGenrePetsGenre);//add
voidSave(PetsGenrePetsGenre);//save
voidRemove(PetsGenrePetsGenre);//delete
PetsGenreFindBy(stringid);//findaccordingtoid
ListFindAll();//findall
}
3.2.3Repository.Linq层
publicclassPetsGenreRepository:
IPetsGenreRepository
{
PetsShopSolutionDataContextdb=newPetsShopSolutionDataContext();
publicvoidAdd(PetsGenrePetsGenre)
{
//将一个类中的信息传到那一个类中
R_PetsGenrer_goodGenre=newR_PetsGenre();
r_goodGenre.PetsGenreId=PetsGenre.PetsGenreId;
r_goodGenre.PetsGenreName=PetsGenre.PetsGenreName;
db.R_PetsGenre.InsertOnSubmit(r_goodGenre);
db.SubmitChanges();
}
publicvoidSave(PetsGenrePetsGenre)
{
varr_petsGenre=db.R_PetsGenre.SingleOrDefault
(u=>u.PetsGenreId==PetsGenre.PetsGenreId);
r_petsGenre.PetsGenreId=PetsGenre.PetsGenreId;
r_petsGenre.PetsGenreName=PetsGenre.PetsGenreName;
db.SubmitChanges();
}
publicvoidRemove(PetsGenrePetsGenre)
{
varr_petsGenre=db.R_PetsGenre.SingleOrDefault
(u=>u.PetsGenreId==PetsGenre.PetsGenreId);
db.R_PetsGenre.DeleteOnSubmit(r_petsGenre);
db.SubmitChanges();
}
publicPetsGenreFindBy(stringid)
{
PetsGenrepetsGenre=newPetsGenre();
varr_petsGenre=db.R_PetsGenre.SingleOrDefault
(u=>u.PetsGenreId==id);
if(r_petsGenre!
=null)
{
petsGenre.PetsGenreId=r_petsGenre.PetsGenreId;
petsGenre.PetsGenreName=r_petsGenre.PetsGenreName;
returnpetsGenre;
}
else
{
returnnull;
}
}
publicListFindAll()
{
ListpetsGenres=newList();
varr_petsGenres=db.R_PetsGenre.ToList();
foreach(R_PetsGenrer_petsGenreinr_petsGenres)
{
PetsGenrepetsGenre=newPetsGenre();
petsGenre.PetsGenreId=r_petsGenre.PetsGenreId;
petsGenre.PetsGenreName=r_petsGenre.PetsGenreName;
petsGenres.Add(petsGenre);
}
returnpetsGenres;
}
}
3.2.4Model.Services层
publicclassPetsGenreService
{
privateIPetsGenreRepository_petsGenreRepository;
publicPetsGenreService(IPetsGenreRepositorypetsGenreRepository)
{
_petsGenreRepository=petsGenreRepository;
}
publicPetsGenreFindBy(stringpetsGenreId)
{
return_petsGenreRepository.FindBy(petsGenreId);
}
publicboolIsExisted(stringpetsGenreId)
{
varresult=FindBy(petsGenreId);
if(result!
=null)
{
returntrue;
}
else{
returnfalse;
}
}
publicListFindAll()
{
return_petsGenreRepository.FindAll();
}
publicboolIsExistedName(stringpetsGenreName)
{
varresult=FindAll().
Where(u=>u.PetsGenreName==petsGenreName).ToList();
if(result.Count>0)
{
returntrue;
}
else{
returnfalse;
}
}
publicintAdd(PetsGenrepetsGenre)
{
if(IsExisted(petsGenre.PetsGenreId))
{return4;}
else{
_petsGenreRepository.Add(petsGenre);
return1;
}
}
publicintSave(PetsGenrepetsGenre)
{
if(IsExisted(petsGenre.PetsGenreId))
{
_petsGenreRepository.Save(petsGenre);
return2;
}
else{
return5;
}
}
publicintRemove(PetsGenrepetsGenre)
{
if(IsExisted(petsGenre.PetsGenreId))
{
_petsGenreRepository.Remove(petsGenre);
return3;
}
else{
return6;
}
}
}
3.2.5Service.ServiceFactory层
publicstaticPetsGenreServiceCreatePetsGenreService()
{
IPetsGenreRepositorypetsGenreRepoitory=
newPetsGenreRepository();
returnnewPetsGenreService(petsGenreRepoitory);
}
3.2.6Infrastructure层
publicclassStringHelper
{
publicstaticboolStringIsNull(stringtest)
{
if(test.Trim()=="")
{
returntrue;
}
else
{
returnfalse;
}
}
publicstaticboolStringIsNotNull(stringtest)
{
if(test.Trim()!
="")
{
returntrue;
}
else
{
returnfalse;
}
}
3.2.7WebUI.ASPNET层
publicpartialclassCreate:
System.Web.UI.Page
{
PetsGenreServicepetsGenreService=ServiceFactory.CreatePetsGenreService();
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidClearData()//此函数可清textbox中的数据
{
txtPetsGenreId.Text="";
txtPetsGenreName.Text="";
}
protectedboolValidatePage()//此函数可判断textbox中的值是否为空
{
if(StringHelper.StringIsNull(txtPetsGenreId.Text))
{
Response.Write("");
returnfalse;
}
if(StringHelper.StringIsNull(txtPetsGenreName.Text))
{
Response.Write("");
returnfalse;
}
returntrue;
}
protectedvoidButton1_Click(objectsender,EventArgse)//触发button按钮事件
{
if(ValidatePage())
{
Model.Models.PetsGenrepetsGenre=newModel.Models.PetsGenre();
petsGenre.PetsGenreId=txtPetsGenreId.Text;
petsGenre.PetsGenreName=txtPetsGenreName.Text;
intrel=petsGenreService.Add(petsGenre);
Response.Write("");
ClearData();
Response.Redirect("Index.aspx");
}
else
{}
}
}
3.3查看购物车功能的实现
3.3.1Model.Models层
publicclassPurchaseOrderItem
{
publicintPurchaseOrderItemId{set;get;}
publicintPetsQuanlity{set;get;}
//publicdecimalPetsPrice{set;get;}
publicdecimal?
TotalPerchaseItemPrice{set;get;}
publicPetsPets{set;get;}
//publicListPetList{set;get;}
publicintPurchaseOrderId{set;get;}
publicPurchaseOrderItem()
{
Pets=newModel.Models.Pets();
//PetList=newList;
//PurchaseOrder=newPurchaseOrder();
}
}
publicclassPurchaseOrder
{
publicintPurchaseOrderId{set;get;}
publicdecimal?
TotalMoney{set;get;}
publicDateTime?
PurchaseDate{set;get;}
publicstringDemo{set;get;}
publicint?
Mark{set;get;}
publicSupplierSupplier{set;get;}
publicCustomerCustomer{set;get;}
//publicListPurchaseOrderItemList{set;get;}
publicPurchaseOrderItemPurchaseOrderItem{set;get;}
publicPurchaseOrder()
{
Supplier=newSupplier();
Customer=newCustomer();
//PurchaseOrderItemList=newList();
PurchaseOrderItem=newPurchaseOrderItem();
}
}
publicclassPets
{
publicstringPetsId{get;set;}
publicstringPetsName{get;set;}
publicstringWeight{get;set;}
publicint?
PetsLife{get;set;}
publicPetsGenrePetsGenre{get;set;}
publicPetsPricePetsPrice{get;set;}
publicPets()
{
PetsGenre=newPetsGenre();
PetsPrice=newPetsPrice();
}
}
publicclassCustomer
{
publicintuserId{set;get;}
publicstringuserName{set;get;}
publicstringuserPassword{set;get;}
}
3.3.2Model.IRepository