實(shí)驗(yàn)課程考試系統(tǒng)的研究與設(shè)計(jì)碩士學(xué)位_第1頁(yè)
已閱讀1頁(yè),還剩77頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  實(shí)驗(yàn)課程考試系統(tǒng)的研究與設(shè)計(jì)</p><p><b>  專業(yè):計(jì)算機(jī)技術(shù)</b></p><p>  研究生: 指導(dǎo)教師: </p><p>  網(wǎng)絡(luò)化教育代表了教育改革的一個(gè)發(fā)展方向,已經(jīng)成為現(xiàn)代教育的一個(gè)特征,并對(duì)教育的發(fā)展形成新的推動(dòng)力?;贗nternet的考試系統(tǒng)正成為人們的研究熱點(diǎn)之一。與傳

2、統(tǒng)考試模式相比,網(wǎng)上考試具有無(wú)可比擬的優(yōu)越性。</p><p>  傳統(tǒng)的考試系統(tǒng)主要解決了客觀題以及少量主觀題的考試,而對(duì)于實(shí)驗(yàn)課程而言,由于其具有較強(qiáng)的操作性和交互性,針對(duì)實(shí)驗(yàn)課程內(nèi)容的考試只能按照傳統(tǒng)的人工模式進(jìn)行。長(zhǎng)期以來(lái),老師很難監(jiān)督學(xué)生是否作弊,是否通過(guò)正常的步驟得出結(jié)果,而且每場(chǎng)考試中老師監(jiān)考的學(xué)生有限。</p><p>  本文所研究的實(shí)驗(yàn)課程模擬考試系統(tǒng)的主要目的是為了讓

3、學(xué)生能集中的針對(duì)某一門實(shí)驗(yàn)課程進(jìn)行在線的考試,使得考試的各個(gè)環(huán)節(jié)都變得方便、快捷和安全。本系統(tǒng)采用了基于Web的B/S模式的N層模型進(jìn)行設(shè)計(jì)。在技術(shù)上,采用了Flash技術(shù)開發(fā)實(shí)驗(yàn)考題,使用.NET Framework 3.5作為開發(fā)平臺(tái)和運(yùn)行支撐平臺(tái),數(shù)據(jù)庫(kù)服務(wù)器則使用了SQL Server 2008,并使用了C#語(yǔ)言、ASP.NET WebForm、ASP.NET AJAX 和 ADO.NET等技術(shù)進(jìn)行課題的設(shè)計(jì)。</p>

4、;<p>  關(guān)鍵字:考試系統(tǒng) Flash ASP.NET ADO.NET AJAX </p><p>  Study and Design of Examination System for Experiment Course</p><p>  Major: Computer Technology</p><p>  Graduate Studen

5、t: Sun Lian Advisor: Tang Ningjiu</p><p>  Education network, a representative of the direction of education reform has become a feature of modern education, and educational development to form a new im

6、petus. Compared with the traditional mode of examination, online examination has incomparable superiority.</p><p>  The traditional examination system solves the problem of all subjective exams and a few obj

7、ective exams, and for the experimental course, since it has a strong operational and interactive, experimental curriculum for the examination only in accordance with the traditional manual mode. For a long time, the teac

8、her is difficult to monitor whether students cheat, whether the results obtained through the normal steps, and each teacher proctor exams for students is limited.</p><p>  This experimental program studied t

9、he simulation test system's main purpose is to enable students to concentrate in an experimental curriculum for an online exam, making the examination of all aspects have become convenient, fast and safe. The system

10、is designed a Web-based B / S mode of N-tier model. Technically, the test files are developed using Flash technology, use the. NET Framework 3.5 as a development platform and operating platform, and use SQL Server 2008 a

11、s the database server, and us</p><p>  Keywords: Examination System Flash ASP.NET ADO.NET AJAX</p><p><b>  目 錄</b></p><p><b>  第一章 緒論1</b></p>&

12、lt;p><b>  1.1選題背景1</b></p><p>  1.2 選題目的及意義1</p><p>  1.3 本文的研究?jī)?nèi)容及組織結(jié)構(gòu)2</p><p>  1.3.1 本文研究?jī)?nèi)容2</p><p>  1.3.2 本文組織結(jié)構(gòu)2</p><p>  第二章 開發(fā)平臺(tái)

13、及關(guān)鍵技術(shù)介紹4</p><p>  2.1 .NET Framework4</p><p>  2.1.1 體系結(jié)構(gòu)4</p><p>  2.1.2 .NET Framework版本發(fā)展7</p><p>  2.2 SQL Server8</p><p>  2.2.1 SQL Server Expre

14、ss Edition概述8</p><p>  2.2.2 SQL Server 2008 Express Edition的主要功能9</p><p>  2.3 Visual Studio .NET10</p><p>  2.4 C#語(yǔ)言11</p><p>  2.5 ASP.NET11</p><p>

15、;  2.5.1 ASP.NET主要特性12</p><p>  2.5.2 ASP.NET Web應(yīng)用程序13</p><p>  2.6 ASP.NET AJAX14</p><p>  2.7 ADO.NET15</p><p>  2.8 三層架構(gòu)簡(jiǎn)介17</p><p>  第三章 需求分析18&

16、lt;/p><p>  3.1 業(yè)務(wù)功能需求分析18</p><p>  3.1.1 考試端功能需求19</p><p>  3.1.2 管理端功能需求20</p><p>  3.1.3 考題需求22</p><p>  3.2 數(shù)據(jù)需求分析23</p><p>  3.3 環(huán)境需求分析

17、23</p><p>  第四章 系統(tǒng)設(shè)計(jì)24</p><p>  4.1 系統(tǒng)功能模塊設(shè)計(jì)24</p><p>  4.1.1 考試端功能模塊設(shè)計(jì)24</p><p>  4.1.2 管理端功能模塊設(shè)計(jì)26</p><p>  4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)28</p><p>  4.2.1

18、 數(shù)據(jù)庫(kù)總體設(shè)計(jì)28</p><p>  4.2.2 數(shù)據(jù)庫(kù)表詳細(xì)設(shè)計(jì)29</p><p>  4.2.3 存儲(chǔ)過(guò)程設(shè)計(jì)31</p><p>  4.3 考題文件設(shè)計(jì)33</p><p>  第五章 系統(tǒng)實(shí)現(xiàn)35</p><p>  5.1 考試端模塊的實(shí)現(xiàn)35</p><p>  

19、5.1.1 UI設(shè)計(jì)思路35</p><p>  5.1.2 考試登錄35</p><p>  5.1.3考試答題37</p><p>  5.1.4 考試結(jié)束41</p><p>  5.1.5 錯(cuò)誤處理41</p><p>  5.2管理端模塊的實(shí)現(xiàn)42</p><p>  5.

20、2.1 UI設(shè)計(jì)思路42</p><p>  5.2.2 管理員登錄43</p><p>  5.2.3 考試管理43</p><p>  5.2.4 考題管理47</p><p>  5.2.5 學(xué)生管理49</p><p>  5.2.6 成績(jī)查詢統(tǒng)計(jì)51</p><p>  5

21、.2.7 管理員信息管理53</p><p>  5.2.8 重設(shè)密碼54</p><p>  5.3 數(shù)據(jù)訪問(wèn)層的實(shí)現(xiàn)55</p><p>  5.3.1 通用類設(shè)計(jì)55</p><p>  5.3.2 數(shù)據(jù)實(shí)體類設(shè)計(jì)55</p><p>  第六章 系統(tǒng)測(cè)試59</p><p>

22、  6.1 系統(tǒng)測(cè)試概述59</p><p>  6.2 系統(tǒng)測(cè)試環(huán)境59</p><p>  6.3 系統(tǒng)測(cè)試的結(jié)果60</p><p>  第七章 安全性問(wèn)題及對(duì)策62</p><p>  7.1 登錄密碼保護(hù)62</p><p>  7.2 防瀏覽器返回功能62</p><p>

23、;  7.3 防止SQL注入63</p><p>  第八章 總結(jié)與展望65</p><p><b>  聲 明69</b></p><p><b>  致 謝70</b></p><p><b>  第一章 緒論</b></p><p>&

24、lt;b>  1.1選題背景</b></p><p>  網(wǎng)絡(luò)化教育代表了教育改革的一個(gè)發(fā)展方向,已經(jīng)成為現(xiàn)代教育的一個(gè)特征,并對(duì)教育的發(fā)展形成新的推動(dòng)力。隨著Internet/Intranet的迅速發(fā)展和廣泛普及,建立在其上的遠(yuǎn)程教育成為現(xiàn)代教育技術(shù)未來(lái)發(fā)展方向之一,考試測(cè)試作為遠(yuǎn)程教育的一個(gè)子系統(tǒng)也成為一個(gè)重要的研究領(lǐng)域?,F(xiàn)代遠(yuǎn)程教育作為一種新的教學(xué)手段已經(jīng)開始進(jìn)入我們的生活,正在給傳統(tǒng)教育

25、模式帶來(lái)新的變革,并對(duì)教育的發(fā)展形成新的推動(dòng)力。</p><p>  Internet技術(shù)的發(fā)展使得考試的技術(shù)手段和載體發(fā)生了革命性的變化,Internet的開放性、分布性的特點(diǎn)和基于Internet的巨大的計(jì)算能力使得考試突破了時(shí)間和空間的限制?;贗nternet的考試系統(tǒng)正成為人們的研究熱點(diǎn)之一。與傳統(tǒng)考試模式相比,網(wǎng)上考試具有無(wú)可比擬的優(yōu)越性,它可以將傳統(tǒng)考試過(guò)程中的試卷組織、審定印制、傳送收集、登記發(fā)放

26、、評(píng)判歸檔各個(gè)環(huán)節(jié)縮小到一至兩個(gè)環(huán)節(jié),幾乎屏蔽了所有人工直接干預(yù)考試活動(dòng)的可能性,不但能夠節(jié)約大量的時(shí)日、人力、物力與財(cái)力,而且還可以大幅度提高考試成績(jī)的客觀性和公正性。</p><p>  考試系統(tǒng)通常分為兩種,一種是帶有客戶端軟件的C/S(客戶端/服務(wù)器)模式的考試系統(tǒng),另一種是基于Web的B/S(瀏覽器/服務(wù)器)模式的考試系統(tǒng)。前者在部署過(guò)程中需要對(duì)每一臺(tái)考試機(jī)安裝專門的考試客戶端軟件,通過(guò)這些客戶端軟件可

27、以訪問(wèn)本地資源,如操作系統(tǒng)、本地文檔等等。但是由于其部署上缺乏靈活性,以及Web頁(yè)面和瀏覽器的功能不斷增強(qiáng),目前被廣泛采用的是基于Web的B/S模式的考試系統(tǒng)。它具有部署方便、靈活的特性,只要接入考試網(wǎng)絡(luò)的客戶機(jī)并具有網(wǎng)頁(yè)瀏覽器就能夠使用,而且所有的考試數(shù)據(jù)都在服務(wù)器端,從而提高了系統(tǒng)的安全性、集中性和可控性。</p><p>  1.2 選題目的及意義</p><p>  傳統(tǒng)的考試系統(tǒng)

28、主要解決了客觀題以及少量主觀題的考試,如判斷題、選擇題、填空題以及簡(jiǎn)單題。由于計(jì)算機(jī)本身對(duì)主觀題目的答案無(wú)法做到全面有效的判定,僅能對(duì)客觀題進(jìn)行準(zhǔn)確的判斷,傳統(tǒng)的考試系統(tǒng)絕大多數(shù)為客觀題的考試。因此,由于實(shí)驗(yàn)課程的特殊性,針對(duì)實(shí)驗(yàn)課程內(nèi)容的考試只能按照傳統(tǒng)的人工模式進(jìn)行,學(xué)生在實(shí)際的實(shí)驗(yàn)設(shè)備上操作,完成實(shí)驗(yàn)題目,得出結(jié)論,然后由老師來(lái)驗(yàn)收實(shí)驗(yàn)結(jié)果。在這個(gè)過(guò)程中,老師很難監(jiān)督學(xué)生是否作弊,是否通過(guò)正常的步驟得出結(jié)果,而且每場(chǎng)考試中老師監(jiān)考

29、的學(xué)生有限。</p><p>  因此研究如何實(shí)現(xiàn)實(shí)驗(yàn)課程的考試是非常必要的。它將解決老師監(jiān)考、批改試卷、統(tǒng)計(jì)分?jǐn)?shù)等諸多工作中所出現(xiàn)的不便,并且也能使學(xué)生在模擬環(huán)境下的操作幾近真實(shí)環(huán)境下的操作,做到即不影響學(xué)生完成實(shí)驗(yàn)操作,更能給老師考核所授實(shí)驗(yàn)課程效果帶來(lái)極大的方便,還能嚴(yán)肅考場(chǎng)紀(jì)律,杜絕作弊現(xiàn)象的發(fā)生。</p><p>  1.3 本文的研究?jī)?nèi)容及組織結(jié)構(gòu)</p><

30、;p>  1.3.1 本文研究?jī)?nèi)容</p><p>  本文主要研究了如何實(shí)現(xiàn)模擬真實(shí)的實(shí)驗(yàn)考試場(chǎng)景,采用信息化網(wǎng)絡(luò)化的手段實(shí)現(xiàn)多人同時(shí)考試,從而使得實(shí)驗(yàn)考試中試題管理、學(xué)生管理、監(jiān)考管理、試卷批改以及統(tǒng)計(jì)等諸多環(huán)節(jié)更加可控和高效。本課題在研究過(guò)程中,主要以《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)》實(shí)驗(yàn)課考試為研究對(duì)象入手,在考試系統(tǒng)設(shè)計(jì)中兼顧了通用性和易用性。本課題項(xiàng)目采用微軟.NET技術(shù)平臺(tái),使用Microsoft SQL S

31、erver 2008作為數(shù)據(jù)庫(kù)服務(wù)端,開發(fā)工具使用了微軟的Visual Studio .NET 2008,采用ASP.NET以及ASP.NET AJAX技術(shù),使用C#編寫考試系統(tǒng)業(yè)務(wù)邏輯代碼,使用Flash開發(fā)考題文件,從而設(shè)計(jì)該實(shí)驗(yàn)課程考試系統(tǒng)。</p><p>  本人在本課題研究中,主要參與了需求調(diào)研與分析和系統(tǒng)設(shè)計(jì),并完成了本課題項(xiàng)目的部分代碼。</p><p>  1.3.2 本

32、文組織結(jié)構(gòu)</p><p>  第一章 概述,主要介紹本文的研究背景和研究目的。</p><p>  第二章 開發(fā)平臺(tái)及關(guān)鍵技術(shù)介紹,主要介紹本課題研究中要使用的技術(shù),包括.NET技術(shù)平臺(tái)的簡(jiǎn)介,Microsoft SQL Server 2008數(shù)據(jù)庫(kù)系統(tǒng),ASP.NET技術(shù),ASP.NET AJAX技術(shù),C#語(yǔ)言以及開發(fā)工具Visual Studio .NET 2008。</p&g

33、t;<p>  第三章 需求分析,主要介紹本課題的功能需求和數(shù)據(jù)需求。</p><p>  第四章 系統(tǒng)設(shè)計(jì),主要介紹本課題的系統(tǒng)設(shè)計(jì),包括考試系統(tǒng)的功能模塊設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)和考題文件設(shè)計(jì)。</p><p>  第五章 系統(tǒng)實(shí)現(xiàn),詳細(xì)介紹本課題的系統(tǒng)實(shí)現(xiàn)過(guò)程、系統(tǒng)功能模塊以及考題的設(shè)計(jì)和實(shí)現(xiàn)。</p><p>  第六章 系統(tǒng)測(cè)試,本章主要介紹利用常見(jiàn)

34、的測(cè)試手段對(duì)本課題項(xiàng)目的測(cè)試工作。</p><p>  第七章 安全性問(wèn)題及對(duì)策,主要介紹本課題在安全性方面所做的工作。</p><p>  第八章 總結(jié)與展望,對(duì)本課題的成果進(jìn)行總結(jié),提出進(jìn)一步的展望。</p><p>  第二章 開發(fā)平臺(tái)及關(guān)鍵技術(shù)介紹</p><p>  本章主要介紹課題項(xiàng)目的開發(fā)平臺(tái)和部分關(guān)鍵的技術(shù),其中包括軟件開發(fā)平

35、臺(tái).NET Framework、數(shù)據(jù)庫(kù)開發(fā)平臺(tái)SQL Server、集成開發(fā)工具Visual Studio .NET、開發(fā)語(yǔ)言C#,以及ASP.NET、ASP.NET AJAX和ADO.NET等關(guān)鍵的實(shí)現(xiàn)技術(shù)。</p><p>  2.1 .NET Framework</p><p>  .NET框架(.NET Framework) 是由微軟公司研發(fā),是一個(gè)致力于敏捷軟件開發(fā)(Agile

36、software development)、快速應(yīng)用開發(fā)(Rapid application development)、平臺(tái)無(wú)關(guān)性和網(wǎng)絡(luò)透明化的軟件開發(fā)平臺(tái)。.NET是微軟為下一個(gè)十年對(duì)服務(wù)器和桌面型軟件工程邁出的第一步。.NET包含許多有助于互聯(lián)網(wǎng)和內(nèi)部網(wǎng)應(yīng)用迅捷開發(fā)的技術(shù)。[4]</p><p>  .NET Framework是微軟公司繼Windows DNA之后的全新開發(fā)的平臺(tái)。.NET Framewor

37、k是以一種采用系統(tǒng)虛擬機(jī)運(yùn)行的編程平臺(tái),以通用語(yǔ)言運(yùn)行庫(kù)(Common Language Runtime)為基礎(chǔ),支持多種語(yǔ)言(C#、VB.NET、C++、Python等)的開發(fā)。[2]</p><p>  .NET也為應(yīng)用程序接口提供了新功能和開發(fā)工具。這些革新使得程序設(shè)計(jì)員可以同時(shí)進(jìn)行Windows應(yīng)用軟件和網(wǎng)絡(luò)應(yīng)用軟件以及組件和服務(wù)(Web服務(wù))的開發(fā)。.NET提供了一個(gè)新的反射性的且面向?qū)ο蟪绦蛟O(shè)計(jì)編程接

38、口。.NET設(shè)計(jì)得足夠通用化從而使許多不同高級(jí)語(yǔ)言都得以被匯集。[3]</p><p>  2.1.1 體系結(jié)構(gòu)</p><p>  .NET Framework的體系結(jié)構(gòu)及其在計(jì)算機(jī)系統(tǒng)中所處的位置如圖2-1所示。</p><p>  .NET Framework 具有兩個(gè)主要組件:公共語(yǔ)言運(yùn)行庫(kù)(CLR)和 .NET Framework 類庫(kù)(FCL)。公共語(yǔ)言

39、運(yùn)行庫(kù)是 .NET Framework 的基礎(chǔ),可以將它看作一個(gè)在執(zhí)行時(shí)管理代碼的代理,提供了內(nèi)存管理、線程管理和遠(yuǎn)程處理等核心服務(wù),并且還強(qiáng)制實(shí)施嚴(yán)格的類型安全以及可提高安全性和可靠性的其他形式的代碼準(zhǔn)確性。事實(shí)上,代碼管理的概念是運(yùn)行庫(kù)的基本原則。以運(yùn)行庫(kù)為目標(biāo)的代碼稱為托管代碼,而不以運(yùn)行庫(kù)為目標(biāo)的代碼稱為非托管代碼。.NET Framework 的另一個(gè)主要組件是類庫(kù),它是一個(gè)綜合性的面向?qū)ο蟮目芍赜妙愋图?,開發(fā)者可以使用它來(lái)

40、開發(fā)多種應(yīng)用程序,這些應(yīng)用程序包括傳統(tǒng)的命令行或圖形用戶界面 (GUI) 應(yīng)用程序,也包括基于 ASP.NET 所提供的最新創(chuàng)新的應(yīng)用程序(如 WebForm和 XML Web Services)。</p><p>  圖2-1 .NET Framework的位置及其組成</p><p><b>  1.公共語(yǔ)言運(yùn)行庫(kù)</b></p><p>

41、  公共語(yǔ)言運(yùn)行庫(kù)(CLR)是.NET程序的執(zhí)行引擎,它為簡(jiǎn)化應(yīng)用程序開發(fā)和代碼重用提供了高層次的支持,提供了大量的運(yùn)行時(shí)服務(wù),包括編譯、無(wú)用內(nèi)存單元回收(Garbage Collection,GC)及內(nèi)存管理等;另外,CLR使用貫穿整個(gè).NET Framework的通用類型系統(tǒng),所有的.NET編程語(yǔ)言都使用相同的類型系統(tǒng)和基類,從而使語(yǔ)言與編程模型能完美地結(jié)合在一起。CLR的體系結(jié)構(gòu)如圖2-2所示。</p><p&

42、gt;  CLR使用一種被稱為微軟中間語(yǔ)言(Microsoft Intermediate Language,MSIL)的類似匯編的語(yǔ)言來(lái)提供單一的運(yùn)行環(huán)境。所有的.NET應(yīng)用程序都被編譯為MSIL,程序在運(yùn)行時(shí)再由CLR調(diào)用實(shí)時(shí)編譯器(Just-In-Time,JIT)將MSIL編譯成當(dāng)前操作系統(tǒng)以及機(jī)器硬件能識(shí)別的機(jī)器代碼來(lái)執(zhí)行。從某種意義上來(lái)說(shuō),CLR看起來(lái)像Java虛擬機(jī),而MSIL類似于Java字節(jié)代碼。[2]</p>

43、;<p>  在CLR控制下運(yùn)行的代碼稱為托管代碼(managed code),即由CLR管理并執(zhí)行的代碼。那么,不以CLR為運(yùn)行環(huán)境的代碼稱為非托管代碼(unmanaged code)。托管代碼能夠?yàn)镃LR提供運(yùn)行該代碼所需的信息,而且可被無(wú)用單元回收器自動(dòng)清理。此外,CLR還提供了執(zhí)行非托管代碼的方法,例如COM組件,可借助COM InterOp服務(wù)(COM InterOp服務(wù)能夠?yàn)镃OM組件生成.NET封裝),就可以

44、在CLR下運(yùn)行了。</p><p>  綜合起來(lái),CLR主要提供了諸如代碼管理(加載和執(zhí)行)、獨(dú)立應(yīng)用程序內(nèi)存空間、檢查類型安全、將MSIL轉(zhuǎn)換成可執(zhí)行的本機(jī)碼、使用元數(shù)據(jù)來(lái)增強(qiáng)類型信息、為托管對(duì)象管理內(nèi)存、增強(qiáng)安全性、異常處理、平臺(tái)互操作機(jī)制以及對(duì)開發(fā)者提供的調(diào)試等服務(wù)。</p><p>  圖2-2 CLR體系結(jié)構(gòu)</p><p>  2..NET Framew

45、ork類庫(kù)</p><p>  類庫(kù)是.NET Framework的另一個(gè)重要組成部分,.NET Framework類庫(kù)是生成.NET應(yīng)用程序、組件和控件的基礎(chǔ)。.NET Framework類庫(kù)包括類、接口和值類型,它們可以加速和優(yōu)化開發(fā)過(guò)程并提供對(duì)系統(tǒng)功能的訪問(wèn)。[23]</p><p>  圖2-3 .NET Framework類庫(kù)</p><p>  如圖2-

46、3所示,.NET Framework中的類庫(kù)可以分為兩個(gè)部分,分別是核心類和表示類,其中核心類又包括基礎(chǔ)類、數(shù)據(jù)和XML類這兩個(gè)層次。核心類為開發(fā)者提供了構(gòu)建應(yīng)用程序所需的基本功能,包括XML支持、建立網(wǎng)絡(luò)和數(shù)據(jù)訪問(wèn)。這些統(tǒng)一的核心類使開發(fā)者在構(gòu)建任何類型的.NET應(yīng)用程序時(shí)都能使用相同的類,這種一致性可以提高開發(fā)效率,同時(shí)也提高了代碼的可復(fù)用性。表示類包括用于開發(fā)基于Windows的應(yīng)用程序的Windows Form、用于開發(fā)Web應(yīng)

47、用程序的ASP.NET WebForm和XML Web Services。[17]</p><p>  2.1.2 .NET Framework版本發(fā)展</p><p>  .NET Framework自2002年2月13日發(fā)布1.0版本以來(lái)已經(jīng)經(jīng)歷了5個(gè)成熟版本,分別是1.0、1.1、2.0、3.0、3.5、4.0。[3]在其每一個(gè)版本中都作了優(yōu)化和升級(jí),目前最為成熟的版本為3.5。&l

48、t;/p><p>  本課題項(xiàng)目就是采用的.NET Framework 3.5作為開發(fā)和運(yùn)行平臺(tái)。這是由于該版本中所包含的大部分核心技術(shù)已經(jīng)申請(qǐng)為國(guó)際標(biāo)準(zhǔn),具有極強(qiáng)的擴(kuò)展性和平臺(tái)互操作性。在該版本的基礎(chǔ)上還出現(xiàn)了一些開源的.NET框架,如MONO等。本課題所研究的課題是提供一套真實(shí)可行的考試系統(tǒng),力求穩(wěn)定和精要,還要具有較強(qiáng)的擴(kuò)展性,并且需要使用ASP.NET AJAX技術(shù),該技術(shù)僅集成在.NET Framework

49、3.5中,因此.NET Framework 3.5則成了最合適的選擇。</p><p>  2.2 SQL Server</p><p>  本課題中采用的數(shù)據(jù)庫(kù)服務(wù)是由SQL Server 2008 Express Edition(速成版)提供的,它是微軟專門針對(duì)學(xué)生、初學(xué)者等入門級(jí)的SQL Server 2008的版本,比較適合用于本課題的研究和設(shè)計(jì)。</p><p

50、>  SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了第一個(gè)OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上分開,Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows NT 版本。而S

51、ybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)用。[7]</p><p>  2.2.1 SQL Server Express Edition概述</p><p>  SQL Server Express Edition是一個(gè)免費(fèi)、易用且便于管理的數(shù)據(jù)庫(kù)。SQL Server Express 與 Microsoft Visual Studio 2008集成在一起,可以

52、輕松開發(fā)功能豐富、存儲(chǔ)安全、可快速部署的數(shù)據(jù)驅(qū)動(dòng)應(yīng)用程序。SQL Server Express是免費(fèi)的,可以再分發(fā)(受制于協(xié)議),還可以起到客戶端數(shù)據(jù)庫(kù)以及基本服務(wù)器數(shù)據(jù)庫(kù)的作用。</p><p>  SQL Server Express Edition使用與其他SQL Server 2008版本同樣可靠的、高性能的數(shù)據(jù)庫(kù)引擎,也使用相同的數(shù)據(jù)訪問(wèn)API(如ADO.NET、T-SQL和SQL Native Cli

53、ent)。實(shí)際上,它與其他SQL Server 2008版本的不同僅僅體現(xiàn)在:</p><p><b>  缺乏企業(yè)版功能支持</b></p><p><b>  僅限一個(gè)CPU</b></p><p>  緩沖池內(nèi)存限制為1GB</p><p><b>  數(shù)據(jù)庫(kù)最大為4GB</b

54、></p><p>  SQL Server Express Edition的開發(fā)一則是為了用作服務(wù)器產(chǎn)品,特別是作為Web服務(wù)器或數(shù)據(jù)庫(kù)服務(wù)器,再則是用作本地客戶端數(shù)據(jù)存儲(chǔ)區(qū),其中的應(yīng)用程序數(shù)據(jù)訪問(wèn)不依賴于網(wǎng)絡(luò)。易用性和簡(jiǎn)單性是主要設(shè)計(jì)目標(biāo)。[7]</p><p>  2.2.2 SQL Server 2008 Express Edition的主要功能[8]</p>

55、<p>  SQL Server 2008 Express Edition的主要功能有:</p><p><b>  引擎規(guī)范</b></p><p>  該版本的引擎只支持1個(gè)CPU、1GB RAM和4GB的數(shù)據(jù)庫(kù)大小,以此來(lái)輕松區(qū)別其他的SQL Server 2008版本。另外,沒(méi)有工作負(fù)荷中止值,并且引擎的執(zhí)行方式與他版本是相同的。對(duì)可以附著到SQL

56、Server Express Edition的用戶數(shù)沒(méi)有硬編碼限制,但其CPU和內(nèi)存限制實(shí)際上可以從SQL Server Express Edition數(shù)據(jù)庫(kù)獲取可接受響應(yīng)次數(shù)的用戶數(shù)。</p><p><b>  工具支持</b></p><p>  微軟提供了一個(gè)名為SQL Server Management Studio Express Edition(SSMS

57、EE)的新GUI工具可以使管理數(shù)據(jù)庫(kù)、執(zhí)行查詢分析功能變得十分輕松,并且可以免費(fèi)重新發(fā)布。</p><p><b>  網(wǎng)絡(luò)支持</b></p><p>  盡管用戶可以顯式打開其他支持的協(xié)議(如TCP/IP和Named Pipes),但默認(rèn)情況下,SQL Server Express Edition只能訪問(wèn)本地計(jì)算機(jī)上的共享內(nèi)存連接類型。它不支持VIA協(xié)議和HTTP

58、協(xié)議。</p><p><b>  數(shù)據(jù)訪問(wèn)支持</b></p><p>  SQL Server Express Edition支持使用ADO.NET進(jìn)行托管訪問(wèn)。微軟建議使用SqlClient數(shù)據(jù)提供程序來(lái)開發(fā)應(yīng)用程序。ADO.NET 數(shù)據(jù)提供程序支持varchar(MAX)和XML之類的新SQL Server數(shù)據(jù)類型以及用戶定義類型。</p>&l

59、t;p><b>  安全性</b></p><p>  對(duì)于 SQL Server Express Edition,它的一個(gè)目標(biāo)是為不同組件提供安全的默認(rèn)值。例如,關(guān)閉網(wǎng)絡(luò)協(xié)議(如TCP/IP和Named Pipes)。不啟動(dòng)SQL Browser服務(wù),除非用戶在安裝命令行中顯式請(qǐng)求啟動(dòng)。如果使用 Windows 身份驗(yàn)證,則默認(rèn)情況下禁用 SA 帳戶或系統(tǒng)管理員帳戶。計(jì)算機(jī)上的普通用

60、戶幾乎沒(méi)有對(duì) SQL Server Express 實(shí)例的權(quán)限。服務(wù)器上的本地管理員必須向普通用戶顯式授予相關(guān)權(quán)限,這些用戶才能使用其功能。</p><p><b>  復(fù)制支持</b></p><p>  用戶通過(guò)復(fù)制可以使用“發(fā)布服務(wù)器-訂閱服務(wù)器”模式使用戶定義的間隔保持多個(gè)站點(diǎn)的數(shù)據(jù)副本同步。</p><p><b>  用戶

61、實(shí)例</b></p><p>  用戶實(shí)例是SQL Server Express Edition中的新功能,可以像處理文件一樣處理數(shù)據(jù)庫(kù)。即本地?cái)?shù)據(jù)庫(kù)可以隨應(yīng)用程序一起移動(dòng)、復(fù)制或通過(guò)網(wǎng)絡(luò)傳送,并且在新的位置,不需要進(jìn)行額外配置就可以使其正常運(yùn)行。</p><p>  2.3 Visual Studio .NET</p><p>  Visual Stu

62、dio .NET是一套完整的開發(fā)工具集,用于生成ASP.NET Web應(yīng)用程序、XML Web Services、桌面應(yīng)用程序和移動(dòng)應(yīng)用程序。Visual Basic、Visual C++、Visual C# 和 Visual J# 等開發(fā)語(yǔ)言全都使用相同的集成開發(fā)環(huán)境(IDE),利用此IDE可以共享工具且有助于創(chuàng)建混合語(yǔ)言解決方案。</p><p>  Visual Studio .NET提供了如下整體功能[2

63、5]:</p><p>  提供一個(gè)一致的面向?qū)ο蟮木幊汰h(huán)境,而無(wú)論對(duì)象代碼是在本地存儲(chǔ)和執(zhí)行,還是在本地執(zhí)行但在Internet上分布,或者是在遠(yuǎn)程執(zhí)行的。</p><p>  提供一個(gè)將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境。</p><p>  提供一個(gè)可提高代碼執(zhí)行安全性的代碼執(zhí)行環(huán)境。</p><p>  提供一個(gè)可消除腳本環(huán)境

64、或解釋環(huán)境的性能問(wèn)題的代碼執(zhí)行環(huán)境。</p><p>  使開發(fā)人員的經(jīng)驗(yàn)在面對(duì)類型大不相同的應(yīng)用程序(如基于Windows的應(yīng)用程序和基于Web的應(yīng)用程序)時(shí)保持一致。</p><p>  按照工業(yè)標(biāo)準(zhǔn)生成所有通信,以確?;贛icrosoft Visual Studio .NET的代碼可與任何其他代碼集成。</p><p>  Visual Studio .NE

65、T通過(guò)提供熟知的、可共享的開發(fā)環(huán)境,簡(jiǎn)化了開發(fā)強(qiáng)大的、可靠地企業(yè)級(jí)Web解決方案的工作,并提高了開發(fā)人員的開發(fā)效率。預(yù)建的組件、編程向?qū)б约爸赜糜扇魏握Z(yǔ)言開發(fā)的組件的能力,都可以顯著地縮減開發(fā)時(shí)間?;谥悄芨兄∕icrosoft IntelliSense)的代碼自動(dòng)生成技術(shù)可以更快地產(chǎn)生正確代碼。強(qiáng)大的、端到端的對(duì)跨語(yǔ)言調(diào)試的支持增強(qiáng)了應(yīng)用程序的可操作性。</p><p>  本課題項(xiàng)目中視圖和業(yè)務(wù)邏輯部分采用

66、的是Microsoft Visual Studio 2008 Professional進(jìn)行開發(fā)的,該版本可以支持.NET Framework 2.0/3.0/3.5,具有較強(qiáng)的擴(kuò)展性和靈活性,并且該版本的其他輔助設(shè)計(jì)功能也非常完善和穩(wěn)定。</p><p><b>  2.4 C#語(yǔ)言</b></p><p>  C#(C Sharp)是微軟公司為.NET Framew

67、ork量身訂做的程序設(shè)計(jì)語(yǔ)言,C#擁有C/C++的強(qiáng)大功能以及Visual Basic簡(jiǎn)易使用的特性,是第一個(gè)面向組件(Component-oriented)的程序語(yǔ)言,和C++與Java一樣為面向?qū)ο螅╫bject-oriented)程序語(yǔ)言。[5]</p><p>  C#以其簡(jiǎn)單性、現(xiàn)代性、面向?qū)ο?、版本可控、靈活性和安全性迅速地被廣泛使用,稱為了.NET平臺(tái)上的主流程序設(shè)計(jì)語(yǔ)言。[6]</p>

68、<p>  就本課題項(xiàng)目的開發(fā)而言,選擇任何一種支持.NET Framework的程序設(shè)計(jì)語(yǔ)言都可以完成,但是由于C#是.NET平臺(tái)上應(yīng)用程序開發(fā)的主流語(yǔ)言,有利于項(xiàng)目的后期維護(hù)和改進(jìn)。</p><p>  2.5 ASP.NET</p><p>  ASP.NET是使開發(fā)人員能夠使用.NET Framework開發(fā)基于Web的應(yīng)用程序的宿主環(huán)境。但是,ASP.NET不止是一

69、個(gè)運(yùn)行庫(kù)宿主,它是使用托管代碼開發(fā)網(wǎng)站和通過(guò)Internet分布的對(duì)象的完整結(jié)構(gòu)。WebForm和XML Web Services都將IIS 和ASP.NET用作應(yīng)用程序的發(fā)布機(jī)制,并且兩者在.NET Framework中都具有支持類集合。ASP.NET運(yùn)行環(huán)境示意如圖2-4所示。</p><p>  圖2-4 ASP.NET運(yùn)行環(huán)境[10]</p><p>  目前,基于.NET Fra

70、mework最新版本的ASP.NET技術(shù)包括了WebForm、AJAX、MVC、Silverlight等多項(xiàng)分支技術(shù)。其中WebForm是最經(jīng)典的ASP.NET Web應(yīng)用程序開發(fā)技術(shù),它以事件驅(qū)動(dòng)的方式完成Web應(yīng)用程序的開發(fā),使得習(xí)慣了傳統(tǒng)的Windows界面應(yīng)用程序的開發(fā)者非常容易入手。并且,.NET Framework類型庫(kù)為ASP.NET WebForm提供了非常豐富的組件(WebControl)支持,通過(guò)這些組件,開發(fā)者可以

71、快速地開發(fā)出基于WebForm的應(yīng)用程序。ASP.NET Web應(yīng)用程序是由一個(gè)或多個(gè)WebForm組成,而WebForm就是可以訪問(wèn)服務(wù)器資源的動(dòng)態(tài)Web頁(yè)。[17]</p><p>  另外,ASP.NET WebForm不依靠客戶端腳本,因此它不依賴于客戶端瀏覽器類型或操作系統(tǒng)。這種獨(dú)立性允許開發(fā)獨(dú)立的WebForm,這種窗體可以被任何可以訪問(wèn)Internet并具有Web瀏覽器的設(shè)備瀏覽。ASP.NET是.

72、NET Framework的一部分,可以用任何基于.NET的語(yǔ)言開發(fā)ASP.NET Web應(yīng)用程序,本課題采用的是C#。</p><p>  2.5.1 ASP.NET主要特性</p><p>  ASP.NET的一些主要特性如下:</p><p><b>  WebForm</b></p><p>  WebForm是

73、ASP.NET新的程序設(shè)計(jì)模式。WebForm結(jié)合了ASP簡(jiǎn)易開發(fā)和VB高效率的優(yōu)點(diǎn),可以把控件拖放到頁(yè)面上,然后對(duì)其編程(在代碼頁(yè)中隱藏)來(lái)提供交互、調(diào)用業(yè)務(wù)對(duì)象和執(zhí)行其他任務(wù)。</p><p><b>  服務(wù)器控件</b></p><p>  服務(wù)器控件是WebForm程序設(shè)計(jì)模型的主要組件。它們近似地映射了HTML元素,并可提供強(qiáng)大的服務(wù)端編程能力。它們運(yùn)行在

74、服務(wù)器上,輸出HTML,這些HTML可被高版本瀏覽器或任何支持HTML 4.0(XHTML 1.0)及以上版本的瀏覽器所支持。</p><p>  Web Services</p><p>  Web Services是ASP.NET的關(guān)鍵部分,它允許創(chuàng)建可編程的服務(wù),這些服務(wù)對(duì)于Internet或本地局域網(wǎng)上的其他開發(fā)者是可用的。Web Services是基于現(xiàn)存的SOAP標(biāo)準(zhǔn),因此它們

75、允許在不同的平臺(tái)相互使用。</p><p><b>  高速緩存</b></p><p>  ASP.NET包含一個(gè)功能強(qiáng)大的高速緩存引擎,它減少了Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器處理的負(fù)載,從而改進(jìn)了應(yīng)用程序的執(zhí)行性能。</p><p><b>  新的配置方法</b></p><p>  ASP.NE

76、T使用新的方法來(lái)為Web應(yīng)用程序存儲(chǔ)配置信息。與IIS將這些信息存儲(chǔ)在很難訪問(wèn)的數(shù)據(jù)庫(kù)中不同,ASP.NET將這些信息存儲(chǔ)在人和機(jī)器都易讀的基于XML的配置文件中。[1]</p><p>  2.5.2 ASP.NET Web應(yīng)用程序</p><p>  ASP.NET Web應(yīng)用程序包括不同的部分和組件。創(chuàng)建ASP.NET Web應(yīng)用程序涉及使用它的所有部分和組件,并使其正常運(yùn)轉(zhuǎn)。<

77、;/p><p>  ASP.NET Web應(yīng)用程序的組成部分包括:</p><p>  WebForms(或.aspx頁(yè))</p><p>  WebForm和.aspx頁(yè)為Web應(yīng)用程序提供用戶接口。</p><p><b>  代碼隱藏頁(yè)</b></p><p>  代碼隱藏頁(yè)是和WebForm關(guān)

78、聯(lián)在一起的,它包含WebForm的服務(wù)器端代碼。</p><p><b>  配置文件</b></p><p>  配置文件是為Web應(yīng)用程序和Web服務(wù)器定義了默認(rèn)設(shè)置的XML文件。每個(gè)Web應(yīng)用程序都有一個(gè)Web.config配置文件。</p><p>  Global.asax文件</p><p>  Global

79、.asax文件包含對(duì)有ASP.NET引發(fā)的應(yīng)用程序級(jí)事件作出響應(yīng)的必要代碼。</p><p>  XML Web Service鏈接</p><p>  XML Web Service鏈接允許Web應(yīng)用程序使用XML Web Service發(fā)送和接收數(shù)據(jù)。</p><p><b>  數(shù)據(jù)庫(kù)連接</b></p><p>

80、  數(shù)據(jù)庫(kù)連接允許Web應(yīng)用程序域數(shù)據(jù)庫(kù)資源之間傳遞數(shù)據(jù)。</p><p><b>  高速緩存</b></p><p>  高速緩存可使Web應(yīng)用程序在第一次請(qǐng)求之后更快地返回WebForm和數(shù)據(jù)。[1]</p><p>  2.6 ASP.NET AJAX</p><p>  Ajax并不是一個(gè)新技術(shù),它只是一個(gè)標(biāo)準(zhǔn)

81、的合并,以識(shí)別當(dāng)前Web瀏覽器的豐富的潛在功能。Ajax是Jesse James Garrett提出,是Asynchronous JavaScript and XML的縮寫。[18]</p><p>  在支持Ajax的Web應(yīng)用程序中,最重要的特性是Web瀏覽器能在操作的外部與Web服務(wù)器通信。這稱為異步回送或部分頁(yè)面的會(huì)送。實(shí)際上,這意味著用戶可以與服務(wù)器端的功能和數(shù)據(jù)交互,而無(wú)需更新整個(gè)頁(yè)面。[18]例如,

82、單擊一個(gè)鏈接,移動(dòng)到表的第二頁(yè)數(shù)據(jù)上時(shí),Ajax可以只刷新表的內(nèi)容,而不刷新整個(gè)Web頁(yè)面。也就是說(shuō),需要的Internet通信量較少,從而使Web應(yīng)用程序的響應(yīng)比較快。</p><p>  Microsoft對(duì)Ajax進(jìn)行了進(jìn)一步的封裝,稱為ASP.NET AJAX。這個(gè)實(shí)現(xiàn)方式采用了Ajax模型,將它應(yīng)用于ASP.NET架構(gòu)。ASP.NET AJAX提供了許多服務(wù)器控件和客戶端技術(shù),它們專用于ASP.NET開

83、發(fā)人員,可以毫不費(fèi)力地在Web應(yīng)用程序中添加Ajax功能。在ASP.NET的最新版本中,ASP.NET AJAX是ASP.NET核心功能的一部分。ASP.NET AJAX提供了如下功能[18]:</p><p>  服務(wù)器端架構(gòu)允許ASP.NET Web頁(yè)面響應(yīng)部分頁(yè)面的回送操作。</p><p>  ASP.NET服務(wù)器控件便于實(shí)現(xiàn)Ajax功能。</p><p>

84、  HTTP處理程序允許ASP.NET Web服務(wù)在部分頁(yè)面的回送操作中,使用JavaScript Object Notation(JSON)串行化功能與客戶端代碼通信。</p><p>  Web服務(wù)支持客戶端代碼訪問(wèn)ASP.NET應(yīng)用程序服務(wù),包括身份驗(yàn)證和個(gè)性化服務(wù)。</p><p>  網(wǎng)站模板可用于創(chuàng)建支持ASP.NET AJAX的Web應(yīng)用程序。</p><

85、p>  客戶端的JavaScript庫(kù)對(duì)JavaScript語(yǔ)法進(jìn)行了許多改進(jìn),還提供了許多代碼,來(lái)簡(jiǎn)化Ajax功能的實(shí)現(xiàn)。</p><p>  這些服務(wù)器控件和服務(wù)器端的架構(gòu)統(tǒng)稱為ASP.NET Extensions。ASP.NET AJAX的客戶端部分成為AJAX庫(kù)。另外還有兩個(gè)軟件包:</p><p>  ASP.NET AJAX Control Toolkit:這個(gè)軟件包包含

86、了由開發(fā)團(tuán)隊(duì)創(chuàng)建的其他服務(wù)器控件,這些控件是共享的。</p><p>  Microsoft AJAX Library 3.5:這個(gè)軟件包包含JavaScript客戶端架構(gòu),它們由ASP.NET AJAX用于執(zhí)行Ajax功能。</p><p>  2.7 ADO.NET</p><p>  ADO.NET是ADO(ActiveX Data Object)的后繼技術(shù),

87、它是.NET Framework的一部分,為應(yīng)用程序提供數(shù)據(jù)訪問(wèn)能力。ADO.NET為運(yùn)行SQL查詢、存儲(chǔ)過(guò)程、操作XML數(shù)據(jù)提供了所需的工具,它能用于訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng),如SQL Server以及很多其他配置了OLE DB Provider或ODBC Provider的數(shù)據(jù)源。在某種程度上,ADO.NET代表了最新版本的ADO技術(shù),但ADO.NET同時(shí)也引入了很多重要的改變,因此也很適合于結(jié)構(gòu)松散的、本質(zhì)上非連接的Web應(yīng)用程序。[

88、14]</p><p>  ADO.NET的設(shè)計(jì)目的是幫助開發(fā)者建立在Intranet或Internet環(huán)境中運(yùn)行的高效多層數(shù)據(jù)庫(kù)應(yīng)用程序。這些應(yīng)用程序通常會(huì)呈現(xiàn)出如下特點(diǎn):</p><p>  基于Web應(yīng)用程序模型之間呈現(xiàn)為越來(lái)越松散的耦合;</p><p>  使用XML對(duì)數(shù)據(jù)進(jìn)行編碼并通過(guò)網(wǎng)絡(luò)傳輸;</p><p>  Web應(yīng)用程序

89、將HTTP協(xié)議作為在層間通信的協(xié)議;</p><p>  設(shè)計(jì)ADO.NET的目的是為了滿足一種新的編程模型的要求:具有斷開式數(shù)據(jù)結(jié)構(gòu);能夠與XML緊密集成;具有通用數(shù)據(jù)表現(xiàn)形式并能夠組合來(lái)自多個(gè)數(shù)據(jù)源的數(shù)據(jù);具有為與數(shù)據(jù)庫(kù)交互而優(yōu)化的功能。</p><p>  ADO.NET是.NET平臺(tái)的數(shù)據(jù)訪問(wèn)機(jī)制,它由數(shù)據(jù)集(DataSet)和數(shù)據(jù)提供程序(Data Provider)組成,后者是

90、一組包含Connection、Command、DataReader和DataAdapter對(duì)象的組件,其結(jié)構(gòu)如圖2-5所示。</p><p>  圖2-5 ADO.NET結(jié)構(gòu)體系[1]</p><p>  DataSet是ADO.NET的斷開式結(jié)構(gòu)的核心組件,能實(shí)現(xiàn)獨(dú)立于數(shù)據(jù)源的數(shù)據(jù)訪問(wèn)。因此,它可以用于多種不同的數(shù)據(jù)源,用于XML數(shù)據(jù)或用于管理應(yīng)用程序的本地?cái)?shù)據(jù)。DataSet是包含一個(gè)

91、或多個(gè)數(shù)據(jù)表(DataTable)對(duì)象的集合,這些對(duì)象包含數(shù)據(jù)行(DataRow)和數(shù)據(jù)列(DataColumn)以及主鍵、外鍵約束和有關(guān)DataTable對(duì)象中數(shù)據(jù)的關(guān)系信息。</p><p>  另一個(gè)核心組件是.NET Framework數(shù)據(jù)提供程序,其設(shè)計(jì)目的是實(shí)現(xiàn)數(shù)據(jù)操作和對(duì)數(shù)據(jù)的快速、向前、只讀訪問(wèn)。Connection對(duì)象提供與數(shù)據(jù)源的連接。Command對(duì)象用于返回?cái)?shù)據(jù)、修改數(shù)據(jù)、運(yùn)行存儲(chǔ)過(guò)程以及

92、發(fā)送或檢索參數(shù)信息的數(shù)據(jù)庫(kù)命令。DataReader從數(shù)據(jù)源中得到高性能的數(shù)據(jù)流。DataAdapter是連接DataSet對(duì)象和數(shù)據(jù)源的橋梁,DataAdapter使用Command對(duì)象在數(shù)據(jù)源中執(zhí)行SQL命令,以便數(shù)據(jù)加載到DataSet中,并使DataSet中的數(shù)據(jù)與數(shù)據(jù)源保持一致??梢詾槿魏螖?shù)據(jù)源編寫.NET Framework數(shù)據(jù)提供程序。</p><p>  2.8 三層架構(gòu)簡(jiǎn)介</p>

93、<p>  在軟件體系架構(gòu)設(shè)計(jì)中,分層式結(jié)構(gòu)是最為常見(jiàn)的,也是非常重要的一種結(jié)構(gòu)。微軟公司推薦將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問(wèn)層(DAL)。區(qū)分層次的目的即為了“高內(nèi)聚,低耦合”的思想。三層架構(gòu)模型如圖2-6所示。</p><p>  在這三個(gè)層次中,系統(tǒng)主要功能和業(yè)務(wù)邏輯都在業(yè)務(wù)邏輯層進(jìn)行處理。所謂三層體系結(jié)構(gòu),是在視圖層與數(shù)據(jù)庫(kù)之間加入了一個(gè)“中間層”,或叫組件

94、層。</p><p>  圖2-6 三層體系結(jié)構(gòu)</p><p>  三層體系結(jié)構(gòu)并不是指物理上的三層,也不是指用三臺(tái)機(jī)器來(lái)部署就是三層體系結(jié)構(gòu),而且不僅B/S應(yīng)用才是三層體系結(jié)構(gòu),三層是指邏輯上的三層,即使這三個(gè)層次放置到一臺(tái)機(jī)器上。[4]</p><p>  B/S模式中的三層結(jié)構(gòu)主要功能:[30]</p><p>  表示層(UI)用于

95、顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。該層主要面向最終用戶,用戶通過(guò)Web瀏覽器向Web服務(wù)器提出服務(wù)請(qǐng)求,Web服務(wù)器對(duì)用戶驗(yàn)證身份后,使用HTTP協(xié)議將所需的頁(yè)面?zhèn)魉徒o客戶端瀏覽器。</p><p>  業(yè)務(wù)邏輯層(BLL)針對(duì)具體問(wèn)題的操作,也可以認(rèn)為是對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯的處理。該層位于整個(gè)三層體系的中間,起到了數(shù)據(jù)交換中承上啟下的作用。</p><p

96、>  數(shù)據(jù)訪問(wèn)層(DAL)有時(shí)也稱為持久層,其功能主要是負(fù)責(zé)數(shù)據(jù)庫(kù)的訪問(wèn),可以訪問(wèn)數(shù)據(jù)庫(kù)系統(tǒng)、二進(jìn)制文件、文本文件或XML文件。簡(jiǎn)單的說(shuō),該層實(shí)現(xiàn)了對(duì)數(shù)據(jù)表的Select、Insert、Update和Delete等操作。</p><p><b>  第三章 需求分析</b></p><p>  本課題所研究的考試系統(tǒng)是針對(duì)學(xué)生在完成了一些需要實(shí)際動(dòng)手操作的實(shí)驗(yàn)課

97、程后需要進(jìn)行的課程測(cè)驗(yàn)或者考試而設(shè)計(jì)的實(shí)驗(yàn)?zāi)M考試系統(tǒng)。本系統(tǒng)用模擬現(xiàn)實(shí)實(shí)驗(yàn)的方式考查學(xué)生對(duì)課程中實(shí)驗(yàn)課題掌握的程度,通過(guò)在本系統(tǒng)上的考試也能得出學(xué)生的課程成績(jī)。本考試系統(tǒng)應(yīng)該具備一般在線考試系統(tǒng)的基本功能,如考試設(shè)置、學(xué)生管理、考題管理、成績(jī)查詢、學(xué)生考試等。</p><p>  本系統(tǒng)的實(shí)際應(yīng)用環(huán)境依托學(xué)?,F(xiàn)有的校園網(wǎng)環(huán)境,可以進(jìn)行大規(guī)模的考試,總體結(jié)構(gòu)模型如圖3-1所示。</p><p&

98、gt;  圖3-1 項(xiàng)目總體結(jié)構(gòu)模型</p><p>  3.1 業(yè)務(wù)功能需求分析</p><p>  本課題所研究的考試系統(tǒng)和傳統(tǒng)考試系統(tǒng)一樣具備考試和后臺(tái)管理的功能,但由于本系統(tǒng)需求的特殊性,它與傳統(tǒng)的考試系統(tǒng)又有一定的差別。傳統(tǒng)的考試系統(tǒng)的考題主要是客觀題為主,如選擇題、判斷題和填空題,因?yàn)檫@些題目可以比較方便的由計(jì)算機(jī)來(lái)完成閱卷判分的工作。本考試系統(tǒng)則主要針對(duì)實(shí)驗(yàn)課程的內(nèi)容來(lái)進(jìn)行考

99、試,因此就不能依賴于客觀題來(lái)考查學(xué)生的學(xué)習(xí)效果,需要對(duì)真實(shí)的實(shí)驗(yàn)環(huán)境進(jìn)行模擬,讓學(xué)生在考試系統(tǒng)中完成模擬現(xiàn)實(shí)的實(shí)驗(yàn)操作。</p><p>  從學(xué)生的角度來(lái)看,他們需要通過(guò)學(xué)號(hào)登錄考試系統(tǒng)進(jìn)行答題,完成模擬的實(shí)驗(yàn)操作題目,并能在交卷或考試結(jié)束時(shí)查看自己的成績(jī)。對(duì)于管理端來(lái)說(shuō),就與傳統(tǒng)的考試系統(tǒng)功能相似,應(yīng)具備考試及考場(chǎng)的管理、學(xué)生的管理、成績(jī)查詢統(tǒng)計(jì)以及管理端安全訪問(wèn)的管理。與傳統(tǒng)考試系統(tǒng)不同的地方,主要是考題的

100、設(shè)計(jì),本系統(tǒng)考題的設(shè)計(jì)采用Flash來(lái)實(shí)現(xiàn),要求使用Flash交互性動(dòng)畫來(lái)實(shí)現(xiàn)考題,每個(gè)題目需要設(shè)計(jì)一個(gè)Flash文件,題庫(kù)中的題目都由這些Flash文件來(lái)構(gòu)成。</p><p>  通過(guò)對(duì)本系統(tǒng)的總體需求進(jìn)行分析,其總體業(yè)務(wù)流程如圖3-2所示。</p><p>  圖3-2 總體業(yè)務(wù)流程圖</p><p>  3.1.1考試端功能需求</p><

101、;p>  根據(jù)課題研究小組提出的需求,對(duì)考試端的設(shè)計(jì)盡量做到操作簡(jiǎn)單、安全以及嚴(yán)謹(jǐn)。具體需求分析如下:</p><p><b>  學(xué)生登錄</b></p><p>  在學(xué)生登錄時(shí),學(xué)生只需要輸入各自的學(xué)號(hào)即可登錄,不需要進(jìn)行密碼驗(yàn)證。但是,在學(xué)生輸入了學(xué)號(hào)之后能核對(duì)自己的基本信息和考試信息,從而判斷自己的信息是否正確,以及判斷自己是否能正常進(jìn)入考試系統(tǒng)進(jìn)行考

102、試。</p><p>  在學(xué)生確認(rèn)了基本信息和考試信息之后才能進(jìn)入考試系統(tǒng)答題,否則應(yīng)提示學(xué)生與監(jiān)考老師或管理員聯(lián)系。另外,還應(yīng)該驗(yàn)證該學(xué)生是否已經(jīng)在考試當(dāng)中,避免重復(fù)登錄以及代考作弊的情況發(fā)生。</p><p><b>  學(xué)生考試</b></p><p>  學(xué)生進(jìn)入考試后,系統(tǒng)根據(jù)管理端設(shè)置的本場(chǎng)考試參數(shù)配置考試頁(yè)面。具體需求如下:&l

103、t;/p><p>  考試頁(yè)面根據(jù)管理端設(shè)置的本場(chǎng)考試抽屜數(shù)量隨機(jī)從題庫(kù)中抽取考題文件(Flash文件)按先后順序?qū)腠?yè)面,學(xué)生完成了一道題目之后手動(dòng)操作導(dǎo)入下一道題目。</p><p>  學(xué)生在答題過(guò)程中不允許使用瀏覽器的“后退”功能,必須依次完成各個(gè)題目,做過(guò)的題目不允許重新再做。</p><p>  在考試頁(yè)面中需要顯示學(xué)生信息和考試剩余時(shí)間,還需提供手動(dòng)交卷功

104、能。</p><p>  在頁(yè)面顯著位置提示學(xué)生本場(chǎng)考試的注意事項(xiàng)。</p><p>  學(xué)生交卷以及考試結(jié)束</p><p>  學(xué)生在考試頁(yè)面中手動(dòng)交卷或者考試時(shí)間結(jié)束時(shí),進(jìn)入考試結(jié)束頁(yè)面。在該頁(yè)面顯示該學(xué)生的基本信息、考試總分以及每道題目的得分等信息。并且,不允許學(xué)生使用瀏覽器的“后退”功能,避免學(xué)生在得知自己未合格的情況下重新進(jìn)入考試頁(yè)面答題,從而達(dá)到考試的

105、目的。</p><p>  3.1.2 管理端功能需求</p><p>  根據(jù)本課題研究小組所提出的需求,管理端應(yīng)該具備考試管理、學(xué)生管理、考題管理、成績(jī)查詢統(tǒng)計(jì)以及安全性管理等功能。具體分析如下:</p><p><b>  考試信息管理</b></p><p>  考試信息管理主要包括創(chuàng)建考試和管理考試兩部分。&l

106、t;/p><p>  管理員可根據(jù)課程考試安排創(chuàng)建考試,創(chuàng)建考試時(shí)需要配置該場(chǎng)考試的名稱、隨機(jī)抽題數(shù)量以及考試的一些注意事項(xiàng)描述等信息。考試創(chuàng)建后,管理員可根據(jù)課程教師的安排選擇適當(dāng)?shù)臅r(shí)間開始考試手動(dòng)操作啟動(dòng)考試。只有管理員開始考試后,學(xué)生在考試端才能進(jìn)入考試答題。</p><p>  考試創(chuàng)建后管理員可以直接啟動(dòng)考試,也可以在考試管理模塊啟動(dòng)考試??荚嚬芾砟K中應(yīng)顯示當(dāng)前正在進(jìn)行或正準(zhǔn)備進(jìn)行

107、的考試信息,并提供手動(dòng)結(jié)束考試的功能。每場(chǎng)考試所抽取的題目數(shù)量不等,每道題目要求完成的時(shí)長(zhǎng)也不盡相同,因此系統(tǒng)無(wú)需根據(jù)時(shí)間自動(dòng)結(jié)束考試。</p><p>  在考試管理模塊中還應(yīng)提供歷史考試信息的瀏覽功能,從而可以為管理員或課程教師提供歷史參考信息,其中包括考試名稱、隨機(jī)抽題數(shù)量、考試開始時(shí)間、考試狀態(tài)(未開始、學(xué)生中和已結(jié)束)以及考試描述等信息。管理員可以根據(jù)實(shí)際情況對(duì)歷史考試信息進(jìn)行刪除,刪除考試信息時(shí)應(yīng)讓管

108、理員進(jìn)行確認(rèn)。</p><p><b>  學(xué)生信息管理</b></p><p>  學(xué)生信息管理主要包括添加學(xué)生信息和管理學(xué)生信息兩大部分。其中添加學(xué)生信息可以單個(gè)添加也可以通過(guò)學(xué)生名單(Excel文件)批量的添加學(xué)生信息。</p><p>  添加學(xué)生信息時(shí)需要錄入學(xué)生的學(xué)號(hào)(即參加考試的考號(hào))、姓名、性別和班級(jí)。為了簡(jiǎn)化后臺(tái)管理操作,學(xué)生

109、的班級(jí)信息可以從數(shù)據(jù)庫(kù)中現(xiàn)存的班級(jí)名稱中選擇,如果該學(xué)生不屬于數(shù)據(jù)庫(kù)現(xiàn)存的所有班級(jí),管理員也可以手動(dòng)輸入考生的班級(jí)名稱。</p><p>  批量錄入學(xué)生信息功能則允許管理員通過(guò)學(xué)生名單的電子表格文檔(Excel文件)批量導(dǎo)入數(shù)據(jù)庫(kù)。由于不同時(shí)期或不同班級(jí)的學(xué)生名單格式可能有所不同,需提供一份專門用于本系統(tǒng)批量錄入學(xué)生信息的Excel模板表格,當(dāng)需要批量錄入時(shí)將原學(xué)生名單表格中的學(xué)號(hào)、姓名、性別和班級(jí)信息復(fù)制到模

110、板表格中,通過(guò)該模板表格進(jìn)行導(dǎo)入。批量導(dǎo)入時(shí)應(yīng)提示管理員所導(dǎo)入學(xué)生信息的數(shù)量以及導(dǎo)入是否成功,并且能夠進(jìn)行導(dǎo)入前以及導(dǎo)入后的預(yù)覽。</p><p>  管理學(xué)生信息包括對(duì)學(xué)生姓名、性別、班級(jí)和考試狀態(tài)等基本信息的修改,學(xué)生信息的刪除,學(xué)生信息的搜索等功能。由于學(xué)生在進(jìn)行考試過(guò)程中可能出現(xiàn)斷網(wǎng)或非正常關(guān)機(jī)等突發(fā)情況,此時(shí)學(xué)生還可能處于“考試中”的狀態(tài),因此在管理學(xué)生信息模塊里面還應(yīng)該提供將學(xué)生考試狀態(tài)設(shè)置為“未考試

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論