前阵子在开发排课系统中,遇到了很多难点,一直排不出来,然后项目就一直死在那里了。最近抽了点时间想再拿出来弄弄,可难点依旧,现在遇到的最大问题就是他们的模块化课程的设计。

一、相关定义描述

1.模块化课程:指一个学期内通过一定周数内完成的若干个分阶段模块的课程。

2.模块化课程授课方式:模块化课程通常会有一个实训教室和最多三个教师授课,其中一个是主任老师,其余1-2位是辅助老师,也可以没有辅助老师,但是必须有主任课老师。

3.模块化课程冲突:教师同时上两门课,实训场地只能一个班级上或者是指定几个班级上。

4.排课流程:

1.名单录入(老师、教室、课程、班级)->2.1排课特征录入(老师、教师)

->2.2排课时间限制录入(老师、教室、课程、班级、模块课程)

->3.安排教学计划(根据班级安排课程、老师、教室)

注:下载模块课程请点击“模块课程示例”,该文件夹中存放的是模块课程的班级课表和教师课表示例。

二、问题描述及现有解决思路

假如有模块课程A,B,C,D,E,F,一学期共有18周,一周上两门模块课程

A课程完成教学周期为:6周,每周上课节数为12节

B课程完成教学周期为:6周,每周上课节数为12节

C课程完成教学周期为:2周,每周上课节数为12节

D课程完成教学周期为:8周,每周上课节数为12节

E课程完成教学周期为:8周,每周上课节数为12节

F课程完成教学周期为:6周,每周上课节数为12节

通过事先设定的名单和教学计划设得再根据现有的算法得到课表,"点击下载"

拆分周次算法示意:以下数字代表的是模块化课程的周数

示例1:

2 6 8 8 6 6

8 8(2 6 6 6) 先求一组中相同课时数的课程

2 6-2(4 6 6) 取最小值和最大值拆分

4 6-2 6-2 剩下三个需两两拆分

4 4

示例2:

5 6 7 8 10

5 10-5 (6,7,8,5)

5 8-5 (6,7,3)

3 6-1 7-2

5 5

示例3:

3 3 4 4 5 5 12

3 3 (4 4 5 5 12)

4 12-4 (4 5 5 8)

4 8-4 (5 5 4)

4 5-2 5-2

3 3

如果不检测老师和教室冲突,那么上述算法正好得到完成拆分周次。但现实中就不得不再去检测老师冲突和实训场地冲突,那么就势必就得把拆分好的课程再回溯拆分了,上例课表中,若:E课程在1-8周存在冲突,若第7周中有冲突(该课程的老师在其它处已经上课),那么就必须再重新安排到另外周次了,此时问题就出现了,拆分比想像中的要难很多,如果回溯将第二次以后课调换,使其后面正好安排没冲突,那么问题也就不会难了,可关键是如果和后面调换课程,又存在了冲突怎么办?是不是得再重新拆分周次了?

上次示例是排课一种,算法上感觉已经很难实现了,事实上在实际中又会遇到其它情况,比如:

A课程完成教学周期为:6周,每周上课节数为24节

B课程完成教学周期为:6周,每周上课节数为12节

C课程完成教学周期为:2周,每周上课节数为12节

D课程完成教学周期为:8周,每周上课节数为12节

E课程完成教学周期为:8周,每周上课节数为12节

以上24节课的其实就是上两门模块课程一样

还有一种更复杂的情况:假如我一周要安排三门模块化课程的时候又怎么处理?问题感觉越来越复杂了!

转载于:https://www.cnblogs.com/netcorner/archive/2011/11/02/2232478.html

职高中专的模块化课程设计难点相关推荐

  1. 计算机课程设计参考文献,计算机课程设计专著参考文献 计算机课程设计论文参考文献哪里找...

    [100个]关于计算机课程设计专著参考文献汇总,作为大学生的毕业生应该明白了计算机课程设计论文参考文献哪里找,收集好参考文献后的计算机课程设计论文写作起来会更轻松! 一.计算机课程设计论文参考文献范文 ...

  2. 数据结构课程设计:约瑟夫生者死者游戏(c++实现、单循环链表、输出死者姓名和编号、附可执行源代码)

    1.1设计内容: 有N个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分:因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难:无奈,大家只得同意这种办法,并议定N个人围成一圈,由第 ...

  3. 网吧管理系统C语言作业,C语言课程设计-网吧管理系统.doc

    C语言课程设计-网吧管理系统 <通信工程专业C语言课程设计> 报 告 专 业: 通信工程 班 级: 0802 姓 名: 赵 松 指导教师: 丁 雄 二00九 年 十二 月 二十五 日 目 ...

  4. c语言经典案例 俄罗斯方块,C语言实现俄罗斯方块经典游戏课程设计

    C语言实现俄罗斯方块经典游戏课程设计 计算机实习报告 一.功能说明 1.1总体功能说明 本工程用C++语言实现了俄罗斯方块经典游戏. 俄罗斯方块游戏特点:俄罗斯方块的基本规则是通过键盘控制移动.旋转和 ...

  5. C语言成绩统计源代码,C语言课程设计学生成绩管理系统+源码

    <C语言课程设计学生成绩管理系统+源码>由会员分享,可在线阅读,更多相关<C语言课程设计学生成绩管理系统+源码(25页珍藏版)>请在人人文库网上搜索. 1.简易教学管理系统的设 ...

  6. 奇数魔方阵c语言程序设计,《C语言程序》课程设计报告书魔方阵程序设计

    <<C语言程序>课程设计报告书魔方阵程序设计>由会员分享,可在线阅读,更多相关<<C语言程序>课程设计报告书魔方阵程序设计(17页珍藏版)>请在人人文库 ...

  7. c语言程序设计样板,《C语言程序设计》课程设计报告书样板.doc

    <C语言程序设计>课程设计报告书样板 电子系<C语言程序设计> 课程设计报告书 题目:ATM机模拟操作程序的设计 专业:__________________________ 学 ...

  8. 速算C语言程序设计,C语言程序设计课程设计-速算24.doc

    该设计论文已经通过各大高校老师审核认可并通过答辩,准确完整无误.欢迎大家下载学习交流.如有疑问可随时联系店主,竭诚为您解答!! 应用技术学院 课 程 设 计 报 告 课程名称 C语言课程设计 课题名称 ...

  9. 曲阜有学计算机的学校吗,曲阜职业中专计算机专业课程上几年

    技校网专门为您推荐的类似问题答案 问题1: 佛大学计算机专业课程有哪些 和国内大学计算机专业的课程是一样的~,国内的大学还不是学习的国外大学的吗. 问题2: 大学本科计算机专业课程有哪些 基础课程:高 ...

最新文章

  1. 50万买只波士顿动力机器狗,只为训练它“尿”啤酒,还让女朋友尝尝
  2. NVIDIA Jetson Xavier NX设备上使用jtop监控GPU、CPU、内存等的使用
  3. CTFshow 命令执行 web45
  4. nokia : Booklet 3G
  5. 程序员面试金典 - 面试题 17.16. 理发师(动态规划DP)
  6. python判断某年是否为闰年的程序_Python 学习--从0到1(4. 题3)
  7. C++新特性探究(七):初始化列表(Initialization List)
  8. 实战生产环境vCenter HA配置(VCSA6.5)
  9. 剑指offer(C++)-JZ35:复杂链表的复制(数据结构-链表)
  10. SQL 基础笔记(二):进阶查询
  11. 支持向量机SVM分析
  12. Java权限管理系统源代码下载
  13. 高响应比优先调度算法以及其优缺点
  14. Easy AR Unity开发
  15. VMware ESXi 7.0 U3e SLIC 2.6 Unlocker 集成 Intel NUC 网卡、USB 网卡和 NVMe 驱动 (2022.07 更新)
  16. c++做的免费游戏狼人杀
  17. lightoj1219Mafia
  18. HTML横向二级导航
  19. C语言实现移位密码体制
  20. [黑马程序员C++笔记]P72-P83通讯录管理系统

热门文章

  1. 游戏人生,谈谈自己的游戏经历
  2. 亚马逊被起诉!因女员工一天上六次厕所遭开除
  3. 入职体检——项目列表(7项)
  4. Ubuntu 16.04安装Tomcat 8 图解
  5. Windows下的定时任务
  6. 具体knn算法概念参考knn代码python实现
  7. java学习之单例模式(饿汉式与懒汉式)
  8. jmeter察看结果树-响应数据乱码
  9. 【bzoj2226】[Spoj 5971] LCMSum 欧拉函数
  10. StarUML启动报RPC服务器不可用错误