胥獻偉



摘要:為體現(xiàn)考試的公平公正,杜絕考試中的作弊行為,文章開發(fā)了一套在線考試系統(tǒng),其中基于隨機排位的準考證生成與打印系統(tǒng)功能,作為考試系統(tǒng)的主要功能模塊,實現(xiàn)了考場、座位、考試時間、場次安排等隨機安排功能,闡述了該系統(tǒng)中考生考試排位功能模塊的設計思想及方法,規(guī)避了可能存在的主要作弊行為,緩解了教務工作人員的排位的煩惱。
關(guān)鍵詞:隨機排位;準考證;信息系統(tǒng);在線考試
中圖分類號:TP311 ? ? ?文獻標識碼:A
文章編號:1009-3044(2022)29-0053-04
1 引言
隨著互聯(lián)網(wǎng)的普及,各行各業(yè)為了方便進行人員招聘、業(yè)務考核等常規(guī)人事或業(yè)務管理工作,使用在線考試的方式進行考核的企事業(yè)單位越來越多,逐漸形成一種趁勢。而在線考試的考務管理工作中,如何根據(jù)已有的機房數(shù)量、可用的機位數(shù)和方便的考試時間安排為學生分配考場、考試機位和考試時間,最終獲得簡潔清晰的考場座位報表具有一定的現(xiàn)實意義[1]。且在實際應用過程中,考生可以登錄在線考試系統(tǒng),根據(jù)考試隨機排位功能模塊,生成并打印具有隨機考場、座位、考試時間和場次的準考證。本文著重闡述該功能模塊的設計與實現(xiàn)。
1)功能需求;
2)每考試科目的考試場次保持一致;
3)同班的學生在單個考場中的前后左右四方不相鄰;
4)滿足給同一個學生的不同考試科目安排相應的考場;
5)刪除某考生時,需要同時刪除相應的報考科目和排位記錄;刪除某場次時,刪除所有當場次的排位記錄;刪除某科目時,刪除此科目所有排位記錄;
6)每個考場至少保留3個機位用于在考試機器出故障時替換的臨時考位;
7)生成一定規(guī)則的準考證號;
8)考生登錄,打印已生成固定格式的準考證,如圖1。
2 總體設計
2.1 設計目標
在在線考試系統(tǒng)中,考生通過系統(tǒng)的排位功能模塊自主打印準考證,其主要的設計目標從以下幾個方面體現(xiàn):
1)間隔編排同班考生機位。為了盡可能規(guī)避考生作弊行為,預防同班同學因位置相鄰而出現(xiàn)替考、相互對答案、互相“學習”等現(xiàn)象,因此,在生成排位表的時候,要使用相關(guān)技術(shù)使同班同學在分配機位的時候盡可能分散,且前后、左右不相鄰。
2)生成相應規(guī)則的準考證號。準考證號是由一連串數(shù)字與字母的組合組成,不同的考試,準考證號位數(shù)不一樣,編碼規(guī)則也不一樣,但一個共同的特點:準考證號是唯一的,且由多個小部分規(guī)則構(gòu)成,每小部分能代表不同的數(shù)據(jù)含義。在本系統(tǒng)中,準考證號由14位字符串組成,從左往右,第一組8位代表考試的具體哪一天,由四位年數(shù)字、兩位月數(shù)字和兩位日數(shù)字組成,第二組4位數(shù)字代表隨機碼,第三組兩位字符代表考場,第四組兩位數(shù)字代表具體機位。
3)緩解教務人員的工作壓力。在通知學生登錄系統(tǒng)打印準考證之前,教務人員需要先登錄管理系統(tǒng),根據(jù)預先設定的排位規(guī)則,自動生成準考證信息報表,并根據(jù)考場分別打印考生信息表,方便監(jiān)考教師核對考生信息,從而實現(xiàn)考位智能編排,達到減輕教務人員工作量并提高工作效率的目的。
4)規(guī)范輸出準考證的樣式。為體現(xiàn)在線考試的規(guī)范性和嚴肅性,系統(tǒng)設計了統(tǒng)一準考證樣式,規(guī)范了打印的相關(guān)要求,考生通過系統(tǒng)功能模塊自主打印,避免了考生將千奇百怪的準考證帶入考場。
5)防止篡改準考證排位信息。首先是從程序設計方面保持URL請求的方式和參數(shù)合法,防SQL注入;再是從網(wǎng)頁特效功能方面,屏蔽除打印功能外的其他功能,如頁面另存、拷貝等功能,從源頭上確保排位信息生成后的不可更改性。
6)保障系統(tǒng)功能完整。在線考試一般需要面向社會公開并接受社會各界監(jiān)督,除了具有系統(tǒng)需求方面的完整功能外,還需要從技術(shù)方面考慮考生不能正常打印時可能對單位產(chǎn)生的不良影響,因此,在設計在線準考證生成及打印技術(shù)時必須要考慮各方面因素,確保各項工作順利進行。
7)加強模塊的實用性。在線考試系統(tǒng)并不是一次性消耗產(chǎn)品,為保證此系統(tǒng)的可持續(xù)使用性,且對各種考試都能按要求生成精確的準考證,需要解決系統(tǒng)的通用性功能。當多個課程加入考試科目時,系統(tǒng)管理員能自主選擇班級和考場,自動生成隨機排位后的準考證信息報表,即系統(tǒng)能靈活地配置各種數(shù)據(jù)。
2.2 數(shù)據(jù)庫設計
系統(tǒng)采用MySQL數(shù)據(jù)庫,根據(jù)功能的需要,需要構(gòu)造主要數(shù)據(jù)表有表1~表5所示,現(xiàn)列出主要字段。
1)構(gòu)造的主要數(shù)據(jù)表
2)數(shù)據(jù)關(guān)系圖
構(gòu)建系統(tǒng)數(shù)據(jù)庫關(guān)系圖,以建立表與表之間的對應關(guān)系,以字段Sub_id建立科目表和排位表的級聯(lián)關(guān)系、以字段Stu_ID建立學生表和排位表之間的級聯(lián)關(guān)系、以字段Cc_order建立場次表和排位表之間的級聯(lián)關(guān)系,可以滿意功能需求第四部分的要求,如圖2。
2.3 工作流程
在此系統(tǒng)中,采用了基于角色的用戶權(quán)限管理,共分為三種用戶,分別為考生、系統(tǒng)管理員和教務人員,系統(tǒng)進行考試排位需要處理這三種用戶設置的基礎數(shù)據(jù)。
在考生登錄系統(tǒng)打印準考證之前,系統(tǒng)管理員首先需要對在線考試系統(tǒng)進行數(shù)據(jù)初始化,主要包括考生基本信息和考場基本信息的導入、考試科目和考試場次的設置。接著根據(jù)考生數(shù)量和考試科目的多少,優(yōu)化選擇具體的幾個考場,最后再根據(jù)排位規(guī)則生成排位報表,具體工作流程如圖3。
3 技術(shù)實現(xiàn)過程
在隨機排位前,需要合理計算考室機位,既能充分利用考室資源,又滿足排位需求,還能達到較高的排位率,因此,需要求出最佳的考室組合,算法如下:
設置考場代碼為X,考場序號為i,考場機位數(shù)為Ai,考生總數(shù)為Z那么:
[i=1nxiAi-3i=1nxi≤Z]
[xi∈0,1,i=1,2,…,n]
3.1 隨機排位功能的實現(xiàn)
隨機排位功能是在線考試系統(tǒng)教務模塊的核心功能,其功能的實現(xiàn)是對考生考位的基本編排[2],決定著是否在技術(shù)層面實現(xiàn)防作弊功能。常見的排位功能有以下幾種思路:
第一種,從班級的角度考慮,先把一個班隨機排完,再排第二個班,不考慮考室是否排滿的情況;其基本流程為:
Step1:先從學生基本信息表中按班級順序讀出每個班的所有學生,存放在臨時學生數(shù)據(jù)表中,此數(shù)據(jù)表只需要存放學生的ID號即可。
Step2:依次讀取考場數(shù)據(jù),并根據(jù)考場機位數(shù)生成考場機位表,此表主要包括考場ID、機位號和隨機碼。
Step3:為考場機位表的每條記錄生成四位不重復的整數(shù)隨機碼,并按隨機碼從小到大的順序排序,此時,已實現(xiàn)機位的隨機排列。
Step4:為第一場次考試考生分配機位:分別順序讀取考生表和考場機位表,按順序匹配組成一條記錄,并寫入Position表中。若學生總數(shù)小于總機位數(shù),學生順序讀取完畢后即考位分配結(jié)束,否則,第一輪機位分配完畢后,余下的考生分配第二場次考試,機位表又按順序讀取與考生匹配,直到考生表讀取完畢。
Step5:釋放臨時學生表和考場機位表。
此方法基于班級學生的順序來匹配隨機排列的機位,達到隨機排位功能,但有一個嚴重的缺陷:若學生總數(shù)小于機位總數(shù)的量過大,或第一場次排滿后剩余學生總數(shù)小于機位總數(shù)的量過大,則會造成考室排位率不足。此方法適合考生總數(shù)與考室機位總數(shù)相等的情況,但還是存在同班同學考位相鄰的情況。
為避免考室排位率不足,從第一種方法的思路中,改用從考室的角度考慮,先把一個考室排滿,再排第二個考室,不考慮班級情況;基本流程如下:
Step1:首先依次讀取考場數(shù)據(jù),并根據(jù)考場機位數(shù)生成順序機位表,此表只要考場ID和機位號字段。
Step2:再從學生基本信息表中按班級順序讀出每個班的所有學生,存放在臨時考生數(shù)據(jù)表中,此數(shù)據(jù)表主要存放學生的ID號和隨機碼即可。
Step3:為考生表的每條記錄生成四位不重復的整數(shù)隨機碼,并按隨機碼從小到大的順序排序,此時,已實現(xiàn)考生的隨機排列;
Step4:為第一場次考試考生分配機位:分別順序讀取考生表和考場機位表,按順序匹配組成一條記錄,并寫入Position表中。此時,在為第一考場每個機位匹配考生后,才會給第二考場匹配其他考生,若考生總數(shù)大于機位總數(shù),則在第一場次所有機位排完后,再排第二場次,直到每個考生都分配好機位。
此方法雖然避免了考場及資源的浪費,但在為考生生成隨機碼的時候,不可避免出現(xiàn)同班考生的隨機碼相鄰。
滿足了考室的排位率,但同班考生相鄰的問題還是沒有得到徹底解決,為此,在第二種方法的基礎上改進排位算法,在第四步為考生分配機位前,先遍歷學生排序表,判斷相鄰隨機碼所對應的學生是否為同班同學即可實現(xiàn)每行左右不相鄰,再根據(jù)每個考生所在機位數(shù)字,分別加減機房中每行的機位數(shù)Kc_Nline,判斷對應機位的學生是否為同班同學,從而實現(xiàn)每列前后不相鄰。其數(shù)據(jù)流程如圖4。
3.2 生成標準準考證號
實現(xiàn)了同班同學的隨機排序和前后左右四方不相鄰后,準考證號的生成就相對簡單。只需要根據(jù)設計的準考證號規(guī)則,如圖1中,準考證號是由年月日8位數(shù)據(jù)20201212,再加上4位隨機碼0101、兩位機房號5A和座位號36,再把這些字符串連接起來組成一個新的字符串,就成了標準的準考證號。
3.3 生成排位報表
排位報表是教務管理的手段之一,其主要功能如下:
一是教務管理人員,可通過排位報表查看機房排位情況。如:編排機房的個數(shù)。
二是教務管理人員可以查看排考場次,如某一科是否一場次排完或所有考試科目需要的排考場次。
三是可以生成考場考生驗證表,考場驗證表是核實考生是否按分配機位入座,是否參考。也可以作為考生簽到表;還可以把打印的考生驗證表按考生分割,作為考生座簽,實現(xiàn)人、機、簽三合一驗證考生身份。
其主要實現(xiàn)方式就是把考生排位信息表中的數(shù)據(jù)分別按機房、科目、場次等選項,利用MsSQL生成報表的功能,導出為Excel數(shù)據(jù)。
3.4 標準證考證的生成及打印
按圖1所示準考證樣式,包含有姓名、性別、學號、準考證號、考試科目、場次、時間及考試機位。在考生打印準考證時,需要使用客戶端技術(shù)生成一個準考證模版,對應的參數(shù)值從數(shù)據(jù)庫中調(diào)取[3]。
考生的照片,可與學校信息門戶對接,抽取學生信息庫中的照片信息,定位到準考證的相應位置。由于是通過信息共享獲得圖片,因此,服務器端不需要在硬盤上設置緩存空間以存放學生圖片[4]。
準考證里面涉及的關(guān)鍵信息如照片、準考證號、機位分配都已得到全部解決,學生通過身份認證登錄考生功能模塊,選擇考試科目,即可生成圖1樣式的準考證。其打印通過JavaScript的Windows對象print()方法調(diào)用IE自身的打印功能[4]。
4 測試與分析
作者所申請項目的平臺,基于某高校公共基礎實驗室,能同時容納500多名考生同時考試,搭建有各種C/S實驗環(huán)境,采用微軟IIS 8作為Web服務器,MsSQL2019數(shù)據(jù)庫軟件提供數(shù)據(jù)服務,配置公共考試網(wǎng)站站點。其服務器硬件為2臺19英寸工業(yè)標準2U機架式服務器,64核處理器,128G內(nèi)存,2T外存空間,3個千兆以太網(wǎng)控制器,百兆網(wǎng)到桌面。
系統(tǒng)部署完畢后,導入學生數(shù)據(jù),進行系統(tǒng)測試。系統(tǒng)管理人員登錄系統(tǒng)管理平臺,先設置機房號及座位號,設置好考試科目,再導入每科目需要參考的學生數(shù)據(jù),完成數(shù)據(jù)的初始化,在此過程中,各項操作順地進行,系統(tǒng)運行狀態(tài)良好。隨后進行機位分配操作,管理員可選擇為單個或多個考試科目的學生分配機位[5],在生成機位的過程中,數(shù)據(jù)庫頻繁地讀寫數(shù)據(jù),當生成200條數(shù)據(jù)的時候,每一條機位匹配數(shù)據(jù)的腳本執(zhí)行時間慢慢變長,而整個測試耗時比較長,可以明顯感到服務器處于假宕機狀態(tài),經(jīng)過為500名考生分配機位的測試得到表6的測試結(jié)果。
根據(jù)測試中的數(shù)據(jù)可以看出,在為每位考生分配機位的過程中,管理員需要耐心等待,直到為全部考生分配好考試機位。
在測試中設計了訪問MsSQL數(shù)據(jù)庫的腳本頁面,統(tǒng)計關(guān)鍵性節(jié)點的耗時,通過系統(tǒng)在為考生匹配機房機位與正常情況下對該腳本頁面執(zhí)行耗時進行對比,測試可以表明,在為考生匹配機房機位期間,雖然耗時較長,但不影響考生對系統(tǒng)的訪問。
5 結(jié)束語
高校把公共機房作為在線考試的主要場所,每個機位位置之間間距很小,為學生作弊提供了空間。考生隨機機位排序的主要目的就是防止同班考生因相熟且位置相近而存在的作弊,比較適合考生過多的公共課。
參考文獻:
[1] 徐欣,陸陽,金紅.考試排位系統(tǒng)[J].電子科技大學學報,2003,32(6):714-717.
[2] 呂世杰,王治國.基于過程監(jiān)控與辦公自動化探討高校教學秘書日常工作技能提升——以考試隨機排位及監(jiān)考教師指派工作為例[J].內(nèi)蒙古教育,2020(17):123-125.
[3] 唐青松,賀建英.一種基于JPEG模板的在線生成準考證技術(shù)[J].現(xiàn)代電子技術(shù),2014,37(20):51-55.
[4] 紀海燕.基于PHP技術(shù)的教師資格考試準考證網(wǎng)上打印系統(tǒng)及后臺管理系統(tǒng)的設計與實現(xiàn)[J].科技信息,2012(9):458-459.
[5] 楊麗明,楊玉華.隨機排位模型有效程度的新探討[J].中央民族大學學報(自然科學版),2000,9(2):169-173.
【通聯(lián)編輯:謝媛媛】