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