class MenuItem:
def __init__(self, name, price):
self.name = name
self.price = price
功能:定义一个菜单项类,包含菜品名称和价格。
方法:
__init__:初始化方法,接收 name 和 price 参数,并将其赋值给实例变量 self.name 和 self.price。
2.order类
class Order:
def __init__(self):
self.items = []
def add_item(self, item, quantity):
for _ in range(quantity):
self.items.append(item)
def calculate_total(self):
return sum(item.price for item in self.items)
def display_order(self):
for item in self.items:
print(f"{item.name}: {item.price}")
print(f"Total: {self.calculate_total()}")
功能:定义一个订单类,用于管理订单中的菜品项。
方法:
__init__:初始化方法,创建一个空列表 self.items 用于存储订单中的菜品。
add_item:接收 item 和 quantity 参数,将指定数量的菜品添加到订单中。
calculate_total:计算订单中所有菜品的总价格。
display_order:显示订单中的所有菜品及其价格,并显示总价格。
3. display_menu 函数
def display_menu(menu):
for i, item in enumerate(menu, 1):
print(f"{i}. {item.name} - {item.price}元")
功能:显示菜单中的所有菜品及其编号。
参数:menu,一个包含 MenuItem 对象的列表。
实现:使用 enumerate 函数遍历菜单,显示每个菜品的编号、名称和价格。
4.main 函数
def main():
menu = [
MenuItem("宫保鸡丁", 30),
MenuItem("鱼香肉丝", 25),
MenuItem("麻婆豆腐", 20),
MenuItem("回锅肉", 35),
MenuItem("清蒸鲈鱼",38),
MenuItem("糖醋排骨",45)
]
order = Order()
while True:
print("\n菜单:")
display_menu(menu)
choice = input("请选择菜品编号(或输入'结账'结束点餐):")
if choice.lower() == '结账':
break
try:
choice = int(choice)
if 1 <= choice <= len(menu):
quantity = int(input("请输入数量:"))
order.add_item(menu[choice - 1], quantity)
else:
print("无效的选择,请重新选择。")
except ValueError:
print("无效的输入,请重新输入。")
print("\n订单详情:")
order.display_order()
if __name__ == "__main__":
main()