王 睿
(安徽農業(yè)大學工學院,合肥 230036)
機械工程材料是機械類學生一門重要的專業(yè)基礎課,由于其理論性和抽象性較強,學生學習時感到抽象、枯燥。為提高學生的學習主動性,形成“以學生為中心”的教學模式,作者開發(fā)了帶有留言板功能的機械工程材料網絡試題庫軟件。該軟件是在Windows Server 2016操作系統(tǒng)環(huán)境下開發(fā),采用的數(shù)據庫為SQL Server 2014,配置IIS服務管理器,在Visual Studio 2013的ASP.NET環(huán)境下采用三層架構進行開發(fā)。
機械工程材料網絡試題庫軟件把用戶分為普通用戶和管理員兩類,管理員可以是教師或教務管理人員,普通用戶就是學生。管理員擁有系統(tǒng)用戶管理、個人資料管理、試題管理、試卷管理、留言板管理五個功能模塊的權限。在系統(tǒng)用戶管理模塊中,管理員可以添加用戶名,設定用戶的初始權限,并給定用戶的類型。管理員還可查詢、刪除系統(tǒng)的所有用戶。在個人資料管理模塊中管理員可以修改自己的原來密碼產生新的密碼。為便于標準化,試題庫共設置選擇題、判斷題和填空題三種類型。在試題管理模塊中,管理員可以添加、查詢、修改和刪除試題庫中的試題。在試卷管理模塊中,管理員確定試卷的編號,給出選擇題、判斷題、填空題的題數(shù)和分值以及確定題目知識點的范圍,自動生成題目不重復的試卷。管理員還可查詢、修改和刪除已有的試卷。在留言板管理模塊中,管理員可以進入留言板查看留言,與用戶實時交流,并能清除留言板的所有留言信息。普通用戶擁有個人資料管理、考試管理、留言板三個功能模塊。在個人資料管理中,普通用戶可以修改初始密碼,設置新的密碼。在考試管理中,普通用戶可以從已生成的試卷選擇一份試卷進行測試。在測試過程中,普通用戶可以輸入或不輸入試題答案,只要按頁面的提交按鈕,即結束測試。系統(tǒng)自動轉入成績頁面,給出測試的成績、答題、答案和錯誤的詳細情況,方便普通用戶找出自己的不足,以便進一步學習。在留言板功能模塊中,普通用戶可以與教師或其他用戶實時交流,但不能清空所有留言,系統(tǒng)的功能結構見圖1。
圖1 系統(tǒng)功能結構圖
本系統(tǒng)的三層架構見圖2,表示層位于最上層,為各類Web瀏覽器,主要功能是在動態(tài)頁面中顯示和接收用戶輸入的數(shù)據。業(yè)務邏輯層位于中間層,為Web服務器,主要功能是對數(shù)據進行業(yè)務邏輯處理。數(shù)據訪問層位于最下層,主要功能是與數(shù)據庫進行數(shù)據傳遞。
圖2 系統(tǒng)三層架構結構圖
在SQL Server 2014管理工具中建立數(shù)據庫,命名為test,然后再建立用戶、選擇題、判斷題、填空題、試卷生成、留言板、答題共7張數(shù)據庫表,分別命名為 allusers、choicequestions、judgequestions、fillquestions、exampapers、messageboard、answers,數(shù)據庫表見圖3。
圖3 數(shù)據庫表
用戶在界面輸入用戶名和密碼提交給系統(tǒng),在allusers表中進行查詢。如果查詢不成功則給出出錯信息;如果查詢成功,則將用戶名和相應的用戶類型的信息采用Cookie存儲在客戶端上,再根據Cookie中的用戶類型的信息,將網頁跳轉到相應的管理員或普通用戶頁面,登錄管理員界面見圖4。
圖4 登錄管理員界面
2.2.1 添加用戶模塊的實現(xiàn)
系統(tǒng)首先根據Cookie中用戶類型信息判斷是否為管理員,如果不是給出越權信息;如果是管理員則將界面輸入的用戶名、密碼和用戶類型信息插入allusers表中,并給出添加成功提示。
2.2.2 查詢、刪除用戶模塊的實現(xiàn)
系統(tǒng)通過DataGrid控件綁定,將allusers表中所有信息按ID降序排列,將用戶信息顯示在前臺的頁面上,點擊“刪除”鏈接可以將該用戶刪除。
管理員需要在頁面上輸入1次原密碼和輸入2次新密碼,如果輸入原密碼錯誤或者2次新密碼不一致,則給出錯誤提示。如果輸入正確,系統(tǒng)根據從Cookie中得到的用戶名信息在allusers表中對密碼進行更新,并給出更新成功與否的提示信息。
2.4.1 選擇題添加模塊的實現(xiàn)
管理員在頁面中輸入題干,難易程度、所屬章節(jié)、選擇項和答案,系統(tǒng)將數(shù)據插入相應的選擇題表choicequestions中,并給出成功與否的提示。
2.4.2 選擇題查詢、修改和刪除模塊的實現(xiàn)
系統(tǒng)通過DataGrid控件綁定,將choicequestions表中所有信息按ID升序排列,顯示在前臺的頁面上。按修改鏈接則根據所選的ID將該題的信息在頁面編輯窗口中顯示,進行修改后,對choice-questions表中的該條記錄信息進行更新,判斷題和選擇題的查詢、修改和刪除模塊與選擇題類似。
2.5.1 試卷生成模塊的實現(xiàn)
管理員在頁面上可以選擇試題考核章節(jié)范圍,并輸入試卷編號、選擇題、判斷題和填空題的分值和題數(shù)。系統(tǒng)根據輸入的題目類型、題數(shù)及章節(jié)范圍從相應題型的數(shù)據庫表中選取符合要求,數(shù)量為題數(shù)的不重復的ID值,與管理員輸入的試卷信息一起作為一條新紀錄插入exampapers數(shù)據庫表中。
2.5.2 試卷查詢、修改和刪除模塊的實現(xiàn)
系統(tǒng)通過DataGrid控件綁定,將exampapers表中所有信息顯示在前臺的頁面上。若點擊“手工修改”鏈接,則進入修改頁面,根據ID值從exampapers表中將數(shù)據取出通過DataGrid控件綁定顯示在頁面上,再通過頁面的控件輸入修改值對exampapers表的相應記錄進行更新,完成修改。若點擊“查看詳細”鏈接,則進入試卷預覽頁面,根據exampapers表的相應記錄信息,從相應的數(shù)據庫表中查出題目的信息。例如通過exampapers表中相應記錄的選擇題ID信息,從choicequestions表中查詢對應的記錄,再通過DataList控件綁定顯示在頁面上,即得試卷的選擇題頁面。若點擊“刪除”鏈接,則將相應的記錄從exampapers表中刪除。
系統(tǒng)通過DataView控件綁定messageboard數(shù)據庫表的所有信息,并按倒序顯示在頁面上,以保證最后輸入的信息在留言板中最先顯示。頁面設置每隔5秒自動刷新一次,以保證用戶得到最新的留言信息。當選擇清除留言板信息時,只要將messageboard數(shù)據庫表的所有數(shù)據刪除即可。
2.7.1 選擇試卷模塊的實現(xiàn)
只有普通用戶即學生進入系統(tǒng),才有選擇試卷的菜單界面。當普通用戶點擊該菜單,系統(tǒng)把exampapers表中信息,通過DataGrid控件綁定,按ID的降序顯示在前臺的頁面上。當用戶點擊選擇試卷的鏈接時,即進入測試模塊。
2.7.2 測試模塊的實現(xiàn)
系統(tǒng)首先通過Cookie得到用戶名,再根據用戶選擇exampapers表的ID值,得到相應題型的ID信息。再由題型ID信息從相應數(shù)據庫表中查出題目的信息,通過DataList控件綁定顯示在頁面上,即為試卷的頁面。普通用戶可以在頁面上進行答題,見圖5。
圖5 測試界面
當按提交按鈕時,答題結束。系統(tǒng)遍歷DataL-ist中的所有控件,判斷題目是否進行解答。若未解答,則將“未答”字符串作為答案;若已解答,則將解答結果作為答案。在不同題目的答案之間還需用逗號隔開,再將解答的結果作為一個字符串插入answers數(shù)據庫表中的相應記錄的字段中,最后通過Cookie將試題編號信息傳給測試結果顯示的頁面中。在測試結果顯示的頁面中,首先根據Cookie傳來的試卷編號和用戶名從answers數(shù)據庫表中查詢到相應記錄。接著將該記錄相應題型字段的字符串值取出,以“逗號”作為分割標記從該字符串提取出每道題的答案存入新建的字符串數(shù)組相應元素內。隨后通過Label控件將該字符串數(shù)組顯示在頁面中,此即為解答的詳細情況。接著系統(tǒng)根據試題編號從exampapers表查詢到相應記錄,從該記錄中的相應題型字段值中得到答案的字符串。它是由“逗號”分隔的相應題型的ID值所組成的字符串。對此字符串處理,首先是去除分隔符“逗號”,將每道題的ID信息存入又一新建的字符串數(shù)組的相應元素中。然后根據該數(shù)組元素的值,即題型的ID信息,從相應題型的數(shù)據庫表中查詢得到答案。再創(chuàng)建一個新的字符串數(shù)組,把該道題的答案存入此數(shù)組的相應元素中。通過Label控件將該字符串數(shù)組顯示在頁面中,此即為答案的詳細情況。最后比較解答字符串數(shù)組和答案字符串數(shù)組的每個元素值,得到該用戶的成績和出錯詳細情況,通過Label控件顯示在頁面中。
本系統(tǒng)簡單實用,易于上手?,F(xiàn)在已在本校校園網使用,學生可以方便地選擇試卷進行測試,從而鞏固和提高所學知識。通過留言板,學生還可以與教師交流學習遇到的問題,以便教師改進教學方法和內容,促進機械工程材料教學質量的提高。