摘 要:分析了國內(nèi)外對本課題的研究現(xiàn)狀,找出目前存在的一些問題,針對這些問題開發(fā)了《數(shù)據(jù)結(jié)構(gòu)試題庫系統(tǒng)》,試題庫系統(tǒng)采用數(shù)據(jù)結(jié)構(gòu)1800題設(shè)計數(shù)據(jù)庫,主要實現(xiàn)了以下功能:用戶管理模塊,日志模塊,個人資料模塊,更改口令模塊,隨機組卷模塊,使用幫助模塊,按各種題型進行試題的增加、刪除、修改、閱讀,按試題內(nèi)容關(guān)鍵字進行模糊查詢,按試題類型、學(xué)校、年份、章節(jié)、分值、在試卷中具體的題號進行條件組合查詢。本試題庫系統(tǒng)采用ASP.NET、ADO.NET、Sql Server 2005等技術(shù),實現(xiàn)了DAL、BLL、UI三層架構(gòu)體系,為用戶提供了一個知識全面,難度適宜,界面友好,操作簡單的輔助學(xué)習(xí)平臺。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)試題庫系統(tǒng);數(shù)據(jù)庫;ASP.NET;三層架構(gòu)
中圖分類號:TP311.52
隨著網(wǎng)絡(luò)技術(shù)與數(shù)據(jù)庫技術(shù)的發(fā)展,人們的生活和工作方式發(fā)生了很大改變,開發(fā)建設(shè)基于Internet的多媒體學(xué)習(xí)資源比如試題庫系統(tǒng)具有重大意義?!稊?shù)據(jù)結(jié)構(gòu)》是計算機專業(yè)的主干課程之一,現(xiàn)有題庫存在題庫內(nèi)題型不全面,試題難度、內(nèi)容等不能滿足用戶需求等問題。為此,該試題庫系統(tǒng)的開發(fā)將在保證試題庫試題質(zhì)量以及數(shù)量的基礎(chǔ)上,開發(fā)操作簡單、功能多樣、維護方便的試題庫系統(tǒng)。
1 試題庫系統(tǒng)設(shè)計
1.1 系統(tǒng)功能概述
(1)系統(tǒng)角色:普通用戶和管理員。(2)系統(tǒng)后臺:用戶管理、選擇題管理、判斷題管理、填空題管理、應(yīng)用題管理、算法設(shè)計題管理、日志模塊、個人資料模塊以及口令更改模塊。(3)系統(tǒng)前臺:1800題瀏覽、模糊查詢、條件組合查詢、個人資料模塊、口令更改模塊以及隨機組卷模塊。
1.2 系統(tǒng)功能。用戶管理,試題管理,日志模塊,個人資料模塊,隨機組卷。
1.3 數(shù)據(jù)庫設(shè)計。采用Sql Server 2005設(shè)計數(shù)據(jù)庫,設(shè)計的表格主要有用戶表users,學(xué)校表university,章節(jié)表chapter,選擇題表selection,判斷題表judge,填空題表fill_blanks,應(yīng)用題表applications,算法設(shè)計題表algorithm_design。
2 系統(tǒng)主要模塊實現(xiàn)
2.1 顯示所有用戶。查詢數(shù)據(jù)庫,得到所有用戶信息并將信息保存到泛型集合list中,類DBHelper的靜態(tài)方法GetDataSet接受一個查詢的SQL語句,根據(jù)SQL語句以及數(shù)據(jù)庫連接實例化SqlCommand對象,根據(jù)該SqlCommand對象實例化一個SqlDataAdapter對象,即數(shù)據(jù)適配器,通過該數(shù)據(jù)適配器對象的Fill方法將查詢到的數(shù)據(jù)填充到指定的數(shù)據(jù)集中,返回得到的數(shù)據(jù)集。通過該Table數(shù)據(jù)集將所有用戶信息保存到泛型集合list中。采用ASP.NET提供的GridView控件綁定泛型集合list數(shù)據(jù)源顯示用戶信息。
2.2 試題添加、修改、刪除、查詢。以選擇題為例,將添加試題界面各控件的內(nèi)容封裝成一個Selection對象,根據(jù)該Selection對象組成表示插入操作的語句,通過類DBHelper的靜態(tài)方法GetScalar執(zhí)行該語句,插入成功返回0。
根據(jù)試題的唯一標(biāo)識進行修改,選擇題對應(yīng)的標(biāo)識是selection_id,修改時,執(zhí)行一條UPDATE語句,WHERE后面的條件為要修改的試題的selection_id,UPDATE語句的執(zhí)行借助于靜態(tài)類DBHelper的靜態(tài)方法ExecuteCommand來實現(xiàn),修改成功后返回受影響的行數(shù)。
對主鍵進行刪除來刪除試題。以刪除選擇題為例,根據(jù)selection_id組成一道表示刪除操作的語句,由DBHelper類的靜態(tài)方法ExecuteCommand來執(zhí)行該SQL語句,操作成功返回受影響的行數(shù)。
查詢包括條件組合查詢和模糊查詢。條件組合查詢:根據(jù)試題類型、學(xué)校、年份、章節(jié)、分值、題號來查詢。模糊查詢:根據(jù)試題內(nèi)容關(guān)鍵字進行模糊查詢。查詢時,將用戶指定的查詢條件以鍵值對的形式保存到字典集合dic中,將該字典集合傳給特定的方法,該方法是將用戶指定的條件生成對應(yīng)的查詢語句,生成的語句保存在StringBuilder對象中,該對象最初的值是表示從指定表中查詢出所有記錄的SQL指令字符串,WHERE條件永遠為真。生成的SQL查詢語句最終由DBHelper類的靜態(tài)方法GetDataSet來執(zhí)行。
2.3 日志模塊加密、解密算法。本系統(tǒng)采用AES的RijndaeManaged加密算法進行加密,RijndaeManaged是一種對稱加密算法,加密時先創(chuàng)建一個ICryptoTransform對稱加密器對象,創(chuàng)建使用RijndaeManaged對象的CreateEncryptor方法,根據(jù)該對象實例化一個將數(shù)據(jù)流鏈接到加密轉(zhuǎn)換的流,將待加密的串以字節(jié)數(shù)組的形式寫入到當(dāng)前的加密流CryptoStream,然后將流內(nèi)容轉(zhuǎn)換成字節(jié)數(shù)組,最后將字節(jié)數(shù)組的內(nèi)容等效轉(zhuǎn)換成以Base64數(shù)字編碼的格式,即加密后的內(nèi)容。
加密時,將待轉(zhuǎn)換的字符串轉(zhuǎn)換成了以Base64編碼的格式,解密時,需要將以Base64編碼的內(nèi)容轉(zhuǎn)換為等效的無符號整數(shù)數(shù)組,根據(jù)該數(shù)組創(chuàng)建支持存儲區(qū)為內(nèi)存的MemoryStream流對象和一個對稱解密器對象,通過RijndaeManaged對象的CreateDecryptor方法,根據(jù)該解密器對象以及MemoryStream對象創(chuàng)建加密轉(zhuǎn)換流,此時,流中的內(nèi)容即為解密后的內(nèi)容。
2.4 隨機組卷。普通用戶操作模塊組卷之前,用戶需要輸入名稱、題型、數(shù)量,如果不希望試卷中出現(xiàn)某種題型只需將該題型的數(shù)量置為0,點擊“開始組卷”,系統(tǒng)會根據(jù)用戶的輸入查詢對應(yīng)的表格,隨機返回對應(yīng)題量的試題。
3 結(jié)論
《數(shù)據(jù)結(jié)構(gòu)》試題庫的設(shè)計與開發(fā)嚴(yán)格按照軟件生命周期模型來開發(fā)軟件,主要實現(xiàn)功能:用戶管理模塊,日志模塊,個人資料模塊,更改口令模塊,隨機組卷模塊,使用幫助模塊,按各種題型進行試題的增加、刪除、修改、閱讀,按試題內(nèi)容關(guān)鍵字進行模糊查詢,按試題類型、學(xué)校、年份、章節(jié)、分值、在試卷中具體的題號進行條件組合查詢,最終向用戶提供一個更具實用價值的軟件系統(tǒng)。
參考文獻:
[1]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,1997.
[2]鄧霖,戴敏.《數(shù)據(jù)結(jié)構(gòu)》試題庫管理與組卷系統(tǒng)的開發(fā)[J].天津理工學(xué)院,2003(6).
[3]紀(jì)鵬.建設(shè)《數(shù)據(jù)結(jié)構(gòu)》精品課程的研究與探討[J].教育與職業(yè),2007(1).
[4]陳紅琳.《數(shù)據(jù)結(jié)構(gòu)》課程建設(shè)的探討與實踐[J].現(xiàn)代計算機,2012(10).
[5]邵維忠,麻志毅,劉輝.UML用戶指南(第二版)[M].人民郵電大學(xué)出版社,2011.
[6]梁振林.試題庫錄入和智能組卷的一種通用方法[J].廣西大學(xué)學(xué)報,2001(6).
[7]李彩春,于艷博.試題庫管理系統(tǒng)的設(shè)計與實現(xiàn)[J].赤峰學(xué)院,2012(11).
[8]王曉方,徐明.開放式計算機試題庫系統(tǒng)[J].沈陽航空工業(yè)學(xué)院學(xué)報,1997(12).
[9]周虹,劉克難.數(shù)據(jù)結(jié)構(gòu)試題管理系統(tǒng)[J].佳木斯大學(xué)學(xué)報,1999(6).
[10]李瑩,梁爽.基于.NET的數(shù)據(jù)結(jié)構(gòu)考試系統(tǒng)的設(shè)計與實現(xiàn)[J].沈陽理工大學(xué),2009(27).
[11]莊鑫.基于Web題庫系統(tǒng)的設(shè)計與實現(xiàn)[D].黑龍江大學(xué),2009.
[12]閃四清.SQL Server實用簡明教程(第二版)[M].北京:清華大學(xué)出版社,2005.
[13]王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論(第四版)[M].高等教育出版社,2010.
[14]趙曉東,張正禮,許小榮.ASP.NET 3.5從入門到精通[M].北京:清華大學(xué)出版社,2011.
[15]邵麗萍,張后楊.動態(tài)網(wǎng)頁制作ASP[M].北京:電子工業(yè)出版社,2001.
作者簡介:常璐璐(1982-),女,山東濱州人,講師,碩士,研究方向:計算機應(yīng)用。
作者單位:濱州學(xué)院 計算機科學(xué)技術(shù)系,山東濱州 256603
基金項目:濱州學(xué)院教研項目(BYJYYB200915)。