两节连排的排课问题

hr98510006 2009-06-12 09:19:17
我做的是中小学排课系统,现正研究算法...我用的是区间法,即如语文一周8节课,则123节课从周一周二可排中随机选,456节课从周三周四可排课中随机选,78节课从周五可排课中选.现面临的问题是:如果语文要求一周有两次连排(一周8节,上5天),那如何用算法实现呢??

除了两节连排,另外的还需要必须不连排,而且得各天分布均匀.望高手给赐教,QQ:29013651,小女子先谢过大家.
...全文
463 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dyf0130 2009-06-12
  • 打赏
  • 举报
回复
lz要求太了
因为许多大学都有教务系统,排课系统是其中的1部分,所以可以现成的代码(由于排课算法十分复杂,比如英文不排下午,老师学生不同一上午(或下午)跨校区上课...一般可以排出40%就不错了)
lz自己简化1下,不能要求人都做好把?
hr98510006 2009-06-12
  • 打赏
  • 举报
回复
不过1楼的是不是没看懂呢,我的排课堂教学针对中小学的,大专院校的因为涉及到公共教室的问题,所以不适合我的算法用.
hr98510006 2009-06-12
  • 打赏
  • 举报
回复
QQ:29013651,邮箱是29013651@qq.com,或bt22@sohu.com

对回贴者newease表示衷心的感谢.
newease 2009-06-12
  • 打赏
  • 举报
回复
排课方法与技巧

排课系统采用“并行回溯”的算法,只需设置好学校基本信息和排课的各项限制条件后,其余事情则由计算机来完成。课表安排完全自动化(也可手工安排),排完后可进行调整,采用随机安排方式,具有排课速度快、准确率高、效果好,并能自动计算教师教学工作量,多种格式的班级、教师、全校课程表的输出。主要功能包括:课表管理(新建、打开、删除课表)、基本设置(年级、班级、教师、课程)、教学设置(上课时间、课时、教师任课)、排课设置(班级课表、排课条件、科目优先、排课选项)、教师安排、课程安排(自动、手动)、课表调整(单向、双向、拖动)、课程报表(班级课表、教师课表、教师任课表等)。

newease 2009-06-12
  • 打赏
  • 举报
回复
排课是比较高深的算法没有研究过,不过我一排课的示例,楼主需要参考可以发至邮箱

下面是帮助文件的部分内容

排课思路

课程安排:

在设置好学校基本信息、排课的各项限制条件,并排好教师授课表后,可按手工或自动排课进行课程表安排。

课程优先级:

根据具体情况,我们所学课程有专业课和基础课之分,基础课先排,而后是专业课。

手动排课:

由教师一门一门课程进行设置,由系统提示是否教师冲突或课程是否多排或少排。对于课程安排极其复杂的学校且用自动排课无法排出满意课程表的学校,可选择此种方式排课,至少教师排课时的课程数是否正确和教师是否冲突的问题。

自动排课:

课程表采用"并行回溯"的算法,按年级班级顺序一节一节排课,若排到某位置有冲突,系统回溯上一断点位置,重新安排,直到课程表全部排出为止。排课时充分考虑到课程的均匀性(即课程安排尽可能均匀,如语文一周10节,若一周上5天的话尽可能每天安排两节课)和教师授课的均匀性(如张三教师一周5天共上15节,则尽可能安排每天3节课,且3节课不连续安排在如123或234接等)。课表安排完全自动化,并采用随机安排方式,具有排课速度快、准确率高的特点。对排出的课程表不满意可进行调课或直接在课程报表中进行更改。

代码转载自:https://pan.quark.cn/s/a4b39357ea24 基于VHDL语言的24进制多功能数字钟 FPGA多功能数字钟设计 安装要求 本项目采用QuartusII9.0版本设计,非9.0版本打开可能会存在兼容性问题。 本项目选用FPGA器件为CycloneIII_EP3C40Q240C8 设计任务 设计一个24进制多功能数字电子钟,要求具备以下功能: (1)时钟显示:能够以十进制在7段数码管上显示“时”、“分”、“秒”、“十分之一秒”。 (2)校表功能:能够对时钟进行校正。 (3)启动/暂停功能:能够控制时钟的启动和暂停。 (4)一键清零功能:能够将时钟清零。 (5)整点报时功能:能够在整点时发出报时信号。 (6)闹钟功能:能够在设置的时间到达时发出闹钟信号。 顶层设计原理图如下: image 设计方案/设计原理及总体框图 设计实现思路: (1)计时功能。 计时功能主要由四个计数器模块共同构成,其中十分之一秒计时器为十进制计数、分,秒计时器为六十进制计数、小时计时器为二十四进制计数。 计时器之间采用进位信号进行串联。 (2)十进制7端数码管显示功能。 显示功能由译码器模块实现。 译码器模块的两个输入端分别为刷新端和数据端。 七个译码器的刷新端连接十分之一秒的周期脉冲信号。 而数据端连接计数器的输出端,用以将4位输出BCD码译码为7端数码管的七位显示信号。 (3)校表功能。 校表功能由二选一模块和校时模式选择器模块构成。 其中二选一模块用于连接下一级计时器模块的进位信号和手动按钮脉冲信号。 当控制信号为“0”时,二选一模块输出计时器模块的进位信号。 而当控制信号为“1”时,二选一模块输出手动按钮信号。 控制信号由校时模式选择器模块输出,校时模式选择器输出端连...

743

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧