littlebot
Published on 2025-04-14 / 1 Visits
0

【源码】基于Python的NSTC16TH自动排班系统

项目简介

本项目是基于Python的自动排班系统,专为南山高中交通服务队打造,能助力总指揮勤务长快速生成每月排班表,极大减少手动排班的时间与工作量。

项目的主要特性和功能

  1. 自动排班:依据成员工作权重和无法值勤时间,自动生成合理班表。
  2. 导入导出功能:可导入成员名单和班表模板,能将生成的班表导出为CSV格式,便于用Excel查看和编辑。
  3. 班表分析:提供班表分析功能,生成详细分析报告,助用户了解班表分配情况。
  4. 用户友好的界面:运用Tkinter GUI库构建,操作界面直观。
  5. 错误处理与日志:具备错误处理和日志功能,方便用户追踪解决问题。

安装使用步骤

前提条件

  • Python 3.10.6或以上版本。
  • 已安装Tkinter GUI库。

使用步骤

  1. 导入数据:
    • 点击“匯入名單”导入符合格式的成员名单(data/members.json)。
    • 点击“匯入班表模版”导入符合格式的班表模板(data/schedule.json)。
  2. 设置参数:
    • 设置最大值勤次数和最大早班次数(默认分别为3和2)。
    • 设置错误迭代次数(默认15次),以便在班表无法编排时自动重新执行。
  3. 开始排班:点击“开始排班”按钮,程序自动完成排班。
  4. 导出班表:点击“匯出班表”按钮,将生成的班表以CSV格式导出,可用Excel打开查看。

编辑成员信息

  1. 使用下拉菜单选择要编辑的成员。
  2. 点击“编辑成员”按钮,编辑该成员无法值勤的时间。
  3. 使用编辑区下方的功能键添加无法值勤的条件,或直接修改编辑区内容(需符合格式要求)。
  4. 编辑完成后,点击“儲存編輯”保存更改。

注意事项

  • 班表模板和成员名单需符合格式要求。
  • 目前支持高一和高二的排班。
  • 程序已尽可能平均分配工作,但部分情况可能需要手动微调。
  • 支持Windows 11和Windows 10(部分功能可能不兼容)。

版本更新

  • v1.0.0 (2023/10/15):初版发布。
  • v1.0.1 (2023/10/18)
    • 支持高一和高二的排班。
    • 根据成员权重进行班表分配。
    • 新增功能按钮,支持添加无法值勤的条件。
    • 修复了导入名单后需重新启动程序才能生效的问题。
  • v1.0.2 (2023/10/30)
    • 更改编辑成员前会询问是否保存变更。
    • 调整了根据权重分配班表的公式。
    • 新增班表分析功能。
    • 修改了班表导出方式,支持选择导出位置。

待做功能

  • 优化用户界面。
  • 增加更多错误处理机制。
  • 考虑更多排班策略。

版权声明

本项目采用MIT开源协议,可以自由使用和修改。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】