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

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

作者:周志军张帆窦志强

来源:《中国管理信息化》2016年第03期

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

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

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2016 . 03. 097

[中图分类号] TP317.3 [文献标识码] A [文章编号] 1673 - 0194(2016)03- 0181- 03

1 引言

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

2 需求分析

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

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

突情况,自动分配考场教室位置;三是将考试课程对应考生按归属管理单位人数分配到具体考场。

3 设计思路

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

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

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

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

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

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

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

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

经过自动编排产生的考试编排数据理论上是可发布执行的考试安排,但可能会出现尾数考场人数过于少的问题,需要人工对尾数考场人数为个位数的进行筛选。在同一课程排在前面的考场容量可容纳的情况下,手工将尾数考场考生分配给其他考场,或在教室资源充足的情况

下,将尾数考场考生与同一课程其他考场合并,并更换为考生容量更大的教室,以满足实际考试要求,同时尽量减少监考人员工作负担。

4 编程实现

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

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

Set ws = Worksheets("考试计划表")

ws.Activate

If Cells(currentCourse, k).Value "" Then

classID = Cells(currentCourse, k).Value ’获取专业代号

Set ws = Worksheets("人数分布")’切换工作表

ws.Activate

For i= 2 To 171

If Cells(i, 3).Value = classID Then

campIndex = Cells(i, 1).Value ’获取考生单位序号

classNum = Cells(i, 4).Value ‘获取考生单位应参考人数

numCamp(campIndex) = numCamp(campIndex)+ classNum’汇总

Else

End If

Next i

Else

End If

相关文档
最新文档