# 座位分配系统 - Windows部署说明 ## 目录 - [概述](#概述) - [系统要求](#系统要求) - [开发者构建指南](#开发者构建指南) - [用户使用指南](#用户使用指南) - [故障排除](#故障排除) - [技术支持](#技术支持) ## 概述 本文档说明如何在Windows系统上构建和部署座位分配系统。该系统支持1-10人连坐需求,能够处理不连续座位分配。 **主要功能:** - 智能座位分配算法 - 支持连坐组合(1-10人) - 完整的文件校验 - 详细的分配日志 - 用户友好的命令行界面 ## 系统要求 ### 开发环境要求 - **操作系统**: Windows 7/10/11 (64位) - **Python版本**: Python 3.8 或更高版本 - **内存**: 至少 2GB RAM - **磁盘空间**: 至少 500MB 可用空间 - **网络**: 需要网络连接以下载依赖包 ### 运行环境要求(最终用户) - **操作系统**: Windows 7/10/11 (64位) - **内存**: 至少 1GB RAM - **磁盘空间**: 至少 100MB 可用空间 - **Excel**: Microsoft Excel 2010 或更高版本(查看结果文件) ## 开发者构建指南 ### 1. 环境准备 #### 1.1 安装Python 从 [Python官网](https://www.python.org/downloads/) 下载并安装Python 3.8+ 确保安装时勾选: - ✅ Add Python to PATH - ✅ Install pip #### 1.2 验证安装 ```cmd python --version pip --version ``` ### 2. 下载源代码 ```cmd git clone cd TableSynthesis ``` ### 3. 自动构建(推荐) #### 3.1 运行构建脚本 ```cmd python windows_build.py ``` 构建脚本将自动完成: - ✅ 检查系统环境 - ✅ 安装必要依赖 - ✅ 构建独立exe文件 - ✅ 创建分发包 #### 3.2 构建输出 构建成功后,会生成: ``` 座位分配系统_Windows_分发包/ ├── 座位分配系统.exe # 主程序 ├── 运行座位分配系统.bat # 启动脚本 ├── 使用说明.txt # 使用说明 ├── 人员信息_示例.xlsx # 示例文件 └── 座位信息_示例.xlsx # 示例文件 ``` ### 4. 手动构建(可选) 如果自动构建失败,可以手动构建: #### 4.1 安装依赖 ```cmd pip install pandas>=1.3.0 openpyxl>=3.0.0 numpy>=1.20.0 pyinstaller>=4.0 ``` #### 4.2 使用PyInstaller构建 ```cmd pyinstaller --clean --noconfirm seat_allocation.spec ``` #### 4.3 手动创建分发包 ```cmd mkdir 座位分配系统_Windows_分发包 copy dist\座位分配系统.exe 座位分配系统_Windows_分发包\ copy 人员信息.xlsx 座位分配系统_Windows_分发包\人员信息_示例.xlsx copy 座位信息.xlsx 座位分配系统_Windows_分发包\座位信息_示例.xlsx copy 运行座位分配系统.bat 座位分配系统_Windows_分发包\ ``` ## 用户使用指南 ### 1. 获取分发包 从开发者处获取 `座位分配系统_Windows_分发包` 文件夹,或下载已构建的发布版本。 ### 2. 准备数据文件 #### 2.1 复制示例文件 ``` 人员信息_示例.xlsx → 人员信息.xlsx 座位信息_示例.xlsx → 座位信息.xlsx ``` #### 2.2 填写人员信息.xlsx **必需列:** - **姓名**: 人员姓名 - **证件类型**: 身份证、护照等 - **证件号**: 证件号码 - **手机号**: 联系电话 - **备注**: 连坐人数(留空表示单独坐) **连坐规则:** - 单人坐位:备注列留空 - 连坐组合:第一人填写总人数,其他人留空 **示例:** | 姓名 | 证件类型 | 证件号 | 手机号 | 备注 | |------|----------|--------|--------|------| | 张三 | 身份证 | 123456789012345678 | 13800138000 | 3 | | 李四 | 身份证 | 123456789012345679 | 13800138001 | | | 王五 | 身份证 | 123456789012345680 | 13800138002 | | | 赵六 | 身份证 | 123456789012345681 | 13800138003 | | 上述示例表示:张三、李四、王五需要3人连坐,赵六单独坐。 #### 2.3 填写座位信息.xlsx **必需列:** - **区域**: 座位区域(如"A区"、"B区") - **楼层**: 楼层信息(如"1层"、"2层") - **排号**: 排号(如"第1排"、"第2排") - **座位号**: 具体座位号(如"1号"、"2号") **示例:** | 区域 | 楼层 | 排号 | 座位号 | |------|------|------|--------| | A区 | 1层 | 第1排 | 1号 | | A区 | 1层 | 第1排 | 2号 | | A区 | 1层 | 第1排 | 3号 | ### 3. 运行程序 #### 3.1 推荐方式(使用bat脚本) 双击 `运行座位分配系统.bat` 脚本会自动: - ✅ 检查环境和文件 - ✅ 提供友好的错误提示 - ✅ 运行主程序 - ✅ 显示运行结果 #### 3.2 直接运行 双击 `座位分配系统.exe` ### 4. 查看结果 程序运行成功后,会生成以下文件: - **座位信息_最终分配.xlsx**: 最终座位分配结果 - **最终座位分配日志.xlsx**: 详细分配记录 - **seat_allocation_log.txt**: 运行日志 使用Excel打开xlsx文件查看分配结果。 ## 故障排除 ### 常见问题 #### Q1: 程序无法启动 **可能原因:** - 系统不兼容(需要Windows 7+) - 缺少Visual C++ Redistributable **解决方案:** 1. 确认系统版本:Windows 7/10/11 64位 2. 下载安装 [Microsoft Visual C++ Redistributable](https://aka.ms/vs/17/release/vc_redist.x64.exe) #### Q2: 提示缺少依赖包 **可能原因:** - 网络连接问题 - 权限不足 **解决方案:** 1. 确保网络连接正常 2. 以管理员身份运行 3. 手动安装:`pip install pandas openpyxl numpy` #### Q3: 文件权限错误 **可能原因:** - Excel文件被占用 - 程序目录只读 **解决方案:** 1. 关闭所有Excel窗口 2. 确保程序目录有写入权限 3. 避免在系统盘根目录运行 #### Q4: 数据文件格式错误 **可能原因:** - 列名不匹配 - 数据类型错误 - 编码问题 **解决方案:** 1. 对照示例文件检查列名 2. 确保数据格式正确 3. 使用UTF-8编码保存 #### Q5: 无法找到连续座位 **可能原因:** - 座位信息不连续 - 连坐组过大 **解决方案:** 1. 检查座位信息的连续性 2. 适当调整连坐组大小 3. 增加座位数量 ### 日志分析 查看 `seat_allocation_log.txt` 文件可获取详细错误信息: - **文件加载错误**: 检查文件路径和格式 - **数据校验错误**: 检查数据完整性 - **分配算法错误**: 检查座位和人员匹配 ### 性能优化 #### 大数据处理 - **人员数量**: 建议不超过1000人 - **座位数量**: 建议不超过2000个 - **连坐组大小**: 建议不超过8人 #### 内存使用 - 小型场景(<100人): 约50MB内存 - 中型场景(100-500人): 约100MB内存 - 大型场景(500-1000人): 约200MB内存 ## 技术支持 ### 获取帮助 1. **查看日志文件**: `seat_allocation_log.txt` 2. **检查使用说明**: `使用说明.txt` 3. **参考示例文件**: 确保数据格式正确 ### 报告问题 报告问题时,请提供: - 系统信息(操作系统版本) - 错误截图或错误信息 - 数据文件(脱敏后) - seat_allocation_log.txt 内容 ### 更新与维护 - 定期检查更新版本 - 备份重要数据文件 - 保持系统和依赖包更新 --- **版本**: v1.0 **最后更新**: 2024年12月 **兼容性**: Windows 7/10/11 (64位)