Python餐厅管理系统(控制台版本)

开发思路:

  1. 明确需求和使用方:

①:用户和商家身份

②:所具备功能

③:注意的细节

  1. 具体功能

商家:

①:商家后台登录

②:商家进行增删改查商品

用户:

①:将菜单中的商品加入自己的订单

②:从订单中删除菜品

③:查询菜单中的菜品

④:结算功能

准备过程的代码

# 客户的点餐字典
dict_myMenu = {}
# 商家的菜单
dict_Menu = {'美味蟹堡': {'Price': 12, 'Count': 12}, '三明治': {'Price': 18, 'Count': 52}, '趣霸堡': {'Price': 14, 'Count': 22}}
# 中间容器
dict_add_Menu = {}
# 存储用户账号密码的字典
dict_account = {}
# 商家账号密码登录
Id = 'xbw123'  # 账号
password = '123'  # 密码

具体流程

while True:
    # 欢迎语
    print('欢迎登船享受蟹堡王的美食')
    # 先打印一遍菜单
    print(f'请看菜单:{dict_Menu}')
    # 打印可以进行的操作

    while True:
        identity = input('请输入您的身份(输入数字):\n 1.商家\n 2.用户\n')
        if identity == '1':
            G_Id = str(input('请输入账号:'))
            G_password = str(input('请输入密码:'))
            if G_Id == Id and G_password == password:
                while True:
                    print('欢迎回来,祝你能有开心的一天')
                    choose_merchant = input('请选择操作:\n 1.添加菜品到菜单表 \n 2.删除菜单表中的菜品\n 3.修改菜品数据\n 4.回到主菜单\n')
                    if choose_merchant == '1':
                        add_menu()
                    elif choose_merchant == '2':
                        delete_menu()
                    elif choose_merchant == '3':
                        update_menu()
                    elif choose_merchant == '4':
                        break
                    else:
                        print('请输入正确的选项')
                else:
                    print('账号或密码错误,返回主界面')

        elif identity == '2':
            while True:
                choose_client = input(
                    '尊敬的用户,请选择操作:\n 1.添加菜品到我的订单+\n 2.从我的订单删除菜品-\n 3.查询我的订单\n 4.返回主菜单\n 5.结算 ')
                if choose_client == '1':
                    add_goods()
                elif choose_client == '2':
                    delete_goods()
                elif choose_client == '3':
                    find_goods()
                elif choose_client == '4':
                    # 退出程序,清空个人订单
                    dict_myMenu.clear()
                    break
                elif choose_client == '5':
                    buy()
                else:
                    print('您的输入有误')
                    continue
        else:
            print('请输入数字进行身份选择哦')

中间具体方法封装的函数

商家使用:

"""
函数定义(商家使用)
"""


def add_menu():
    global dict_Menu
    global dict_add_Menu
    """商家进货"""
    goods_name = input('请输入菜品的名称')
    goods_count = int(input('请输入要添加的数量'))
    if goods_name in dict_Menu:
        dict_Menu[goods_name]['Count'] += goods_count
        print('添加成功')
        # save_data()
    else:
        print('您输入的菜品名称不在菜单中,即将生成新的菜单菜品')
        goods_price = float(input('请输入商品的价格'))
        # 把商品添加到菜单中
        dict_add_Menu = {goods_name: {'Price': goods_price, 'Count': goods_count}}
        dict_Menu.update(dict_add_Menu)
        print('添加成功')
        # save_data()


def delete_menu():
    """商家删除菜单菜品"""
    global dict_Menu
    print(dict_Menu)  # 删除前打印所有菜品
    dict_name = input('请输入要删除的菜品名称')
    if dict_name in dict_Menu:
        """删除前提示是否删除"""
        boolean = input('确定要删除吗?(Yes/No)')
        if boolean == 'Yes':
            del dict_Menu[dict_name]
            # save_data()
        elif boolean == 'No':
            print('您选择了取消操作')
            # 打印菜单
            print(dict_Menu)
        else:
            print('您的输入有误,请重新输入')
    else:
        print('您输入的菜品名称不在菜单中,请重新输入')


def update_menu():
    """商家修改菜单"""
    global dict_Menu
    print(dict_Menu)
    update = input('请输入要修改的数据:\n 1.修改名称\n 2.修改价格')
    try:
        update = int(update)
    except:
        print('输入的不是数字')
    if update == 1:
        front_name = input('请输入要修改的名称')
        if front_name in dict_Menu:
            back_name = input('请输入修改后的名称')
            # dict_Menu[front_name] = dict_Menu[back_name]
            dict_Menu = eval(str(dict_Menu).replace(front_name, back_name))
            # save_data()
            print('修改成功')
        else:
            print('该商品不存在')
    elif update == 2:
        goods_name = input('请输入要修改价格的菜品名称')
        if goods_name in dict_Menu:
            goods_price = float(input('请输入修改后的价格'))
            dict_Menu.update({goods_name['Price':goods_price]})
            # save_data()
        else:
            print('该商品不存在')
    else:
        print('请输入正确的选项')

客户使用:

"""
函数定义(客户使用)
"""


def add_goods():
    """客户点菜"""
    print(f'菜单{dict_Menu}')
    global dict_myMenu
    goods_name = input('请输入要添加的菜品名称')
    goods_count = int(input('请输入要添加菜品数量'))
    if goods_name not in dict_Menu:
        print('该餐品不存在哦,请重新选择')
    else:
        if dict_Menu[goods_name]['Count'] >= goods_count:
            # 库存菜品减少
            dict_Menu[goods_name]['Count'] -= goods_count
            # 自动计算价格及数量
            try:
                num = dict_myMenu[goods_name]['Count']
                num += goods_count
                price = dict_myMenu[goods_name]['Price']
                price = dict_Menu[goods_name]['Price'] * num
            except:
                num = goods_count
                price = dict_Menu[goods_name]['Price'] * num
            dict_myMenu[goods_name] = {'Price': price, 'Count': num}
            # 添加菜品到个人订单中
            print(f'您的菜品{dict_myMenu}')


def delete_goods():
    """客户删除点餐字典数据"""
    global dict_myMenu
    # read()
    print(dict_myMenu)  # 删除之前先打印自己的点餐字典
    goods_name = input('请输入要删除的菜品的名称')
    if goods_name not in dict_Menu:
        print('该餐品不在你的点餐表中哦,请重新选择')
    else:
        good_count = int(input('请输入要删除的数量'))
        if dict_myMenu[goods_name]['Count'] >= good_count:
            dict_myMenu[goods_name]['Count'] -= good_count
            if dict_myMenu[goods_name]['Count'] == 0:
                del dict_myMenu[goods_name]
            # 用户取消菜品,商家该菜品增加
            dict_Menu[goods_name]['Count'] += good_count
            print(f'您的菜品{dict_myMenu}')
            # save_data1()
        else:
            print('您输入的删除的菜单菜品数量有误,请重新输入')


def buy():
    """结算"""
    global dict_myMenu
    if dict_myMenu == {}:
        print('您的订单中没有数据')
    else:
        print(f'您的订单{dict_myMenu}')
        dict_myMenu.clear()
        # save_data1()
        print(f'结算成功,您的点菜单剩余{dict_myMenu}')


def find_goods():
    """客户查询个人菜品菜单"""
    print(dict_myMenu)

需要注意的细节问题:

①:因为本项目未使用面向对象的方法所以在增加商菜品时需直接改变数量即可

②:商家在增加菜品时如果未包含该商品会自动提示生成新的菜品

③:商家修改时不可修改菜品数量

④:客户增加菜品时,商家的库存对应减少,个人订单自动计算价格和数量

⑤:新增结算功能,结算时打印订单,并清除菜单中的菜品

供各位参考学习!!!

Python餐厅管理系统(控制台版本)_第1张图片

有需要可以私信联系作者哦

你可能感兴趣的:(python,开发语言,信息可视化)