摘 要:在計(jì)算機(jī)技術(shù)迅速發(fā)展的背景下,為培養(yǎng)同時(shí)具備理論知識(shí)和動(dòng)手編程能力的符合市場(chǎng)需要的人才,建立在線(xiàn)可編譯的過(guò)程化考試平臺(tái)勢(shì)在必行。本文首先對(duì)LAMP架構(gòu)進(jìn)行了分析,然后對(duì)在線(xiàn)考試平臺(tái)系統(tǒng)進(jìn)行了研究與設(shè)計(jì)。
關(guān)鍵詞:軟件技術(shù);過(guò)程化考試;Linux系統(tǒng);Apache服務(wù)器;MySQL數(shù)據(jù)庫(kù);PHP語(yǔ)言
中圖分類(lèi)號(hào):TP311.5
1 LAMP框架概述
LAMP框架是指基于Linux系統(tǒng)、Apache服務(wù)器、MySQL數(shù)據(jù)庫(kù)和PHP腳本語(yǔ)言(也可以是Perl或者Python語(yǔ)言)編寫(xiě)程序的一種框架。上述軟件均為開(kāi)源軟件,以其高效率、高性能、良好兼容性等優(yōu)點(diǎn)在互聯(lián)網(wǎng)社會(huì)得以普及。
2 過(guò)程化考試平臺(tái)設(shè)計(jì)
2.1 整體架構(gòu)
如圖1,教師和學(xué)生通過(guò)不同端口、不同權(quán)限訪(fǎng)問(wèn)服務(wù)器,教師將通過(guò)相應(yīng)權(quán)限和頁(yè)面進(jìn)行出題、制卷、安排考試等活動(dòng);學(xué)生根據(jù)老師要求,在服務(wù)器配置安排的權(quán)限下在相應(yīng)頁(yè)面完成作業(yè)、聯(lián)系并且在規(guī)定的時(shí)間、IP地址下進(jìn)行考試。之后系統(tǒng)將調(diào)用編譯器對(duì)學(xué)生提交的代碼進(jìn)行編譯、比對(duì),并給出最終得分。
2.2 Linux下環(huán)境配置
首先,考試平臺(tái)的服務(wù)器端應(yīng)當(dāng)部署Linux版本的操作系統(tǒng),本設(shè)計(jì)在服務(wù)器端安裝了Ubuntu操作系統(tǒng),之后通過(guò)命令:
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install mysql-server
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install php5-mysql
sudo apt-get install php5-gd
分別安裝Mysql數(shù)據(jù)庫(kù)、Apache服務(wù)器、PHP開(kāi)發(fā)環(huán)境以及三者之間相互傳輸機(jī)制。之后在腳本頁(yè)面的目錄下通過(guò)命令:
sudo chmod –r 777
使得源文件目錄權(quán)限獲得修改。
2.3 Apache服務(wù)器端配置
將Apache的配置文件httpd.conf文件中文件進(jìn)行多端口監(jiān)聽(tīng)、配置:
Listen localhost:80
Listen localhost:8001
從而讓學(xué)生進(jìn)入默認(rèn)的8080端口而老師通過(guò)隱藏的8001端口進(jìn)入。之后,通過(guò)相應(yīng)標(biāo)簽:
分配相應(yīng)權(quán)限。
2.4 MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)
MySQL數(shù)據(jù)庫(kù)將安排三種權(quán)限,即最高權(quán)限r(nóng)oot,高級(jí)權(quán)限teacher和普通權(quán)限student,分別發(fā)放給管理員、老師和學(xué)生,數(shù)據(jù)庫(kù)中按照以下思路設(shè)計(jì):
(1)teacher表,student表,分別存放老師、學(xué)生信息密碼等,作為權(quán)限和端口的登陸憑證。
(2)question_base表,將所有試題信息存放于其中,考試時(shí)可根據(jù)需要隨機(jī)或者指定提出作為考試試題。
(3)stu_paper表,用于學(xué)生答卷,統(tǒng)計(jì)分?jǐn)?shù)。
(4)plan表,用于存放考試計(jì)劃和安排考試信息。
2.5 考試頁(yè)面與服務(wù)器交互設(shè)計(jì)
在www目錄下,創(chuàng)建相應(yīng)功能的PHP腳本文件。文件中的功能與MySQL中表的設(shè)計(jì)進(jìn)行交互,方法通過(guò)代碼:
<?php
mysql_connect(\"<服務(wù)器地址>\",\"<用戶(hù)名>\",\"<密碼>\")or die(mysql_error());//連接數(shù)據(jù)庫(kù)
mysql_select_db(\"<數(shù)據(jù)庫(kù)名>\")or die(mysql_error());//選擇數(shù)據(jù)庫(kù)
mysql_query(\"set names utf8\");//向服務(wù)器發(fā)送sql語(yǔ)句
?>
以及
<?php
$x=mysql_query(“
mysql_fetch_array($x);//接受服務(wù)器返回的數(shù)據(jù)并加以處理
?>
實(shí)現(xiàn)。通過(guò)PHP語(yǔ)言和HTML語(yǔ)言,實(shí)現(xiàn)登陸、修改個(gè)人信息、出卷、安排考試、聯(lián)系、考試等功能,并保存在相應(yīng)的文件中,通過(guò)CSS樣式表對(duì)前端進(jìn)行優(yōu)化,最終完成設(shè)計(jì)。
以及mysql_fetch_array()等函數(shù)進(jìn)行交互實(shí)現(xiàn)。通過(guò)PHP語(yǔ)言和HTML語(yǔ)言,實(shí)現(xiàn)登陸、修改個(gè)人信息、出卷、安排考試、聯(lián)系、考試等功能,并保存在相應(yīng)的文件中,通過(guò)CSS樣式表對(duì)前端進(jìn)行優(yōu)化,最終完成設(shè)計(jì)。
3 總結(jié)
通過(guò)上述設(shè)計(jì),一個(gè)具備在線(xiàn)編譯源代碼功能的過(guò)程化在線(xiàn)考試平臺(tái)得以完成。這種設(shè)計(jì)經(jīng)由北京信息科技大學(xué)計(jì)算機(jī)學(xué)院過(guò)程化考試平臺(tái)項(xiàng)目組進(jìn)行論證并測(cè)試后認(rèn)為滿(mǎn)足了當(dāng)前教育行業(yè)對(duì)過(guò)程化考試平臺(tái)的需求。這種基于LAMP架構(gòu)的設(shè)計(jì)以其高效、穩(wěn)定、快速、安全的特點(diǎn)充分展現(xiàn)其組成部分的強(qiáng)大功能,從而能夠培養(yǎng)更多的兼?zhèn)淅碚撝R(shí)能力與動(dòng)手編程操作能力的新型社會(huì)人才。
參考文獻(xiàn):
[1]肖自紅,張祖平.基于.NET的試題庫(kù)與在線(xiàn)考試系統(tǒng)研究[J].計(jì)算機(jī)與數(shù)字工程,2008,3:136-139.
[2]JulieMeloni:SamsTeachYourselfPHP,MySQLandApacheAllinOne[M].5thRevised edition,Indianapolis:Sams Publishing,2012.
[3]AlanC.Wilson,RitaVigilMartine:Apache(Jicarilla)[M].SanFrancisco:MpsMultimediaInc.1996.