您好, 访客   登录/注册

基于系统配选法的高校选课系统研究

来源:用户上传      作者:

  摘要:为解决目前高校选课系统出现的阶段性“峰值堵塞”问题,提高课程资源的利用率和选课质量,本文提出一种多志愿选报的高校选课方式,并根据选报数据进行系统配选法的最优化,这种算法满足志愿优先性和教学资源最大化的要求,使选课系统能承受高校集中选课的压力。研究表明,基于系统配选法的高校选课系统可减少运营成本,提高选课满意度。
  关键词:高校选课系统 数学建模 系统配选法 满意度
  中图分类号:O22 文献标识码:A 文章编号:1007-9416(2015)08-0000-00
  Abstract: To solve the periodic “Peak Congestion” problem in the high-school courses-selected system, a multiple courses-selected method was proposed in this study to improve the utilization of curriculum resources and the quality of course selection. The System Optional Method, which met the requirements of volunteer priority and the maximization of teaching resources, was optimized according to the selected data. Therefore, it makes the courses-selected system withstand the pressure of concentrated course in the high-school. Results show that the high-school courses-selected system which based on the system optional method can reduce operating costs and improve the courses-selected satisfaction.
  Key Words: high-school courses-selected system; mathematical modeling; System Optional Method; satisfaction
  1 前言
  目前,很多高校的选修课报选采用网上实时选课,额满为止的方式,以作者所在院校汕头职业技术学院为例就是采用这种方式,据学生反映,在报选时经常遇到由于网络原因而报选不上自己最想报选的课程,最后为了凑学分,只能报选一个自己根本不喜欢的课程,有的学生由于担心报不上,在来不及了解课程的介绍的情况下就直接快速报选,结果就是选上了,也不是真正自己需要的课程。本人认为,选修课应该本着以“知之者不如好之者,好之者不如乐之者”的原则来配选,学校也应该通过有效的报选数据搜集方法来了解学生的兴趣爱好,以制定出选修课的开课计划,实现按需分配。为此,本文提出一种有效解决以上问题的选课方式,并依据这一方式设计出一套算法和程序以运用于实际。
  2 最优化高校选课方式概述
  每位学生有足够时间在网上了解各门选修课的介绍,然后依据自身的喜好程度,至多可以报选10个志愿的选修课课程,第一志愿为最喜欢的课程,以此类推。系统会在搜集完全部学生的报选情况后再依据全体学生的选课情况尽量让每位学生选上10门中志愿数尽量低的课程。
  这种方式有以下两个优点:第一,学生再也不用担心因网络速度问题报选不了而匆忙报选,从而有足够的时间去了解课程的情况再理性地报选。第二,学校方面可以通过所有学生的选课志愿数据充分了解到学生的求学需求,为以后的选课计划以及人才培养方案提供更好的决策。
  3 系统配选算法的设计与应用
  系统对搜集到的选课志愿进行配选时必须满足以下三点要求:
  第一、公平性,就是指对于任意的学生 ,如果 最终以第 志愿选上某门选修课,那么对于 的报选志愿中,任意小于 志愿的 志愿所选的课程 ,必须保证被课程 选取的所有学生,其对应课程 的志愿数都小于等于 。否则,以低志愿报选却选不上的学生知道存在以高志愿报选却被选上的情况时,会心理不平衡甚至产生厌学情绪。
  第二,总体满意度最高。这里的满意度是指如果某一位学生以第一志愿被选上,那么就认为其满意度为10,如果以第二志愿被选上就认为其满意度是9,以此类推,如果选不上就认为其满意度为0,把所有学生的满意度求平均值就是总体满意度。显然,如果所有学生都以第一志愿被选上,总体满意度就是10。
  第三,在确保以上两个条件下,尽量使得每门选修课的学生数接近上限,已达到教学资源效率最大化。
  依据以上要求,设计出以下算法:
  (1)设定变量:设 :学生数;
  :选修课数;
  :包含 个元素的一维数组,表示第 门选修课的报选上限人数;
  :包含 个元素的一维数组,表示第 名学生的序号;
  :包含 个元素的一维数组,表示第 门选修课的序号;
  : 二维数组,表示学生报选数据,其元素取0到10的整数, 表示第 名学生以第 志愿报选第 门选修课,如果 表示第 名学生没有报选第 门选修课;
  : 二维数组,表示各门选修课各个志愿报选的人数, 表示第 门选修课有 个学生以第 志愿报选;
  :包含 个元素的一维数组,表示第 门选修课在程序运行过程中当前录取的志愿数;
  :表示在程序运行过程中正在录取的课程;   : 表示在程序运行过程中正在录取课程预录取数的相反数;
  :预录取学生的比较数;
  :包含 个元素的一维数组,表示分配结果, 表示序号为 的学生被序号为 的选修课录取,如果 表示第 名学生选不上任何一门选修课,初始值全为0。
  (2)依据 初始化 ,即各门选修课各个志愿报选的人数。
  (3)依据 ,寻找各门选修课从第一志愿起第一个报选不为零的志愿,并将 减去该志愿的报选人数,把该志愿数记录进 ,如果某门选修课全部志愿都没人选,则删除 , , 中该门选修课相应的元素或列,并且 减1。
  (4)寻找 中非负的元素,若有多个,则寻找 对应 中最小的,若还有多个,则寻找 中最大的;如果 所有元素都为负,则寻找 对应 中最大的,把选到的对应的 赋值给 。
  (5)寻找 中小于 的元素,在这些元素中寻找 对应 中最大的,显然这些值都是负的,把选到的 赋值给 ,如果 中没有小于 的元素,则把 赋值给 。
  (6)寻找 (其中 到 , 是第四步寻找到的固定值)中等于 的元素,
  对满足上述条件的 ,令 。
  (7)寻找 (其中 到 , 是第四步寻找到的固定值)中等于 的元素,将其中对应 值最大的前 个对应的学生以第 门选修课录取,若学生不足 个时,就全部录取。每录取一个学生,依据定义修改相应的 , ,令 ,并删除 , 中相应的元素和行, 减一。
  (8)判断第 门选修课第 志愿是否录取完,即判断 是否为0,如果为零则继续判定后续志愿是否有学生报选,若没有学生报选则删除该选修课并依据定义修改相应的 , , , , , 减1,若后续志愿还有学生报选则 赋值为第一个非零的志愿数,并将 减去该志愿报选人数。
  (9)判断所有选修课是否全部录取完毕,即 是否为0,如果不为0则返回第4步,否则结束。
  显然,以上的算法是绝对满足公平性要求的,而在保证最大满意度时能确保教学资源最大化。
  4结语
  依据本文所设计的算法,运用excel模拟3000名学生报选30门选修课的情况并运行,发现运行时间小于1分钟,满意度达到9.903,课程的报选上限与录取人数如表1,除了部分课程报选考生太少,大多课程基本接近上限,完全能满足现实的需要,而且各所学校可以根据自身需要适当修改算法第六步的比较数计算式来适应实际需求,如若需要源代码可以通过作者邮箱联系作者索取VB源代码
  参考文献
  [1] 程晓旭,耿鲁静,张海,王勇.C语音算法速查手册[M].北京:人民邮电出版社,2009.
  [2] Excel Home, Excel 2010应用大全[M].北京:人民邮电出版社,2011.
  收稿日期:2015-07-20
  基金项目:汕头职业技术学院科研课题(SZK2015Y21)。
  作者简介:肖奕鑫(1983―),男,广东揭阳人,汕头职业技术学院助教,理学硕士,研究方向:应用数学。
转载注明来源:https://www.xzbu.com/8/view-11651309.htm