python制作餐馆管理系统(详解及代码)

制作餐馆管理系统

要求如下:
1.初始化菜品信息(菜名,菜单价,点赞数,剩余份数),最少初始化三个菜品。
2.点击我要点菜,显示所有菜品信息及编号。
3.用户选择编号,将菜品添加到购物车,并扣除菜品信息中的分数。
4.用户进入购物车,点击结算(可以结算多个菜品),提示用户输入付款金额。
5.付款大于结账金额,提示结账成功,结账成功后可以到我的订单中进行点赞。
6.变更购物车中菜品份数。

注:点赞功能未完全成功。

menus = [
    {"m_name": "鱼香肉丝", "m_money": 33, "m_goods": 0, "m_number": 10},
    {"m_name": "麻婆豆腐", "m_money": 11, "m_goods": 0, "m_number": 10},
    {"m_name": "水煮肉片", "m_money": 66, "m_goods": 0, "m_number": 10},
]
menus_car =[]
orders =[]

# 2.点击我要点菜,显示所有菜品信息及编号。
while True:
    print("----------点餐系统----------")
    print("1.我要点餐")
    print("2.我要结账")
    print("3.我要点赞")
    print("4.退出系统")
    print("请选择编号:",end="")
    num1 = int(input())
    if num1 ==1:
        while True:
            menu_no = 1
            print(" ")
            print("----------点餐界面----------")
            print("菜单编号\t\t菜单名称\t\t单价\t\t点赞数\t\t剩余库存")
            for menu in menus:
                print("{0}\t\t{1}\t\t{2}\t\t{3}\t\t{4}\t\t".format(
                    menu_no,
                    menu.get("m_name"),
                    menu.get("m_money"),
                    menu.get("m_goods"),
                    menu.get("m_number")
                ))
                menu_no += 1
                # 3.用户选择编号,将菜品添加到购物车,并扣除菜品信息中的分数。
            print("请选择菜品编号(0返回首页): ",end="")
            user_menu_no = int(input()) #用户输入菜品编号
            if user_menu_no==0:
                break
            print("请输入购买份数:", end="")
            user_menu_number = int(input())
            # 计算菜品总价
            user_menu_money = menus[user_menu_no-1].get("m_money") * user_menu_number

           #1.获得菜品信息
            new_menus = menus[user_menu_no - 1]  #将点菜信息赋值给新的变量
            new_menus.update({"user_menu_number":user_menu_number})
            new_menus.update({"user_menu_money":user_menu_money})
           #2.放入购物车
            menus_car.append(new_menus)


    elif num1 ==2:
        print(" ")
        print("----------结账界面----------")
        print("菜单名称\t\t单价\t\t份数\t\t总价")
        goodsum = 0;
        for menucar in menus_car:
            goodsum += menucar.get("user_menu_money")
            print("{0}\t\t{1}\t\t{2}\t\t{3}".format(
                menucar.get("m_name"),
                menucar.get("m_money"),
                menucar.get("user_menu_number"),
                menucar.get("user_menu_money")
            ))
        print("购物车合计:",goodsum)


        while True:
            print("请输入金额:",end="")
            user_money = float(input())
            if goodsum > user_money:
                print("余额不足,请重新输入。")
            else:
                print("实付%f,找零%f"%(user_money,(user_money-goodsum)))
                #减库存
                for menucar1 in menus_car: #循环购物车中的菜品
                    for menu2 in menus: #循环菜单中的菜品
                        #获得购物车菜品名称 并 比较菜单中的菜品名称 查找是否存在
                        if menucar1.get("m_name") == menu2.get("m_name"):
                            #更新当前菜品信息中的 库存量  当前库存-购买份数
                            menu2.update({"m_number":menu2.get("m_number")-menucar1.get("user_menu_number")})

                orders = menus_car.copy()
                menus_car.clear()
                break


    elif num1 ==3:
        while True:
            print(" ")
            print("----------点赞界面----------")
            print("菜单名称\t\t单价\t\t份数\t\t总价\t\t点赞数")

            for order in orders:
                print("{0}\t\t{1}\t\t{2}\t\t{3}\t\t{4}".format(

                    order.get("m_name"),
                    order.get("m_money"),
                    order.get("user_menu_number"),
                    order.get("user_menu_money"),
                    order.get("m_goods"),
                ))

            m_goods_numbers = int(input("请输入点赞数(按0退出):"))
            for goods_numbers in orders:  # 循环订单中的菜名
                for goods_numbers_1 in menus:  # 循环菜单中的菜名
                    if goods_numbers.get("m_name") == goods_numbers_1.get("m_name"):
                        goods_numbers_1.update({"m_goods": goods_numbers_1.get("m_goods")+ m_goods_numbers})
            if m_goods_numbers == 0:
                break

    elif num1 ==4:
        print(" ")
        print("----------退出系统----------")

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愚人钊呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值