网学网为广大网友收集整理了,基于DELPHI高校排课系统的设计,希望对大家有所帮助!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
(七)、距离问题与移动代价关系的讨论 真正考虑实际问题的时候,我们不能把任何一门科目都拿过来,立即分配上课时间和上课点,因为假设一门课程需要多个教师讲授,或者一门课程需要用到多个类型的教室,这样的课程如果在排课过程中放在后边排课,很可能会因为要同时满足这些条件的限制而使科目无法排课,即使这两个条件满足,学生和教师又没有协调好,为排课带来很多麻烦,这是课程本身的问题,也是我们必须解决的问题。 1、 课程类型分类和课程优先排列级别划分 根据课程科目需要的教师以及教室类型两者者的对应关系,可以分为:一科目对应一种类型的教师,由固定教师授课、一科目对应多类型教室,由唯一固定教师授课、一科目对应多类型教师,由不同教师授课、一科目对应固定一种类型教师,但是需要多个授课教师讲授该科目,如果把非教师、教室、科目一一对应的科目按正常课程排课,由于教学资源冲突,很可能这些课程会由于教学资源冲突而无法正常排课,这里说的是教学资源冲突,不是教学资源紧张,教学资源冲突,会导致学生或教师移动到其他相邻教学区域去上课,就需要考虑休息、经济花费、可持续上课等复杂因素,增加系统开销不说,对本校区的教学资源也是一种浪费。于是,调整和合理的分配教学资源,根据课程性质把课程分优先级排课,降低系统开销,是首要问题。 教学资源紧张的问题,实际上是学生、教师、教室等综合因素互相作用引起的。⑦根据课程科目授课地点的约束,把教室或场地总体上分为专用的和公用的,专用教室或场地不和其他课程科目冲突,所以只需要考虑学生问题就可以了,如果是同级多专业学生共同上课,那么这类课需优先排课,这样才能让学生有时间各自独立上以专业为单位的课,同样,考虑科目类型时,不是以专业为单位授课的课程科目,都需要优先考虑为其排课。另外,如果同一门课对应要求多个不同科目的教师讲解,为了避免在以后排课时,教师发生冲突,完不成教学任务,所以,这样的课要先排课,同样,如果同一个科目的课程需要多个不同类型的教室,为了避免教室冲突问题,也需要对这样的科目优先排课,如果一科目既需要多个不同科目的教师讲授,又需要多个不同类型教室授课的话,那么,这门课就更需要优先考虑。当把以上一切都处理好后,才能安排为专业为单位,教室类型单一的课程科目排课。这样做,无形中避免很多冲突。 为了满足学生能够合理有序的上课,也就说让学生有张有弛的去上课,完成教学任务,所以,必须对学生的上课次序问题进行安排,在安排上课的次序时,要以年级为单位上课,一个年级排完课,在教学资源不冲突的情况下,再排另一级学生上课,因为不同级学生课程不同,所以,虽然不能完全避免教师冲突问题,但是却很大程度上解决了一些教师的冲突问题,我们把学生按校区、学院、专业、年级在数据库中分类,然后,按数据库中这些数据的顺序一次取一个专业,给他们分配上对应的专业课课程,然后再分配对应教室,再根据课程级别分配对应级别的合理的上课时间,这样分配下去,直到教室(场地)、教师、学生、时间四者中出现一种不满足情况,那么,在下一天也可以继续排课,如果某课程10天(去掉星期天)完不成任务,可以考虑星期天上课,时间安排和其他教学资源安排同上所述。 如果学生课程多,当学生到远距离地点上课的时候,可能会出现赶不回本部上下节课,同时,也不能让学生一天要走几个校区上课,而筋疲力尽,没时间休息,所以,安排到远距离上课的学生的上课时间尽量让他们在无课而非星期天的一天去上课,这是最理想的,但是这种情况不太可能,所以,把除正常上课时间除休息时间外,能有充分时间赶到其他能上这门科目的距离允许的较远相邻关系地区上课。而不是当出现紧张的时候才想到到别的校区上课,预先应该把符合学生移动到其他校区上课的专业早到,由于预先统计好了教室是否紧张,假如出现教室紧张的情况,我们在排课的时候就把这样在正常上课时间除休息时间外,能有充分时间赶到其他校区没课的专业派到能上这门科目的距离允许的地方上课,而且,让这个专业在其他校区多上几节其他科目的课,缓解学生划分上课机构地方教室资源紧张的压力。当然,如果学生移动到其他较远距离地方上课,我们首先考虑可持续上课问题是否可以在异校区解决也是一个好办法。 学生到另一个地区上课的原因也可能是教师资源紧张,而到教师资源充足的地方上课,但是如果不是教室资源紧张的话,学生移动的代价总体上比教师移动代价大,所以尽量避免让学生移动,如果学生非移动到其他校区上课不可,就要考虑学生路程上和经济上以及休息问题等综合因素,最重要的是让学生必须完成当天的学习上课任务。 根据上述课程级别,对课程科目安排先后顺序,在很大程度上减少各科目之间的矛盾冲突,在排课过程中,会遇到教师、教室、学生在同一时间互相冲突的时候,所以在为一科目排课的时候,唯一的条件就是在该时间段上,教师、教室、学生在不耽误休息的前提下,同时无任务,这就要求在同一时间段教师、教室、学生同时满足教学条件,但是占用学生或教师的休息时间是不可以的,所以我们设计了时间级别,在“B”级别时间里,同一专业学生不可以连续上课,同一个教师也不可以连续上课,只有这样的先决条件满足以后,在此基础上其他时间段上讨论满足教师、教室、学生三者都互相满足的条件,那么就分配相应信息,然后把确定的数据转到course form表,根据课程表需要,打印出来。 但是,无论怎么分班,遇到一科目需要多教室的情况时,学生和教师只能同一时间用一个教室,也就是说,如果上述分配方法能顺利分配好一切后,有很多教室空闲得不到利用,是对教学资源极大浪费。如果某教学区域教学资源在排课的时候被系统认为资源紧张,那么很大程度上因为需要多类型教室的科目把教学资源预先占用。⑧ (八)数据处理与转化 1、 数据从开课计划书到排课表的转化 ourse form(课程)表的笼统信息,经过一系列级别和拆分的处理,被插入到course plan blank(课程任务)表中,上课的教师和学生已经由人工对应完毕,我们需要从学生信息中找到学生的所属校区,在学生所属校区中的教室信息表中找到对应教室,分配给对应学生各项,最后分配时间,如果教室资源紧张,根据距离关系调整教室使用。 把数据从teaching plan表转到course plan blank表中,要每个教师,在同一时间只能对应一个班级,也就是给一个班级上课,由于出现时间问题,所以首先应该让学生对应教师和教师,最后调整时间,才能让系统最大限度不对数据库进行操作,减少系统开销。在 teaching plan表中人工对教师以及所授课的对象匹配完毕,剩下得任务就是为course plan blank表中所有项分配时间和地点,而且教师和学生不是一个校区的情况也可能发生,这就需要考虑教师和学生休息的问题,当数据从teaching plan表转到course plan blank表中时,我们要做的是一个教师对应一个时间,而且对应一组学生,这样就不会出现同一时间同一个教师在两个地方讲课和同一时间,相同的学生在多个地方上课的问题。我们首先把teaching plan表的数据按课程代码排列,这样便于我们操作。按顺序取每一项信息,在每项信息中,授课教师编号原样复制到course plan blank表的教师编号中,从从teaching plan表的班级序号中取出一个班级序号,分配到course plan blank表的classnumber中,同时判断teaching plan表的该项班级序号中是否还有下一个班级序号,如果有,再按上述做法把班级分配好教师,直到该项班级序号中的班级全部分配结束后,再按同样方法分配下一项,直到所有课程的教室分配结束,实现了数据的拆分把教师和学生的数据从teaching plan表转到course plan blank表的流程如下:
teaching plan表中找到该科目需要的教室信息,依次从对应教室表中顺序循环提取教室,然后把教室编号分配到course plan blank表的classroommumber中,再给下一个班级分配教室, 为上述分配好的教师和学生分配教室和上课时间,教室是受科目和时间限制的,什么样的课程科目,需要什么样类型的教室,但是教室又受到时间的限制,同一个教室不能在同一时间被多次使用。我们在数据库中顺次提取信息,如果到该关系表的最后一项还没有满足条件要求,就返回第一项,重新按顺序取各项信息,直到满足条件要求停止,否则周而复始在数据库中运作。每分配完一个科目和他相应的教室,就给这项信息分配上课时间,而不能先把所有的课程分配好教室,然后再分配上课时间,如果那样,当为所有课程分配好教室后,当分配上课时间的时候,还要从新讨论教室是否冲突,等于把分配教师的事情重新做了一遍,增加系统开销,所以我们采用每给一项分配完教室,立即分配上课时间。事实上分配为学生分配教师和给科目与分配教室和上课时间是一体的,但是分开做会使程序做起来不会那么繁琐,实现起来也更简单,当学生分配完教师信息放入course plan blank表后,开始分配教室,教室的分配是对course plan blank表进行操作,不是对teaching plan表,同一个程序对两个表进行复杂操作比用两个程序先后顺序对两个表操作麻烦很多。也会给顺序循环分配教室带来很多约束。为学生分配教室,就不能不考虑地域的问题,学生上课如果要去很远的地方,就不会得到充分的休息时间甚至耽误下节课,所以上课时间和上课地点是不能分开的。 2、上课时间与课程科目的匹配 不同科目,对于不同的专业来说,其重要性不同,例如:高等数学课,对与理工科学生来说,极端重要,但是对于文科学生来说,就显得不那么重要等等问题,根据课程对一个专业的重要性来选择上课时间,提高授课效率理所当然,我们把课程分为专业必修课、专业选修课、公共基础课、专业基础课、非专业选修课、非基础公共课、其他课程这几类,并为他们划分级别,专业必修课、专业选修课、公共基础课、专业基础课为高级别课程‘A’级别,应当在一天中学习最好的时间里讲授这类课程,其他课程为的级别‘B’的课程,可以在一天中除学习最佳时间以外其他时间授课,除此之外,高级别课程可以在任何时间里讲授,这样下来,我们就要把一天中的上课时间分出等级,来和课程进行匹配,每天的早上1-2节课是上课最佳时间,那么这个上课时间等级最高为‘A’级别,每天的3-4节和5-6节共同跨越了午休时间,就让这段上课时间等级为‘B’ 级别,7-8节课上课时间为‘C’ 级别,9-10节课上课时间为‘D’ 级别。 如果学生B’ 级别时间有课,那么,无论这个时间是3-4节还是5-6节都把时间加‘1’,来寻找新的上课时间,从而避免午休时间冲突。 通过级别划分,可以更清晰的为某一科目划分上课时间断,避免了如早上第一节课上体育课的问题。除此之外,如果涉及到移动问题,需要计算路程时间,用时间级别来确定移动问题,比用时间和课节数算起来方便。 3、 课程紧密程度的安排 排课过程中要避免对一科目和一个专业的课程安排过密的情况,所以在对某一科目分配时间的时候,当首次授课时间确定后,如果没有完成规定的授课次数,就需要在相隔几天后继续上课,总之,要让每一科目的授课次数较为平均的分布在14天(除星期日不上课)里分布,就可达到学生合理的利用时间习和休息。 因为要学生在一个星期内课程安排均匀,不能让学生集中几天把一星期的教学任务完成,其余时间学生自己安排,所以在给某一科目安排上课时间的时候,对teaching plan表中的某一科目首先判断每大周上课次数,在course plan blank表中,给出该科目的第一节课上课时间后,为了避免同一科目授课次数过于密集和同一批学生上课时间过于集中,人为的把第一次上课时间的星期数加上一个数得到这门课讲授其他次数上课时间,也就是说,排完课之后,对于有单双周之分的课程,一大周两个星期内课程差一节课,但是两个星期上课时间相似只不过是单周或双周多上的一节节课,而对于无单双周分别的课程,单双周课程安排时间完全一样,利用这个方法排课,一次性逐个对course plan blank表中每一项同时分配教室和上课时间,分配完毕后,把信息对应转化到course form表中,按课程表要求打印出表格。 |
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |