施曉晗
(1.蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006;2.江蘇省吳中中等專業(yè)學(xué)校 信息傳媒系,江蘇 蘇州 215104)
基于微信公眾平臺(tái)的在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
施曉晗1,2
(1.蘇州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006;2.江蘇省吳中中等專業(yè)學(xué)校 信息傳媒系,江蘇 蘇州 215104)
微信在學(xué)生群體中使用廣泛,是一款具有通售、社交、平臺(tái)化功能的移動(dòng)應(yīng)用軟件,為在線考試提供良好的環(huán)境支持?;赑HP技術(shù)與MySQL數(shù)據(jù)庫(kù),設(shè)計(jì)與實(shí)現(xiàn)在線考試系統(tǒng),優(yōu)化教師的教學(xué)管理,實(shí)現(xiàn)試題批閱自動(dòng)化、高效化,在一定程度上保證考試的公平性,提高考試管理的現(xiàn)代化水平。
微信公眾平臺(tái);在線考試;PHP
Abstract:As a mobile application software, WeChat integrates the functions of communication, socializing and platform and is widely used among students. It can also provides favorable environment support for online test.Based on PHP technology and MySQL database, it paper is intended to design and implement online test system in order to optimize teaching management, to realize automatic and efficient test paper reading and marking, to ensure the fairness of examination to some degree and to uplift the level of modern examination management.
Keywords:WeChat public platform;online examination;PHP
自2011年1月21日,騰訊公司推出微信以來,越來越多的人開始使用手機(jī)應(yīng)用軟件進(jìn)行交流和學(xué)習(xí),其主要原因有:微信支持跨通信運(yùn)營(yíng)商、跨操作系統(tǒng)(支持當(dāng)前主流移動(dòng)操作系統(tǒng)Android,IOS,WP,Blackberry,S60,Mac的終端設(shè)備)平臺(tái),只需要網(wǎng)絡(luò)流量即可快速發(fā)送語音短信、視頻、圖片、文字、位置和鏈接等,用戶可通過微信與好友進(jìn)行形式上更加豐富的類似于短信、彩信等方式的聯(lián)系。微信軟件本身完全免費(fèi),且使用任何功能都不會(huì)收取費(fèi)用。這些優(yōu)點(diǎn)吸引了廣大用戶,截至2016年第二季度,微信這款移動(dòng)端即時(shí)通信軟件已經(jīng)覆蓋了中國(guó)94%以上的智能手機(jī),月活躍用戶達(dá)到8.06億,主要使用群體指向年輕人,特別是學(xué)生群體,在各大學(xué)校范圍內(nèi)微信的使用量與日俱增。
2012年8 月,騰訊推出的微信公眾平臺(tái),與微信一脈相承,讓高校學(xué)生的生活和學(xué)習(xí)方式逐步發(fā)生了改變,為新媒體環(huán)境下改善學(xué)生學(xué)習(xí)方式提供了新的可能。將考試系統(tǒng)和微信公眾平臺(tái)相結(jié)合,利用微信公眾平臺(tái)強(qiáng)大的傳播能力和簡(jiǎn)單的操作方式,可優(yōu)化教師的教學(xué)管理,實(shí)現(xiàn)試題批閱自動(dòng)化、高效化,也使學(xué)生擺脫時(shí)間、空間的束縛,隨時(shí)隨地進(jìn)行考試[1]?;谖⑿殴娖脚_(tái)的在線考試系統(tǒng),必將成為未來考試的一個(gè)重要分支。
考試是學(xué)校教學(xué)工作的重要環(huán)節(jié)之一,基于微信公眾平臺(tái)的在線考試系統(tǒng)要滿足以下基本條件:
1) 使用開源穩(wěn)定的開發(fā)框架,能夠便捷地實(shí)現(xiàn)客戶端與服務(wù)器的交互;
2) 系統(tǒng)操作簡(jiǎn)便,流程合理,界面清晰,后臺(tái)管理人員可快速對(duì)系統(tǒng)進(jìn)行設(shè)置及初始化;
3) 考生答題時(shí)設(shè)置倒計(jì)時(shí)功能,使考生能夠知曉自己的考試時(shí)間;
4) 自動(dòng)組卷防作弊功能,減輕教師人工組卷的工作量,并保證組卷速度快,重復(fù)率低;
5) 實(shí)現(xiàn)考試時(shí)間結(jié)束、自動(dòng)交卷的功能,確??荚嚨墓叫?;
6) 實(shí)現(xiàn)系統(tǒng)自動(dòng)評(píng)卷功能,保證無人工參與閱卷過程,保障考試的公正性;
7) 實(shí)現(xiàn)多種方法信息輸出,教師可通過PC端直接查看學(xué)生考試成績(jī)、打印輸出學(xué)生成績(jī),學(xué)生可通過微信公眾平臺(tái)直接查看考試成績(jī)。
1) 技術(shù)可行性。以Linux為操作系統(tǒng),采用超文本預(yù)處理器(hypertext preprocessor,PHP)為開發(fā)工具,運(yùn)用MySQL數(shù)據(jù)庫(kù)技術(shù),設(shè)計(jì)與開發(fā)系統(tǒng)。系統(tǒng)運(yùn)行的硬件環(huán)境是Linux服務(wù)器,當(dāng)用戶使用系統(tǒng)時(shí),通過輸入正確的用戶名和密碼進(jìn)入系統(tǒng),進(jìn)行數(shù)據(jù)庫(kù)的維護(hù)操作和運(yùn)用[2]。
2) 經(jīng)濟(jì)可行性。系統(tǒng)中友好的人機(jī)界面和強(qiáng)勁的功能支持,提高了使用者的工作效率,節(jié)省了人力、物力,進(jìn)而提高了經(jīng)濟(jì)效益;同時(shí),系統(tǒng)的開發(fā)成本低,Linux作為操作系統(tǒng),MySQL 作為數(shù)據(jù)庫(kù),PHP作為服務(wù)器端腳本解釋器。這三個(gè)軟件都是免費(fèi)或開放源碼軟件(FLOSS),因此,使用較低的成本就可以建立一個(gè)穩(wěn)定的系統(tǒng)。
3) 操作可行性。在操作上是對(duì)微信的應(yīng)用,在線考試系統(tǒng)的使用,主要是憑借使用手機(jī)微信操作技術(shù),即可完成數(shù)據(jù)的錄入、修改、刪除等多項(xiàng)功能,簡(jiǎn)單方便。
系統(tǒng)分為學(xué)生端和教師端兩個(gè)不同的角色,以及一個(gè)支持在線考試頁(yè)面服務(wù)和管理服務(wù)的Apache服務(wù)器。
1) 學(xué)生通過自己的智能手機(jī)掃描教師建立的微信訂閱號(hào),并用自己的學(xué)號(hào)和初始密碼進(jìn)行登錄,首次登錄需要將自己的學(xué)號(hào)和微信號(hào)綁定在一起,以方便管理。綁定成功后,可通過訂閱號(hào)獲取考試的頁(yè)面入口,隨后找到考試鏈接,點(diǎn)擊鏈接后進(jìn)入考試的頁(yè)面。頁(yè)面需要教師在規(guī)定的時(shí)間發(fā)布,并要求學(xué)生在規(guī)定的時(shí)限內(nèi)完成答題。學(xué)生在規(guī)定考試的時(shí)限內(nèi)完成答題并提交自己的答題情況,提交成功后,系統(tǒng)能夠當(dāng)場(chǎng)反饋學(xué)生答題的結(jié)果。頁(yè)面主要以單項(xiàng)選擇題、多項(xiàng)選擇題和判斷題為主。同時(shí)將答題學(xué)生的姓名、分?jǐn)?shù)以及答題時(shí)間等信息提交到后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)[3]。
2) 教師可以通過自己已聯(lián)網(wǎng)的個(gè)人電腦去登錄在線考試系統(tǒng),即時(shí)獲取學(xué)生的答題結(jié)果信息。系統(tǒng)自動(dòng)對(duì)結(jié)果進(jìn)行統(tǒng)計(jì)和排名,從提交的時(shí)間和分?jǐn)?shù)兩個(gè)指標(biāo)進(jìn)行排名。通過提交的結(jié)果,還可以獲取學(xué)生的考勤信息。
3) 后臺(tái)的微信在線考試系統(tǒng)包括兩方面的內(nèi)容,一個(gè)是在線考試的每堂課程的考試頁(yè)面;另一個(gè)是教師進(jìn)行試卷發(fā)布時(shí)間的控制和學(xué)生提交試卷后的結(jié)果管理。后臺(tái)系統(tǒng)可以利用Linux的IIS建立Apache服務(wù)器,采用PHP動(dòng)態(tài)開發(fā)語言和MySQL數(shù)據(jù)庫(kù)建立學(xué)生答題環(huán)節(jié)的提交和數(shù)據(jù)庫(kù)記錄功能,利用這種方法部署起來的系統(tǒng)具有簡(jiǎn)單、方便、快捷、實(shí)用的優(yōu)點(diǎn)。
微信公眾平臺(tái)是微信公眾賬號(hào)所有者(政府、媒體、企業(yè)、組織或個(gè)人等)進(jìn)行平臺(tái)推廣、減少運(yùn)營(yíng)成本、提高影響力、與用戶互動(dòng)交流及提供服務(wù)的平臺(tái),公眾賬號(hào)通過消息、事件、菜單等交互方式為用戶提供服務(wù)[4]。
微信公眾賬號(hào)分為服務(wù)號(hào)、企業(yè)號(hào)和訂閱號(hào)三種,其中服務(wù)號(hào)側(cè)重于對(duì)用戶進(jìn)行服務(wù),主要適用于媒體、企業(yè)、政府或其他有需求的組織,企業(yè)號(hào)側(cè)重于生產(chǎn)運(yùn)營(yíng)管理,主要適用于企業(yè)、政府、事業(yè)單位或其他有需求的組織,這兩種公眾賬號(hào)都不適合教師教學(xué)使用,且部分功能需要付費(fèi)才能夠使用,因此,本系統(tǒng)申請(qǐng)的是微信訂閱號(hào),訂閱號(hào)每天可群發(fā)一條消息,認(rèn)證后可申請(qǐng)自定義菜單,且所有功能均為免費(fèi)使用。學(xué)生只需通過微信的“掃一掃”功能即可關(guān)注該公眾號(hào),為學(xué)生獲取資源和教師發(fā)布信息提供了便利。
在微信公眾平臺(tái)中,微信號(hào)是識(shí)別每個(gè)用戶的唯一依據(jù),因此在首次使用在線考試系統(tǒng)時(shí),需要將學(xué)生的學(xué)號(hào)和微信號(hào)綁定。學(xué)生關(guān)注“在線考試”這一微信公眾號(hào)后,進(jìn)入“綁定微信號(hào)”頁(yè)面。頁(yè)面要求學(xué)生輸入自己的賬號(hào)(學(xué)號(hào))和登錄密碼(身份證后6位數(shù)字),若學(xué)生輸入的學(xué)號(hào)和登錄密碼與教師通過后臺(tái)管理系統(tǒng)導(dǎo)入的相匹配,則顯示“綁定成功”頁(yè)面;若不匹配,則提示“賬號(hào)或密碼錯(cuò)誤,請(qǐng)重新輸入”信息,要求學(xué)生輸入正確的賬號(hào)和密碼。綁定成功后,學(xué)生今后登錄該微信公眾號(hào),則提示“已授權(quán)過該公眾號(hào),系統(tǒng)自動(dòng)跳轉(zhuǎn)”信息,即不必再輸入賬號(hào)和登錄密碼,就可進(jìn)入“在線考試系統(tǒng)”。其核心代碼如下:
public function loginAccount(){
$map=[];
$map['username']=input('post.username');
$map['pwd']=input('post.pwd');
if($map['username']== '' || $map['pwd']== ''){
return ['data'=>'false'];
}
$student_db = db('student');
$student=$student_db->where($map)->find();
if($student){
//賬號(hào)密碼正確,綁定當(dāng)前微信號(hào)
$wechat_user = session('wechat_user');
$student_db->where(['student_id'=>$student['student_id']])->update(['weid'=>$wechat_user['id']]);
session('student_id',$student['student_id']);
return ['data'=>'true'];
}else{
return ['data'=>'false'];
}
}
為了有效防止學(xué)生作弊,系統(tǒng)采用隨機(jī)抽題的組卷方式,保證每一位學(xué)生抽取到的試題都是不相同的。系統(tǒng)組卷前,教師需通過后臺(tái)管理系統(tǒng),將不同類型的試題分類導(dǎo)入到題庫(kù)中。學(xué)生進(jìn)入考試頁(yè)面后,系統(tǒng)調(diào)用隨機(jī)函數(shù)rand(),產(chǎn)生規(guī)定數(shù)量的大于0且不重復(fù)的隨機(jī)數(shù),利用這些隨機(jī)數(shù)在題庫(kù)中隨機(jī)抽取不同類型的試題,以生成各不相同的試卷[5]。
系統(tǒng)要求學(xué)生在規(guī)定的時(shí)間內(nèi)完成試卷,并提交答題情況,因此需實(shí)現(xiàn)計(jì)時(shí)功能。考試開始前,教師需通過后臺(tái)管理系統(tǒng),設(shè)置考試時(shí)間。學(xué)生開始考試后,系統(tǒng)自動(dòng)開始進(jìn)行倒計(jì)時(shí)。在倒計(jì)時(shí)結(jié)束前,學(xué)生均可提交答題情況;若倒計(jì)時(shí)結(jié)束,學(xué)生仍未提交試卷,則系統(tǒng)強(qiáng)制提交。其核心代碼如下:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>倒計(jì)時(shí)js代碼</title>
<style>
*{ margin:0;padding:0;list-style:none;}
body{ font-size:18px;text-align:center;}
.time{ height:30px;padding:200px;}
</style>
</head>
<body>
<div class="time">
<span id="t_h">00時(shí)</span>
<span id="t_m">00分</span>
<span id="t_s">00秒</span>
</div>
<script>
function GetRTime(){
var EndTime= new Date('2017/05/10 00:00:00');
var NowTime = new Date();
var t =EndTime.getTime()- NowTime.getTime();
var d=0;
var h=0;
var m=0;
var s=0;
if(t>=0){
h=Math.floor(t/1000/60/60%24);
m=Math.floor(t/1000/60%60);
s=Math.floor(t/1000%60);
}
document.getElementById("t_h").innerHTML = h + "時(shí)";
document.getElementById("t_m").innerHTML = m + "分";
document.getElementById("t_s").innerHTML = s + "秒";
}
setInterval(GetRTime,0);
</script>
</body>
</html>
在線考試系統(tǒng)的整個(gè)管理后臺(tái)包括學(xué)生試卷的制作與發(fā)布、學(xué)生的成績(jī)統(tǒng)計(jì)與排名等功能,都需要教師通過PC端來完成。在線考試后臺(tái)管理系統(tǒng)可通過在瀏覽器輸入服務(wù)器的IP地址進(jìn)行登錄,登錄頁(yè)面如圖1所示。教師輸入正確的用戶名和密碼后,可進(jìn)入在線考試系統(tǒng)的后臺(tái)管理系統(tǒng)。在系統(tǒng)中,教師可實(shí)現(xiàn)對(duì)試卷信息的管理、試題的分類導(dǎo)入、學(xué)生成績(jī)的管理等多項(xiàng)操作,如圖2所示。
圖1 在線考試系統(tǒng)登錄頁(yè)面
圖2 在線考試系統(tǒng)后臺(tái)管理界面
基于微信公眾平臺(tái)的在線考試系統(tǒng),采用PHP技術(shù)、Apache服務(wù)器和MySQL數(shù)據(jù)庫(kù)進(jìn)行開發(fā),充分考慮了當(dāng)前學(xué)校對(duì)于學(xué)生考試管理的需求,提高了教師的出卷和閱卷的效率,簡(jiǎn)化了客戶端的操作要求,基本實(shí)現(xiàn)了系統(tǒng)設(shè)計(jì)要求。在手持移動(dòng)終端設(shè)備高速發(fā)展的今天,該系統(tǒng)必將給學(xué)生的學(xué)習(xí)帶來極大的便利。
[1]杜娟.基于微信公眾平臺(tái)的移動(dòng)學(xué)習(xí)應(yīng)用初探[J].赤峰學(xué)院學(xué)報(bào)(自然科學(xué)版),2015(7):53-54.
[2]劉洪江.在線考試系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2012,8(3):508-511.
[3]楊博雄,賴海婷,黃靜,等.基于微信交互的隨堂考試系統(tǒng)設(shè)計(jì)與開發(fā)[J].微型電腦應(yīng)用,2016,32(12):1-7.
[4]陶瑾.微信公眾平臺(tái)開發(fā)最佳實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2015:1-2.
[5]覃俊杰,高翔,黃金春.基于微信的考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].大眾科技,2015,17(12):18-20.
(責(zé)任編輯:李 華)
The Design and Implementation of an Online Test System Based on the WeChat Public Platform
SHI Xiaohan1,2
(1.School of Computer Science and Technology,Soochow University,Suzhou 215006,China;2.Department of Information and Media;Jiangsu Wuzhong Technical Secondary School,Suzhou 215104,China)
TP315
A
1008-5475(2017)03-0029-05
10.16219/j.cnki.szxbzk.2017.03.006
2017-02-10;
2017-03-02
施曉晗(1989-),女,江蘇蘇州人,助教,碩士研究生,主要從事計(jì)算機(jī)應(yīng)用研究。
施曉晗. 基于微信公眾平臺(tái)的在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].蘇州市職業(yè)大學(xué)學(xué)報(bào),2017,28(3):29-33.
蘇州市職業(yè)大學(xué)學(xué)報(bào)2017年3期