基于bs的計算機等級考試系統(tǒng)的設(shè)計與實現(xiàn)——畢業(yè)論文_第1頁
已閱讀1頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  基于B/S的計算機等級考試系統(tǒng)的設(shè)計與實現(xiàn)</p><p><b>  摘 要</b></p><p>  隨著計算機技術(shù)的發(fā)展及計算機的日益普及,基于B/S結(jié)構(gòu)的考試系統(tǒng)與無紙化辦公一樣已成為大勢所趨。論文詳細論述了一個基于B/S結(jié)構(gòu)的計算機等級考試系統(tǒng)的設(shè)計過程。軟件采用ASP.NET 2005作開發(fā)平臺,C#作編程語言,SQL Ser

2、ver 2005作數(shù)據(jù)庫管理系統(tǒng),實現(xiàn)了試題管理、試卷生成、在線考試、試卷評判、權(quán)限管理、在線報名及站內(nèi)公告等功能。系統(tǒng)符合全國計算機等級考試的要求。</p><p>  論文組織如下:首先闡述了該系統(tǒng)的開發(fā)背景、意義;其次介紹了相關(guān)的開發(fā)工具及技術(shù)基礎(chǔ);接著對系統(tǒng)的需求進行了分析,并提出了具體的設(shè)計方案和數(shù)據(jù)庫模型;然后展現(xiàn)了整個系統(tǒng)的具體實現(xiàn),包括數(shù)據(jù)庫的設(shè)計和連接,各功能模塊的實現(xiàn);最后對該軟件進行了嚴格的

3、測試。</p><p>  關(guān)鍵詞: B/S結(jié)構(gòu);計算機等級考試;考試系統(tǒng)</p><p>  The Design and Implementation of Computer Rank Examination System based on B/S</p><p><b>  Abstract</b></p><p>

4、;  With the development of the computer technology and the popularization of computers, the examination system based on B/S structure has become the trend of the times the same as the paperless office. The paper discusse

5、s in detail the development and design process of a computer rank examination system based on B/S structure. It uses ASP.NET 2005 as the development platform, C# as the programming language, SQL Server 2005 as the databa

6、se management system, and includes test questions management, e</p><p>  The paper is organized as following: Firstly, analyzes the background and significance; Secondly, introduces the development tools and

7、 the foundation of the technology; Thirdly, analyses the demand of the system, gives a specific design project and a database model; Then shows the implementation of the whole system, which includes the design and linkag

8、e of the database and the implementation of every module. Finally gives a test of the system.</p><p>  Key words: B/S structure; Computer rank test; Examination system</p><p><b>  目 錄<

9、/b></p><p><b>  論文總頁數(shù):31頁</b></p><p><b>  1 引 言1</b></p><p><b>  2 技術(shù)背景2</b></p><p>  2.1 B/S結(jié)構(gòu)2</p><p>  2.2 開發(fā)

10、工具簡介2</p><p>  2.2.1 Visual C# 2005簡介2</p><p>  2.2.2 SQL Sever 2005簡介3</p><p><b>  3系統(tǒng)分析3</b></p><p><b>  3.1需求分析3</b></p><p>

11、;  3.1.1系統(tǒng)需要解決的主要問題3</p><p>  3.1.2系統(tǒng)應(yīng)該具備的基本功能4</p><p>  3.2可行性分析4</p><p>  3.2.1技術(shù)可行性分析4</p><p>  3.2.2 經(jīng)濟可行性分析5</p><p>  3.2.3 社會因素方面的可行性分析5</p&

12、gt;<p><b>  4總體設(shè)計5</b></p><p>  4.1 基本設(shè)計思想及流程圖5</p><p>  4.2 系統(tǒng)功能結(jié)構(gòu)圖5</p><p>  4.3 系統(tǒng)架構(gòu)6</p><p>  4.3.1數(shù)據(jù)訪問層6</p><p>  4.3.2業(yè)務(wù)邏輯層7

13、</p><p>  4.3.3頁面顯示層7</p><p>  4.4數(shù)據(jù)庫的設(shè)計8</p><p>  4.4.1 創(chuàng)建數(shù)據(jù)庫8</p><p>  4.4.2 創(chuàng)建表8</p><p>  4.4.3關(guān)系設(shè)計10</p><p>  4.5數(shù)據(jù)訪問接口及通用組件10</p

14、><p>  4.5.1 獲取安全數(shù)據(jù)(GetSafeData)10</p><p>  4.5.2 構(gòu)造SQL語句(SQLString)10</p><p>  4.5.3 字符串加密(Security)11</p><p>  5網(wǎng)站后臺主要功能模塊11</p><p>  5.1 用戶登錄模塊設(shè)計11&l

15、t;/p><p>  5.1.1前臺頁面設(shè)計11</p><p>  5.1.2后臺功能代碼11</p><p>  5.2 后臺管理頁面設(shè)計12</p><p>  5.2.1人員管理頁面設(shè)計13</p><p>  5.2.2試題管理頁面設(shè)計14</p><p>  5.2.3公告管

16、理頁面設(shè)計15</p><p>  5.2.4密碼管理頁面設(shè)計17</p><p>  5.2.5試卷成績信息管理頁面設(shè)計17</p><p>  6網(wǎng)站前臺主要功能模塊19</p><p>  6.1網(wǎng)站公告頁面設(shè)計19</p><p>  6.2考生在線報名頁面設(shè)計20</p><p

17、>  6.3考生登錄頁面設(shè)計21</p><p>  6.4 考生在線考試頁面設(shè)計22</p><p><b>  7 系統(tǒng)測試25</b></p><p>  7.1 測試環(huán)境25</p><p>  7.1.1 硬件環(huán)境25</p><p>  7.1.2 軟件環(huán)境25<

18、;/p><p>  7.2 主要模塊測試26</p><p>  7.2.1 登錄模塊測試26</p><p>  7.2.2 考生考試模塊測試26</p><p>  7.2.3 管理員/閱卷員模塊測試27</p><p><b>  結(jié) 論28</b></p><

19、;p><b>  參考文獻29</b></p><p><b>  致 謝30</b></p><p><b>  聲 明31</b></p><p><b>  1 引 言</b></p><p>  目前學(xué)校與社會上的各種考試

20、大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經(jīng)過五個步驟,即人工出題、考生考試、人工閱卷、成績評估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會越來越大,并且其工作將是一件十分煩瑣和非常容易出錯的事情,可以說傳統(tǒng)的考試方式已經(jīng)不能適應(yīng)現(xiàn)代考試的需要。隨著計算機應(yīng)用的迅猛發(fā)展,網(wǎng)絡(luò)應(yīng)用不斷擴大,如遠程教育和虛擬大學(xué)的出現(xiàn)等等,且這些應(yīng)用正逐步深入到千家萬戶。人們迫切要求利用這些技術(shù)來進行在線考試,

21、以減輕人們的工作負擔(dān)及提高工作效率,與此同時也提高了考試的質(zhì)量,從而使考試更趨于公證、客觀,更加激發(fā)學(xué)生的學(xué)習(xí)興趣。例如目前許多國際著名的計算機公司所舉辦的各種認證考試絕大部分采用這種方式。</p><p>  在線考試模擬系統(tǒng)是現(xiàn)階段研究開發(fā)的一個熱點。它是建立在國際互聯(lián)網(wǎng)上的應(yīng)用系統(tǒng),客戶端的配置可以極為簡單,使考試不受地域的局限。一個完備的在線考試模擬系統(tǒng)可以使用戶在網(wǎng)上學(xué)習(xí)過后及時檢驗自己的學(xué)習(xí)效果,已發(fā)

22、現(xiàn)自己的不足,使得學(xué)習(xí)效率得到很大提高。在線考試模擬系統(tǒng)中題目的生成、試卷的提交、成績的批閱等都可以在網(wǎng)絡(luò)上自動完成。只要形成一套成熟的題庫就可以實現(xiàn)考試的自動化。這樣一來,教師所要做的只是精心設(shè)計題目、維護題庫,而不是組織考試,從而大大減輕了教師的負擔(dān),這表明其經(jīng)濟性是相當(dāng)可觀的。為了適應(yīng)新形勢的發(fā)展,我進行了這一系統(tǒng)的初步設(shè)計工作,也可以說是做一個初步的探索,希望它能夠在各類考試中發(fā)揮高效、便捷的作用,把老師從繁重的工作中解脫出來!

23、</p><p>  目前,網(wǎng)絡(luò)應(yīng)用軟件運行的模式主要有二類:Client/server模式,Browser/Web模式。前者主要的缺點是維護、升級較麻煩,后者是近幾年伴隨Internet迅速發(fā)展起來的一種技術(shù),它與客戶/服務(wù)器方式類似,客戶端是一個標(biāo)準的瀏覽器,服務(wù)器端是Web Server ,而Web Server與數(shù)據(jù)庫和應(yīng)用服務(wù)器的緊密結(jié)合,使得這種模式的應(yīng)用范圍不斷擴大,它已不僅僅用于網(wǎng)上查詢,有很多部

24、門的業(yè)務(wù)系統(tǒng)、企業(yè)的MIS系統(tǒng)紛紛采用這種模式,它的主要優(yōu)點是便于擴充應(yīng)用、升級維護簡便。</p><p>  另外,考試系統(tǒng)的軟件也必將不斷的更新;同時軟件產(chǎn)品本身就要經(jīng)過一個不斷自我完善的過程。</p><p>  基于上述考慮,用Browser/Web模式來設(shè)計考試系統(tǒng)比較合適,服務(wù)器端我們采用SQL Server數(shù)據(jù)庫系統(tǒng)和.Net框架來構(gòu)成考試的應(yīng)用服務(wù)系統(tǒng);客戶端采用瀏覽器來完

25、成考試全過程,同時可進行遠程系統(tǒng)維護和管理。</p><p>  利用網(wǎng)絡(luò)和數(shù)據(jù)庫技術(shù),結(jié)合目前硬件價格普遍下跌與寬帶網(wǎng)大力建設(shè)的有利優(yōu)勢,應(yīng)用微軟.NET技術(shù),我開發(fā)了基于B/S模式的多用戶在線考試模擬系統(tǒng)這一程序。它運用方便、操作簡單,效率很高(同時,它要求計算機配置也很高,尤其是服務(wù)器端)?,F(xiàn)階段雖只實現(xiàn)了試卷的客觀題部分,但已具有用戶注冊、用戶個人信息修改、多用戶同時在線考試、試卷生成、時間控制、自動判卷

26、,試題錄入、修改題庫、用戶管理、試卷管理、分數(shù)管理等重要功能,也就是說實現(xiàn)了真正的無紙化考試,滿足任何授權(quán)的考生在規(guī)定時間內(nèi)隨地考試并迅速獲得成績,同時也大大減輕了教師出題、出題和判卷等繁重的工作量。</p><p><b>  2 技術(shù)背景</b></p><p>  該在線考試系統(tǒng)主要采用Visual C# 2005、SQL Server 2005數(shù)據(jù)庫、Java

27、Script等技術(shù)和工具,整體設(shè)計遵循軟件工程的方法,經(jīng)過需求分析、總體設(shè)計、文檔和代碼的編制、模塊測試和系統(tǒng)實現(xiàn)幾個階段。下面就對這幾種技術(shù)和方法做一個概述。</p><p><b>  2.1 B/S結(jié)構(gòu)</b></p><p>  B/S(Browser/Server)結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu)。它是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進的

28、結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本(TCO)。</p><p>  以目前的技術(shù)看,局域網(wǎng)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過Internet / Intranet模式下數(shù)據(jù)庫應(yīng)用,相

29、對易于把握、成本也是較低的。它是一次性到位的開發(fā),能實現(xiàn)不同的人員,從不同的地點,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)訪問和操作共同的數(shù)據(jù)庫;它能有效地保護數(shù)據(jù)平臺和管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。特別是在JAVA這樣的跨平臺語言出現(xiàn)之后,B/S架構(gòu)管理軟件更是方便、快捷、高效。</p><p>  2.2 開發(fā)工具簡介</p><p>  

30、2.2.1 Visual C# 2005簡介</p><p>  Visual Studio 是一套完整的開發(fā)工具集,用于生成 ASP.NET Web 應(yīng)用程序、XML Web Services、桌面應(yīng)用程序和移動應(yīng)用程序。Visual Basic、Visual C++、Visual C# 和 Visual J# 全都使用相同的集成開發(fā)環(huán)境 (IDE),利用此 IDE 可以共享工具且有助于創(chuàng)建混合語言解決方案。另

31、外,這些語言利用了 .NET Framework 的功能,通過此框架可使用簡化 ASP Web 應(yīng)用程序和 XML Web Services 開發(fā)的關(guān)鍵技術(shù)。</p><p>  Microsoft Visual C# 2005(讀作 C sharp)是一種編程語言,它是為生成在 .NET Framework 上運行的多種應(yīng)用程序而設(shè)計的。C# 簡單、功能強大、類型安全,而且是面向?qū)ο蟮摹# 憑借它的許多創(chuàng)新,

32、在保持 C 樣式語言的表示形式和優(yōu)美的同時,實現(xiàn)了應(yīng)用程序的快速開發(fā)。</p><p>  Visual Studio 支持 Visual C#,這是通過功能齊全的代碼編輯器、項目模板、設(shè)計器、代碼向?qū)?、功能強大且易于使用的調(diào)試器以及其他工具實現(xiàn)的。通過.NET Framework 類庫,可以訪問多種操作系統(tǒng)服務(wù)和其他有用的精心設(shè)計的類,這些類可顯著加快開發(fā)周期。</p><p>  2.

33、2.2 SQL Sever 2005簡介</p><p>  SQL Server 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),是Microsoft推出新一代數(shù)據(jù)管理與分析軟件。SQL Server 是一個全面的、集成的、端到端的數(shù)據(jù)解決方案,它為企業(yè)中的用戶提供了一個安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應(yīng)用。</p><p>  SQL Server 是一個全面的、集成的、端到端的數(shù)據(jù)解決方案

34、,它為企業(yè)中的用戶提供了一個安全、可靠和高效的平臺用于企業(yè)數(shù)據(jù)管理和商業(yè)智能應(yīng)用。SQL Server 2005 為IT專家和信息工作者帶來了強大的、熟悉的工具,同時減少了在從移動設(shè)備到企業(yè)數(shù)據(jù)系統(tǒng)的多平臺上創(chuàng)建、部署、管理及使用企業(yè)數(shù)據(jù)和分析應(yīng)用程序的復(fù)雜度。 通過全面的功能集、和現(xiàn)有系統(tǒng)的集成性、以及對日常任務(wù)的自動化管理能力,SQL Server 2005 為不同規(guī)模的企業(yè)提供了一個完整的數(shù)據(jù)解決方案。</p>&l

35、t;p>  SQL Server 數(shù)據(jù)平臺包括如下工具:關(guān)系型數(shù)據(jù)庫、復(fù)制服務(wù)、通知服務(wù)、集成服務(wù)、分析服務(wù)、報表服務(wù)、管理工具、開發(fā)工具。 </p><p>  SQL Server 2005 數(shù)據(jù)平臺為不同規(guī)模的組織提供了如下好處:充分利用數(shù)據(jù)資產(chǎn)、提高生產(chǎn)力、減少IT復(fù)雜度、更低的總體擁有成本 (TCO)。</p><p><b>  3系統(tǒng)分析</b>&

36、lt;/p><p><b>  3.1需求分析</b></p><p>  3.1.1系統(tǒng)需要解決的主要問題</p><p>  因為考試是有特定的對象的,所以考生在進入該系統(tǒng)前應(yīng)該進行在線報名。報名時填寫相應(yīng)的個人信息(如身份證號、報考科目等),報名后到相關(guān)部門進行交費。由管理員進行審核后,考生進入考試系統(tǒng),根據(jù)報名時選擇的考試科目,參加相應(yīng)的考

37、試。鑒于計算機等級考試為全國性統(tǒng)一考試,考試時間有相應(yīng)的規(guī)定。因此要對登錄了考試系統(tǒng)進行參考的用戶進行考試時間判斷,避免在非考試時段參加考試。另外,系統(tǒng)還應(yīng)該對考試時間進行控制,時間到了會要求考試者交卷。在考試過程中要防止考生作弊,要禁止避免某些按鍵(如ALT、F5等)的操作。考試者選擇答案提交后,應(yīng)該由計算機自動判卷,得到成績先保存,在閱卷人審核后在考生信息頁面顯示出來。考試完畢后,系統(tǒng)關(guān)閉考試頁面,回到考試前頁面。</p>

38、;<p>  3.1.2系統(tǒng)應(yīng)該具備的基本功能</p><p>  1.試題管理:管理員利用賬號和密碼成功登錄以后,進入管理頁面,管理員可以通過系統(tǒng)做的手動添加試題頁面自己手動添加試題,并對相關(guān)信息進行添加、修改以及刪除。</p><p>  2.試卷生成:事先設(shè)定好考試題目數(shù)量,考試日期,分數(shù)等信息。</p><p>  3.在線考試:考生根據(jù)準考證

39、號和密碼成功登錄后,進入考試界面??忌虚_始考試,提交試卷,查詢成績權(quán)限??忌鶕?jù)報名時選擇的考試科目,在規(guī)定時間段內(nèi)參加相應(yīng)的考試,點擊開始考試后,進行考試界面,并要防止考生刷新及點擊右鍵等操作,對考試時間計時,考試時間到,系統(tǒng)強制提交試卷。</p><p>  4.試卷評判:主、客觀題目均事先由系統(tǒng)自動判斷,主觀題目閱卷人登陸后,可以根據(jù)情況手工判卷并做出相應(yīng)的分數(shù)修改。</p><p&g

40、t;  5.權(quán)限管理:管理員擁有除閱卷外的所有權(quán)限,管理員根據(jù)賬號和密碼成功登錄后,可以對教師和考生的信息、公告、試題、試卷等進行管理。</p><p>  6.在線報名:考生通過在線報名頁面,獲取系統(tǒng)自動分配的準考證號,添加相應(yīng)的考生信息(包括身份證、性別、考試級別以及相應(yīng)的科目)完成報名。在相關(guān)部門交費后,由管理員審核成功后獲取考試資格。</p><p>  7.站內(nèi)公告:發(fā)布計算機等

41、級考試的相關(guān)信息,如考試要求、時間等。管理員通過登錄進行相關(guān)的添加、修改和刪除。</p><p><b>  3.2可行性分析</b></p><p>  3.2.1技術(shù)可行性分析</p><p>  該考試系統(tǒng)的技術(shù)可行性,可以從硬件(包括外圍設(shè)備)的性能要求、軟件的性能要求(包括操作系統(tǒng)、程序設(shè)計、語言、軟件包、數(shù)據(jù)庫管理系統(tǒng)及各種軟件工具

42、)、能源及環(huán)境條件、輔助設(shè)備及備品配件條件幾個方面去考慮。計算機硬件要求:</p><p>  CPU:奔騰1.0GHz以上</p><p>  內(nèi)存:256MB以上</p><p>  顯示卡:顯存16M及以上</p><p>  硬盤:2GB以上剩余磁盤空間</p><p>  驅(qū)動器:8倍速CD-ROM以上 &l

43、t;/p><p>  高分辨率(1024*768)彩色顯示器</p><p>  軟件要求:WINDOWS操作系統(tǒng)或XP操作系統(tǒng),.Net 2005和Microsoft SQL Server2005</p><p>  就目前使用的開發(fā)技術(shù)來說建議系統(tǒng)的功能目標(biāo)應(yīng)該能夠達到;利用現(xiàn)有的技術(shù)在規(guī)定的期限內(nèi)開發(fā)工作基本能夠完成。</p><p>  

44、3.2.2 經(jīng)濟可行性分析</p><p>  經(jīng)濟可行性分析主要是對開發(fā)項目的成本與效益做出評估,即分析新系統(tǒng)所帶來的經(jīng)濟效益是否超過開發(fā)和維護網(wǎng)站所需要的費用。</p><p>  用戶在使用該系統(tǒng)后只需花一定資金購買一部分計算機與軟件就能實現(xiàn)。</p><p>  3.2.3 社會因素方面的可行性分析</p><p>  本系統(tǒng)僅用于全

45、國計算機等級考試,無法律和政策方面的限制。</p><p><b>  4總體設(shè)計</b></p><p>  4.1 基本設(shè)計思想及流程圖</p><p>  基本設(shè)計思想:在用戶認證之后,系統(tǒng)根據(jù)考生的資料隨機的從試題庫中選取試卷,在考生做完試卷且交卷之后,將會自動在服務(wù)器端保存考的答案。要求能保證考生順利的作答以及考試的保密和安全性。&l

46、t;/p><p><b>  圖1 操作流程圖</b></p><p>  4.2 系統(tǒng)功能結(jié)構(gòu)圖</p><p>  根據(jù)需求分析,在線考試系統(tǒng)的結(jié)構(gòu)圖如下:</p><p>  圖2 系統(tǒng)功能結(jié)構(gòu)圖</p><p><b>  4.3 系統(tǒng)架構(gòu)</b></p>

47、<p>  本系統(tǒng)采用ASP.NET應(yīng)用程序典型的三層架構(gòu)模式,其結(jié)構(gòu)如圖1所示</p><p>  圖3 三層架構(gòu)模式結(jié)構(gòu)圖</p><p><b>  各層功能介紹:</b></p><p>  數(shù)據(jù)訪問層:系統(tǒng)最低層,提供數(shù)據(jù)庫操作的接口和存儲本系統(tǒng)所有數(shù)據(jù);</p><p>  業(yè)務(wù)邏輯層:處于頁面展示

48、層與數(shù)據(jù)訪問層之間,與數(shù)據(jù)庫直接關(guān)聯(lián),同時又為頁面展示層服務(wù)。實現(xiàn)業(yè)務(wù)的具體邏輯,如考生報名、登錄參考、試卷試題管理等;</p><p>  頁面展示層:系統(tǒng)最外層,將業(yè)務(wù)功能在瀏覽器上顯示出來,用戶通過界面對系統(tǒng)進行操作。</p><p>  4.3.1數(shù)據(jù)訪問層</p><p>  數(shù)據(jù)訪問層完成所有與數(shù)據(jù)庫交互的工作,本系統(tǒng)只包括一個類SQLHelper。這個

49、類的功能是向數(shù)據(jù)庫提交SQL語句,并返回相應(yīng)的操作結(jié)果。</p><p>  配置數(shù)據(jù)庫連接:在Web.config文件中指定數(shù)據(jù)庫連接字符串配置信息,代碼如下</p><p>  <connectionStrings></p><p>  <add name="ExamDBConn" connectionString=&quo

50、t;Data Source=.;Initial Catalog=ExamDB;Persist Security Info=True;User ID=sa;Password=123" providerName="System.Data.SqlClient"/></p><p>  </connectionStrings></p><p>  S

51、QLHelper類成員:</p><p>  表1 SQLHelper類成員說明</p><p>  4.3.2業(yè)務(wù)邏輯層</p><p>  科目類—Category.cs</p><p>  公告類—News.cs</p><p>  試卷類—Paper.cs</p><p>  試題類—Q

52、uestion.cs</p><p>  分數(shù)類—Score.cs</p><p>  用戶類—User.cs</p><p>  4.3.3頁面顯示層</p><p>  公告管理模塊—News*.aspx</p><p>  用戶管理模塊—User*.aspx</p><p>  試題管理模

53、塊—Question*.aspx</p><p>  試卷管理模塊—Paper*.aspx</p><p>  試卷評分模塊—Score*.aspx</p><p>  頁面首面—Default.aspx</p><p>  考試頁面—Exam.aspx</p><p>  注冊頁面—Register.aspx<

54、/p><p>  公告信息頁面—NewsInfo.aspx</p><p><b>  4.4數(shù)據(jù)庫的設(shè)計</b></p><p>  4.4.1 創(chuàng)建數(shù)據(jù)庫</p><p>  首先在SQL Server 2005的管理器中創(chuàng)建一個名為ExamDB的數(shù)據(jù)庫。</p><p><b>  4

55、.4.2 創(chuàng)建表</b></p><p>  數(shù)據(jù)庫ExamDB包含以下6個表:考試科目表(Exam_Category)、用戶信息表(Exam_Member)、站內(nèi)公告表(Exam_News)、試卷信息表(Exam_Paper)、試題信息表(Exam_Question)、分數(shù)信息表(Exam_Score)。下面分別介紹這些表的結(jié)構(gòu)。</p><p>  表2 考試科目表(Exa

56、m_Category)</p><p>  表3 分數(shù)信息表(Exam_Score)</p><p>  表4 站內(nèi)公告表(Exam_News)</p><p>  表5 用戶信息表(Exam_Member)</p><p>  表6 試卷信息表(Exam_Paper)</p><p>  表7 試題信息表(Exam_

57、Question)</p><p><b>  4.4.3關(guān)系設(shè)計</b></p><p>  圖4 數(shù)據(jù)庫關(guān)系設(shè)計圖</p><p>  4.5數(shù)據(jù)訪問接口及通用組件</p><p>  實現(xiàn)對數(shù)據(jù)訪問的一些輔助和包裝及某些通用功能,包括三個類。</p><p>  4.5.1 獲取安全數(shù)據(jù)(G

58、etSafeData)</p><p>  包含一系列從DataRow對象中,安全獲取數(shù)據(jù)的靜態(tài)方法。</p><p>  表8 GetSafeData類成員說明</p><p>  4.5.2 構(gòu)造SQL語句(SQLString)</p><p>  GetQuotedString:將字符串加上SQL語句中常用的單引號“’”;</p&

59、gt;<p>  GetConditionClause:構(gòu)造SQL語句中的條件子句,這個方法接收一個哈希表參數(shù),利用哈希表中的每一項都是一個DictionaryEntry對象的<key, value>對特征,構(gòu)造SQL語句中的條件子句。</p><p>  4.5.3 字符串加密(Security)</p><p>  對一字符串進行MD5加密操作,保證數(shù)據(jù)的安全

60、。</p><p>  5網(wǎng)站后臺主要功能模塊</p><p>  5.1 用戶登錄模塊設(shè)計</p><p>  5.1.1前臺頁面設(shè)計</p><p>  圖5 管理員/閱卷人登錄模塊</p><p>  管理員/閱卷人輸入賬號及密碼,系統(tǒng)查詢數(shù)據(jù)庫,自動配對用戶類型,進入相應(yīng)的管理頁面。如果出現(xiàn)錯誤,系統(tǒng)會彈出相

61、應(yīng)的提示信息。</p><p>  5.1.2后臺功能代碼</p><p><b>  單擊登錄按鈕事件:</b></p><p>  protected void btnOK_Click(object sender, EventArgs e)</p><p><b>  {</b></p&g

62、t;<p>  string UserName = txtName.Text;</p><p>  string UserPwd = Security.Encrypt(txtPwd.Text);</p><p>  User user = new User();</p><p>  user.LoadNameData(UserName);</p&

63、gt;<p>  if (user.Exist)//如果用戶存在</p><p><b>  {</b></p><p>  if (user.UserPwd == UserPwd)//如果密碼,轉(zhuǎn)入留言列表頁面</p><p><b>  {</b></p><p>  Sess

64、ion.Add("UserID", user.UserID);</p><p>  Session.Add("UserIDCard", user.UserIDCard);</p><p>  Session.Add("UserName", user.UserName);</p><p>  if (user

65、.UserType == 3)</p><p><b>  {</b></p><p>  Session["IsAdmin"] = "Admin";</p><p>  Response.Redirect("Admin/AdminInfo.aspx");</p><

66、;p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  Session["IsAdmin"] = "Teacher";</p><p>  Respon

67、se.Redirect("Teacher/Default.aspx");</p><p><b>  }</b></p><p><b>  }</b></p><p>  else//如果密碼錯誤,給出提示,光標(biāo)停留在密碼框中</p><p><b>  {<

68、;/b></p><p>  Response.Write("<Script Language=JavaScript>alert(\"密碼錯誤,請重新輸入密碼!\")</Script>");</p><p>  txtPwd.Focus();</p><p><b>  }</b&

69、gt;</p><p><b>  }</b></p><p>  else//如果用戶不存在</p><p><b>  {</b></p><p>  Response.Write("<Script Language=JavaScript>alert(\"對

70、不起,用戶不存在!\")</Script>");</p><p><b>  }</b></p><p><b>  }</b></p><p>  5.2 后臺管理頁面設(shè)計</p><p>  管理頁面只允許具有管理員權(quán)限的人員訪問,因此在每個管理頁面都有相關(guān)的權(quán)

71、限判斷,以保證系統(tǒng)的安全使用。</p><p>  if (Session["IsAdmin"] == null)</p><p><b>  {</b></p><p>  Response.Write("<Script Language=JavaScript>alert('管理員未登錄,非法

72、請求!');</Script>");</p><p>  Response.Write("<Script Language=JavaScript>window.location.href='../AdminLogin.aspx';</Script>");</p><p><b>  }<

73、;/b></p><p>  5.2.1人員管理頁面設(shè)計</p><p><b>  圖6 人員管理</b></p><p>  此頁面用于管理所有用戶,包括考生、閱卷人和管理員。通過用戶類型下拉框選擇相應(yīng)類型的用戶,在GridView中會顯示出用戶詳細的信息。當(dāng)考生報名成功后,前來交費時,管理員可以通過審核方式來確認考生的參考資格。管理

74、員也可以刪除一些無效用戶。</p><p><b>  審核事件代碼:</b></p><p>  foreach (string UserID in selectedUsers)</p><p><b>  {</b></p><p>  Hashtable ht = new Hashtable(

75、);</p><p>  ht.Add("IsCheck", 1);</p><p>  (new User()).Check(ht, UserID);</p><p><b>  }</b></p><p>  Response.Write("<Script Language=Jav

76、aScript>alert('審核考生成功!');</Script>");</p><p><b>  Query();</b></p><p><b>  刪除事件代碼:</b></p><p>  foreach (string UserID in selectedUsers

77、)</p><p><b>  {</b></p><p>  User.Delete(UserID);</p><p><b>  }</b></p><p><b>  Query();</b></p><p>  5.2.2試題管理頁面設(shè)計<

78、/p><p><b>  圖7 試題管理</b></p><p>  此頁面用于管理所有試題信息。通過考試科目下拉框選擇相應(yīng)的科目,在GridView中會顯示出試題的詳細信息,包括題干、備選答案和正確答案。管理員可以對試題進行編輯、刪除操作。</p><p><b>  操作實現(xiàn)代碼:</b></p><p

79、>  protected void gvQuestion_RowCommand(object sender, GridViewCommandEventArgs e)</p><p><b>  {</b></p><p>  int index = Convert.ToInt32(e.CommandArgument); //待處理的行下標(biāo)</p>

80、<p>  int questionId = -1;</p><p>  switch (e.CommandName)</p><p><b>  {</b></p><p><b>  //修改</b></p><p>  case "Edit":</p>

81、<p>  questionId = Convert.ToInt32(gvQuestion.Rows[index].Cells[0].Text);</p><p>  Response.Redirect("QuestionAddEdit.aspx?id=" + questionId);</p><p><b>  break;</b>

82、</p><p><b>  //刪除</b></p><p>  case "Delete":</p><p>  questionId = Convert.ToInt32(gvQuestion.Rows[index].Cells[0].Text);</p><p>  Question quest

83、ion = new Question();</p><p>  question.GetSingleQuestion(questionId);</p><p>  question.Delete();</p><p>  Response.Write("<Script Language=JavaScript>alert('刪除成功!&#

84、39;);</Script>");</p><p><b>  gvBind();</b></p><p><b>  break;</b></p><p><b>  default:</b></p><p><b>  break;</

85、b></p><p><b>  }</b></p><p><b>  }</b></p><p>  5.2.3公告管理頁面設(shè)計</p><p><b>  圖8 公告管理</b></p><p>  此頁面用于管理網(wǎng)站公告信息。通過GridV

86、iew顯示出公告的詳細信息,包括編號、標(biāo)題和時間。管理員可以通過詳細信息查看公告內(nèi)容,也可以對公告進行編輯、刪除操作。</p><p>  GridView數(shù)據(jù)綁定:</p><p>  private void InitData()</p><p><b>  {</b></p><p>  News news = n

87、ew News();</p><p>  DataSet ds = news.GetNews();</p><p>  gvNewsList.DataSource = ds;</p><p>  gvNewsList.DataBind();</p><p><b>  }</b></p><p>

88、<b>  操作代碼:</b></p><p>  protected void gvNewsList_RowCommand(object sender, GridViewCommandEventArgs e)</p><p><b>  {</b></p><p>  int index = Convert.ToInt3

89、2(e.CommandArgument); //待處理的行下標(biāo)</p><p>  int newsId = -1;</p><p>  switch (e.CommandName)</p><p><b>  {</b></p><p><b>  //修改</b></p><

90、p>  case "Edit":</p><p>  newsId = Convert.ToInt32(gvNewsList.Rows[index].Cells[0].Text);</p><p>  Response.Redirect("NewsAddEdit.aspx?id=" + newsId);</p><p>

91、<b>  break;</b></p><p><b>  //刪除</b></p><p>  case "Delete":</p><p>  newsId = Convert.ToInt32(gvNewsList.Rows[index].Cells[0].Text);</p>&l

92、t;p>  News news = new News();</p><p>  news.GetSingleNews(newsId);</p><p>  news.Delete();</p><p>  Response.Write("<Script Language=JavaScript>alert('刪除成功!');

93、</Script>");</p><p>  InitData();</p><p><b>  break;</b></p><p><b>  default:</b></p><p><b>  break;</b></p><p

94、><b>  }</b></p><p><b>  }</b></p><p>  5.2.4密碼管理頁面設(shè)計</p><p>  圖9 管理員密碼修改</p><p>  此頁面用于管理員信息修改。當(dāng)管理員名及原密碼均正確時,可以對管理員的相關(guān)信息進行修改操作。否則將無法修改相關(guān)信息。&l

95、t;/p><p><b>  修改事件代碼:</b></p><p>  if ( UserOldPwd == user.UserPwd )</p><p><b>  {</b></p><p>  Hashtable ht = new Hashtable();</p><p>

96、;  ht.Add("UserPwd", SqlStringConstructor.GetQuotedString(UserPwd));</p><p>  ht.Add("UserIDCard", SqlStringConstructor.GetQuotedString(txtIDCard.Text));</p><p>  user.Update

97、(ht);</p><p>  Response.Write("<Script Language=JavaScript>alert(\"更新數(shù)據(jù)成功,請重新登錄!\")</Script>");</p><p>  Session.Abandon();</p><p>  Response.Write(&

98、quot;<Script Language=JavaScript>window.location.href='../AdminLogin.aspx';</Script>");</p><p><b>  }</b></p><p><b>  else</b></p><p&g

99、t;<b>  {</b></p><p>  Response.Write("<Script Language=JavaScript>alert(\"原密碼錯誤!\")</Script>");</p><p><b>  }</b></p><p>  5.

100、2.5試卷成績信息管理頁面設(shè)計</p><p>  圖10 試卷成績信息</p><p>  此頁面用于管理考生考試信息。在GridView中顯示出了所有考生的考試信息,包括考試科目、總成績和是否通過閱卷人審核。閱卷人可以查看考試的詳細信息,并進行進一步地操作,如圖11所示。</p><p><b>  單擊審核事件:</b></p>

101、;<p>  foreach ( string ID in selectedIDs )</p><p><b>  {</b></p><p>  Hashtable ht = new Hashtable();</p><p>  ht.Add("IsCheck", 1);</p><p&g

102、t;  (new Score()).Check(ht, ID);</p><p><b>  }</b></p><p>  Response.Write("<Script Language=JavaScript>alert('審核試卷成功!');</Script>");</p><p&g

103、t;<b>  Query();</b></p><p>  圖11 試卷成績信息修正</p><p>  此頁面用于顯示考試的詳細信息。閱卷人可以查看到考生考試的具體信息,包括考試時間、成績以及每一道題的答案。閱卷人可以根據(jù)考生的答題情況,對考生分數(shù)進行相應(yīng)的修改。</p><p><b>  單擊修正事件:</b>&l

104、t;/p><p>  protected void btnModify_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  if (txtModifyScore.Text != "")</p><p><b>  {&l

105、t;/b></p><p>  Score score = new Score();</p><p>  score.ID = Convert.ToInt32(Request.QueryString["id"]);</p><p>  Hashtable ht = new Hashtable();</p><p> 

106、 ht.Add("TotalScore", SqlStringConstructor.GetQuotedString(txtModifyScore.Text));</p><p>  ht.Add("IsCheck", 1);</p><p>  score.Update(ht);</p><p>  Response.Wri

107、te("<Script Language=JavaScript>試卷得分修改成功!</Script>");</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>&

108、lt;p>  Response.Write("<Script Language=JavaScript>alert('請輸入實際得分!');</Script>");</p><p><b>  }</b></p><p><b>  }</b></p><p>

109、;  6網(wǎng)站前臺主要功能模塊</p><p>  6.1網(wǎng)站公告頁面設(shè)計</p><p>  圖12 網(wǎng)站公告模塊</p><p><b>  數(shù)據(jù)綁定:</b></p><p>  private void BindNewsData()</p><p><b>  {</b>

110、;</p><p>  ///定義獲取數(shù)據(jù)的類</p><p>  News news = new News();</p><p>  DataSet ds = news.GetTop10News();</p><p>  ///設(shè)定控件的數(shù)據(jù)源</p><p>  gvNews.DataSource = ds;<

111、;/p><p>  ///綁定控件的數(shù)據(jù)</p><p>  gvNews.DataBind();</p><p><b>  }</b></p><p>  6.2考生在線報名頁面設(shè)計</p><p><b>  圖13 網(wǎng)上報名</b></p><p>

112、;  此頁面用于考生在線注冊。進入頁面后,系統(tǒng)會自動生成準考證號。考生可以Check自己的身份證是否已經(jīng)報名,以免重復(fù)報名。如果此考生已經(jīng)報名,或其它信息填寫錯誤,系統(tǒng)會給出相應(yīng)的提示信息。</p><p><b>  單擊報名按鈕事件</b></p><p>  protected void btnReg_Click(object sender, EventArgs

113、 e)</p><p><b>  {</b></p><p>  string userIDCard = txtIDCard.Text;</p><p>  string userPwd = Security.Encrypt(txtPwd.Text);</p><p>  if ( !(new User()).HasU

114、ser(userIDCard) )</p><p><b>  {</b></p><p>  Hashtable ht = new Hashtable();</p><p>  ht.Add("UserID", SqlStringConstructor.GetQuotedString(lblID.Text));</p

115、><p>  ht.Add("UserIDCard", SqlStringConstructor.GetQuotedString(txtIDCard.Text));</p><p>  ht.Add("UserName", SqlStringConstructor.GetQuotedString(txtName.Text));</p>&l

116、t;p>  ht.Add("UserPwd", SqlStringConstructor.GetQuotedString(userPwd));</p><p>  ht.Add("CategoryID", SqlStringConstructor.GetQuotedString(ddlSubject.SelectedValue.ToString()));</p&

117、gt;<p>  ht.Add("UserEmail", SqlStringConstructor.GetQuotedString(txtEmail.Text));</p><p>  if ( rbMale.Checked )</p><p>  ht.Add("UserSex", SqlStringConstructor.GetQu

118、otedString(rbMale.Text));</p><p><b>  else</b></p><p>  ht.Add("UserSex", SqlStringConstructor.GetQuotedString(rbFemale.Text));</p><p>  User user = new User()

119、;</p><p>  user.Add(ht);</p><p>  Session.Add("user_id", user.UserID);</p><p>  Response.Write("<Script Language=JavaScript>alert(\"報名成功!請到相關(guān)部門交費完成報名\"

120、;)</Script>");</p><p>  Response.Write("<Script Language=JavaScript>window.close()</Script>");</p><p><b>  }</b></p><p><b>  else&

121、lt;/b></p><p><b>  {</b></p><p>  Response.Write("<Script Language=JavaScript>alert(\"同一身份證只能報考一科!\")</Script>");</p><p>  txtIDCard.T

122、ext = "";</p><p><b>  }</b></p><p><b>  }</b></p><p>  6.3考生登錄頁面設(shè)計</p><p><b>  圖14 考生登錄</b></p><p>  此頁面用于考生考

123、試登錄??忌顚懻_的準考證號、密碼及驗證碼后,會進入考試頁面。如果輸入驗證碼不正確,或其它信息填寫錯誤,系統(tǒng)會給出相應(yīng)的提示信息。</p><p>  6.4 考生在線考試頁面設(shè)計</p><p><b>  圖15 在線考試</b></p><p>  此頁面為考生參考主頁面。為了方便考生掌握考試時間,頁面上有計時器??荚嚂r間一到,系統(tǒng)會自

124、動提交試卷并保存相關(guān)答題信息,防止考生超時答卷。為了避免考生作弊,系統(tǒng)還禁用了相關(guān)按鍵,如F5、Alt、Ctrl + C等,以保證考試的公平公正。</p><p>  考試計時代碼(JavaScript):</p><p>  <script language="JavaScript" type="text/javascript">//

125、計時函數(shù)</p><p><b>  <!--</b></p><p>  var timeminute;</p><p>  var timesecond;</p><p>  var timerID = null;</p><p>  var timerRunning = false;&

126、lt;/p><p>  var thisPassTime=0;</p><p>  function initTimer()</p><p><b>  {</b></p><p>  timeminute = document.all("hidLeftMinutes").value.valueOf();

127、</p><p>  timesecond = document.all("hidLeftSeconds").value.valueOf();</p><p>  if(timeminute == -100) document.all("lblLeftTime").style.display = "none";</p>

溫馨提示

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

最新文檔

評論

0/150

提交評論