(Web模式下基于數據庫組卷模塊設計)_第1頁
(Web模式下基于數據庫組卷模塊設計)_第2頁
(Web模式下基于數據庫組卷模塊設計)_第3頁
(Web模式下基于數據庫組卷模塊設計)_第4頁
(Web模式下基于數據庫組卷模塊設計)_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 . . . - 1 - / 31本本科科畢畢業業論論文文(設設計計)征心系統設計征心系統設計學生學生:智高帆梁亮林松濤XXX學號學號:091542228091542226091542237091542227系部系部:計算機科學與技術專業專業: 信息管理與信息系統指導教師指導教師: 鐘雪靈提交日期提交日期: 2012 年 06 月 25 日2008-JX16-2008-JX16-金融學金融學院院 注:教師 XX 后留有一個空格,后面填寫教師職稱。下面加下劃線。閱后刪除此文本框。 . . . I / 31摘摘 要要隨著高校考試制度改革的不斷深化與網絡技術的飛速發展, 試題庫管理系統越來越受到廣大

2、高校和教師的青睞。試題庫管理系統的主要功能包括試題管理和試卷管理,其中試卷管理的核心是試卷生成。試卷生成具有手工組卷和自動組卷兩種方式,自動組卷是在已有題庫的基礎上,按照考核目的,在若干預設的條件下,按一定算法生成一份滿足要求的試卷。本文在認真分析和總結現有各類試題庫系統優點和不足的基礎上,根據省精品課程規在網絡課程方法的基本精神,設計并實現了基于B/S 模式的Web 試題庫組卷系統。同時,為提高系統的運行效率,試題庫系統采用LINQ TO SQL操作數據庫,引入遺傳算法的全局優化功能,在預先給定的約束條件下,正確、高效地組卷,并采用微軟的Silverlight技術在網頁中顯示出來。關鍵詞:自

3、動組卷;題庫管理; Silverlight;LINQ;WebAbstractAbstractAlong with the university examination system reform unceasing deepening and the networking rapid development, tries the question bank management system more and more to receive the general universities and teachers favor.Tries the question bank managemen

4、t system the main function including the test question management and the examination paper management, in which examination paper management core is the examination paper production.The examination paper production has the hand work team or group volume and the automatic group volume two ways, the

5、automatic group volume was in had in the question bank foundation, according to inspection goal, in if intervened under the condition which supposed, produced one according to certain algorithm to satisfy the request the examination paper.This article is analyzing earnestly with the summary existing

6、 . . . II / 31each kind tries in the question bank system merit and the insufficient foundation, according to the Guangdong Province high-quality goods curriculum standard in the network curriculum method basic spirit, designed and realizes has tried the question bank group volume system based on B/

7、S pattern Web.At the same time, for enhances the system the operating efficiency, tries the question bank system to use LINQ TO the SQL operation database, the introduction genetic algorithm global optimization function, in assigns in advance under constraint condition, correct, highly effective gro

8、up volume, and uses Microsofts Silverlight technology to demonstrate in the homepage.KeyKey WordsWords:Automatic test paper;Question Bank Management;Silverlight; LINQ; Web . . . I / 31目目 錄錄摘要摘要IAbstractII1 1、緒論、緒論- 1 -1.1 課題的研究背景和意義- 1 -1.2 國外研究現狀- 1 -1.3 選題研究容- 2 -2 2、需求分析、需求分析- 2 -2.1 功能分析- 2 -2.2

9、 技術分析- 3 -3.3.總體設計總體設計- 4 -3.1 系統的功能模塊- 4 -3.2 主要模塊基本流程圖- 4 -3.2.1 組卷模塊- 4 -3.2.2 試題管理模塊- 5 -3.2.3 試卷管理模塊- 5 -3.3 系統功能描述- 6 -3.3.1 登錄模塊- 6 -3.3.2 系統管理模塊- 6 -3.3.3 考點管理模塊- 6 -3.3.4 試題管理模塊- 6 -3.3.5 組卷管理模塊- 6 -3.3.6 用戶操作模塊- 7 -3.4 數據庫設計- 7 - . . . II / 313.4.1 用戶表設計- 7 -3.4.2 角色表設計- 8 -3.4.3 用戶角色表設計-

10、8 -3.4.4 權限表設計- 9 -3.4.5 角色權限表設計- 9 -3.4.6 知識點表設計- 9 -3.4.7 試題表設計- 9 -3.4.8 試卷表設計- 10 -3.4.9 題型表設計- 11 -3.4.10 試題操作記錄表設計- 11 -4.4.詳細設計與實現詳細設計與實現- 12 -4.1 開發環境與技術選擇- 12 -4.2 系統架構- 13 -4.3 主要功能設計與實現- 14 -4.3.1 試題添加功能- 14 -4.3.2 試題修改刪除功能- 15 -4.3.3 自動組卷功能- 15 -4.3.4 手工組卷功能- 17 -5.5. 畢業設計心得與收獲畢業設計心得與收獲-

11、 17 -參考文獻參考文獻- 19 -致致- 20 -附錄系統使用說明附錄系統使用說明- 21 - . . . - 1 - / 31WebWeb 模式下基于數據庫的組卷模塊設計模式下基于數據庫的組卷模塊設計1 1、緒論、緒論1.1 課題的研究背景和意義一直以來, 我國高校和社會上的各種考試大都采用傳統的人工出卷方式。顯然, 人工出卷存在著種種弊端,譬如自教自考、所考的知識點不全面、考前漏題等,同時試卷的編輯、整理占了很大的工作量,造成了很大的時間和人力資源浪費。隨著考試制度改革的不斷深化和網絡技術的逐步完善,用 Web 試題庫系統代替傳統的人工出卷方式,已成為高校和社會上各種考試發展的趨勢。當

12、前, 很多研究人員進行了試題庫組卷系統的研究,也開發出了不少組卷系統,促進了試題庫組卷系統的發展。然而,目前的試題庫組卷系統仍存在著一些普遍的問題,如性能分析功能不強、組卷速度慢、試題的公式與圖片錄入往往需要專業人員的操作才能完成,極大的阻礙了智能組卷系統的發展。針對當前系統的開發現狀和不足。本文設計了一個 Web 模式下基于數據庫的組卷系統,該系統是結合 Silverlight 和 LINQ 技術開發的 Web 應用程序。與其他系統相比,本系統有很多明顯的優點:一是系統具有擴展性強的特點, 不需要修改程序代碼即可適用于其他科目;二是系統采用微軟最新的 RIA 技術 Siverlight,達到

13、一個豐富的媒體體驗和交互式應用。三是同時支持自動組卷和手工組卷兩種方式,用戶可根據需要自行選擇;同時,系統還具有完善的用戶、角色權限的管理功能,以確保試題庫的安全運行。1.2 國外研究現狀國外對題庫系統的設計做過比較詳盡的研究和探討。早在 1968 年 IBM 公司和美國洛杉磯學區共同開發的一個 CTSS (Classroom Teacher Supporting System),CTSS系統最初用于管理一個美國歷史題庫。后來,加利福尼亞州開發了一個稱為 SOCRATEB CATC 系統,專為加利福尼亞州 19 個州立大學中的 1.6 萬名教師和 29 萬學生服務。隨后,題庫系統的研究發展迅猛

14、,研究也逐漸深入。歷經 40 余年的發展,國外許多大型教育機構、地方教育部門、高等院校以與工業和專業資格認證機構都對題庫構建、試卷編制等進行過各種研究。目前,題庫系統已經在國外得到了廣泛的應用。 . . . - 2 - / 31最近幾年,我國的題庫研究和應用發展活躍。華東師大學、師大學、師大學等高校都有人在進行教育測量理論應用于題庫建設方面的研究。師大電子系完成的七五科技攻關項目中的子項目“通用試題庫生成系統的研究”通過由機電部組織的技術鑒定;清華大學和理工大學分別主持完成了高校工科“大學物理”和“高等數學”兩門課程的試題庫系統。另外,隨著計算機在國普與和應用,題庫系統在我國的應用也越來越廣泛

15、,很多地方和高校結合自身的需求,紛紛建立自己試題庫,題庫系統的研究已經成為近年來教育系統中一個十分引人注目的課題。雖然目前存在很多試題庫管理系統,但其中仍存在不少問題。這些問題主要表現在以下幾個方面:(1)自動組卷速度慢。究其原因是組卷策略不恰當。有些試題庫為了設計簡單而選取了隨機抽取法或回溯試探法。然而這兩種算法都存在較大的缺陷,組卷的效率和質量都很難令用戶滿意,所以必須尋求另外的解決方案。(2)系統的通用性差。很多試題庫管理系統只是面向個別學科或者某些公共學科,若要適應其他學科則必須經過比較大的改動或者根本行不通。(3)很多試題庫管理系統為 C/S 模式甚至是單機版。用戶若要使用試題庫則必

16、須安裝相應的軟件,無論是對用戶的使用或者系統的更改或升級都是很不方便的。(4)組卷模式單一。在眾多試題庫系統中,有不少是只支持手工組卷或者是自動組卷后不能修改的,這給用戶的選擇比較少,而且也不靈活。1.3 選題研究容本課題研究的系統主要面向教師,目的旨在設計一個在 B/S 模式下,基于數據庫,能夠在線管理題庫并能采用某種組卷策略從數據庫里抽取適當的試題并組成一份試卷,最后在網頁上顯示出來的系統。2、需求分析2.1 功能分析根據用戶的使用需求,本系統的主要功能有:1、教師可以選擇手工組卷或者自動組卷。在自動組卷方面,教師只要輸入試卷的一些約束條件即可進行自動組卷,為了保證組卷的高效性和正確性,必

17、須采用適當的組卷算法進行組卷。對于手動組卷,則要做到用戶能夠方便的選擇試題。 . . . - 3 - / 312、試題管理。試題管理主要體現在試題的增刪改查,在試題錄入方面,系統為不同的題型提供不同的模板,用戶只須根據提示錄入相應的題目容即可把題目添加到數據庫;試題的修改和刪除均建立在試題的檢索之上,用戶可根據條件查詢出相應的試題,然后根據需要修改或刪除試題。3、組卷模塊通用性。通用性同樣是組卷模塊要解決的一個重要問題,系統應該不經修改或稍加修改即可得到很好的擴展已適應不同科目的要求,以保證使用價值。同時,也要能非常方便的嵌入到其他考試系統中。4、用戶的角色權限管理。系統采用了基本的權限管理機

18、制,每個用戶都屬于某個角色,每個角色會擁有對試題的若干權限,以保障系統的信息安全。5、試卷的顯示。用戶可以預覽當前生成的試卷或者已保存的試卷。2.2 技術分析本系統的開發環境為 Windows 7 + Microsoft Visual Studio 2008 + Microsoft Expression Blend3 + MicrosoftSQL Server 2005。這在本文的總體設計和詳細設計中會有詳細介紹。題庫系統在構建過程中需要解決一些問題,例如,自動組卷的算法選擇,算法的選擇決定組卷的效率和質量。隨機組卷法和回溯試探法是目前使用比較多的兩種,但這兩種算法都有很大的缺陷。隨機選取法是

19、利用計算機提供的隨機函數或隨機量,根據組卷狀態空間的約束條件,不斷抽取符合約束條件的試題放入試卷中,直到組卷成功,或再也無法從題庫中抽取滿足控制指標的試題為止。這種算法對于單個實體的抽取速度快,但對于整個組卷過程來說組卷成功率較低,花費時間長。回溯試探法是將隨機選取法產生的每一狀態都記錄下來,當搜索失敗時釋放上次記錄的類型,然后再依據一定的規律(正是這種規律破壞了選取試題的隨機性)變換一種新的狀態類型進行試探,通過不斷的回溯試探直到試卷生成完畢或退回出發點為止。對于狀態類型和出題量都較小的題庫系統而言,組卷成功率較好。但是在實際到一個應用時發現這種算法對存的占用量大,程序結構相對比較復雜,而且

20、選取試題缺乏隨機性,組卷時間長,因此它不是一種很好的用來自動組卷的算法。對于這些缺陷,用戶通常是無法接受的。基于上述分析,本系統采用了當今公認比較好的組卷算法遺傳算法,遺傳算法是一種模擬自然選擇和自然遺傳機制的隨機優化算法,其具有并行性、通用性、自 . . . - 4 - / 31適應性、全局優化性和收斂速度快的特點。3.總體設計3.1 系統的功能模塊系統功能如圖 3.1 所示。試題庫管理系統系統登錄系統管理試題管理組卷管理用戶操作用戶管理考點管理新增用戶角色管理權限管理考點新增修改試題添加試題修改試題刪除試題檢索自動組卷修改密碼單選題多選題填空題簡答題論述題上機題手工組卷試卷管理注銷登出系統

21、圖 3.1 系統功能模塊圖3.2 主要模塊基本流程圖系統的主要模塊為組卷模塊,試題管理模塊,試卷管理模塊,這幾個模塊的流程圖如下所示:3.2.1 組卷模塊組卷模塊的基本流程圖如圖 3.2 所示: . . . - 5 - / 31圖 3.2 組卷模塊流程圖3.2.2 試題管理模塊試題管理基本流程如圖 3.3 所示:圖 3.3 試題管理基本流程圖3.2.3 試卷管理模塊試卷管理基本流程如圖 3.4 所示:YN登錄試卷管理自動組卷手動組卷加載題目輸入試卷屬性選擇題目,設置題型分數注:自動組卷失敗是指有一個或多個約束條件不能滿足。預覽保存試卷自動組卷開始成功NY登錄試題管理檢索試題添加試題輸入屬性保存

22、試題輸入條件存在試題修改刪除 . . . - 6 - / 31圖 3.4 試卷管理基本流程圖3.3 系統功能描述如圖 3.1 所示,交互式題庫系統包括以下幾個功能模塊:3.3.1 登錄模塊用戶必須登錄后才能使用系統的功能,題庫系統為用戶設立賬號,以確保題庫系統的安全性。3.3.2 系統管理模塊系統管理模塊主要管理用戶的角色權限,每個用戶都屬于某個角色,每個角色都有若干權限,管理員可以新增或者刪除角色,或者更改角色的權限,以達到用戶權限的高效、統一管理。此模塊只有管理員能夠進入操作。3.3.3 考點管理模塊用戶可以新增或者更改考點。3.3.4 試題管理模塊試題管理模塊主要是試題增刪改查的實現,新

23、增試題方面,系統為六種題型(即單選、多選、填空、簡答、論述、上機操作)提供不同的模板,錄入時只需輸入與題目有關的必要容即可把題目保存到數據庫。試題檢索方面,系統為用戶提供了多個條件的篩選,用戶根據某個條件或多個條件的組合來檢索試題,試題檢索完成后,用戶可以根據需要修改或者刪除題目。3.3.5 組卷管理模塊組卷模塊是系統的核心功能模塊,用戶可以選擇手工組卷和自動組卷。手工組卷的目的是為了更好的定制試卷,而自動組卷則是只要用戶輸入必要的限制條件,系統就會自動組合出滿足條件的試卷,自動組卷完成后,用戶還可以更改個別試題。試卷的修改和刪除和試題管理的設計類似,都須先查詢出相應的試卷然后進行修改刪除操N

24、Y登錄試卷管理檢索試卷卷輸入條件存在試卷修改刪除 . . . - 7 - / 31作。3.3.6 用戶操作模塊用戶可在此模塊修改賬號密碼以與相關的個人信息。3.4 數據庫設計本系統使用 Microsoft SQL Server 2005 作為后臺數據庫,Microsoft SQL Server 2005 以其安全性,擴展性,易用等多個優點著稱。在數據庫建模方面,采用的是 PowerDesigner,PowerDesigner 提供了一個完整的建模解決方案,通過多次的修改,數據庫的關系如圖 3.5 所示:圖 3.5 數據庫的關系圖3.4.1 用戶表設計本系統為 B/S 模式,用戶表主要記錄用戶的

25、登錄和個人信息,用戶表的設計如表3.1 所示。 . . . - 8 - / 31表 3.1 用戶表(DF_TeaInfo)字段名類型長度主鍵約束說明IDInt,not null是標識增量用戶 IDDIdInt, null否系別 IDNameNvarchar(20),not null20否GenderNvarchar(2),not null2否性別LoginIdNvarchar(50),not null50否登錄PasswordNvarchar(50),not null50否密碼UserGroupIdNvarchar(20),null20否用戶組AdminGroupNvarchar(20),nu

26、ll20否管理組TimeStampdatetime否修改時間3.4.2 角色表設計每一個記錄代表一個角色組。角色表的設計如表 3.2 所示。表 3.2 角色表(YZF_Role)字段名類型長度主鍵約束說明IDInt,not null是標識增量角色 IDRoleNameNvarchar(20), null20否角色名TimeStampdatetime否修改時間3.4.3 用戶角色表設計用戶角色表的設計旨在為每個用戶都分配一個角色,通過查詢用戶角色表即可知道用戶所屬角色。用戶角色表的設計如表 3.3 所示。表 3.3 用戶角色表(YZF_UserRole)字段名類型長度主鍵約束說明IDInt,no

27、t null是標識增量用戶角色 IDUserIDInt,not null否外鍵用戶 IDRoleIDInt,not null否外鍵角色 IDTimeStampdatetime否修改時間 . . . - 9 - / 313.4.4 權限表設計系統允許設置不同的用戶權限,權限表的設計如表 3.4 所示。表 3.4 權限表(YZF_Right)字段名類型長度主鍵約束說明IDInt,not null是標識增量權限 IDRightNvarchar(20), null20否權限名TimeStampdatetime否修改時間3.4.5 角色權限表設計角色權限表的設計旨在為每個角色分配不同的權限。角色權限表的

28、設計如表 3.5所示。表 3.5 角色權限表(YZF_RoleRight)字段名類型長度主鍵約束說明IDInt,not null是標識增量用戶角色 IDRoleIDInt,not null否外鍵角色 IDRightIDInt,not null否外鍵權限 IDTimeStampdatetime否修改時間3.4.6 知識點表設計知識點表記錄課程的每個知識點,由于知識點一般都有上級知識點,所以設置FatherID 字段以標識上級知識點,也方便在 treeview 等樹形控件中呈現。知識點表的設計如表 3.6 所示。表 3.6 知識點表(YZF_PointID)字段名類型長度主鍵約束說明IDInt,n

29、ot null是標識增量用戶角色 IDNameNvarchar(50),not null否角色 IDFatherIDInt,not null否父知識點 IDTimeStampdatetime否修改時間3.4.7 試題表設計 . . . - 10 - / 31試題表的設計是數據庫設計的主要部分。每一道試題都其唯一的編號,該編號在試題錄入時自動生成。為了簡化數據庫的設計,所有題型的題目都保存在一個表上,其中 ID,PointID,TypeID,Context,Level,Differential,Time,Count,Keywords 和TimeStamp 為公共屬性,Selections 和 A

30、nswer 字段只有單選題和多選題才有值,File 字段只有上機操作題才有值。試題表中比較關鍵的屬性是 Level 字段和Differential 字段,其中 Level 字段代表的是試題的難度系數,通常用未通過率來表示,即一次考試中未答對某道試題的考生數在其總體中所占的比例。一般來說,難度系數值為 0.5 時,是中等難度,如果小于 0.3 試題太簡單,如果大于 0.7 試題太難,如果考生都會做或都不會做,則難度系數為 0 或為 1。 Differential 表示試題的區分度,指某道題對不同水平考生加以區分的能力,區分度高的試題,對學生水平有較好的鑒別力。試題表的設計如表 3.7 所示。表

31、3.7 試題表(YZF_Question)字段名類型長度主鍵約束說明IDInt,not null是標識增量試題 IDPointIDint,not null否外鍵知識點 IDTypeIDInt,not null否外鍵題型 IDContextNvarchar(max),not null4000否試題,RTFFileNvarchar(200), null200否文件LevelReal,not null否難度系數DifferentialReal,not null否區分度TimeInt,not null否作答時間CountInt,not null否默認 0出現次數AnswerNvarchar(50),n

32、ull50否答案KeyWordsNvarchar(50),not null50否關鍵字SelectionsNvarchar(500),null500否選項TimeStampdatetime否修改時間3.4.8 試卷表設計試卷表保存手動組卷或自動組卷的每份試卷,Context 保存試題以與每種題型的分數,其值是一個 XML 結構的字符串,Level 難度系數的計算公式是: . . . - 11 - / 31P=DiSi/Si;其中i=1,2,.N,N是試卷所含的題目數,Di,Si分別是第i題的難度系數和分數。試題表的設計如表 3.8 所示。表 3.8 試卷表(YZF_Examination)字段

33、名類型長度主鍵約束說明IDInt,not null是標識增量試卷 IDTotalValueint,not null否總分TotalTimeInt,not null否總作答時間Levelreal,not null否難度系數ContextNvarchar(max), null4000否試題IsCreateByTchbit,not null否創建者TitleNvarchar(50),not null50否試卷標題TimeStampDatetime,null否修改時間GenerateTimeDatetime,null否getdate()生成時間3.4.9 題型表設計題型表的每個記錄代表一種題型,系統不

34、能修改此表,只能通過數據庫新增記錄。題型表的設計如表 3.9 所示。表 3.9 題型表(YZF_Type)字段名類型長度主鍵約束說明IDInt,not null是標識增量題型 IDNameNvarchar(20), null20否題型名稱3.4.10 試題操作記錄表設計用戶對試題的每一個操作(增,改,刪)都將被記錄在此表。試題操作記錄表的設計如表 3.10 所示。表 3.10 試題操作記錄表(YZF_Log)字段名類型長度主鍵約束說明IDInt,not null是標識增量記錄 IDQuestionIDInt,not null否外鍵約束試題 ID . . . - 12 - / 31UserIDI

35、nt,not null否外鍵約束用戶 IDTimeDatetime,not null否Getdate()操作試卷OperationNvarchar(10),not null10否Delete,modify,add操作類型4.詳細設計與實現4.1 開發環境與技術選擇本系統的開發環境是基于 Windows 7 操作系統,采用 Microsoft Visual Studio 2008 + Microsoft Expression Blend3 編程工具開發,后臺數據是 Microsoft SQL Server 2005,采用的查詢語言是 SQL。為了讓用戶有豐富的媒體體驗和交互式應用,本系統選擇微軟

36、力推的 RIA 技術Silverlight,在數據操作方面,采用的是 LINQ 技術。微軟 Silverlight 是一個跨瀏覽器、跨客戶平臺的技術,能夠設計、開發和發布有多媒體體驗與富交互(RIA,Rich Interface Application)的網絡交互程序。因為 Silverlight 提供了一個強大的平臺,能夠開發出具有專業圖形、音頻和視頻的 Web 應用程序,增強了用戶體驗,所以 SilverLight 吸引了設計人員和開發人員的眼球。同時,Silverlight 還提供了強大的工具來提高他們的工作效率。Silverlight 能創建一種具有很高藝術性的應用程序,具有以下的特點

37、:(1(一種跨瀏覽器、跨平臺的技術。可以在所有流行的瀏覽器中運行;(2(無論在哪運行,都能提供一致的用戶體驗;(3(只需要下載很小的文件,以安裝支持;(4(它的視頻和音頻流,視頻質量無論從移動設備還是桌面瀏覽器都是 720p HDTV video 模式;(5(用戶可在瀏覽器中直接對其進行控制,可以拖動、翻轉、放大的圖片;(6(它讀取數據并且更新外觀,但不會通過刷新整體頁面來打斷用戶操作。語言集成查詢 (LINQ) 是一組技術的名稱,這些技術建立在將查詢功能直接集成到 C# 語言(和可能的任何其他 .NET 語言)中。借助于 LINQ,查詢現在已是高級語言構造,就如同類、方法、事件等等。LINQ

38、 最明顯的“語言集成”部分是查詢表達式。查詢表達式是使用 C# 3.0 中引入的聲明性查詢語法編寫的。通過使用查詢語法,我們可以使用最少的代碼對數據源執行復雜的篩選、排序和分組操作。同時使用 . . . - 13 - / 31一樣的基本查詢表達式模式來查詢和轉換 SQL 數據庫、ADO.NET 數據集、XML 文檔和流以與 .NET 集合中的數據。4.2 系統架構系統采用的架構是經典的 Web 三層架構,所謂的三層架構,即數據訪問層,業務邏輯層,還有表現層。以往采用 Web 三層開發需要建立相應的類庫,諸如實體類類庫,數據庫工具類庫等,這樣是相當費時費力的,即使有了第三方的自動生成工具,也要作

39、大量的修改。所以我借助 LINQ 提供 LINQ TO SQL 設計器,只要設置好數據源,然后在可視化界面直接把表拖動到 LINQ TO SQL 設計器,設計器就會自動檢測主外鍵等約束關系,然后為每個表建立實體類并建立關系,并封裝了每個表的 CRUD 方法,從而完成了數據訪問層的工作。在業務邏輯層,由于 Silverlight 不能直接讀取數據庫,所有與數據庫的交互都必須通過 WebService、WCF 或 RIA Service 等方法間接訪問,最后選擇相對簡單的 WebService 來充當業務邏輯層,之所以不再新建一個業務邏輯類庫,是因為假如再把業務邏輯方法封裝在一個類庫里,那業務方法

40、的調用過程就是從表現層調用 Webservice 方法,Webservice 再調用業務類庫的方法,那就顯得太多余了,所以我把業務邏輯層都放在一個 Webservice 里,在 Webservice 里,我實例化了一個 Datacontext 對象,DataContext 對象管理著當前處理的數據庫中的所有事務,每一個業務邏輯方法都要用到 Datacontext 對象以操作數據庫。最后在 Silverlight中調用 Webservice 來完成對數據庫的操作。系統架構如圖 4. 1 所示: . . . - 14 - / 31圖 4.1 系統架構圖4.3 主要功能設計與實現主要介紹試題添加功能

41、、試題修改刪除功能、自動組卷功能、手動組卷功能以與試卷修改刪除功能的設計和實現方法。4.3.1 試題添加功能本功能完成的功能是把題目錄入到數據庫。不同的題型錄入需要不同的模板,每個模板對應一個頁面。所有的題目添加都必須選擇知識點,輸入題目,難度,區分度,作答時間和關鍵字,除此之外,單選題和多選題還必須輸入 ABCD 四個選項和答案,而上機題則必須上傳有關文件。其中知識點選擇是通過一個 Combox 控件選擇的,頁面加載時,首先實例化一個 Webservice 實例,為 GetAllPointsCompleted 和SaveQuestionCompleted 事件注冊方法,然后調用 Webser

42、vice 的GetAllPointsAsync()方法從數據庫異步讀取所有知識點,當數據讀取完成后加載到相應的知識點下拉列表。由于試題容可能存在圖片或者其他信息,所以系統采用Richtextbox 來作為試題的編輯器,這是由于 Richtextbox 支持 RTF 富文本格式,使試題不但能夠插入圖片,而且文本容還能設置不同的樣式,最后保存在數據庫也是以rtf 文本格式保存。文件上傳方面,也是通過 Webservice 完成的,首先選擇要上傳的文件,然后創建上傳文件的只讀 Filestream,然后從讀取 Filestream 里所有的字節 . . . - 15 - / 31序列,最后調用 We

43、bservice 的相應方法上傳到服務器。輸入完所有必要屬性后,點擊提交按鈕,系統會檢查所有的試題屬性值是否符合要求,只有全部都符合要求時才能新增題目。例如新增單選題時如圖 4.2 示:圖 4.2 單選題新增圖4.3.2 試題修改刪除功能試題修改和刪除都須先進行試題的檢索才能操作。用戶只需輸入知識點,題型,難度,關鍵字等多個條件的某個或多個組合就能從數據庫檢索出相應的題目,然后在DataGrid 控件上顯示,DataGrid 控件的每一行代表一條試題記錄,每一行都會有一個刪除和修改按鈕以操作試題。試卷的修改通過彈出窗口進行,當點擊修改按鈕后,系統會自動獲得所要修改的題型,然后加載相應的修改模板

44、進行編輯,修改完成后,系統更新題庫并在網頁上顯示出來。試題刪除的實現方法是當用戶點擊刪除按鈕的時候,系統會把 DataGrid 該行的數據實體傳遞給 WebService,然后根據該實體刪除數據庫的相應試題,用戶也可以選擇多條試題批量刪除,若有試卷關聯著試題,則會報錯,并提示出錯試題關聯的試卷號。界面如圖 4.3 所示: . . . - 16 - / 31圖 4.3 題庫管理圖4.3.3 自動組卷功能自動組卷是系統的核心,用戶只須輸入難度,作答時間,各個題型的題數和分值,所考知識點,然后點擊生成即可調用相應算法從數據庫中抽取試題組合試卷,系統采用的組卷策略是遺傳算法,遺傳算法是模擬達爾文的遺傳

45、選擇和自然淘汰的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優解的方法,它用于解決多約束條件下的最優問題。遺傳算法有三個基本操作:選擇、交叉、變異。這些操作又有不同的方法來實現。(1)選擇。選擇用于確定在下一代種群有哪些個體組成,選擇的依據是個體的適應度,即首先計算每個個體的適應度,然后以概率方式選擇適應度較好的個體進入下一代種群。通過選擇操作,父代中的個體與由交叉和變異形成的新個體中,適應度好的個體能以較高的概率存活下來。(2)交叉。交叉是指父代中的兩個個體之間進行基因片斷的交換,基因片斷在染色中的位置和長度的選擇是隨機的。通過交叉操作,可以將多個體中的優秀片斷進行重組,形成適應

46、度更優的個體。(3)變異。交叉之后子代經歷的變異,實際上是子代基因按小概率擾動產生的變化。依據個體編碼表示方法的不同,主要包括實值變異和二進制變異兩種方法。自動組卷流程分別對應遺傳算法的三個基本操作,首先調用 . . . - 17 - / 31make_begin_recordset()函數產生初始種群并對初始種群執行一次交叉和變異操作,種群的每一個個體代表一份試卷,試卷初始種群不是采用完全隨機的方法產生,而是根據題型比例、總分、知識點不重復、不考章節等要求隨機產生,使得初始種群一開始就滿足了題型、總分和知識點等要求,這樣可加快遺傳算法的收斂并減少迭代次數。在編碼方面,采用實數編碼,以克服以往

47、采用二進制編碼搜索空間過大和編碼長度過長的缺點,同時取消了個體的解碼時間,提高了求解速度。然后進入選擇操作,在選擇之前,首先調用 product_wheel()函數,其作用是根據適應度生成輪盤表,然后調用 choose_arithmetic_operators()函數進入選擇過程,選擇過程主要根據試卷個體的適應程度決定試卷在下一代是被淘汰還是被復制,選擇過程結束后,然后調用cross()函數進入交叉過程,由于在編碼時采用的是分段實數編碼,所以在進行交叉時采用分段單點交叉(按題型分段來進行交叉) ,整個染色體就表現為多點交叉。交叉的實現過程:將群體中的染色體任意進行兩兩配對,對每對染色體產生一個

48、0, 1 的隨機數 r,若 rpc(pc 取值圍是 0.6-0.8) ,則分段隨機產生一個交叉點,然后分段進行互換以得到下一代。最后調用 mutation 進入變異過程,在遺傳算法中,變異概率一般較小。這里只對某段上的某個基因進行變異。對某個染色體,隨機生成一個0,1圍的實數 r,若 r0.01,則對該染色體進行變異,否則不進行變異。變異的操作如下:循環讀取每個題段,若變異幾率 p0.01,則對該題進行變異,變異基因的選擇原則與原基因題型一樣。在三個基本操作完成之后,調用 save_best_policy()函數保存最優策略函數,由此循環若干(最大 200)次后,結束遺傳算法,返回生成試卷。其

49、算法流程圖如圖 4.4 所示:圖 4.4 組卷算法流程圖 . . . - 18 - / 314.3.4 手工組卷功能盡管自動組卷為用戶帶來了極大的便利,但手工組卷仍然有它不可取代的優勢,通過手工組卷,用戶可以自由地確定題目,以保證試卷的質量。為了能使用戶方便地進行手工組卷,系統在手工組卷頁面放置了 7 個 DataGrid 控件,其中 6 個 DataGrid分別對應 6 種題型的列表,點擊題型可對相應的 DataGrid 進行折疊或展開,第 7 個DataGrid 為當前已選題目列表,每選擇一個題目,該題目會自動出現在已選列表上,并且統計試卷分數難度和時間。用戶可以隨時對試卷進行預覽,最后只

50、要輸入試卷標題即刻保存試卷。4.3.5 試卷修改刪除功能試卷修改和刪除都須先進行試卷的檢索才能操作。用戶只需輸入試卷的難度,分數,時間,生成時間等多個條件的單個或多個組合就能從數據庫檢索出相應的試卷,然后在 DataGrid 控件上顯示,DataGrid 控件的每一行代表一份試卷記錄,每一行都會有一個刪除和修改按鈕以操作試卷。試卷的修改通過彈出窗口進行,試卷的修改只能修改選中試卷的標題和題型分值,修改完成后,系統更新題庫并在網頁上顯示出來。試題刪除的實現方法是當用戶點擊刪除按鈕的時候,系統會把選中的試卷號傳遞給相應的 WebService 方法進行刪除。5.5. 畢業設計心得與收獲畢業設計心得

51、與收獲通過對試題庫系統的研究,探討了試題庫系統的數據庫設計、組卷模式選擇、用戶角色管理、考點管理、試題管理和試卷管理等模塊的設計,并結合 Silverlight 和LINQ 等技術成功地開發出在 Web 模式下基于數據庫的試題庫管理系統。由于系統設計所用到的技術很多是以前從沒接觸過的,所以一切都要從自學開始,一邊自學一邊做設計。由于學的東西是越來越多,也越來越深,所以在畢業設計中,一樣功能可能用了不同的做法。相比在系統設計中使用最新的技術,個人覺得系統模塊劃分在系統設計中占有非常重要的比重。剛開始劃分系統模塊,由于對系統功能把握得不夠好,所以模塊的劃分顯得比較混亂。在界面設計階段,由于采用了微

52、軟的Silverlight 技術,面對的再不是熟悉的 html 標簽,而是全新的 XAML,所以剛開始時頁面布局時要經常查閱 MSDN 幫助。在設計工作的后期,隨著知識的積累越來越豐富,編碼速度和程序質量都有明顯 . . . - 19 - / 31提高,用的控件也越來越豐富,在某些頁面甚至添加了一些簡單的動畫效果以使用戶界面更加友好。雖然系統最后能夠完成,但是由于工作實習原因和時間關系,所以系統仍存在很多不足。(1)由于系統是通過 WebService 對數據庫進行異步操作的,由于 WebService本來速度就不高,所以當傳輸數據量比較大(如數百個題目)時,會有明顯的操作延遲,雖然系統提供了

53、人性化的等待提示,但根本的解決辦法還是改進與數據庫的連接通信。(2)試題編輯采用的是 Richtextbox 控件,微軟在 Silverlight3 并沒有提供類似 Richtextbox 的富文本編輯器,系統里所采用的 Richtextbox 是一個免費第三方控件,在添加圖片與文本格式控制等方面還需另寫代碼。不過微軟已經在 Silverlight4新增了 Richtextbox 控件,所以到時候這個問題也會迎刃而解。(3)組卷算法有待進一步完善。雖然系統采用的算法能夠滿足用戶的一般要求,但有時仍會出現組卷失敗或出錯的現象。總的來說,通過這次畢業設計,不僅鞏固和擴充了原有的專業知識, ,而且分

54、析問題和編碼能力也有顯著的提高。參考文獻參考文獻1 McGrawHill.Oracle.Database.10g.SQL.2002,p314-316.2 Rampant.TechAdvanced.SQL.Database.Programmers.2003,p234-236.3 殷榮慶.題庫系統的設計于研究J.教育學院學報,2004,22(6):36-40.4建棟,許錦標基于 Web 的試題庫組卷系統的研究與開發CNKI:SUN:DNZS.0.2008-10-0405 夏愛月基于遺傳算法的自動組卷系統研究與實現 CNKI:SUN:DNBC.0.2009-02-0386 德志,林麗娜,吳旭 遺傳算

55、法在智能組卷系統中的設計與實現 CNKI:SUN:CJDL.0.2008-01-0847 羅江英 遺傳算法的研究與應用 CNKI:SUN:DNZS.0.2008-14-0588欣 Silverlight 技術的發展與應用 CNKI:SUN:DNZS.0.2009-22-0499 超,鐘珞 基于 Silverlight 的富界面應用研究CNKI:SUN:WHGY.0.2008-12-02310 付坤 探討 SilverLight 技術在增強客戶體驗方面的應用 CNKI:SUN:KJXX.0.2009-05-58211 田江 淺談 LINQ 訪問技術CNKI:SUN:KJXH.0.2009-07-23612 史紅軍 快速開發基于 Linq to

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論