自助餐小程序。

自助餐小程序。以列表、元组为存储手段,通过if语句、循环语句实现用户菜品的组合,并当用户用餐完毕后,提供价格报价,打印小票。如图1所示菜单和打印小票仅供参考。

57063a4e2ad04ecbbf65a16996868291.pnga55c121bf0c5480db2595bb47409060f.png

本题以校园中的面夫子店铺为例,编写相应的代码 !编写不易,记得关注点赞收藏我哦!

代码部分:

from datetime import datetime
now = datetime.now()
# 餐厅菜品列表  
dishes = [  
    ('豆浆',2, 1),  
    ('豆浆加糖', 2.5, 1),  
    ('小米粥', 2.5, 1),  
    ('紫米粥', 3, 1),  
    ('八宝粥', 4, 1),
    ('鲜肉包',1.5, 1),
    ('卤肉包',2, 1),
    ('梅菜包',1.5, 1),
    ('麻香鸡腿包',2, 1),
    ('酸奶包',1.5, 1),
    ('茶叶蛋',2, 1),
    ('鸡蛋',1.5, 1),
    ('煎饺',2, 1),
    ('油条',2, 1),
    ('烧麦',2, 1)
]  
  
# 用于存储订单的列表,这里使用列表嵌套元组来存储订单信息  
order = []  
  
def display_menu():  
    print("------------欢迎光临Caicai的面夫子!以下是餐品列表:------------")  
    print("1.豆浆-------2元     6.鲜肉包-----1.5元     11.茶叶蛋-------2元")
    print("2.豆浆加糖-2.5元     7.卤肉包-------2元     12.鸡蛋-------1.5元")
    print("3.小米粥---2.5元     8.梅菜包-----1.5元     13.煎饺---------2元")
    print("4.紫米粥-----3元     9.麻香鸡腿包---2元     14.油条---------2元")
    print("5.八宝粥-----4元     10.酸奶包----1.5元     15.烧麦---------2元")
    print('--------------------------------------------------------------')
    
def order_dish(dish_num):  
    if dish_num in range(1, len(dishes) + 1):  
        dish_name = dishes[dish_num - 1][0]  
        price = dishes[dish_num - 1][1]  
        quantity = int(input('请问您要几个?'))
        order.append((dish_name, price, quantity))  
        print(f"您已成功下单:  {dish_name},数量:{quantity},总价是{price * quantity}元。")  
        #answer = input("是否继续点餐?(y/n)")  
       # if answer.lower() == 'y':  
            #print()
        #else:  
         #   print("感谢您的点餐!")  
          #  return  
    else:  
        print("对不起,您输入的餐品编号不存在。")  
        return False  
  
def calculate_total():  
    total = sum(price * quantity for dish_name, price, quantity in order)  
    return total  
  
def print_receipt():  
    print("**************点餐信息****************")  
    print("名称       单价    数量       总价")
    print("")
    for dish_name, price, quantity in order:  
        print("{:<5}{:>5}元{:>7}{:>10}元".format(dish_name,price,quantity,price*quantity))  
    print("")
    print(f"总计: {calculate_total()}元")  
    print("点餐时间:" ,now.strftime("%Y-%m-%d %H:%M:%S"))
    print("")
    print("***************************************")  
    print("感谢您在本店买餐!请保留此小票作为付款依据。")  
  
def main():  
    display_menu()  
    while True:  
        dish_num = input("请输入您想点的餐品编号(回车结账):")  
        if dish_num.lower() == '':  
            break  
        elif order_dish(int(dish_num)):  # 将输入的餐品编号转换为整数并进行点餐操作  
            pass  # 如果点餐成功,则继续等待用户点餐  
        else:  
            pass  # 如果点餐失败,则继续等待用户输入下一个餐品编号  
    print_receipt()  # 当用户用餐完毕后,打印小票并报价  
    print("         Caicai欢迎您下次光临!") 
    print("***************************************")
main()

 运行结果:

00d088e035b44beb986aa126b5dccc3b.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值