❶ 论文“计算机自动排课系统的设计与实现”的开题报告怎么写
方案名称:智能排课系统。
方案目的:利用计算机替代传统的繁琐的手工排课方法。
方案阐述:本系统受游戏设计中A星算法中的广度搜索法启发,结合手中的文献,总结出来的一种排课方式。本方案先采用采用信息收集的方式,收集信息。然后利用回逆算法进行智能排课。最后,再进行适当的人为调整,即可生成符合要求的课表。
方案详解:当需要生成课表时,用户需先设定排课条件。基本条件有:周课时设置,课程信息,班级信息,教师信息,场地信息,教学计划(即那些老师教那些班级、可以选择的空教室、是否有合班课等信息)。将所有信息存入数据库。自动排课,即系统自动调用数据库收集的信息然后利用设定的算法进行排课。最后,将系统生成的课表进行差错检查,分别在班级信息,教师信息,场地信息表中检测其有无冲突。然后进行查看和手工调课。最后生成所需求的课表。
算法详解:
回溯是一种优先搜索法。它按优先条件向前搜索,以达到目标,但当搜索到某一步时,发现原先的选择并不优或达不到目标,就退回一步重新选择。这种走不通就退回的技术为回溯法,而满足回溯条件的某个状态点称之为回溯点。
具体到计算机智能排课系统中,选优条件即为排课数学模型中的约束条件群(需求集中的元素特征与资源集中的元素特征相互作用形成的数学关系)。换言之,若不满足约束条件群,该选择即为不优或达不到目标。当遍历该步骤的所有可能仍未满足约束条件群,则该状态满足了回溯条件,该状态点即为回溯点。下图即为回溯算法排课流程。
值得指出的是,当得到第一次满足选优条件的排课结果后,可以将课表输出到屏幕上,由系统管理员直接审视排课结果,若感觉不满意,则可回到第一次得出的排课结果,将该状态设为回溯点,继续运行该算法,可以得到另一种排课结果,直至程序管理员满意为止。
当然,也有可能使用该法遍历了所有的可能,仍无满足选优条件之排课结果,此时,计算机就根据反馈的结果,自动放宽约束条件,重新进行排课。
该排课系统已在实际应用,排课结果较为理想,并且充分发挥了运算速度快的特点。
计算机自动排课也需要进行人工干预,以便可以使得各个高校能够根据自己的具体要求对排课算法中的一些参数进行设置和调整,并对计算机排出的课表进行调整.本算法所设计的人工干预过程有:等价类划分中参数的设置,教室类型的设置,时间模式库的设置,优先级函数中参数的设置.用户可以根据自己的具体要求对这些参数和库进行设置.另外,对于计算机排出的课程表,用户也可以通过人机交互进行适当调整,从而得到用户满意的课程表.
参考文献:《高校智能排课系统文献综述》
作者,日期不详。
《以代理人为基础的中学排课系统研究》
台湾高雄师大学 杨锦潭 欧文性
PS: 本人经过几天了解和获得老师的指点,觉得该系统如何能使用数据结构图和离散数学中的图论解决会能具有可操作性和智能性。另外,本人认为可以设计一个信息采集的接口,用于采集一些教师的需求信息(例如:不想上某个时段的课程。)这样可以使整个信息更加人性化,但实现起来也比较有难度。知识水平有限,只能在我所能想到的范围进行思考。
❷ c++如何实现排课系统的算法
我的想法是……
1.首先把最难弄的老师排上,就是说她教的班多,限制多。(这步的实际操作就是把排课顺序按照班数排序)
2.随机安排课(当然要根据人类习惯,您总不能让他一天上七节课),安排方式为先满足部分人需求(当然不太公平),然后剩下的补空
3.这剩下的部分人可能因为班级的关系出现重课的问题,没有关系,先把他安排上去,用repeat循环逐层更改被冲突对象的课节(最后可以选把美术音乐等老师,他们安排到下午的话上午比较好换)
具体跟据实际来定。。……我乱讲讲。这是我的想法模型。
❸ 智能排课系统
这个就是会员功能,用户表里有个字段代表经验值,登录成功的时候获取用户信息同时也获取到这个字段了然后用当前时间去判断上一次登录时间是不是同一天,如果是同一天就不增加,如果不是同一天就加上要给的经验值,做任务也是一样都是动作的同时多写一步加经验就行啦,增删改查中的
❹ c++排课系统的算法
这个不是排列组合题目吧?如果不是,那就很简单。大致说下思路,自己实现吧。
把学校机房的课时按每小时或者按几个小时为单位编成一个数据结构。这个具体看学校怎么安排上机课,如果最小单位为2小时,当然以2小时为单位,如果有班级只上半小时的上机课当然以半小时为单位。比如一周5天每天10小时我们可以把它编成50个单位的一个数据结构。可以为数组,可以为链表,当然也可以为更复杂的结构,看你的需要。简单的机房上机课时结构基本子元素为:起止时间、已安排班级(若未安排则为空)、已安排老师
把班级和老师也储存在一个数据结构里。然后确定班级排上机课的原则。比如是平均分配机时,那么将每个班级增加一个计数器。那么班级的数据结构每个元素至少要有这么几个子元素:班级标识、班级计数器、班级空闲时间表。排上机课的时候,首先取出机房上机课时的数据结构,取出第一个元素,然后遍历存储班级信息的数据结构,优先取出班级计数器最小的班级,查看这个班级这时是否有课,无课则插入到上机课时的数据结构中,同时将班级计数器加一,有课则选择下一个计数器数字最小的元素。(计数器只是表示班级安排了多少上机课,也可以用一个数字代替,仅仅表示权重,比如计算机系的班级权重就可以调高。建议将整个链表中计数器数字的最小值保存在这个链表的某处,使得访问者一开始就能得到而不用访问所有元素)。重复上述过程,直到所有上机课时都被分配。
老师的分配过程和上述班级分配类似。
看来是新手,加油!
❺ ,谁有排课系统的自动排课算法的相关代码啊急求。我的开发环境是jsp。请大侠们指教啊,给个思路也可以。
首先要配置好不同课程的权重,以免出现副科多安排的现象。其次配置每天分别有几个课时,最后通过数据库按不同课程的权重随机调取记录就能实现自动排课啦。
❻ 自动排课系统的一些算法思想,高手指教啊
排课算法的重点就是课程合理安排的问题,这里面最要的部分应该是正确的使用算法实现数学中排列组合。
比如写规定好某某课不能放在第几节,某某课一天不能超过几节,某某课属于某个老师,同一个老师的课同一时间只能安排一节,然后根据这些先决条件进行排列组合就可以了。
good luck.
❼ 自动排课系统的一些算法思想, 写出一些关于自动排课的算法思想,讲述明白一点.
排课算法的重点就是课程合理安排的问题,这里面最要的部分应该是正确的使用算法实现数学中排列组合.
比如写规定好某某课不能放在第几节,某某课一天不能超过几节,某某课属于某个老师,同一个老师的课同一时间只能安排一节,然后根据这些先决条件进行排列组合就可以了.
good luck.
❽ 教师自动排课系统用C++实现
这个程序需要很多的代码啊 外包还得100+元呢 你用100积分就想得到? 有可能吗?
❾ 排课系统的实现方法
要编写一个实用排课系统,最主要解决两个问题。第一是避免课程冲突,完成所有的课程编排。这个问题可通过设计完善的排课算法实现。第二个问题是编排的课程要合理,使学校、教师、甚至班级学生满意。这点不能通过算法简单实现的。因为我们面对的不是一个规则,而是面对不同的教师要求,不同的学校环境。解决这个问题最好办法是软件提供有效的前期条件设置和后期课程调整,才能确保课程编排合理。
❿ 怎么用java实现自动排课系统他的思想算法是什么
eclipse 只是个开发工具,你可以理解为功能比较丰富的 notepad ...