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

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

开发思路:

1.明确需求和使用方:

①:用户和商家身份

②:所具备功能

③:注意的细节

2.具体功能

商家:

①:商家后台登录

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

用户:

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

②:从订单中删除菜品

③:查询菜单中的菜品

④:结算功能

准备过程的代码

# 客户的点餐字典
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)

需要注意的细节问题:

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

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

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

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

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

供各位参考学习!!!

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

目录
相关文章
|
5天前
|
程序员 开发者 Python
Python2.x与 3.x 版本区别
Python2.x与 3.x 版本区别
10 0
|
14天前
|
存储 文件存储 Python
Python基础 --- 实现学生管理系统(Python 文件版本)
Python基础 --- 实现学生管理系统(Python 文件版本)
33 4
|
15天前
|
Python
Python 新版本有75个内置函数,你不会不知道吧(1)
Python 新版本有75个内置函数,你不会不知道吧(1)
Python 新版本有75个内置函数,你不会不知道吧(1)
|
17天前
|
关系型数据库 Java 分布式数据库
实时计算 Flink版操作报错合集之在使用 Python UDF 时遇到 requests 包的导入问题,提示 OpenSSL 版本不兼容如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
35 5
|
20天前
|
并行计算 Ubuntu Docker
Docker环境Ubuntu20.04安装Python3.10版本
Docker环境Ubuntu20.04安装Python3.10版本
104 0
|
20天前
|
前端开发 UED Python
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
Wagtail-基于Python Django的内容管理系统CMS实现公网访问
|
20天前
|
API 开发者 Docker
python中版本不兼容问题
【5月更文挑战第3天】python中版本不兼容问题
29 2
|
20天前
|
Python
conda升级python版本
conda升级python版本
|
20天前
|
开发者 Python
six,一个神奇的 Python 版本兼容工具库!
six,一个神奇的 Python 版本兼容工具库!
28 4
|
20天前
|
Ubuntu Python
ubuntu升级Python版本
现在,你已成功升级了Python版本并可以使用新版本进行开发和运行程序。
54 1