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