APP下载

基于随机编排考位的准考证生成与打印系统的设计与实现

2022-05-30胥献伟

电脑知识与技术 2022年29期
关键词:在线考试准考证信息系统

胥献伟

摘要:为体现考试的公平公正,杜绝考试中的作弊行为,文章开发了一套在线考试系统,其中基于随机排位的准考证生成与打印系统功能,作为考试系统的主要功能模块,实现了考场、座位、考试时间、场次安排等随机安排功能,阐述了该系统中考生考试排位功能模块的设计思想及方法,规避了可能存在的主要作弊行为,缓解了教务工作人员的排位的烦恼。

关键词:随机排位;准考证;信息系统;在线考试

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2022)29-0053-04

1 引言

随着互联网的普及,各行各业为了方便进行人员招聘、业务考核等常规人事或业务管理工作,使用在线考试的方式进行考核的企事业单位越来越多,逐渐形成一种趁势。而在线考试的考务管理工作中,如何根据已有的机房数量、可用的机位数和方便的考试时间安排为学生分配考场、考试机位和考试时间,最终获得简洁清晰的考场座位报表具有一定的现实意义[1]。且在实际应用过程中,考生可以登录在线考试系统,根据考试随机排位功能模块,生成并打印具有随机考场、座位、考试时间和场次的准考证。本文着重阐述该功能模块的设计与实现。

1)功能需求;

2)每考试科目的考试场次保持一致;

3)同班的学生在单个考场中的前后左右四方不相邻;

4)满足给同一个学生的不同考试科目安排相应的考场;

5)删除某考生时,需要同时删除相应的报考科目和排位记录;删除某场次时,删除所有当场次的排位记录;删除某科目时,删除此科目所有排位记录;

6)每个考场至少保留3个机位用于在考试机器出故障时替换的临时考位;

7)生成一定规则的准考证号;

8)考生登录,打印已生成固定格式的准考证,如图1。

2 总体设计

2.1 设计目标

在在线考试系统中,考生通过系统的排位功能模块自主打印准考证,其主要的设计目标从以下几个方面体现:

1)间隔编排同班考生机位。为了尽可能规避考生作弊行为,预防同班同学因位置相邻而出现替考、相互对答案、互相“学习”等现象,因此,在生成排位表的时候,要使用相关技术使同班同学在分配机位的时候尽可能分散,且前后、左右不相邻。

2)生成相应规则的准考证号。准考证号是由一连串数字与字母的组合组成,不同的考试,准考证号位数不一样,编码规则也不一样,但一个共同的特点:准考证号是唯一的,且由多个小部分规则构成,每小部分能代表不同的数据含义。在本系统中,准考证号由14位字符串组成,从左往右,第一组8位代表考试的具体哪一天,由四位年数字、两位月数字和两位日数字组成,第二组4位数字代表随机码,第三组两位字符代表考场,第四组两位数字代表具体机位。

3)缓解教务人员的工作压力。在通知学生登录系统打印准考证之前,教务人员需要先登录管理系统,根据预先设定的排位规则,自动生成准考证信息报表,并根据考场分别打印考生信息表,方便监考教师核对考生信息,从而实现考位智能编排,达到减轻教务人员工作量并提高工作效率的目的。

4)规范输出准考证的样式。为体现在线考试的规范性和严肃性,系统设计了统一准考证样式,规范了打印的相关要求,考生通过系统功能模块自主打印,避免了考生将千奇百怪的准考证带入考场。

5)防止篡改准考证排位信息。首先是从程序设计方面保持URL请求的方式和参数合法,防SQL注入;再是从网页特效功能方面,屏蔽除打印功能外的其他功能,如页面另存、拷贝等功能,从源头上确保排位信息生成后的不可更改性。

6)保障系统功能完整。在线考试一般需要面向社会公开并接受社会各界监督,除了具有系统需求方面的完整功能外,还需要从技术方面考虑考生不能正常打印时可能对单位产生的不良影响,因此,在设计在线准考证生成及打印技术时必须要考虑各方面因素,确保各项工作顺利进行。

7)加强模块的实用性。在线考试系统并不是一次性消耗产品,为保证此系统的可持续使用性,且对各种考试都能按要求生成精确的准考证,需要解决系统的通用性功能。当多个课程加入考试科目时,系统管理员能自主选择班级和考场,自动生成随机排位后的准考证信息报表,即系统能灵活地配置各种数据。

2.2 数据库设计

系统采用MySQL数据库,根据功能的需要,需要构造主要数据表有表1~表5所示,现列出主要字段。

1)构造的主要数据表

2)数据关系图

构建系统数据库关系图,以建立表与表之间的对应关系,以字段Sub_id建立科目表和排位表的级联关系、以字段Stu_ID建立学生表和排位表之间的级联关系、以字段Cc_order建立场次表和排位表之間的级联关系,可以满意功能需求第四部分的要求,如图2。

2.3 工作流程

在此系统中,采用了基于角色的用户权限管理,共分为三种用户,分别为考生、系统管理员和教务人员,系统进行考试排位需要处理这三种用户设置的基础数据。

在考生登录系统打印准考证之前,系统管理员首先需要对在线考试系统进行数据初始化,主要包括考生基本信息和考场基本信息的导入、考试科目和考试场次的设置。接着根据考生数量和考试科目的多少,优化选择具体的几个考场,最后再根据排位规则生成排位报表,具体工作流程如图3。

3 技术实现过程

在随机排位前,需要合理计算考室机位,既能充分利用考室资源,又满足排位需求,还能达到较高的排位率,因此,需要求出最佳的考室组合,算法如下:

设置考场代码为X,考场序号为i,考场机位数为Ai,考生总数为Z那么:

[i=1nxiAi-3i=1nxi≤Z]

[xi∈0,1,i=1,2,…,n]

3.1 随机排位功能的实现

随机排位功能是在线考试系统教务模块的核心功能,其功能的实现是对考生考位的基本编排[2],决定着是否在技术层面实现防作弊功能。常见的排位功能有以下几种思路:

第一种,从班级的角度考虑,先把一个班随机排完,再排第二个班,不考虑考室是否排满的情况;其基本流程为:

Step1:先从学生基本信息表中按班级顺序读出每个班的所有学生,存放在临时学生数据表中,此数据表只需要存放学生的ID号即可。

Step2:依次读取考场数据,并根据考场机位数生成考场机位表,此表主要包括考场ID、机位号和随机码。

Step3:为考场机位表的每条记录生成四位不重复的整数随机码,并按随机码从小到大的顺序排序,此时,已实现机位的随机排列。

Step4:为第一场次考试考生分配机位:分别顺序读取考生表和考场机位表,按顺序匹配组成一条记录,并写入Position表中。若学生总数小于总机位数,学生顺序读取完毕后即考位分配结束,否则,第一轮机位分配完毕后,余下的考生分配第二场次考试,机位表又按顺序读取与考生匹配,直到考生表读取完毕。

Step5:释放临时学生表和考场机位表。

此方法基于班级学生的顺序来匹配随机排列的机位,达到随机排位功能,但有一个严重的缺陷:若学生总数小于机位总数的量过大,或第一场次排满后剩余学生总数小于机位总数的量过大,则会造成考室排位率不足。此方法适合考生总数与考室机位总数相等的情况,但还是存在同班同学考位相邻的情况。

为避免考室排位率不足,从第一种方法的思路中,改用从考室的角度考虑,先把一个考室排满,再排第二个考室,不考虑班级情况;基本流程如下:

Step1:首先依次读取考场数据,并根据考场机位数生成顺序机位表,此表只要考场ID和机位号字段。

Step2:再从学生基本信息表中按班级顺序读出每个班的所有学生,存放在临时考生数据表中,此数据表主要存放学生的ID号和随机码即可。

Step3:为考生表的每条记录生成四位不重复的整数随机码,并按随机码从小到大的顺序排序,此时,已实现考生的随机排列;

Step4:为第一场次考试考生分配机位:分别顺序读取考生表和考场机位表,按顺序匹配组成一条记录,并写入Position表中。此时,在为第一考场每个机位匹配考生后,才会给第二考场匹配其他考生,若考生总数大于机位总数,则在第一场次所有机位排完后,再排第二场次,直到每个考生都分配好机位。

此方法虽然避免了考场及资源的浪费,但在为考生生成随机码的时候,不可避免出现同班考生的随机码相邻。

满足了考室的排位率,但同班考生相邻的问题还是没有得到彻底解决,为此,在第二种方法的基础上改进排位算法,在第四步为考生分配机位前,先遍历学生排序表,判断相邻随机码所对应的学生是否为同班同学即可实现每行左右不相邻,再根据每个考生所在机位数字,分别加减机房中每行的机位数Kc_Nline,判断对应机位的学生是否为同班同学,从而实现每列前后不相邻。其数据流程如图4。

3.2 生成标准准考证号

实现了同班同学的随机排序和前后左右四方不相邻后,准考证号的生成就相对简单。只需要根据设计的准考证号规则,如图1中,准考证号是由年月日8位数据20201212,再加上4位随机码0101、两位机房号5A和座位号36,再把这些字符串连接起来组成一个新的字符串,就成了标准的准考证号。

3.3 生成排位报表

排位报表是教务管理的手段之一,其主要功能如下:

一是教务管理人员,可通过排位报表查看机房排位情况。如:编排机房的个数。

二是教务管理人员可以查看排考场次,如某一科是否一场次排完或所有考试科目需要的排考场次。

三是可以生成考场考生验证表,考场验证表是核实考生是否按分配机位入座,是否参考。也可以作为考生签到表;还可以把打印的考生验证表按考生分割,作为考生座签,实现人、机、签三合一验证考生身份。

其主要实现方式就是把考生排位信息表中的数据分别按机房、科目、场次等选项,利用MsSQL生成报表的功能,导出为Excel数据。

3.4 标准证考证的生成及打印

按图1所示准考证样式,包含有姓名、性别、学号、准考证号、考试科目、场次、时间及考试机位。在考生打印准考证时,需要使用客户端技术生成一个准考证模版,对应的参数值从数据库中调取[3]。

考生的照片,可与学校信息门户对接,抽取学生信息库中的照片信息,定位到准考证的相应位置。由于是通过信息共享获得图片,因此,服务器端不需要在硬盘上设置缓存空间以存放学生图片[4]。

准考证里面涉及的关键信息如照片、准考证号、机位分配都已得到全部解决,学生通过身份认证登录考生功能模块,选择考试科目,即可生成图1样式的准考证。其打印通过JavaScript的Windows对象print()方法调用IE自身的打印功能[4]。

4 测试与分析

作者所申请项目的平台,基于某高校公共基础实验室,能同时容纳500多名考生同时考试,搭建有各种C/S实验环境,采用微软IIS 8作为Web服务器,MsSQL2019数据库软件提供数据服务,配置公共考试网站站点。其服务器硬件为2台19英寸工业标准2U机架式服务器,64核处理器,128G内存,2T外存空间,3个千兆以太网控制器,百兆网到桌面。

系统部署完毕后,导入学生数据,进行系统测试。系统管理人员登录系统管理平台,先设置机房号及座位号,设置好考试科目,再导入每科目需要参考的学生数据,完成数据的初始化,在此过程中,各项操作顺地进行,系统运行状态良好。随后进行机位分配操作,管理员可选择为单个或多个考试科目的学生分配机位[5],在生成机位的过程中,数据库频繁地读写数据,当生成200条数据的时候,每一条机位匹配数据的脚本执行时间慢慢变长,而整个测试耗时比较长,可以明显感到服务器处于假宕机状态,经过为500名考生分配机位的测试得到表6的测试结果。

根据测试中的数据可以看出,在为每位考生分配机位的过程中,管理员需要耐心等待,直到为全部考生分配好考试机位。

在测试中设计了访问MsSQL数据库的脚本页面,统计关键性节点的耗时,通过系统在为考生匹配机房机位与正常情况下对该脚本页面执行耗时进行对比,测试可以表明,在为考生匹配机房机位期间,虽然耗时较长,但不影响考生对系统的访问。

5 结束语

高校把公共机房作为在线考试的主要场所,每个机位位置之间间距很小,为学生作弊提供了空间。考生随机机位排序的主要目的就是防止同班考生因相熟且位置相近而存在的作弊,比较适合考生过多的公共课。

参考文献:

[1] 徐欣,陆阳,金红.考试排位系统[J].电子科技大学学报,2003,32(6):714-717.

[2] 呂世杰,王治国.基于过程监控与办公自动化探讨高校教学秘书日常工作技能提升——以考试随机排位及监考教师指派工作为例[J].内蒙古教育,2020(17):123-125.

[3] 唐青松,贺建英.一种基于JPEG模板的在线生成准考证技术[J].现代电子技术,2014,37(20):51-55.

[4] 纪海燕.基于PHP技术的教师资格考试准考证网上打印系统及后台管理系统的设计与实现[J].科技信息,2012(9):458-459.

[5] 杨丽明,杨玉华.随机排位模型有效程度的新探讨[J].中央民族大学学报(自然科学版),2000,9(2):169-173.

【通联编辑:谢媛媛】

猜你喜欢

在线考试准考证信息系统
企业信息系统安全防护
高考准考证7大作用
基于区块链的通航维护信息系统研究
信息系统审计中计算机审计的应用
“忘带全班准考证”倒逼准考证实现无纸化
基于Java的考场管理系统的研究与实现
大学物理在线考试与分析系统
效率观下高校课程考试形式的改革探索
基于SG-I6000的信息系统运检自动化诊断实践
大数据背景下在线评教与在线考试融合的思路探讨