Python基础---餐厅点餐系统#调用函数

餐厅点餐系统

**需求说明**:
# 设计一个简单的餐厅点餐系统,用户可以选择菜品,输入数量,并计算总价格。系统应该具备以下功能:

  1.提供菜单,包括菜品名称、价格。
  2.用户可以选择菜品并输入数量。
  3.系统计算总价格并显示。
  4.用户可以选择继续点餐或结账。
  5.结账时显示所有订单详情。
1.MeunItem类
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()
  • 功能:主函数,实现整个点餐系统的流程。
  • 实现
    • 创建一个菜单列表 menu,包含多个 MenuItem 对象。
    • while Ture进入一个无限循环,显示菜单并等待用户输入选择。
    • 如果用户输入“结账”,则退出循环。
    • 尝试将用户输入转换为整数,并检查是否在有效范围内。
    • 如果选择有效,提示用户输入数量,并将菜品添加到订单中。
    • 如果输入无效,提示用户重新输入。
    • 退出循环后,显示订单详情。
        5.运行截图 

总结

以上代码实现了一个简单的餐厅点餐系统,主要功能包括:
  • 定义菜单项类 MenuItem,用于存储菜品名称和价格。
  • 定义订单类 Order,用于管理订单中的菜品项,并计算总价格。
  • 显示菜单函数 display_menu,用于显示所有菜品及其编号。
  • 主函数 main,实现点餐系统的流程,包括显示菜单、用户选择菜品、输入数量、添加到订单、结账并显示订单详情。
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值