import json
import warnings
import matplotlib.pyplot as plt
import numpy as np
warnings.filterwarnings("ignore")
plt.rcParams['font.sans-serif'] = ['KaiTi']
plt.rcParams["axes.unicode_minus"] = False
class RestaurantInventorySystem:
def __init__(self):
self.ingredients = []
def input_ingredient_data(self):
ingredient_name = input("请输入食材名称: ")
quantity = float(input("请输入食材数量 (千克): "))
price_per_kg = float(input("请输入食材每千克的价格: "))
ingredient = {
'name': ingredient_name,
'quantity': quantity,
'price_per_kg': price_per_kg
}
self.ingredients.append(ingredient)
print("食材信息录入成功!")
def save_data(self, filename='restaurant_inventory.json'):
with open(filename, 'w') as file:
json.dump(self.ingredients, file)
print("食材信息已保存到文件:", filename)
def add_ingredient_data(self):
print("添加食材信息:")
self.input_ingredient_data()
def delete_ingredient_data(self):
ingredient_to_delete = input("请输入要删除的食材名称: ")
self.ingredients = [ingredient for ingredient in self.ingredients if ingredient['name'] != ingredient_to_delete]
print(f"已删除食材 {ingredient_to_delete}")
def modify_ingredient_data(self):
ingredient_to_modify = input("请输入要修改的食材名称: ")
for ingredient in self.ingredients:
if ingredient['name'] == ingredient_to_modify:
ingredient['quantity'] = float(input("请输入新的食材数量 (千克): "))
ingredient['price_per_kg'] = float(input("请输入新的每千克价格: "))
print(f"{ingredient_to_modify} 食材的信息已更新")
break
else:
print(f"未找到食材名称为 {ingredient_to_modify} 的信息")
def query_ingredient_data(self):
ingredient_to_query = input("请输入要查询的食材名称: ")
for ingredient in self.ingredients:
if ingredient['name'] == ingredient_to_query:
print("食材信息如下:")
print(f"食材名称: {ingredient['name']}")
print(f"数量 (千克): {ingredient['quantity']}")
print(f"每千克价格: {ingredient['price_per_kg']}")
break
else:
print(f"未找到食材名称为 {ingredient_to_query} 的信息")
def data_analysis(self):
total_ingredients = len(self.ingredients)
print(f"当前系统中共有 {total_ingredients} 种食材")
if total_ingredients > 0:
quantities = [ingredient['quantity'] for ingredient in self.ingredients]
average_quantity = np.mean(quantities)
print(f"所有食材的平均数量为: {average_quantity:.2f} 千克")
plt.bar(range(total_ingredients), quantities,
tick_label=[ingredient['name'] for ingredient in self.ingredients])
plt.title("食材数量分布")
plt.xlabel("食材名称")
plt.ylabel("数量 (千克)")
plt.xticks(rotation=45, ha="right")
plt.show()
else:
print("当前系统中没有食材信息,无法进行数据统计分析")
def main():
ris = RestaurantInventorySystem()
while True:
print("\n餐厅食材管理系统")
print("1. 添加食材信息")
print("2. 删除食材信息")
print("3. 修改食材信息")
print("4. 查询食材信息")
print("5. 数据统计分析")
print("6. 保存并退出")
choice = input("请选择操作 (1-6): ")
if choice == '1':
ris.add_ingredient_data()
elif choice == '2':
ris.delete_ingredient_data()
elif choice == '3':
ris.modify_ingredient_data()
elif choice == '4':
ris.query_ingredient_data()
elif choice == '5':
ris.data_analysis()
elif choice == '6':
ris.save_data()
break
else:
print("无效的选择,请重新输入")
if __name__ == "__main__":
main()
没有合适的资源?快使用搜索试试~ 我知道了~
Python餐厅管理系统 课程设计
共2个文件
py:1个
json:1个
5星 · 超过95%的资源 需积分: 1 2 下载量 185 浏览量
2024-01-11
22:06:14
上传
评论 1
收藏 2KB ZIP 举报
温馨提示
该代码实现了一个餐厅食材管理系统,具备以下详细功能: 1. 食材信息管理: - 添加食材信息: 用户可以输入食材的名称、存储量(千克)和每千克的价格,将这些新食材信息加入系统。 - 删除食材信息: 根据食材名称,用户可以从系统中删除指定的食材信息。 - 修改食材信息: 允许用户更新已有食材的数量和价格信息,以反映当前库存和成本变化。 - 查询食材信息: 用户可以查询特定食材的详细信息,包括存储量和价格。 2. 数据统计与分析: - 系统可以计算并展示所有食材的总数和平均存储量。 - 使用柱状图形式显示各食材的数量分布,使用户能够直观地看到哪些食材库存较多或较少。 3. 数据持久化: - 通过将食材信息保存到JSON文件中,系统确保数据的持久性和一致性。这对于记录长期数据或在不同会话间维持数据状态非常重要。 4.用户交互: - 系统通过一个简单的命令行界面与用户交互,用户可以通过输入指定的数字选择相应的操作。 5.可视化展示: - 利用matplotlib库,系统能够以图形化的方式展示关键数据,如食材数量分布,增强用户体验。
资源推荐
资源详情
资源评论
收起资源包目录
037.Python餐厅管理系统.zip (2个子文件)
task40
restaurant_inventory.json 65B
main.py 4KB
共 2 条
- 1
资源评论
- Natasha❀2024-01-12#完美解决问题 #运行顺畅 #内容详尽 #全网独家 #注释完整
海洋之心
- 粉丝: 9w+
- 资源: 91
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功