摘要 主要針對北京工業(yè)大學(xué)教育技術(shù)培訓(xùn)的需求,對制作的教育技術(shù)在線測試系統(tǒng)做介紹,包括系統(tǒng)的功能設(shè)計、數(shù)據(jù)庫設(shè)計以及主要功能模塊的實現(xiàn)等內(nèi)容。
關(guān)鍵詞 在線測試;數(shù)據(jù)庫;教育技術(shù)
中圖分類號 G40—057 文獻(xiàn)標(biāo)識碼 A 文章編號 1671-489X(2008)12-0072-03
隨著北京市教育技術(shù)考試試點政策的推行,北京工業(yè)大學(xué)承擔(dān)著本校和市屬兄弟院校教師教育技術(shù)培訓(xùn)的職能。4年多來共培訓(xùn)教師820多人,其中本校教師378人,兄弟院校教師422人,受到學(xué)校管理部門和各校教師的好評。在培訓(xùn)中,針對學(xué)員學(xué)習(xí)和考試中的部分難點問題和理論內(nèi)容設(shè)計制作了在線測試系統(tǒng),讓教師既了解到考試的形式,也及時測試了自己的水平,得到了教師的肯定。下面就該系統(tǒng)的開發(fā)情況做以下介紹。
1 開發(fā)環(huán)境變量
1.1 開發(fā)環(huán)境前臺界面設(shè)計:Macromedia Dreamweaver MX 2004中文版;后臺數(shù)據(jù)庫:Microsoft SQL Server 2000(SP4)中文版。
其他軟件:Apache-tomcat-5.5.15(Tomcat服務(wù)器是當(dāng)今使用最廣泛的Servlet/JSP服務(wù)器,它運(yùn)行穩(wěn)定,性能可靠);JDK-1.5.0.06(JDK是Java的虛擬機(jī),即虛擬編輯器);SQL Server 2000 Driver for JDBC Service Pack 3(JDBC是一種用于執(zhí)行 SQL 語句的 Java API,它由一組用 Java 編程語言編寫的類和接口組成)。
1.2 配置環(huán)境變量
1)用戶變量。
變量名:CLASSPATH。
變量值:C:\jdk1.5.0_06\lib\tools.jar;C:\jdk1.5.0_06\lib\dt.jar;C:\jdk1.5.0_06\jre\lib;C:\jdk1.5.0_06\bin;c:\Tomcat5.5\common\lib\servlet-api.jar;c:\Tomcat5.5\bin;c:\Tomcat5.5\common\lib;C:\ProgramFiles\MicrosoftSQLServer2000DriverforJDBC\lib\msbase.jar;C:\ProgramFiles\MicrosoftSQLServer2000DriverforJDBC\lib\mssqlserver.jar;C:\ProgramFiles\MicrosoftSQLServer2000DriverforJDBC\lib\msutil.jar。
變量名:JAVA_HOME。
變量值:C:\\jdk1.5.0_06。
2)系統(tǒng)變量。
變量名:PATH。
變量值:C:\\jdk1.5.0_06\\bin;C:\\ProgramFiles\\MicrosoftSQLServer\\80\\Tools\\BINN。
1.3 添加ODBC用戶數(shù)據(jù)源JDBC是使用Java所編寫的數(shù)據(jù)庫驅(qū)動程序,而ODBC則是由C語言編寫出來的。JDBC-ODBC橋接驅(qū)動程序的目的是用來讓JSP程序能夠連接打開ODBC類型的數(shù)據(jù)庫。
安裝好SQL Server 2000 Driver for JDBC Service Pack 3后,就可以在“控制面板”>“管理工具”>“ODBC數(shù)據(jù)源”添加用戶的數(shù)據(jù)源。
1.4 連接測試 編寫代碼,并保存為.jsp文件(testsqlserver.jsp),放在%Tomcat 5.5%\\webapps\\ROOT子目錄下。
<%Class.forName(\"com.microsoft.jdbc.sqlserver.SQLServerDriver\").newInstance(); String url=\"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=cx\";//數(shù)據(jù)庫名String user=\"sa\";//數(shù)據(jù)庫用戶名和密碼String password=\"sa\"; Connectionconn=DriverManager.getConnection(url,user,password);Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql=\"select * from userinformation\";
ResultSet rs=stmt.executeQuery(sql);//返回結(jié)果
while(rs.next()) {%> 您的第一個字段內(nèi)容為:<%=rs.getString(1)%> 您的第二個字段內(nèi)容為:<%=rs.getString(2)%> <%}%>
<%out.print(\"數(shù)據(jù)庫操作成功,恭喜你\");%> <%rs.close();//關(guān)閉數(shù)據(jù)庫
stmt.close(); conn.close(); %>
打開IE瀏覽器,輸入http://localhost:8080/ testsqlserver.jsp。如果正常顯示字段內(nèi)容,說明數(shù)據(jù)庫連接成功。
2 系統(tǒng)功能分析
用戶可分為管理員和普通用戶2部分??紤]到系統(tǒng)的安全性,本系統(tǒng)共分成2個界面:一個界面用于管理員登錄,主要負(fù)責(zé)進(jìn)行管理員信息、用戶信息以及題庫的查詢管理等;另外一個界面用于用戶登錄,主要負(fù)責(zé)用戶注冊、修改個人資料、在線考試、查詢以往考試成績等。從總體上考慮,系統(tǒng)應(yīng)該實現(xiàn)下列功能。
2.1 管理員功能,包括管理員信息管理、題庫管理、用戶信息管理
1)管理員信息管理。管理員登錄后可以修改個人信息,并根據(jù)需要添加或刪除現(xiàn)有管理員。
2)題庫管理。管理員可以根據(jù)教學(xué)需求對題庫中的所有試題進(jìn)行4種基本操作:查看所有考題、添加新的考題、刪除舊有考題、修改原有考題。其中試題類型包括判斷題和四選一選擇題。對于每種類型的試題,教師可以設(shè)置題干、答案、章節(jié)等屬性。
3)用戶信息管理。管理員可以查看所有注冊普通用戶的基本信息,并可以實現(xiàn)對惡意注冊和違反規(guī)定用戶的刪除操作。教師可以查看用戶的考試成績,并針對不同的課程進(jìn)行成績統(tǒng)計,包括考試人數(shù)、最高分、最低分、平均分以及各分?jǐn)?shù)段得分人數(shù)等。
2.2 用戶功能,包括注冊、修改個人信息、在線考試、查詢以往考試成績等
1)注冊登錄。使用本系統(tǒng)的用戶必須進(jìn)行簡單注冊,或直接使用已知ID登錄之后才能使用系統(tǒng)的各項功能。
2)用戶登錄后可以根據(jù)需要修改注冊信息。
3)在線考試。用戶可以任選時間進(jìn)行在線測試,考試分為選擇題測試、判斷題測試和綜合考試。系統(tǒng)根據(jù)試卷規(guī)則自動隨機(jī)組卷生成滿足用戶要求的試卷,而無需手工組卷??荚嚱Y(jié)束后,系統(tǒng)會根據(jù)已有的標(biāo)準(zhǔn)答案進(jìn)行在線判卷,用戶可以立刻知道考試成績。
4)查詢以往考試成績。用戶可以在線查詢參加過的考試的統(tǒng)計信息和詳細(xì)信息。
3 系統(tǒng)功能設(shè)計
3.1 前臺子系統(tǒng)功能模塊劃分(圖1)
3.2 后臺子系統(tǒng)功能模塊劃分(圖2)
3.3 系統(tǒng)流程圖(圖3)
4 數(shù)據(jù)庫設(shè)計
4.1 數(shù)據(jù)庫需求分析管理員信息,包括的數(shù)據(jù)項有管理員編號、管理員ID、口令、性別、真實姓名、職業(yè)、電子郵箱等。
用戶信息,包括的數(shù)據(jù)項有用戶編號、用戶ID、口令、性別、真實姓名、昵稱、住址、聯(lián)系電話、職業(yè)、電子郵箱、生日等。
用戶成績信息,包括的數(shù)據(jù)項有用戶ID、綜合考試成績、選擇題測試成績、判斷題測試成績等。
選擇題信息,包括的數(shù)據(jù)項有選擇題編號、題干、正確答案、備選項(A、B、C、D)、所在章節(jié)等。
判斷題信息,包括的數(shù)據(jù)項有判斷題編號、題干、正確答案、所在章節(jié)等。
本系統(tǒng)應(yīng)該建立一個穩(wěn)定的后臺數(shù)據(jù)庫系統(tǒng),通過該數(shù)據(jù)庫管理整個考試系統(tǒng)所需的信息(用戶信息、試題信息、考試信息等)。
4.2 數(shù)據(jù)庫物理設(shè)計對應(yīng)邏輯設(shè)計的數(shù)據(jù)庫名cx,設(shè)計數(shù)據(jù)庫的物理文件及相關(guān)屬性如下。
1)主數(shù)據(jù)文件:cx_Data.mdf。初始空間:1 MB,若超出空間按10%自動增長。存放路徑:C:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\。最大文件大?。翰皇芟?。隸屬文件組:PRIMARY。
2)日志文件:cx_Log.ldf。初始空間:1 MB,若超出空間按10%自動增長。存放路徑:C:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\。最大文件大?。翰皇芟蕖?/p>
5 系統(tǒng)部分主要功能模塊的實現(xiàn)
5.1 題庫管理模塊題庫管理包括選擇題管理和判斷題管理。管理員可以通過題庫管理對各種類型的試題進(jìn)行添加、刪除、修改以及查詢。題庫管理功能模塊圖如圖4所示。
由于各種類型試題的管理功能均類似,這里僅以判斷題管理為例進(jìn)行介紹。判斷題管理模塊包括的操作有添加判斷題、刪除判斷題、修改判斷題和查詢判斷題。判斷題管理模塊頁面流程如圖5所示。
5.2 隨機(jī)組卷為了使用戶每次練習(xí)題目都不同,本系統(tǒng)采用隨機(jī)組卷,它是題庫管理模塊中的重要環(huán)節(jié)。隨機(jī)組卷的實現(xiàn)主要調(diào)用了偽隨機(jī)數(shù)生成器 random()。
假定需要生成介于1到10之間的隨機(jī)數(shù),每一個數(shù)出現(xiàn)的幾率都是一樣的。理想情況下,應(yīng)生成0到1之間的一個值,不考慮以前值,這個范圍中的每一個值出現(xiàn)的幾率都是一樣的,然后再將該值乘以10。偽隨機(jī)數(shù)生成器生成0到N之間的一個整數(shù),返回的整數(shù)再除以N,得出的數(shù)字總是處于0和1之間。現(xiàn)在,對生成器隨后的調(diào)用采用第一次運(yùn)行產(chǎn)生的整數(shù),并將它傳給一個函數(shù),以生成0到N之間的一個新整數(shù),然后再將新整數(shù)除以N返回。這樣就實現(xiàn)了隨機(jī)數(shù)的產(chǎn)生。Java實用工具類庫中的類java.util.Random提供了產(chǎn)生各種類型隨機(jī)數(shù)的方法。它可以產(chǎn)生int、long、float、double以及Goussian等類型的隨機(jī)數(shù)。這也是它與java.lang.Math中的方法Random()最大的不同之處,后者只產(chǎn)生double型的隨機(jī)數(shù)。本文所需的int型隨機(jī)數(shù)則用到了Java類java.util.Random。
本系統(tǒng)代碼設(shè)計讓隨機(jī)數(shù)的取值不大于題庫中最高的題目編號id;并且配合if…else…語句,當(dāng)題目選擇重復(fù)時自動返回抽取,從而保證選題不重復(fù)。
基于網(wǎng)絡(luò)技術(shù)的考試系統(tǒng)易用、靈活,也具有良好的安全性,為參加培訓(xùn)的教師提供了有利的幫助。