ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: twxxngd

[分享] 【神马排课】(自动版)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-30 11:45 | 显示全部楼层
zopey 发表于 2018-8-30 09:01
假设每天12节课,第1节 早读,第6节午休,第11节晚读,第12节晚自习,
尚需提供:
1、每门课程的周课时 ...

非常感谢老师。

TA的精华主题

TA的得分主题

发表于 2018-8-30 11:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lsc900707 发表于 2018-8-30 07:01
应该是:
(1)初一:语文、数学、英语、政治、历史、地理、生物、音乐、美术、体育、计算机
(2)初二 ...

非常感谢老师。

TA的精华主题

TA的得分主题

发表于 2018-8-30 13:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
非常感谢老师

TA的精华主题

TA的得分主题

发表于 2018-8-31 11:55 | 显示全部楼层
李桥贵 发表于 2018-8-30 11:21
1、早读只排英语2节、英语2节、政治1节(而且每个教师一天早上看一个班);
2、第1节至第4节为上午正课;3 ...

上午课

随机排课3.zip (36.98 KB, 下载次数: 405)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-8-31 14:41 | 显示全部楼层
1、假定,平均分配原则:同一科目,每天上午只安排一节课。每周5*4 课时。
2、当语文5、数学4、英语4、物理3都分配好了之后,初三年级的上午还有3节 化学课,
     此时课表上 空余的3个位置 很可能属于 同一天,或者 分布在不同的2天,
     故无法按照平均分配原则,分配好3节 化学课。(化学课 空在那里)
3、遇到第2种情况,可以反复尝试 ,得到正确分配结果。

TA的精华主题

TA的得分主题

发表于 2018-8-31 15:23 | 显示全部楼层
随机排课(平均分配)完整版

qq123.JPG

随机排课4(上下午).zip (40.73 KB, 下载次数: 427)

TA的精华主题

TA的得分主题

发表于 2018-8-31 15:28 | 显示全部楼层
'上午课程安排

kk = 2
For kk1 = 1 To k1
For kk2 = 1 To arr(kk1, 2)
kk = kk + 1
haha2:
ReDim xq2(1 To k2)

For i = 1 To k3
sj2 = ""
For j = 1 To k2
    If xq2(j) < 4 Then sj2 = sj2 & "," & j
Next
If sj2 = "" Then Exit For Else sj2 = Mid(sj2, 2, 99)

sj3 = Split(sj2, ",")
m = UBound(sj3) + 1
ReDim sj(1 To m)
For ii = 1 To m
   sj(ii) = sj3(ii - 1)
Next

'按周课时表 安排上午课
If crr(i, kk1 * 2) > 0 Then
If crr(i, kk1 * 2) > m Then
   For jj = 1 To k2
      Cells(kk, xq(jj) + 1).ClearContents
      Cells(kk, xq(jj) + 2).ClearContents
      Cells(kk, xq(jj) + 3).ClearContents
      Cells(kk, xq(jj) + 4).ClearContents
   Next
   GoTo haha2
End If
n = crr(i, kk1 * 2)
ReDim jg$(1 To Application.Combin(m, n), 1 To 1)

k = 0
Call dgZH("", 0, 1)

rnd1 = Application.RandBetween(1, Application.Combin(m, n))
week = Split(jg(rnd1, 1), ",")
For j = 0 To UBound(week)
haha:
    rnd2 = Application.RandBetween(1, 4)
    If Cells(kk, xq(week(j)) + rnd2) = "" Then
       Cells(kk, xq(week(j)) + rnd2) = crr(i, 1)
       xq2(week(j)) = xq2(week(j)) + 1
    Else
       GoTo haha
    End If
Next
End If

Next i
Next kk2
Next kk1

TA的精华主题

TA的得分主题

发表于 2018-8-31 19:18 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-8-31 21:02 | 显示全部楼层
老师能否把你《神马排课(高级版)》和《随机排课4(上下午)》结合起来。自动排课并生成班级课程表和教师个人课程表。 初中课程表.zip (181.49 KB, 下载次数: 333)

TA的精华主题

TA的得分主题

发表于 2018-8-31 22:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
李桥贵 发表于 2018-8-31 21:02
老师能否把你《神马排课(高级版)》和《随机排课4(上下午)》结合起来。自动排课并生成班级课程表和教师个 ...

请你看仔细了,《神马排课》 作者不是我,找人要找准了。
两者思路 不同,结合不起来。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 13:30 , Processed in 0.037058 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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