□白 偉
( 太原理工大學(xué)計(jì)算機(jī)與軟件學(xué)院,山西 太原 030024)
遠(yuǎn)程教育包括教務(wù)、教學(xué)、作業(yè)、考試等環(huán)節(jié)??荚囎鳛轶w現(xiàn)學(xué)習(xí)成果的重要標(biāo)志是其中重要一環(huán)。目前遠(yuǎn)程教育考試大都采用筆試,組織考試要經(jīng)過(guò)出題、印刷、機(jī)要配送、考試、閱卷、成績(jī)?cè)u(píng)估和試卷分析七個(gè)步驟。隨著遠(yuǎn)程教育課程教學(xué)模式改革的深入,考試類型的增加及考試要求的提高,教師工作量越來(lái)越大,頻繁組織考試會(huì)極大地分散教師的教學(xué)精力。尤其基層學(xué)校迫切需要操作簡(jiǎn)單、成本低廉、安全性高的考試方式。
網(wǎng)上考試是現(xiàn)階段遠(yuǎn)程教育考試方向思考的一個(gè)熱點(diǎn)。本系統(tǒng)以互聯(lián)網(wǎng)為基礎(chǔ),采用C/S結(jié)構(gòu)體系,客戶端配置簡(jiǎn)單,考試基本不受軟硬件局限,不需要很多系統(tǒng)維護(hù)工作??荚囅到y(tǒng)中題目編輯、試卷提交、試題批閱、成績(jī)分析等都可以自動(dòng)完成。只要制作一套成熟的題庫(kù)并配套完善的安全機(jī)制就可以實(shí)現(xiàn)考試的自動(dòng)化。
筆者結(jié)合現(xiàn)行考試模式,為本系統(tǒng)制訂了詳細(xì)的業(yè)務(wù)流程:首先由教學(xué)處制訂學(xué)期開(kāi)設(shè)課程并制作網(wǎng)考課程表下達(dá)到各學(xué)院,學(xué)院通知課程責(zé)任教師通過(guò)試題制作系統(tǒng)編輯、上傳試題資源,上傳后的試題由各專業(yè)責(zé)任教師審核后方可導(dǎo)入試題庫(kù)成為正式的備用試題。在期末考試前由教學(xué)處通過(guò)試題系統(tǒng)自動(dòng)生成AB兩套試卷并修改狀態(tài)為“啟用”,導(dǎo)入考試服務(wù)器后就可以進(jìn)行考試了??荚囃瓿珊笤囶}通過(guò)“主客觀題目閱卷系統(tǒng)”自動(dòng)生成成績(jī)由教學(xué)處統(tǒng)一登分,并就考試成績(jī)自動(dòng)生成“成績(jī)分析數(shù)據(jù)圖”。至此整個(gè)考試組織順利完成。
用SQL建立數(shù)據(jù)庫(kù)文件,存儲(chǔ)試題及用戶的驗(yàn)證信息。管理員登陸提示輸入驗(yàn)證信息,輸入后,通過(guò)sql語(yǔ)言查詢administrator表,判斷管理員是否合法,如不合法,提示錯(cuò)誤信息,通過(guò)后進(jìn)入考試系統(tǒng)。管理員進(jìn)入后可對(duì)test 表內(nèi)容進(jìn)行添加、查詢和刪除。學(xué)生登錄需要通過(guò)姓名和學(xué)號(hào)查詢employee表,如用戶合法,由服務(wù)器抽取試題并顯示到考生屏幕上,否則無(wú)法登錄。試題的抽取又需要通過(guò)subject表,抽取題庫(kù)中某一科所對(duì)應(yīng)的試題。試題提交后,系統(tǒng)自動(dòng)評(píng)分,顯示成績(jī)并將學(xué)生姓名和成績(jī)存入user表。在提取用戶端信息以及反饋信息時(shí)使用ASP內(nèi)置對(duì)象。說(shuō)明如下:Request對(duì)象:可以使用Request對(duì)象訪問(wèn)任何用HTTP請(qǐng)求傳遞的信息,包括從HTML表格用POST方法或GET方法傳遞的參數(shù)、cookie和用戶認(rèn)證。系統(tǒng)通過(guò)REQUEST獲取用戶輸入的用戶名和密碼。代碼為:REQUEST.FORM(“username”)和REQUEST.FORM(“password”)。Response對(duì)象:可使用Response對(duì)象控制發(fā)送用戶信息。包括直接發(fā)送信息給瀏覽器、重定向?yàn)g覽器到另一個(gè)URL或設(shè)置 Cookie值。本系統(tǒng)通過(guò)RESPONSE將成績(jī)反饋給用戶。RESPONSE.WRITE“你的成績(jī)是”&score。用于數(shù)據(jù)庫(kù)訪問(wèn)可以進(jìn)行查找、插入、刪除等操作。對(duì)數(shù)據(jù)庫(kù)的查找用SQL的select命令,插入用insert命令,刪除用delete命令。存取數(shù)據(jù)庫(kù)的具體步驟是:首先確定數(shù)據(jù)源,然后打開(kāi)或連接數(shù)據(jù)庫(kù),并執(zhí)行響應(yīng)的操作,完畢后關(guān)閉數(shù)據(jù)庫(kù)。connection對(duì)象負(fù)責(zé)打開(kāi)或連接數(shù)據(jù)庫(kù),recordset負(fù)責(zé)存取數(shù)據(jù)表,execute負(fù)責(zé)執(zhí)行SQL命令。設(shè)定數(shù)據(jù)源的方法是:打開(kāi)控制面板,雙擊“ODBC”;在“系統(tǒng) DSN”下選“添加”,選出預(yù)先設(shè)好的數(shù)據(jù)庫(kù)種類、名稱和位置。這里要用到的是access數(shù)據(jù)庫(kù),數(shù)據(jù)源名稱為stry_exercise,主數(shù)據(jù)庫(kù)名稱stry_exercise.mdb。打開(kāi)或連接數(shù)據(jù)庫(kù)的方法是:先用Server.CreatObject取得對(duì)象“ADODB.Connection”的一個(gè)實(shí)例,然后用“Open”打開(kāi)待訪問(wèn)的數(shù)據(jù)庫(kù): Set Conn=Server.CreatObject (“ADODB.Connection”) Conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & Server.MapPath(“stry_exercise.mdb”)然后執(zhí)行SQL命令,對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,這里要使用Execute命令:set rs=server.createobject(“adodb.recordset”)
sql=“select * from test”
set rs=conn.execute(sql)
管理員登錄:系統(tǒng)管理員須通過(guò)身份驗(yàn)證,數(shù)據(jù)庫(kù)查詢后有此記錄方可進(jìn)入。查詢語(yǔ)句為:set rs=conn.execute(“select * from administrator where username=‘& username &’”)。
試題管理:管理員有權(quán)對(duì)數(shù)據(jù)庫(kù)試題進(jìn)行編輯,添加試題語(yǔ)句為:sql=“insertintotest(question,a,b,c,d,ans)values(‘&question&’,‘&a&’,‘&b&’,‘&c&’,‘&d&’,‘&ans&’)”rs1.Open sql,conn,1,1。刪除試題語(yǔ)句為:id1=request(“id”)sql =“DELETE FROM test WHERE id=”+id1rs.Open sql,conn,1,1。查詢?cè)囶}語(yǔ)句為:sql=“select 1 *from test where id like‘ &id&’” 。
學(xué)生答題:學(xué)生通過(guò)姓名和學(xué)號(hào)登錄系統(tǒng)考試,規(guī)定時(shí)間內(nèi)完成試題并提交。登錄數(shù)據(jù)庫(kù)的語(yǔ)句為:set rs=conn.execute(“select * from employee where name=‘& uname & ’ and number=‘& num & ’”)學(xué)生進(jìn)入答題界面后計(jì)時(shí)器自動(dòng)開(kāi)始計(jì)時(shí),進(jìn)行時(shí)間控制,當(dāng)時(shí)間到達(dá)指定值時(shí)系統(tǒng)會(huì)彈出提示框,提示時(shí)間將到。
批閱試卷并給出成績(jī):學(xué)生提交后,系統(tǒng)打開(kāi)數(shù)據(jù)庫(kù),比對(duì)正確答案,自動(dòng)給出成績(jī)。語(yǔ)句為:<%sql=“select *from test” rs.open sql,conn,3,3 dim score rsCount=0 ycorrect=0 Response.Write 正確答案:“Do while not rs.eof Response.Write rs(“ans”) rsCount=rsCount + 1 if Request.Form(rsCount)=rs(“ans”) then ycorrect=ycorrect + 1 end if rs.movenext loop Response.Write”
你的答案:“score=int(ycorrect/rscount*100) for i=1 to Request.Form.Count - 1 Response.Write Request.Form(i) next Response.Write“
” Response.Write ”你的成績(jī):“&score if score <= 60 then Response.Write”你不及格!“&”
“ if score >= 60 and score <= 80 then Response.Write ”及格“&”
“ if score >= 80 and score <= 100 then Response.Write "優(yōu)秀!”%>
本系統(tǒng)實(shí)現(xiàn)了用戶注冊(cè)、授權(quán)、題庫(kù)編輯、生成試題、在線考試、時(shí)間控制、自動(dòng)判卷、試卷分析等功能。但仍存在不足:如對(duì)理科類課程的公式和函數(shù)支持不完善;主觀題批閱無(wú)法實(shí)現(xiàn)全自動(dòng)等。作為今后工作的目標(biāo),希望可以使網(wǎng)絡(luò)化考試逐漸取代傳統(tǒng)考試,為教育事業(yè)做出自己的貢獻(xiàn)。
參考文獻(xiàn):
[1]尚俊杰. 網(wǎng)絡(luò)程序設(shè)計(jì)—ASP(第2版)[M].北京:清華大學(xué)出版社,2001.
[2]杜駿震.遠(yuǎn)程教育新技術(shù)應(yīng)用的初步研究[J].山西廣播電視大學(xué)學(xué)報(bào),2009,(3).
[3]周 星. 基于ASP的網(wǎng)上組卷與自考系統(tǒng)的開(kāi)發(fā)[J] .計(jì)算機(jī)應(yīng)用,2001,(2).
[4]張 景.構(gòu)建省級(jí)電大遠(yuǎn)程開(kāi)放教育質(zhì)量監(jiān)控體系 [J].山西廣播電視大學(xué)學(xué)報(bào),2009,(3).
[5]楊國(guó)才. 基于WEB的遠(yuǎn)程自學(xué)型教學(xué)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2000,(4).
[6]范國(guó)平. ACCESS2000數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)實(shí)例[M] .北京:人民郵電出版社,2002.
[7]張婷娟.數(shù)據(jù)挖掘技術(shù)及其應(yīng)用[J].山西廣播電視大學(xué)學(xué)報(bào),2008,(1).