|
#创建一个基类
|
|
class Restaurant:
|
|
#构造方法
|
|
def __init__(self,name):
|
|
'''
|
|
|
|
:param name:餐厅名称
|
|
'''
|
|
self.name=name
|
|
self.menu={}
|
|
self.orders=[]
|
|
#展示餐厅菜单
|
|
def display_menu(self):
|
|
print("餐厅菜单")
|
|
for i in self.menu:
|
|
print(self.menu)
|
|
#允许顾客根据菜品名称和数量下单,检查菜品是否存在,计算总金额并添加到订单列表中
|
|
def add_order(self,customer_name,dish_name,price,quantity,amonut):
|
|
#检查库存是否够用
|
|
'''
|
|
|
|
:param customer_name:顾客姓名
|
|
:param dish_name:菜品名称
|
|
:param price:
|
|
:param quantity:菜品数量
|
|
:param amonut:库存数量
|
|
:return:
|
|
'''
|
|
if amonut<=quantity:
|
|
if dish_name in self.menu:
|
|
total_price=price*quantity
|
|
self.orders.append(total_price)
|
|
amonut-=quantity
|
|
print(f"{customer_name}:",f"{self.name}","order:",{"dish:"f"{quantity}"},"toatl:"f"{amonut}")
|
|
else:
|
|
return f'{dish_name}不存在,请重新下单'
|
|
#接受菜品名称和菜品价格
|
|
def add_dish(self,dish_name,price):
|
|
'''
|
|
|
|
:param dish_name: 菜品名称
|
|
:param price: 价格
|
|
:return:
|
|
'''
|
|
if dish_name in self.menu:
|
|
print("菜品已经在菜单当中,请勿重新添加")
|
|
else:
|
|
self.menu[price]=dish_name
|
|
return f'菜品添加成功'
|
|
#展示所有顾客订单
|
|
def display_orders(self):
|
|
for i in self.orders:
|
|
return f""
|
|
#使用多态创建一个方法
|
|
def welcome_message(self):
|
|
print("欢迎光临")
|
|
#创建子类,并基础父类
|
|
class FastFoodRestaurant(Restaurant):
|
|
#构造函数
|
|
def __init__(self,name,price):
|
|
super().__init__(name)
|
|
self.discounts={}
|
|
#创建打折功能
|
|
def set_discount(self,price):
|
|
discount_price=price*0.8
|
|
print(f"打折后的价格为{discount_price}")
|
|
#将打折菜品信息记录在实例变量discounts中
|
|
def add_discounts(self,dish_name,price):
|
|
self.discounts[price]=dish_name
|
|
return self.discounts
|
|
#使用多态
|
|
def welcome_message(self):
|
|
print("欢迎光临我们快餐店")
|
|
def welcome_message(restaurant):
|
|
print("")
|
|
#创建两个餐厅实例
|
|
restaurant1=Restaurant("中餐厅")
|
|
restaurant2=Restaurant("快餐店")
|
|
#添加菜品
|
|
print(restaurant1.add_dish("兰州拉面", 10))
|
|
print(restaurant1.add_dish("宫保鸡丁", 20))
|
|
#创建一个顾客实例
|
|
print(restaurant1.add_order("suaoxuan", "鱼香肉丝", 21, 20, 21))
|
|
print(restaurant2.add_order("xiaoli", "兰州拉面", 25, 27, 30))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|