譚春茂
摘要:論文主要介紹利用PHP+MySQL技術(shù),以B/S架構(gòu)實(shí)現(xiàn)一個在線考試系統(tǒng),論文從在線考試系統(tǒng)的意義,考試系統(tǒng)需求分析,系統(tǒng)模塊功能設(shè)計,后臺數(shù)據(jù)庫設(shè)計、相關(guān)表結(jié)構(gòu)和系統(tǒng)實(shí)現(xiàn)關(guān)鍵技術(shù)等幾個方面進(jìn)行了詳細(xì)闡述。
關(guān)鍵詞:在線考試;PHP;MySQL數(shù)據(jù)庫;Ajax;B/S
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)10-2263-02
Abstract: This paper mainly introduces the use of PHP+MySQL technology, the realization of an online examination system based on B/S architecture, the paper from the online examination system, examination system requirement analysis, system function design, database design, the related table structure and system realization of several key technology in aspects of the detail.
Key words: Online Examination; PHP; MySQL Database; Ajax; B/S
在線考試系統(tǒng)充分利用計算機(jī)網(wǎng)絡(luò)和信息技術(shù)優(yōu)勢與傳統(tǒng)考試方式相比具有明顯的優(yōu)越性,它將傳統(tǒng)考試過程中需要的人工多個環(huán)節(jié)縮小到一至兩個環(huán)節(jié)(如自動化組卷、閱卷和成績發(fā)布等),幾乎屏蔽了所有人工直接干預(yù)考試活動的可能性,傳統(tǒng)考試要求老師出卷、印卷、安排考試、監(jiān)考、收集試卷、評改試卷和分析試卷等工作,需要付出較大的人力、物力和財力。而在線考試則可以突破時空限制,靈活組織考試,可以節(jié)約大量的物力與財力,同時還保證了考試的客觀、公證性,因此越來越受到人們的日益重視與廣泛應(yīng)用。在線考試系統(tǒng)是傳統(tǒng)考場的延伸,大大簡化了傳統(tǒng)考試的過程。所以,對于在線考試系統(tǒng)的研究和應(yīng)用具有重大的現(xiàn)實(shí)意義。
1 系統(tǒng)需求分析
按照軟件工程思想,軟件系統(tǒng)開發(fā)一般步驟分為:需求分析、可行性分析、功能設(shè)計、實(shí)現(xiàn)及測試幾個主要環(huán)節(jié),以及各個環(huán)節(jié)執(zhí)行時要遵守共同的規(guī)范和標(biāo)準(zhǔn)。所以在實(shí)現(xiàn)考試系統(tǒng)之前首先要對在線考試系統(tǒng)進(jìn)行需求分析。
通過搜集資料調(diào)查分析,并緊密結(jié)合我校考試需求和學(xué)生參加技能大賽需要賽前理論知識強(qiáng)化訓(xùn)練實(shí)際情況,確定系統(tǒng)用戶是教師和學(xué)生兩類用戶,系統(tǒng)需求如下:
教師用戶登錄系統(tǒng)后主要功能是:課程管理,試題添加、修改和刪除管理,試卷管理,考生管理(批量導(dǎo)入考生和臨時添加考生),考試管理(開啟和關(guān)閉考試),開放試卷答案(主要供學(xué)生技能大賽賽前理論知識強(qiáng)化訓(xùn)練使用),成績管理等功能。
學(xué)生用戶登錄后主要功能是:參加課程考試和查看已經(jīng)考試完成的課程考試成績,技能大賽學(xué)生訓(xùn)練時,則可以通過教師對試卷進(jìn)行設(shè)置,等學(xué)生訓(xùn)練完成后,開放試題答案。
在實(shí)現(xiàn)上述功能性需求后,還有一定的非功能性需求:即操作界面美觀,用戶易操作性,穩(wěn)定性強(qiáng),安全性能好,能夠滿足多人同時在線考試。
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)模塊功能設(shè)計
通過上述對系統(tǒng)需求分析,設(shè)計出考試系統(tǒng)的各個功能模塊,各個模塊主要功能如下:
2.1.1 用戶登錄模塊
用戶登錄功能,本系統(tǒng)為了系統(tǒng)安全性,只提供系統(tǒng)登錄功能,不提供用戶注冊,用戶信息從學(xué)校所提供的學(xué)生信息表由教師導(dǎo)入。并預(yù)置初始密碼為學(xué)生的學(xué)號或者是統(tǒng)一密碼,第一次登錄后強(qiáng)行要求修改密碼??忌卿浐箜撁嫔鲜冀K以廣告方式顯示考生信息,以防考生替考行為發(fā)生。
2.1.2 科目管理模塊
提供教師對所要參加考試的課程管理。
2.1.3 題庫管理模塊
試題添加、修改和刪除管理。根據(jù)系統(tǒng)實(shí)際需要,將系統(tǒng)中的題型進(jìn)行分類管理和添加,題庫中的題型主要分為如下幾類:單選題、多選題、判斷題、填空題。
2.1.4 試卷管理模塊
考試試卷的生成,實(shí)現(xiàn)靈活組卷。在考試系統(tǒng)中,試卷生成是比較關(guān)鍵的一環(huán)。為了方便老師組卷,該系統(tǒng)提供兩種組卷方法,一種教師手工組卷,另一種是由系統(tǒng)自動組卷,并且單獨(dú)為技能大賽考生理論訓(xùn)練使用,提供了考試結(jié)束后的試卷答案開放。
2.1.5 考試管理模塊和考試模塊
教師可以對考試開啟和關(guān)閉,學(xué)生參加在線考試,并利用AJAX實(shí)時保存考生操作答案,以便學(xué)生機(jī)器故障后可以登錄繼續(xù)考試而不至于答案丟失。
2.1.6 考生管理模塊
考生批量導(dǎo)入添加,臨時添加。
2.1.7 自動閱卷及成績分析模塊
提供自動閱卷及成績分析功能。老師查詢課程考試成績。
2.1.8 練習(xí)模塊
供考生強(qiáng)化訓(xùn)練練習(xí)使用,并提供練習(xí)完成由教師開放答案后供學(xué)生查看答案。
2.2 系統(tǒng)數(shù)據(jù)庫設(shè)計
根據(jù)系統(tǒng)功能分析,按照數(shù)據(jù)庫設(shè)計規(guī)范,系統(tǒng)實(shí)現(xiàn)的數(shù)據(jù)庫邏輯表結(jié)構(gòu)如下:
學(xué)生信息表student(學(xué)號,姓名,密碼,性別,專業(yè),班級,入學(xué)時間)
教師信息表teacher(教工編號,姓名,密碼,系部,注冊日期)
課程信息表lesson(自動編號,課程編號,課程名稱,系部,添加日期)
教師與課程關(guān)系表 lesson_teacher(自動編號,課程編號,課程名稱,教師編號,教師姓名,添加日期)
單選題庫信息表selecting(課程編號,編號,問題,答案A,答案B,答案C,答案D,正確答案,難度系數(shù),添加時間)
多選題庫信息表multiselecting(課程編號,多選題編號,問題,答案A,答案B,答案C,答案D,正確答案,難度系數(shù),添加時間)
判斷題信息表rightorwrong(課程編號,判斷題編號,問題,答案,難度系數(shù),添加時間)
填空題信息表filling(課程編號,試題編號,題目,答案,難度系數(shù),添加時間)
試卷基本信息表paper(自動編號,試卷編號,課程編號,單選題編號集合,多選題編號集合,判斷題編號集合,填空題號集合間,開考禁考標(biāo)志,答案開放標(biāo)志,添加時間)
試卷分值信息表test(課程編號,試卷編號,單選題目數(shù)量,單選每小題分?jǐn)?shù),多選題目數(shù)量,多選每小題分?jǐn)?shù),判斷題目數(shù)量,判斷每小題分?jǐn)?shù),填空題目數(shù)量,填空每小題分?jǐn)?shù),日期)
考試結(jié)果信息表 result(自動編號,試卷編號,考生學(xué)號,考生姓名,考生班級,課程編號,課程名稱,單選題目集合,多選題目集合,判斷題集合,填空題集合,單選題答案,多選題答案,判斷答案,填空答案,單選得分,多選得分,判斷得分,填空得分,總分,時間)
3 系統(tǒng)實(shí)現(xiàn)技術(shù)
3.1 系統(tǒng)開發(fā)技術(shù)
系統(tǒng)開發(fā)采用PHP+MySQL技術(shù)和B/S架構(gòu)進(jìn)行開發(fā),開發(fā)平臺操作系統(tǒng)采用windowsxp平臺,運(yùn)行軟件采用appserv2.5,采用B/S結(jié)構(gòu)進(jìn)行開發(fā)。系統(tǒng)上線運(yùn)行環(huán)境為LAMP,安裝同appserv2.5對應(yīng)運(yùn)行版本環(huán)境,也可以采用windows2003 server操作系統(tǒng)環(huán)境下安裝appserv2.5來運(yùn)行。
PHP(PHP: Hypertext Preprocessor的縮寫,中文名:“PHP:超文本預(yù)處理器”)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點(diǎn),入門門檻較低,易于學(xué)習(xí),使用廣泛,后臺數(shù)據(jù)庫也主要采用免費(fèi)開源的MySQL數(shù)據(jù)庫,主要適用于Web開發(fā)領(lǐng)域?,F(xiàn)已成為全球最有發(fā)展前途的互聯(lián)網(wǎng)開發(fā)語言之一。
3.2 系統(tǒng)實(shí)現(xiàn)關(guān)鍵技術(shù)
3.2.1 自動組卷技術(shù)
在線考試系統(tǒng)的關(guān)鍵技術(shù)之一就是自動組卷技術(shù),目前較為流行的組卷方法有隨機(jī)法、回溯法,遺傳算法等。此系統(tǒng)采用了第一種隨機(jī)算法進(jìn)行自動組卷技術(shù)。根據(jù)教師輸入的難度系數(shù)進(jìn)行組卷。組卷前先對組成試卷的題型進(jìn)行選取,對每一種題型授予一個權(quán)值,對每一種題型題目的難度系數(shù)進(jìn)行設(shè)置。根據(jù)題目數(shù)量和難度系數(shù)設(shè)置,從題庫中抽取試卷。這樣每個考生抽取到相同的試卷,在考生考試時,由系統(tǒng)對題目順序隨機(jī)排序后將題目編號保存到考試結(jié)果表中,這樣有效保證了考試學(xué)生間相互作弊的可能性,也保證了考試的公平性。
3.2.2 AJAX技術(shù)
為了能讓考生在考試過程中實(shí)時自動保存答案,系統(tǒng)中采用了目前流行的web應(yīng)用技術(shù)AJAX技術(shù)。
AJAX 是一種用于創(chuàng)建快速動態(tài)網(wǎng)頁的技術(shù)。通過在后臺與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,AJAX 可以使網(wǎng)頁實(shí)現(xiàn)異步更新。這意味著可以在不重新加載整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進(jìn)行更新。在考試系統(tǒng)中,利用此技術(shù)將考生答案進(jìn)行實(shí)時自動保存。
這樣學(xué)生在考試過程中,只要點(diǎn)選答案或者輸入答案,鼠標(biāo)焦點(diǎn)離開,答案就可以自動實(shí)時保存,以防止因?yàn)榭忌鷻C(jī)器故障導(dǎo)致機(jī)器重新啟動或者更換機(jī)器所引起的考生答案丟失所帶來的損失,有效的保證了考試的連續(xù)性。
3.2.3 自動交卷技術(shù)
在考試系統(tǒng)中,設(shè)置了系統(tǒng)自動交卷技術(shù),教師設(shè)置的有效考試時間到后,進(jìn)行試卷的自動提交。具體通過JavaScript來實(shí)現(xiàn),即在頁面里添加JS代碼,每隔一段時間判斷一下當(dāng)前時間,如果時間在交卷區(qū)間內(nèi)就觸發(fā)交卷事件。
4 結(jié)束語
本文利用了PHP+MySQL設(shè)計并實(shí)現(xiàn)了一個在線考試系統(tǒng),系統(tǒng)目前已經(jīng)在線運(yùn)行在我校校園網(wǎng)服務(wù)器上。不僅充分利用校園網(wǎng)的軟硬資源,實(shí)現(xiàn)教考分離和考務(wù)工作的全自動化管理,更好的為課程建設(shè)服務(wù),可以大規(guī)模的實(shí)行考試,而且同時作為我校每年職業(yè)技能大賽參賽學(xué)生賽前理論訓(xùn)練使用的訓(xùn)練平臺。通過此考試系統(tǒng)平臺教師可以從傳統(tǒng)的繁重工作中解脫出來,技能大賽訓(xùn)練學(xué)生也可以反復(fù)訓(xùn)練,提高了訓(xùn)練效率,訓(xùn)練效果明顯。系統(tǒng)運(yùn)行以來,受到了使用師生的一致好評。
參考文獻(xiàn):
[1] 李雪玲,管群.基于PHP技術(shù)的在線考試系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].計算機(jī)與現(xiàn)代化,2009(2):118-121.
[2] 李世川.基于ASP的在線考試系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].電腦知識與技術(shù),2010(5):1130-1132.
[3] 毛方明.基于PHP的網(wǎng)絡(luò)實(shí)時考試系統(tǒng)開發(fā)[J].電腦與信息技術(shù),2011(3):32-35.
[4] 韓海曉.基于AJAX在線考試系統(tǒng)的研究[J].現(xiàn)代電子技術(shù),2009(4):102-104.
[5] 洪峰,吳云飛.AJAX技術(shù)優(yōu)化在線考試流量[J].長沙通信職業(yè)技術(shù)學(xué)院學(xué)報,2006(3):56-61.
[6] 許禮捷,周洪斌.基于ASP.NET在線考試系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].沙洲職業(yè)工學(xué)院學(xué)報,2012(2):3-10.
[7] 呂俊.WWW環(huán)境下在線考試系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].電腦與信息技術(shù),1999(1):43-44.
[8] 楊懷磊,潘寧.基于Web的在線考試系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].電腦開發(fā)與應(yīng)用,2013(5):27-32.
[9] 陳薈慧,張新顏.在線考試系統(tǒng)的分析與設(shè)計[J].計算機(jī)技術(shù)與發(fā)展,2009(10):214-217,221.