Skip to content

Gloridust/DishWeight

Repository files navigation

宴席菜品配料统计系统

一个用于管理宴席菜品配料和统计食材用量的GUI应用程序。

功能特点

  • 食材管理:添加、编辑、删除食材信息,包括名称、单位、单价
  • 菜品管理:创建菜品配方,为每道菜添加所需食材和用量
  • 宴席管理:组织宴席菜单,设置每道菜的份数
  • 统计分析:根据宴席菜单自动计算所需食材总量和成本
  • 数据导出:支持导出Excel格式的统计报表

安装要求

  • Python 3.10+ (推荐 Python 3.10 以确保最佳兼容性)
  • tkinter (通常随Python安装)
  • pandas
  • openpyxl
  • cx_Freeze (仅打包时需要)

安装步骤

  1. 克隆或下载项目文件
  2. 安装依赖包:
pip install -r requirements.txt

使用方法

  1. 运行主程序:
python main.py
  1. 食材管理

    • 在"食材管理"选项卡中添加食材
    • 填写食材名称、单位(如:斤、公斤、个)和单价
    • 可以编辑或删除已有食材
  2. 菜品管理

    • 在"菜品管理"选项卡中创建菜品
    • 为每道菜添加所需的食材和用量
    • 保存菜品配方
  3. 宴席管理

    • 在"宴席管理"选项卡中创建宴席
    • 选择菜品并设置每道菜的份数
    • 保存宴席菜单
  4. 统计分析

    • 在"统计分析"选项卡中选择宴席
    • 点击"计算食材用量"查看所需食材统计
    • 可导出Excel报表

数据存储

数据文件

  • 文件名: dish_data.json
  • 位置: 程序同目录下
  • 格式: JSON格式,UTF-8编码
  • 自动创建: 首次运行时自动创建空数据文件

数据结构

{
  "version": "1.0",
  "last_updated": "2024-12-30 15:05:10",
  "ingredients": {
    "1": {
      "name": "猪肉",
      "unit": "",
      "price": 15.0
    }
  },
  "dishes": {
    "1": {
      "name": "红烧肉",
      "ingredients": {
        "1": 2.0
      }
    }
  },
  "menus": {
    "1": {
      "name": "家庭聚餐",
      "dishes": {
        "1": 3
      }
    }
  }
}

数据管理功能

核心特性

  • 单文件存储: 所有数据存储在单个JSON文件中,简化数据管理
  • 自动保存: 每次操作后自动保存数据到文件
  • 数据导出: 支持导出为Excel文件
  • 路径显示: 界面显示当前数据文件路径

数据存储机制

  • 文件位置: 程序同目录下的 dish_data.json
  • 原子操作: 使用临时文件确保数据写入安全
  • 版本管理: 支持数据格式版本升级
  • 路径自适应: 自动适配脚本和EXE运行环境

打包为可执行文件

一键打包命令

# 安装打包工具
pip install cx_Freeze

# 执行打包
python setup_cxfreeze.py build

打包完成后,可执行文件位于 build_cxfreeze/ 目录中。

导出功能

支持导出Excel文件,包含以下工作表:

  • 食材库:所有食材的基本信息
  • 菜品配方:每道菜的配料清单
  • 宴席菜单:宴席中的菜品和份数

界面说明

食材管理

  • 添加新食材或编辑现有食材
  • 表格显示所有食材信息
  • 支持删除不需要的食材

菜品管理

  • 左侧显示菜品列表
  • 右侧编辑菜品详情和配料
  • 可以为每道菜添加多种食材

宴席管理

  • 左侧显示宴席列表
  • 右侧编辑宴席菜单
  • 设置每道菜的份数

统计分析

  • 选择宴席后自动计算食材需求
  • 显示每种食材的总用量和成本
  • 支持导出详细报表

注意事项

  • 删除食材前请确保没有菜品在使用该食材
  • 删除菜品前请确保没有宴席包含该菜品
  • 程序会自动保存所有数据变更
  • 导出的Excel文件可以进一步编辑和打印

使用建议

  • 数据安全: 定期手动复制 dish_data.json 文件作为备份
  • 导出报表: 支持导出详细报表
  • 文件管理: 保持数据文件与程序在同一目录

技术架构

  • GUI框架:tkinter
  • 数据处理:pandas
  • Excel导出:openpyxl
  • 数据存储:JSON格式

扩展功能

未来可以考虑添加:

  • 食材库存管理
  • 供应商信息管理
  • 成本分析图表
  • 数据库支持
  • 网络版本

About

宴席菜品材料重量计算

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages