编写一个食堂点餐程序,用户可以选择5种不同的餐品(如米饭、面条、饺子等),价格自拟。 并根据用餐时间(早餐、午餐、晚餐)决定价格,早餐打9折。 每位用户最多可以点5份餐品,超出数量时给予提示并完成
时间: 2024-09-20 09:07:50 浏览: 47
编写一个简单的食堂点餐程序,我们可以创建一个菜单类,包含餐品名称和基础价格。然后,我们设计一个用户类,其中包含选择餐品和计算折扣的功能。以下是Python的一个简短示例:
```python
class Dish:
def __init__(self, name, price):
self.name = name
self.price = price
# 食堂菜单
menu = {
"米饭": Dish("米饭", 10),
"面条": Dish("面条", 8),
"饺子": Dish("饺子", 12),
# 添加更多餐品...
}
class User:
def __init__(self):
self.orders = []
def add_dish(self, dish_name, quantity):
if len(self.orders) >= 5:
print("抱歉,您已经点了五份餐品,请继续下单或选择取消一些订单。")
return
if not menu.get(dish_name):
print(f"{dish_name}不在菜单上,请重新选择。")
return
dish = menu[dish_name]
if "早餐" in self.time_period:
discounted_price = dish.price * 0.9
else:
discounted_price = dish.price
self.orders.append((dish_name, discounted_price * quantity))
@property
def time_period(self):
# 这里假设通过函数获取用户输入的时间
breakfast_time = ["早", "晨"]
lunch_time = ["午", "餐"]
dinner_time = ["晚", "餐"]
period = input("请输入用餐时间(早/午/晚):").lower()
if any(period in word for word in breakfast_time):
return "早餐"
elif any(period in word for word in lunch_time):
return "午餐"
elif any(period in word for word in dinner_time):
return "晚餐"
else:
print("输入无效,请重新输入。")
# 使用示例
user = User()
user.add_dish("米饭", 2)
user.add_dish("面条", 1)
# ... (添加其他餐品)
```
在这个例子中,用户可以交互式地选择餐品,并在早餐时享受九折优惠。如果超过5份餐品或选择了不存在的菜品,程序会给出相应的提示。你可以根据需要扩展这个程序,例如添加数据库存储功能或更复杂的错误处理。
阅读全文