基于Excel VBA实现考试自动编排

2016-07-18 01:21:18周志军张帆窦志强
中国管理信息化 2016年3期
关键词:冲突检测

周志军,张帆,窦志强

(解放军信息工程大学 训练部,郑州 450001)



基于Excel VBA实现考试自动编排

周志军,张帆,窦志强

(解放军信息工程大学训练部,郑州450001)

[摘要]随着学校教学管理工作的日趋集约化,考试课程数量众多、考试时间与教学日程同步安排,对考试计划安排的精确程度提出越来越高的要求。针对这一现状,作者根据学校的现实教学安排、考场教室资源和人员分布的实际情况,开发了基于Excel VBA技术的考试自动编排系统。文章简要介绍了Excel VBA技术的特点,并从需求分析、设计思路、具体实现等方面详细阐述了基于Excel VBA的考试自动编排系统的开发过程。

[关键词]Excel VBA;考试计划;自动编排;冲突检测

1 引言

在高等院校课程教学过程中,课程考试是教学过程的重要组成部分,不但直接检验学生的学习成效,而且可以从多方面反应教学实施环节的实际效果。客观、真实的考试结果,既给学生提供一份课业成绩单,也通过统计分析数据对教学管理、教学实施、教师能力、命题难度等各个环节提供教学反馈信息。在专业众多、课程多元、人员管理结构复杂的情况下,开发考试自动编排系统对提高教学管理工作的效率将发挥重要作用。由于各个高校课程体系、教学管理方式、人员管理模式、基础数据结构各有差异,已有的编排软件和开发方式无法适应我校考试编排的需求,只能根据本校具体情况自行开发符合实际需求的编排软件。

2 需求分析

随着我校教学改革的不断推进,教学安排、人员管理等各项教学管理模式也不同程度地日趋变化,每学期课程考试科目数量众多、考生人数众多、考场教室资源有限、考试日程与教学安排交叉、考生专业分布与人员管理结构复杂等各种矛盾日渐突出,考试安排的工作量不断增加。在此形势下,如果仍沿用手工安排考场的管理方式,显然与高效率的教学管理工作要求不相匹配。手工编排考场不但工作复杂、繁重、效率低下,而且考场人数精确性无法得到保证,考试时间与课程教学、实践教学时间易发生冲突,考场用教室与上课教室易发生冲突。因此,亟需利用信息技术的方法手段解决考试编排工作的复杂性问题,提高考务管理工作效率。将考试编排数据与教务管理系统数据进行关联,相互校验,不但可确保考试编排数据的精确性,也可提高教务系统的管理效率。

考试自动编排需解决的主要问题有三个方面:一是按考试计划表中的试卷编号统计相应课程考生专业分布情况和考生归属管理单位分布情况;二是检测考场所需教室与现实教学教室冲突情况,自动分配考场教室位置;三是将考试课程对应考生按归属管理单位人数分配到具体考场。

3 设计思路

由于数据交换的需要,教务系统导出的基础教学安排数据和发布考试安排表均使用FxceI表格格式,且FxceI格式数据既便于处理也便于各类教学管理人员使用。因此,我们选择FxceI VBA作为开发工具直接对基础数据进行处理,生成所需的考试编排数据。不但减少了数据格式转换的工作量,也避免了数据格式转换过程中出现数据类型错误的风险,大大提高了软件开发效率。

考试自动编排的过程不同于手工编排,手工编排时需通过人工检测的信息都应作为软件自动编排的源数据进行规范整理。首先,应根据教务系统导出的教学安排数据梳理课程考核计划,为每门课程设置试卷编号,规划考试日期、时间,并标注课程对应的考生专业班信息,作为考场编排的源数据之一。其次,编排考场需统计出参加考试的各专业考生在各个学生管理单位分布的情况。在学生名册信息表中,使用数据透视表汇总出专业代号、归属单位、人数的表格,将结果表格复制至考试编排工作簿的空白工作表中,形成考场编排源数据之二。此外,在日常教学与考试工作同步开展的情况下,为了合理使用有限的教室资源,避免考场使用教室与上课使用教室冲突,应先整理出日常教学使用教室表,用于安排考场前检测教室冲突,形成考场编排源数据之三。

自动进行考试编排时应将人工编排的过程进行梳理,形成可编程的逻辑流程:

(1)确定需编排的课程,提取课程考试日期、时间、试卷编号、课程名称等基本信息赋予变量;

(2)统计该门课程各专业班考生的管理单位人数分布情况赋值于数组;

(3)按考生单位序列,将考生人数分配至考场,考场饱和则转到下一考场,单位人数分配完毕则转到下一单位,课程人数分配完毕则转到下一课程;

(4)检测当前考试时间可用教室,若教室可用则分配给考场使用,若教室有课程安排则检测下一教室;

(5)将当前编排课程考试信息由变量填入考试安排表,将考场所分配考生归属单位、人数等信息填入考试安排表,形成一条信息完备的考场安排记录。

经过自动编排产生的考试编排数据理论上是可发布执行的考试安排,但可能会出现尾数考场人数过于少的问题,需要人工对尾数考场人数为个位数的进行筛选。在同一课程排在前面的考场容量可容纳的情况下,手工将尾数考场考生分配给其他考场,或在教室资源充足的情况下,将尾数考场考生与同一课程其他考场合并,并更换为考生容量更大的教室,以满足实际考试要求,同时尽量减少监考人员工作负担。

4 编程实现

按照上述设计思路,程序逻辑流程可描述如图1所示。

图1 程序逻辑流程

其中,按照考试计划表统计考生人数分布时,应先从计划表中读取专业班信息,再从人数分布统计表中分别统计各专业班人数在考生管理单位的分布情况计入数组numCamp(campIndex):

向考场分配考生人数时,对于不同单位考生混合考场的情况,处理起来稍显复杂,需要区分考场首次分配考生和追加考生等不同情况:

If CeIIs(roomIndex,8).VaIue =″″Then’首次填单位信息

distributeRoom’分配教室,只在首次填单位信息时分配教室,考场追加考生时不再分配教室!

5 结语

FxceI软件本身功能强大,结合数据透视表和VBA,即可实现日常工作业务所需的数据处理功能。FxceI格式文件使用普及率高,便于数据交换,FxceI VBA语法简单,程序设计门槛低,完全可满足面向实际工作需求的程序设计与开发。基于FxceIVBA技术开发的考试编排自动化软件在实际使用中达到了预先设计要求,对于提高考务管理工作精确度和工作效率发挥了重要作用。

主要参考文献

[1]魏汪洋.FxceI VBA语法速查手册[M].北京:化学工业出版社,2011.

[2]孙红梅.巧用VBA编程实现电大毕业生照片的批量查找[J].福建广播电视大学学报,2014(1):85-88.

[3]门珮玉.利用VBA编程搭建赛事自动计分系统[J].中国管理信息化,2014.17(20):87-89.

[4]陈冰红,祝振宇.FxceI VBA在快速考场排座中的应用[J].科技信息,2010(21):74,130.

doi:10.3969/j.issn.1673 - 0194.2016.03.097

[中图分类号]TP317.3

[文献标识码]A

[文章编号]1673-0194(2016)03-0181-03

[收稿日期]2015-11-13

[作者简介]周志军(1979-),男,河北石家庄人,解放军信息工程大学训练部考试中心讲师,主要研究方向:考务管理、考试理论研究。

猜你喜欢
冲突检测
独立学院补考安排冲突检测系统的设计与实现
计算机应用安全策略本体研究
计划协同工作中的冲突检测与消除算法研究
科技与创新(2017年8期)2017-06-07 20:40:47
基于散列表的快速分组分类算法