鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: zhaoximeng

想咨询一下,如何设计一个排课表的软件

[复制链接]
发表于 2020-5-18 14:21:33 | 显示全部楼层
zhaoximeng 发表于 2020-5-18 10:20
我是这样检查的 但是我是用的随机课表
检查不通过则重新随机课表 这样的话 班级多了的话 时间就比较长

不需要遍历吧,每个班排课的时候访问一下数组就行了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-18 14:40:36 | 显示全部楼层
我想先问一下一共几门课都是什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-18 15:07:35 | 显示全部楼层
zhaoximeng 发表于 2020-5-18 10:21
安装哪个软件打开比较好啊

vscode

我把你的需求,抽象成了 数独 的模型,你需要先思考一下,合理性。

如果合理,那就可以参考一下我的代码。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-18 17:09:09 | 显示全部楼层
赚小钱 发表于 2020-5-18 15:07
vscode

我把你的需求,抽象成了 数独 的模型,你需要先思考一下,合理性。

ok 我觉得先去看看吧 数独也是一个方向
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-18 17:09:54 | 显示全部楼层
李子豪 发表于 2020-5-18 14:40
我想先问一下一共几门课都是什么?

语数外 政史地 理化生
每个班级 每个周35节课
一天7节课 每个老师带2,3个班
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-18 17:12:13 | 显示全部楼层
咸鱼c1 发表于 2020-5-18 14:21
不需要遍历吧,每个班排课的时候访问一下数组就行了

你的思路是不是:
1.先生成一个默认的二维列表
2.生成1班的课表
3.生成第二个班的课表 访问代课老师的冲突项,如果有冲突 重新生成2班课表
4.生成3班。。
5。。。
是不是这样了?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-18 17:24:17 | 显示全部楼层
本帖最后由 咸鱼c1 于 2020-5-18 17:28 编辑
zhaoximeng 发表于 2020-5-18 17:12
你的思路是不是:
1.先生成一个默认的二维列表
2.生成1班的课表

  1. 生成一个老师时间表[老师编号][时间],初始都为0
  2. 排课:
  3. n个班课表:
  4. for j in range(n):
  5. for i in range(时间):
  6. while(1):
  7. 老师编号随机
  8. if(老师时间表[老师编号][i]==0):
  9. j班课表[时间]=老师编号
  10. 老师时间表[老师编号][i]=1
  11. break
  12. 输出j班课表
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-18 18:40:44 | 显示全部楼层
zhaoximeng 发表于 2020-5-18 17:12
你的思路是不是:
1.先生成一个默认的二维列表
2.生成1班的课表

你这题不要用随机,就是个深度优先搜索问题
给你参考:
https://fishc.com.cn/thread-82257-1-1.html
https://fishc.com.cn/thread-82259-1-1.html
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-18 20:46:07 | 显示全部楼层
jerryxjr1220 发表于 2020-5-18 18:40
你这题不要用随机,就是个深度优先搜索问题
给你参考:
https://fishc.com.cn/thread-82257-1-1.html

我感觉用数独可以保证当天老师去上课不会重复还比较简单考虑下
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-18 20:50:04 | 显示全部楼层
zhaoximeng 发表于 2020-5-18 17:12
你的思路是不是:
1.先生成一个默认的二维列表
2.生成1班的课表

简单的话就在数独哪道题上修改一下可以每个老师依次横排or竖排上课 30个班依次排就行
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-18 20:56:39 | 显示全部楼层
看看对你有什么帮助吗?
D${I53_IZ~@MGT0$17`ZL10.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-19 15:32:17 | 显示全部楼层
李子豪 发表于 2020-5-18 20:56
看看对你有什么帮助吗?

好的 多谢 我研究下 谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-19 15:33:10 | 显示全部楼层
jerryxjr1220 发表于 2020-5-18 18:40
你这题不要用随机,就是个深度优先搜索问题
给你参考:
https://fishc.com.cn/thread-82257-1-1.html

我去学习下 研究下
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-19 18:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表