将学校给的各种格式的课表转换为系统的课程班导入格式.
怎么判断我是哪种课表?
a. 请阅读模板里的注释.
b. 模板的课程单元格内容只是示例, 实际上可通过课程格式/班级格式来支持任意格式.
下载模板
怎么设定单元格格式?
如果课表中还有第二种课程单元格格式, 可在此设置补充格式, 当课程和主格式不匹配时, 系统将尝试用补充格式进行解析.注意: 要以更复杂的格式作为主格式, 更简单的格式作为补充格式. 补充格式必须至少包含两个字段, 比如课程和老师.
如果一个单元格中有多个课, 可在此设置分隔符.
举例: 班级 或 班级-教室. 注意区分中英文标点, 换行可用 % 标记.注意: 当课程单元格是合并单元格时 (即该课程对应多个班级), 该课程的班级字段会留空
开始转换
空格换行
a. 每个单元格中的内容首先会按分隔符切分为多段文本, 然后每一段会按你提供的课程信息格式来提取课程, 班级和老师.
b. 举例: 如果每段文本形如 高二数学-4班/王伟//38人/08:00-09:00, 则格式应设置为 课程-班级/老师/, 并勾选 "分段结尾有冗余信息", 老师名字之后的部分会被自动忽略.
c. 注意格式最后的结束符 (即本例中的 /) 很重要, 用于判断最后一个信息 (本例中是老师) 在哪结束, 除非每段文本形如 高二数学-4班/王伟, 没有冗余部分, 则无需结束符也无需勾选 "分段结尾有冗余信息".
d. 注意区分中英文标点, 换行可用 % 标记, 空格可用 $ 标记.
分段结尾有冗余信息
每个小课表有行 (包括标题; 必须统一; 请注意是实际行数, 当课程由多格合并而来时容易填错)
小课表之间隔个空行 (必须统一)
举例: 班级 或 班级-教室. 注意区分中英文标点, 换行可用 % 标记.
定班: 可以通过拆分科目来实现, 比如 1 班固定物理, 可以把 1 班学生的「物理」科目改为「物理1班」或其他名称, 并在模板的第二个 sheet 里也做同样的科目拆分.
平行班: 如果提供了科目成绩, 算法在对该科目进行分班时会尽量保证各班平均分相近. 如果没有成绩或者不需要分平行班, 把模板里的科目成绩列删掉即可.
分层: 结合定班和平行班即可实现分层. 假设物理的分层要求是: 划 1 个 A 班, 剩下都分为平行班. 那么首先要在输入数据中添加物理成绩,然后通过改科目的方式把「物理A班」定下来, 让算法自动把剩下的物理学生分为平行班即可.
a. 算法会进行 9999 轮随机尝试, 或跑满 10 分钟, 最后给出其中的最优解 (定义: 掉人最少 + 同科目各班的人数差和平均分差尽量小).
b. 如果分班结果里同科目的各班人数相差很多, 可以把班级最大人数下调后再试.
c. 如遇问题, 请在飞书的分班算法群里反馈.
请阅读模板里的注释.
开始分班