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("----------退出系统----------")

你可能感兴趣的:(python,python,学习,pycharm,餐馆管理系统)