购物车
数据模型:建立ShoppingModel类
'''
class ShoppingModel:
'''
建立数据模型变量:
name商品名称
manay价钱
id产品编号
'''
def __init__(self,name="",manay="",id=0):
self.name=name
self.manay=manay
self.id=id
class ShoppingController:
def __init__(self):
self.id=100
self.add_set={}
def add_shopping(self,id,**kwargs):#调用__gebing_shpping()方法
'''
根据id添加商品信息
:param kwargs: 商品字典__gebing_shpping()方法
:return:
'''
self.add_set[self.id] = kwargs
def gebing_shopping(self,get_shop):#get_shop调用数据模型对象属性
'''
生成内部商品字典
:param get_shop: 调用数据模型对象属性
:return: 返回商品信息字典
'''
self.get_name=get_shop
if self.add_set=={}:
self.id+=1
self.add_shopping(self.id,商品名称= self.get_name.name,商品价格 = self.get_name.manay)
else:
self.id+=len(self.add_set)
self.add_shopping(self.id,商品名称= self.get_name.name,商品价格 = self.get_name.manay)
def del_shopp(self):
'''
删除指定序号的商品
:return: 删除成功为True,删除不成功为False
'''
number=int(input("请输入要删除的商品序号:"))
if number==self.id and self.add_set!={}:
del self.add_set[self.id]
return True
return False
def update_shopping(self,upvie):
'''
修改商品内容
先分离出键和值(内容字典)
再根据upvie对象修改内部字典内容
:param upvie: 数据模型对象
:return:
'''
#idk=int(input("输入要修改商品的序号:"))
for itme,ytem in self.add_set.items():
if upvie.id==itme:#idk==itme:
ytem["商品名称"]=upvie.name
ytem["商品价格"]=upvie.manay
def out_shopping(self,number):
self.shopp_dict={}
self.shopp_list=[]
self.shopp_dict[number]=self.add_set[number]
#测试开始
# mast=ShoppingModel("毛毛熊",25)
# get01=ShoppingController()
# get02=get01.gebing_shopping(mast)
# print(get02)
# # dict01=get01.add_set#添加商品
# # print(dict01)
# # #修改内容
# # masta=ShoppingModel("小汽车",85)
# # dict02=get01.update_shopping(masta)
# # print(dict01)
# # get01.del_shopp()#删除
# # print(dict01)
# get01.out_shopping(101,3)
# print(get01.shopp_dict)
# print((get01.shopp_list))
# #调试结束
class ShoppingView:
'''
学生管理器视图
'''
def __init__(self):
'''
定义商品数据模弄和逻辑方法的实便对象
'''
self.cont=ShoppingController()
def __display_menu(self):
'''
制作显示菜单
:return:
'''
print("1)添商品信息")
print("2)显示商品信息")
print("3)删除商品信息")
print("4)修改商品信息")
print("5)购买商品")
def __select_list(self):
'''
调用每个功能的实例对象
:return:
'''
xuanxiang=int(input("请选择菜单选项(1——5):"))
if xuanxiang == 1:
self.__input_shopping()
if xuanxiang == 2:
self.__outputshopping()
if xuanxiang == 3:
self.__deleteshopping()
if xuanxiang == 4:
self.__up_shopping()
if xuanxiang == 5:
self.__goushopping()
def main(self):
while True:
self.__display_menu()
self.__select_list()
next=input("y继续,n退出:")
if next=="y":
self.__display_menu()
self.__select_list()
elif next=="n":
break
def __input_shopping(self):
name=input("请输入商品名称:")
numbr=float (input("请输入商品价格:"))
menu=ShoppingModel(name,numbr)
self.cont.gebing_shopping(menu)
def __outputshopping(self):
for iv,ik in self.cont.add_set.items():
print(iv,end=" ")
for yv,yk in ik.items():
print(yv,yk,end=" ")
print()
def __deleteshopping(self):
self.cont.del_shopp()
def __up_shopping(self):
self.id=int(input("输入要修改的商品编号:"))
self.name=input("请输入要修改商品的名称:")
self.manay=int(input("请输入要修改商品价格:"))
self.cont.update_shopping(ShoppingModel(self.name,self.manay,self.id))
def __goushopping(self):
print(self.cont.add_set)
while True:
self.shangpin=int(input("请输入购买商品编号:"))
if self.shangpin==0:
break
self.shuliang = int(input("请输入购买数量"))
self.cont.out_shopping(self.shangpin)
for iv,ik in self.cont.add_set.items():
self.cont.shopp_list.append(ik["商品价格"] * self.shuliang)
print(iv,end=" ")
for yv,yk in ik.items():
print(yv,yk,end="")
print()
print("您购买了%d种商品,是%d"%(len(self.cont.shopp_list),sum(self.cont.shopp_list)))
menu=ShoppingView()
menu.main()