在線考試系統(tǒng)畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  畢業(yè)設(shè)計(jì)(論文)報(bào)告</p><p>  系 別 軟件工程系 </p><p>  專 業(yè) 計(jì)算機(jī)應(yīng)用 </p><p>  班 級(jí) </p><p>  姓 名 *

2、***** </p><p>  學(xué) 號(hào) ********* </p><p>  設(shè)計(jì)題目 在線考試系統(tǒng) </p><p>  指導(dǎo)教師 ****** </p><p>  起迄日期 2011.1.2——201

3、1.4.20 </p><p><b>  在線考試系統(tǒng)</b></p><p><b>  摘 要</b></p><p>  通過考試系統(tǒng)WebExam是目前市場(chǎng)占有率較高,應(yīng)用最廣泛的遠(yuǎn)程網(wǎng)絡(luò)學(xué)習(xí)考試軟件,適合政府、行業(yè)及企業(yè)的各專業(yè)網(wǎng)上考試、作業(yè)、練習(xí)等應(yīng)用。它采用Web方式,同時(shí)適用于局域網(wǎng)和Interne

4、t,無(wú)需安裝客戶端,即可實(shí)現(xiàn)網(wǎng)上考試、作業(yè)、練習(xí)、成績(jī)排行等功能,并能夠答卷保存、自動(dòng)判分、成績(jī)查詢和分析等功能</p><p>  該系統(tǒng)同時(shí)擁有最開放的題庫(kù)管理系統(tǒng)和最靈活的組卷系統(tǒng),能夠自動(dòng)輸出Word試卷,提供Excel題目導(dǎo)入導(dǎo)出、題庫(kù)和試卷導(dǎo)入導(dǎo)出等設(shè)計(jì),提供資源的快速收集和高度共享。</p><p>  在開發(fā)方法上,引入了當(dāng)今流行的Microsoft .Net Remoti

5、ng 技術(shù)思想,把整個(gè)開發(fā)程分為需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)等步驟。該系統(tǒng)通過優(yōu)化和再造管理流程,使人力資源的管理更為高效和科學(xué),數(shù)據(jù)更為準(zhǔn)確,從而將人事部門從繁重的、耗時(shí)的工作中解放出來,把精力集中到更高層的政策性工作中去。</p><p>  關(guān)鍵詞 在線考試系統(tǒng) ; C#.net編程語(yǔ)言 ; Visual Studio 2008 ;SQL Server 2005數(shù)據(jù)庫(kù)</p>&l

6、t;p><b>  目 錄</b></p><p><b>  第1章 緒論1</b></p><p>  1.1課題研究背景1</p><p>  1.2課題研究目的和意義1</p><p>  第2章 系統(tǒng)分析概述2</p><p><b>

7、  2.1引言2</b></p><p>  2.2系統(tǒng)需求分析2</p><p>  2.3系統(tǒng)概述3</p><p>  2.4Visual Studio 2008的概述4</p><p>  2.5SQL Server 2005數(shù)據(jù)庫(kù)的概述5</p><p>  第3章 系統(tǒng)方案總

8、體設(shè)計(jì)6</p><p>  3.1系統(tǒng)設(shè)計(jì)思想及相關(guān)技術(shù)介紹6</p><p>  3.1.1系統(tǒng)架構(gòu)設(shè)計(jì)6</p><p>  3.1.2系統(tǒng)總體模塊功能設(shè)計(jì)6</p><p>  第4章 數(shù)據(jù)庫(kù)的設(shè)計(jì)8</p><p><b>  4.1 引言8</b></p>

9、<p>  4.2數(shù)據(jù)庫(kù)需求分析8</p><p>  4.3數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)8</p><p>  4.4數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)8</p><p>  第5章 界面設(shè)計(jì)與實(shí)現(xiàn)10</p><p>  5.1主頁(yè)設(shè)計(jì)10</p><p>  5.1.1 實(shí)現(xiàn)目標(biāo)10</p>

10、<p>  5.1.2 登錄窗口10</p><p>  5.1.3 注冊(cè)窗口12</p><p>  5.2主要界面設(shè)計(jì)—用戶登錄信息畫面13</p><p>  5.2.1 實(shí)現(xiàn)目標(biāo)13</p><p>  5.2.2 主界面13</p><p>  5.3主要界面設(shè)計(jì) —— ADDQUE

11、STION.ASPX17</p><p>  5.3.1 實(shí)現(xiàn)目標(biāo)17</p><p>  5.4主要界面設(shè)計(jì) —— USERMANGEMENT.ASPX18</p><p>  5.4.1 實(shí)現(xiàn)目標(biāo)18</p><p><b>  結(jié) 論20</b></p><p><b&g

12、t;  致 謝21</b></p><p>  參 考 文 獻(xiàn)22</p><p><b>  緒論</b></p><p><b>  課題研究背景</b></p><p>  近幾年來,隨著Internet的崛起,遠(yuǎn)程教育開始發(fā)展,普及網(wǎng)絡(luò)教育的呼聲日益高漲,其勢(shì)頭不亞于電子商

13、務(wù)。</p><p>  聯(lián)合國(guó)教科文組織1998年在其一項(xiàng)調(diào)查報(bào)告中:無(wú)論是發(fā)達(dá)國(guó)家還是發(fā)展中國(guó)家,都不同程度存在教育滯后于現(xiàn)實(shí)需要的問題,特別是第三世界國(guó)家,而普及遠(yuǎn)程教育,尤其是網(wǎng)絡(luò)教育,不僅是解決這一問題的有效途徑,而且將成為革新傳統(tǒng)教育模式的重要?jiǎng)恿Α?lt;/p><p>  中國(guó)的網(wǎng)絡(luò)教育也隨Internet的發(fā)展而同步增長(zhǎng),同時(shí),網(wǎng)絡(luò)教育也為中國(guó)的教育事業(yè)開辟了新的天地。<

14、/p><p><b>  課題研究目的和意義</b></p><p>  隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,現(xiàn)在很多國(guó)外的大學(xué)和社會(huì)其他部門都已經(jīng)開始設(shè)了遠(yuǎn)程教育。但是,遠(yuǎn)程教育的軟件的開發(fā)目前還處于起步階段,隨著這項(xiàng)技術(shù)的不斷深入發(fā)展,就要求有更好、更完善的軟件系統(tǒng)到遠(yuǎn)程教育當(dāng)中去,這就給軟件設(shè)計(jì)人員提出了更高的設(shè)計(jì)要求。</p><p>  遠(yuǎn)程教育包括

15、很多環(huán)節(jié)。例如,教學(xué)系統(tǒng)、考試系統(tǒng)、和答疑系統(tǒng)等等。其中一個(gè)很重要的環(huán)節(jié)是在線考試系統(tǒng),同時(shí),它也是最難實(shí)現(xiàn)的環(huán)節(jié)。在我國(guó),遠(yuǎn)程教育以蓬勃發(fā)展起來。但目前學(xué)校和社會(huì)上的各種考試大都都采用傳統(tǒng)的考試方法,在此方式下,組織一次考試,要經(jīng)過五個(gè)步驟,即人工出題、考生考試、人工閱卷、成績(jī)?cè)u(píng)估和試卷分析。</p><p>  顯然隨著考試類型的不斷增加和考試要求的不斷提高,教師的工作量也越來越大,可以說傳統(tǒng)的考試方法已經(jīng)不

16、能適用于現(xiàn)代考試的需要。隨著計(jì)算機(jī)應(yīng)用的迅猛發(fā)展,網(wǎng)絡(luò)應(yīng)用不斷擴(kuò)大,如遠(yuǎn)程教育和虛擬大學(xué)的出現(xiàn)等等,且這些應(yīng)用正逐步深入到千家萬(wàn)戶。人們迫切需要這些技術(shù)來進(jìn)行在線考試,以減輕教師的工作的負(fù)擔(dān)以及提高工作效率,與此同時(shí)提高了考試的質(zhì)量,從而使考試更趨于公正、客觀,更加激發(fā)學(xué)生的學(xué)習(xí)興趣。</p><p>  第2章 系統(tǒng)分析概述</p><p><b>  引言</b>

17、</p><p>  ASP.NET是微軟公司最新推出的一種統(tǒng)一Web開發(fā)平臺(tái),與最新的數(shù)據(jù)訪問技術(shù)ADO.NET一起可構(gòu)建出強(qiáng)大、安全和可靠的企業(yè)級(jí)Web應(yīng)用程序。ASP.NET的語(yǔ)法在很大程度上與ASP兼容,同時(shí)它還提供一種新的編程模型和結(jié)構(gòu),用于生成更安全、可伸縮和穩(wěn)定的應(yīng)用程序。</p><p>  采取了ASP.NET技術(shù)的系統(tǒng)在性能上有了很大的改善,主要表現(xiàn)在以下幾方面: &l

18、t;/p><p>  由于ASP頁(yè)面每次打開都必須經(jīng)過先編譯后解釋的過程,所以頁(yè)面在反復(fù)打開時(shí)速度沒有任何提升,而ASP.NET頁(yè)面只需要一次編譯后不需要重新編譯,直到該頁(yè)面被修改或Web應(yīng)用程序重新啟動(dòng)。這使得在多次訪問時(shí)速度有了極大的提升;</p><p>  由于ASP沒有提供任何輸出數(shù)據(jù)為內(nèi)容的元件,所以在使用ASP撰寫數(shù)據(jù)庫(kù)頁(yè)面時(shí)只能借助ADO的RecordSet對(duì)象逐筆讀取記錄,而

19、ASP.NET通過ADO.NET提供的DataGrid等數(shù)據(jù)庫(kù)元件可以直接和數(shù)據(jù)庫(kù)聯(lián)系;</p><p>  ASP.NET支持應(yīng)用程序的實(shí)時(shí)更新,管理員不必關(guān)掉網(wǎng)絡(luò)服務(wù)器或者甚至不用停止應(yīng)用程序的運(yùn)行就可以更新應(yīng)用文件。應(yīng)用程序文件永遠(yuǎn)不會(huì)被加鎖,因此甚至在程序運(yùn)行時(shí)文件就可以被覆蓋,當(dāng)文件更新后,系統(tǒng)會(huì)溫和地轉(zhuǎn)換到新的版本;</p><p>  ASP.NET采取"CodeB

20、ehind(代碼分離)技術(shù)"方式編寫代碼使得代碼更易于編寫,結(jié)構(gòu)更清晰,降低了系統(tǒng)開發(fā)與維護(hù)的復(fù)雜度和費(fèi)用。</p><p><b>  系統(tǒng)需求分析</b></p><p>  系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)在線考試的系統(tǒng)化、規(guī)范化和自動(dòng)化。</p><p>  系統(tǒng)功能分析是在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成的。在線考試系統(tǒng)需要完成的功能

21、主要有:用戶的注冊(cè)和登錄;用戶在線答題;對(duì)科目進(jìn)行管理;對(duì)管理員進(jìn)行試題的管理;以及個(gè)人信息管理功能。在數(shù)據(jù)庫(kù)方面,利用關(guān)系數(shù)據(jù)庫(kù)功能強(qiáng)大的查詢語(yǔ)言對(duì)企業(yè)各類信息入庫(kù)保存,按要求及時(shí)處理。</p><p>  該系統(tǒng)集錄入、維護(hù)、查詢、審核和各種處理為一體,各種操作可以通過菜單進(jìn)行,操作快捷、方便,性能高效、強(qiáng)大;使用易懂、易會(huì),形象增強(qiáng)的數(shù)據(jù)處理,用戶均可根據(jù)需要自行使用。</p><p&g

22、t;<b>  系統(tǒng)概述</b></p><p>  本系統(tǒng)是一個(gè)在線考試系統(tǒng),在實(shí)施過程中主要實(shí)現(xiàn)以下目標(biāo):</p><p>  (1)界面友好、美觀,體現(xiàn)在線考試系統(tǒng)的特點(diǎn),而且操作簡(jiǎn)便。</p><p> ?。?)各功能模塊層次清晰,代碼高效易懂。</p><p>  (3)添加和編輯簡(jiǎn)便、清晰,提高工作效率。&l

23、t;/p><p> ?。?)查詢方便,數(shù)據(jù)存儲(chǔ)安全可靠。</p><p>  (5)功能全面,實(shí)用性強(qiáng)。</p><p><b>  主要功能有:</b></p><p><b>  1.注冊(cè)用戶模塊</b></p><p>  注冊(cè)用戶主要實(shí)現(xiàn)用戶的登錄功能和注冊(cè)功能。<

24、/p><p><b>  在線測(cè)試模塊</b></p><p>  在線測(cè)試是本系統(tǒng)的核心模塊,不論是管理員還是普通用戶都可以進(jìn)行在線測(cè)試。在此頁(yè)面中,可以選擇不同的科目進(jìn)行科目測(cè)試,也可以顯示或者隱藏答案提示。</p><p><b>  科目管理模塊</b></p><p>  只有管理員權(quán)限的用戶

25、登錄才可以進(jìn)入科目管理模塊,在科目管理模塊中,除了顯示已有己。</p><p><b>  試題管理模塊</b></p><p>  只有管理員權(quán)限的用戶才可以進(jìn)入試題管理模塊。</p><p><b>  用戶管理模塊</b></p><p>  在用戶管理模塊中,管理員可以刪除用戶和修改用戶信息

26、。該頁(yè)面沒有增加用戶功能,用戶可以自己注冊(cè)登錄。</p><p><b>  個(gè)人信息修改模塊</b></p><p>  普通用戶登陸后可以進(jìn)入個(gè)人信息修改模塊,修改個(gè)人密碼、身份證號(hào)碼和E-mail等信息。</p><p><b>  開發(fā)環(huán)境的選擇方法</b></p><p>  目前,用于開

27、發(fā)數(shù)據(jù)庫(kù)管理信息系統(tǒng)的編程語(yǔ)言很多,比如Delphi、PowerBuilder、Visual C++、Java、Visual Basic6及VB.NET等等,而用于后臺(tái)數(shù)據(jù)庫(kù)管理的DBMS也有很多,比如有Oracle、MS SQL SERVER、SYBASE、INFORMIX、DB2、VISUAL FOXPRO、ACCESS等等。</p><p>  本人根據(jù)秦曉燕老師的布置要求,采用面向?qū)ο蟮能浖_發(fā)方法來實(shí)現(xiàn)

28、此在線考試軟件,系統(tǒng)開發(fā)工具我們選擇了能夠跨平臺(tái)的開發(fā)工具Visual Studio 2008。在前臺(tái)操作與后臺(tái)數(shù)據(jù)庫(kù)處理的連接上,主要采用ADO.NET技術(shù)和SQL Server2005數(shù)據(jù)庫(kù),運(yùn)用客戶機(jī)服務(wù)器模式(C/S)配合功能強(qiáng)大的SQL查詢語(yǔ)言實(shí)現(xiàn)預(yù)定的功能需求。</p><p>  Visual Studio 2008的概述</p><p>  Visual Studio 20

29、08是一個(gè)全面集成的開發(fā)環(huán)境,用于編寫,調(diào)試代碼,把代碼編譯為程序集進(jìn)行發(fā)布,實(shí)際上,Visual Studio 提供了非常專業(yè)的多文檔界面應(yīng)用程序,在該應(yīng)用程序中可以進(jìn)行與開發(fā)代碼相關(guān)的任何操作,它提供了:</p><p>  文本編輯器:在文本編輯器中,可以編寫C#代碼(以及VB 2005,J#和C++代碼)。這個(gè)文本編輯器相當(dāng)復(fù)雜。</p><p>  代碼的設(shè)計(jì)視圖編輯器:它可以在

30、項(xiàng)目中可視化的放置用戶界面和數(shù)據(jù)訪問控件。此時(shí)Visual Studio會(huì)自動(dòng)在源文件中添加必要的C#代碼,在項(xiàng)目中實(shí)例化這些控件。</p><p>  支持窗口:它們可以查看修改項(xiàng)目的各個(gè)方面。也可以使用這些窗口指定編譯選項(xiàng)。</p><p>  在環(huán)境中編譯:可以只選擇一個(gè)菜單選項(xiàng)編譯項(xiàng)目,而不必在命令行上運(yùn)行C#編譯器。Visual Studio會(huì)調(diào)用C#編譯器。</p>

31、<p>  集成的調(diào)試程序:編程的本質(zhì)是代碼在第一次運(yùn)行時(shí),一般不會(huì)正確執(zhí)行。也許在第二次、第三次才能正確運(yùn)行。Visual Studio無(wú)縫的鏈接到一個(gè)調(diào)試程序上,可以在該調(diào)試環(huán)境中設(shè)置斷點(diǎn),觀察變量。</p><p>  集成的MSDN幫助:Visual Studio可以在IDE中調(diào)用MSDN文檔說明。</p><p>  訪問其他程序:Visual Studio還能調(diào)用

32、許多其他工具來查看和修改計(jì)算機(jī)或網(wǎng)絡(luò)的一些內(nèi)容,而無(wú)需退出開發(fā)環(huán)境。</p><p>  SQL Server 2005數(shù)據(jù)庫(kù)的概述</p><p>  SQL Sevrer2005是一個(gè)C/S體系結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),它使Transact—SQL語(yǔ)言在客戶和SQL Server之間發(fā)送處理請(qǐng)求,SQL Server利用C/S體系結(jié)構(gòu)把工作分成兩部分:客戶端負(fù)責(zé)邏輯處理把數(shù)據(jù)呈現(xiàn)給用戶

33、,SQL Server管理數(shù)據(jù)庫(kù)。SQL Server用Transact—SQL作為它的數(shù)據(jù)庫(kù)查詢和編程語(yǔ)言,使用Transact—SQL能夠方便地存取數(shù)據(jù)、查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)。</p><p>  第3章 系統(tǒng)方案總體設(shè)計(jì)</p><p>  系統(tǒng)設(shè)計(jì)思想及相關(guān)技術(shù)介紹</p><p><b>  系統(tǒng)架構(gòu)設(shè)計(jì)</b></p&g

34、t;<p>  首先用戶登錄,如果登陸成功系統(tǒng)檢測(cè)用戶類型,用戶類型分為兩種:普通用戶和管理員。普通用戶登錄后只能進(jìn)行在線答題和個(gè)人信息管理,在線答題時(shí)可以選擇科目,可以顯示和隱藏答案提示,模塊測(cè)試后可以重做答錯(cuò)的題。</p><p>  管理員身份登錄功能較多,除了可以在線答題外,還可以進(jìn)行科目管理、試題管理和用戶管理,科目管理包括增加、刪除、修改科目,試題管理同樣是增、刪、改操作;用戶管理中只能

35、刪除和修改用戶信息,增加用戶在注冊(cè)用戶功能中完成。</p><p>  圖3-1在線考試系統(tǒng)功能框架</p><p>  系統(tǒng)總體模塊功能設(shè)計(jì)</p><p>  經(jīng)過對(duì)整個(gè)系統(tǒng)的分析,可以得出以下功能模塊,如圖3-3所示:</p><p>  登陸者模塊:面向登陸者??梢韵冗M(jìn)行注冊(cè),再實(shí)現(xiàn)登錄功能,進(jìn)而進(jìn)行在線考試。</p>

36、<p>  管理員模塊:面向管理員。可以對(duì)考題進(jìn)行添加、刪除、修改和更新功能;可以進(jìn)行答題的測(cè)試;科目的管理;題庫(kù)的管理;以及對(duì)用戶的管理。</p><p>  圖3-3 功能模塊圖</p><p>  第4章 數(shù)據(jù)庫(kù)的設(shè)計(jì)</p><p><b>  4.1 引言</b></p><p>  數(shù)據(jù)庫(kù)是一個(gè)應(yīng)用

37、系統(tǒng)的核心,數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞直接關(guān)系到應(yīng)用系統(tǒng)的執(zhí)行效率,數(shù)據(jù)的一致性和完整性,設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)時(shí)應(yīng)該首先充分了解用戶各個(gè)方面的需求,包括現(xiàn)有的以及將來可能增加的需求,數(shù)據(jù)庫(kù)設(shè)計(jì)一般包括以下幾個(gè)步驟:</p><p><b>  數(shù)據(jù)庫(kù)需求分析</b></p><p><b>  數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)</b></p><p>

38、<b>  數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p><b>  數(shù)據(jù)庫(kù)需求分析</b></p><p>  數(shù)據(jù)庫(kù)需求分析就是要了解在這個(gè)應(yīng)用系統(tǒng)中,用戶需要查詢、更新、刪除和保存哪些數(shù)據(jù),收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下基礎(chǔ)。</p><p>  通在線考試系統(tǒng)的

39、數(shù)據(jù)庫(kù)管理要進(jìn)行各種各樣的數(shù)據(jù)輸入和導(dǎo)出,提供各類信息的添加、刪除、修改和更新等功能。通過上述對(duì)系統(tǒng)的設(shè)計(jì)分析,根據(jù)在線考試系統(tǒng)的需求,共需設(shè)計(jì)以下五種信息:</p><p> ?。?)用戶注冊(cè)信息。</p><p> ?。?)科目管理信息。</p><p> ?。?)試題管理信息。</p><p> ?。?)用戶管理信息。</p>

40、;<p>  (5)個(gè)人信息管理。</p><p><b>  數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)</b></p><p>  等到了上面的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)以后,就可以設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體以及實(shí)體之間的關(guān)系,為后面的數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。這些實(shí)體包括各種具體信息,通過相互之間的作用形成數(shù)據(jù)流動(dòng)。</p><p><b>

41、;  數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p>  通過調(diào)查分析各種資料,根據(jù)本管理系統(tǒng)用戶需要操作和處理的各種數(shù)據(jù),對(duì)數(shù)據(jù)表進(jìn)行了分析。確定在數(shù)據(jù)庫(kù)中存儲(chǔ)的各種數(shù)據(jù)之間的關(guān)系以及數(shù)據(jù)類型,列舉出部分?jǐn)?shù)據(jù)表的關(guān)系如下:</p><p>  1. 用戶信息表(User)包括的數(shù)據(jù)項(xiàng)有: 用戶名、密碼、性別、身份證號(hào)碼、電子郵箱、角色編號(hào)等。(如表4-1所示)</p>

42、<p><b>  表4-1用戶信息表</b></p><p>  角色表(Role)中的字段有角色編號(hào)、角色名。(如表4-2所示)</p><p>  表4-2 2. 角色表</p><p> ?。–ourse)中的字段有課程編號(hào)和課程名以及兩個(gè)備用字段。(如圖4-3所示)</p><p>  表4-3

43、課程表角色表</p><p>  試題表(question)中的字段有題號(hào)、課程編號(hào)、題干、A答案、B答案、C答案、D答案、正確答案。(如表4-4所示)</p><p><b>  表4-4 角色表</b></p><p>  第5章 界面設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  主頁(yè)設(shè)計(jì)</b>&l

44、t;/p><p>  5.1.1 實(shí)現(xiàn)目標(biāo)</p><p>  程序啟動(dòng)后,進(jìn)入登陸窗體,用戶輸入用戶名和密碼,然后進(jìn)行登錄。同時(shí)可以按下取消按鈕退出本系統(tǒng),登錄界面模塊中主要實(shí)現(xiàn)如下功能:</p><p> ?。?)可進(jìn)行選擇用戶身份,支持鼠標(biāo)操作。</p><p> ?。?)用戶名和密碼驗(yàn)證成功后,進(jìn)入主界面。</p><

45、p> ?。?)用戶名錯(cuò)誤或密碼錯(cuò)誤提醒并返回輸入有誤。</p><p><b>  5-1主頁(yè)面</b></p><p>  5.1.2 登錄窗口</p><p><b>  5-2 登錄窗口</b></p><p>  在登錄過程中,系統(tǒng)會(huì)首先根據(jù)畫面上用戶輸入的內(nèi)容進(jìn)行驗(yàn)證檢查,相關(guān)代碼如

46、下:</p><p>  string conn = ConfigurationManager.ConnectionStrings["WebTestConnectionString"].ConnectionString;</p><p>  protected void txtRegist_Click(object sender, EventArgs e)</p&

47、gt;<p><b>  {</b></p><p>  Response.Redirect("Regist.aspx");</p><p><b>  }</b></p><p>  protected void txtLogin_Click(object sender, EventAr

48、gs e)</p><p><b>  {</b></p><p>  SqlConnection con = new SqlConnection(conn);</p><p>  string strSql = "select count(*) from [user] where userName = '"<

49、/p><p>  + txtName.Text + "' and password = '" + this.txtPassword.Text + "'";</p><p>  SqlCommand com = new SqlCommand(strSql, con);</p><p>  con.Open()

50、;</p><p>  int num = (int)com.ExecuteScalar();</p><p>  if (num == 0)</p><p><b>  {</b></p><p>  Response.Write("<script language='javascript

51、9;>alert('密碼錯(cuò)誤!');</script>");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  strSql = "select roleID from [user] where userNa

52、me = '" + txtName.Text + "'";</p><p><b>  try</b></p><p><b>  {</b></p><p>  com.CommandText = strSql;</p><p>  SqlDataRe

53、ader sdr = com.ExecuteReader();</p><p>  if (sdr.Read())</p><p><b>  {</b></p><p>  string s = sdr["roleID"].ToString();</p><p>  Session["ro

54、leID"] = s;</p><p>  Session["userName"] = txtName.Text;</p><p>  Session["userPassword"] = txtPassword.Text;</p><p><b>  }</b></p><p

55、>  sdr.Close();</p><p><b>  }</b></p><p>  catch (SqlException ex)</p><p><b>  {</b></p><p>  Response.Write(ex.ToString());</p><p

56、><b>  }</b></p><p><b>  finally</b></p><p><b>  {</b></p><p>  con.Close();</p><p><b>  }</b></p><p>  R

57、esponse.Redirect("Main.aspx");</p><p>  如果驗(yàn)證通過,系統(tǒng)會(huì)連接數(shù)據(jù)庫(kù),進(jìn)行數(shù)據(jù)正確性以及用戶權(quán)限的檢查,以上檢查成功的情況下,就會(huì)進(jìn)入本系統(tǒng)的主窗體,如果失敗,跳出錯(cuò)誤提示框。</p><p>  5.1.3 注冊(cè)窗口</p><p><b>  圖5-3 注冊(cè)窗口</b><

58、/p><p>  在注冊(cè)過程中,系統(tǒng)會(huì)自動(dòng)檢查用戶注冊(cè)的信息是否合法,相關(guān)代碼如下:</p><p>  string conn = ConfigurationManager.ConnectionStrings["WebTestConnectionString"].ConnectionString;</p><p>  protected void

59、btnOK_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  SqlConnection con = new SqlConnection(conn);</p><p>  string strSql = "select count(*) from [user

60、] where userName = '" + txtName.Text + "'";</p><p>  SqlCommand com = new SqlCommand(strSql, con);</p><p>  con.Open();</p><p>  int num = (int)com.ExecuteSca

61、lar();</p><p>  if (num > 0)</p><p><b>  {</b></p><p>  Response.Write("<script language='javascript'>alert('表中存在記錄!');</script>"

62、;);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  string name = txtName.Text;</p><p>  string passw

63、ord = this.txtPassword.Text;</p><p>  string sex = "男";</p><p>  if (this.rbtnFemail.Checked)</p><p><b>  {</b></p><p>  sex = "女";</

64、p><p><b>  }</b></p><p>  string identity = txtIdentity.Text.ToString();</p><p>  string email = this.txtMail.Text.ToString();</p><p>  strSql = "insert i

65、nto [user](userName, password, sex, userIdentity, email,roleID) values('" + name + "','" + password + "','" + sex + "','" + identity + "','"

66、;</p><p>  + email + "',1)";</p><p>  com = new SqlCommand(strSql, con);</p><p>  com.ExecuteNonQuery();</p><p>  con.Close();</p><p>  Respo

67、nse.Write("<script language='javascript'>alert('注冊(cè)成功!返回登錄頁(yè)面');</script>");</p><p><b>  //返回登陸頁(yè)面</b></p><p>  Response.Redirect("Login.aspx&

68、quot;);</p><p><b>  }</b></p><p><b>  }</b></p><p>  protected void btnCancel_Click(object sender, EventArgs e)</p><p><b>  {</b><

69、;/p><p>  Response.Redirect("Login.aspx");</p><p><b>  }</b></p><p>  主要界面設(shè)計(jì)—用戶登錄信息畫面</p><p>  5.2.1 實(shí)現(xiàn)目標(biāo)</p><p>  程序啟動(dòng)后,登錄進(jìn)入在線答題窗體,在管理模

70、塊中主要實(shí)現(xiàn)如下功能:</p><p> ?。?)檢索當(dāng)前啟用的組織結(jié)構(gòu)相關(guān)的部門及員工信息。</p><p> ?。?)對(duì)登陸者個(gè)人信息的管理。</p><p> ?。?)對(duì)基本信息進(jìn)行登錄和修改操作。</p><p>  (4)考試科目即考試內(nèi)容建立。</p><p> ?。?)對(duì)考試信息的查詢。</p>

71、;<p><b>  5.2.2 主界面</b></p><p>  圖5-4 在線考試主界面</p><p>  本界面為主操作界面。管理員通過登錄界面的驗(yàn)證后,方能進(jìn)入此界面。</p><p>  此畫面可以進(jìn)行考試各類信息的添加,更新和刪除,以及用戶信息查詢等功能。</p><p><b>

72、  點(diǎn)擊顯示答案后:</b></p><p>  圖5-5 答題測(cè)試界面</p><p><b>  相關(guān)主代碼如下:</b></p><p>  protected void Page_Load(object sender, EventArgs e)</p><p><b>  {</b&g

73、t;</p><p>  if (!this.IsPostBack)</p><p><b>  {</b></p><p>  BindSubjectName();</p><p><b>  Bind();</b></p><p><b>  }</b&g

74、t;</p><p><b>  }</b></p><p>  string conn = ConfigurationManager.ConnectionStrings["WebTestConnectionString"].ConnectionString;</p><p>  private void BindSubje

75、ctName()</p><p><b>  {</b></p><p>  SqlConnection con = new SqlConnection(conn);</p><p>  SqlDataAdapter sda = new SqlDataAdapter("select * from course", con);

76、</p><p>  DataSet ds = new DataSet();</p><p>  sda.Fill(ds, "table");</p><p>  ddlQuestionName.DataSource = ds.Tables["table"];</p><p>  ddlQuestion

77、Name.DataTextField = "courseName";</p><p>  ddlQuestionName.DataValueField = "courseID";</p><p>  ddlQuestionName.DataBind();</p><p><b>  }</b></p

78、><p>  private void Bind()</p><p><b>  {</b></p><p>  string str = ddlQuestionName.SelectedItem.Text.ToString();</p><p>  string sql = "select q.* from qu

79、estion q,course c where q.courseID = c.courseID and c.courseName = '" + str + "'";</p><p>  SqlConnection con = new SqlConnection(conn);</p><p>  SqlDataAdapter sda = new

80、SqlDataAdapter(sql, con);</p><p>  DataSet ds = new DataSet();</p><p>  sda.Fill(ds, "table");</p><p>  DataList1.DataKeyField = "questionID";</p><p&g

81、t;  DataList1.DataSource = ds.Tables["table"];</p><p>  DataList1.DataBind();</p><p><b>  }</b></p><p>  protected void btnShowAnswer_Click(object sender, Even

82、tArgs e)</p><p><b>  {</b></p><p>  if (btnShowAnswer.Text == "顯示答案")</p><p><b>  {</b></p><p>  for (int i = 0; i < DataList1.Item

83、s.Count; i++)</p><p><b>  {</b></p><p>  ((Label)(DataList1.Items[i].FindControl("lblAnswer"))).Visible = true;</p><p><b>  }</b></p><p&

84、gt;  btnShowAnswer.Text = "隱藏答案";</p><p><b>  }</b></p><p><b>  else </b></p><p><b>  {</b></p><p>  for (int i = 0; i <

85、; DataList1.Items.Count; i++)</p><p><b>  {</b></p><p>  ((Label)(DataList1.Items[i].FindControl("lblAnswer"))).Visible = false;</p><p><b>  }</b>&

86、lt;/p><p>  btnShowAnswer.Text = "顯示答案";</p><p><b>  }</b></p><p><b>  }</b></p><p>  protected void ddlQuestionName_SelectedIndexChanged

87、(object sender, EventArgs e)</p><p><b>  {</b></p><p><b>  Bind();</b></p><p><b>  }</b></p><p>  protected void btnFinish_Click(obj

88、ect sender, EventArgs e)</p><p><b>  {</b></p><p>  int count = 0;//答對(duì)的數(shù)目</p><p>  for (int index = 0; index < DataList1.Items.Count; index++)</p><p><

89、;b>  {</b></p><p>  string labelStr = ((Label)(DataList1.Items[index].FindControl("lblAnswer"))).Text;</p><p>  string rightAnswer = labelStr.Substring(labelStr.Length - 1);&l

90、t;/p><p>  string selectedRadioButton = "";</p><p>  if (((RadioButton)(DataList1.Items[index].FindControl("rbtn1"))).Checked)</p><p><b>  {</b></p&g

91、t;<p>  selectedRadioButton = "A";</p><p><b>  }</b></p><p>  else if (((RadioButton)(DataList1.Items[index].FindControl("rbtn2"))).Checked)</p><

92、;p><b>  {</b></p><p>  selectedRadioButton = "B";</p><p><b>  }</b></p><p>  else if (((RadioButton)(DataList1.Items[index].FindControl("rb

93、tn3"))).Checked)</p><p><b>  {</b></p><p>  selectedRadioButton = "C";</p><p><b>  }</b></p><p>  else if(((RadioButton)(DataList

94、1.Items[index].FindControl("rbtn4"))).Checked)</p><p><b>  {</b></p><p>  selectedRadioButton = "D";</p><p><b>  }</b></p><p&g

95、t;  if (rightAnswer == selectedRadioButton)</p><p><b>  {</b></p><p>  count += 1;</p><p>  if (DataList1.Items[index].TabIndex >= 100)</p><p><b> 

96、 {</b></p><p>  DataList1.Items[index].TabIndex -= 100;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  else </b></p>&

97、lt;p><b>  {</b></p><p>  DataList1.Items[index].TabIndex = (short)(100 + index);</p><p><b>  }</b></p><p>  this.btnRedoError.Enabled = true;</p>&

98、lt;p><b>  }</b></p><p>  lblResult.Text = "答對(duì)"+count+"題,錯(cuò)"+(DataList1.Items.Count-count)+"題";</p><p><b>  }</b></p><p>  pro

99、tected void btnRedo_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  Response.Redirect("ShowQuestion.aspx");</p><p><b>  }</b></p>

100、;<p>  protected void btnRedoError_Click(object sender, EventArgs e)</p><p><b>  {</b></p><p>  for (int index = 0; index < DataList1.Items.Count; index++)</p><p

101、><b>  {</b></p><p>  if (DataList1.Items[index].TabIndex < 100)</p><p><b>  {</b></p><p>  DataList1.Items[index].Visible = false;</p><p>

102、<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  主要界面設(shè)計(jì) —— ADDQUESTION.ASPX</p><p>

103、;  5.3.1 實(shí)現(xiàn)目標(biāo)</p><p><b>  圖5-6 科目管理</b></p><p>  當(dāng)管理員登入系統(tǒng)后,進(jìn)入信息添加頁(yè)面,需要將相關(guān)考試信息錄入考試系統(tǒng)中,方便用戶進(jìn)行考試。相關(guān)代碼如下:</p><p>  private void BindQuestionName()</p><p><b&

104、gt;  {</b></p><p>  SqlConnection con = new SqlConnection(conn);</p><p>  SqlDataAdapter sda = new SqlDataAdapter("select * from Course", con);</p><p>  DataSet ds =

105、 new DataSet();</p><p>  sda.Fill(ds, "table");</p><p>  ddlCourseName.DataSource = ds.Tables["table"];</p><p>  ddlCourseName.DataTextField = "courseName&q

106、uot;;</p><p>  ddlCourseName.DataValueField = "courseID";</p><p>  ddlCourseName.DataBind();</p><p><b>  }</b></p><p>  protected void GridView1_R

107、owEditing(object sender, GridViewEditEventArgs e)</p><p><b>  {</b></p><p>  string courseID = ddlCourseName.SelectedValue.ToString();</p><p>  string questionID = GridV

108、iew1.Rows[e.NewEditIndex].Cells[0].Text.ToString().Trim();</p><p>  string questionContent = GridView1.Rows[e.NewEditIndex].Cells[1].Text.ToString().Trim();</p><p>  string a1 = GridView1.Rows[e

109、.NewEditIndex].Cells[2].Text.ToString().Trim();</p><p>  string a2 = GridView1.Rows[e.NewEditIndex].Cells[3].Text.ToString().Trim();</p><p>  string a3 = GridView1.Rows[e.NewEditIndex].Cells[4].

110、Text.ToString().Trim();</p><p>  string a4 = GridView1.Rows[e.NewEditIndex].Cells[5].Text.ToString().Trim();</p><p>  string rightAnswer = GridView1.Rows[e.NewEditIndex].Cells[6].Text.ToString()

111、.Trim();</p><p>  //UpdateQuestion question = new UpdateQuestion(questionID, courseID, questionContent, a1, a2, a3, a4, rightAnswer);</p><p>  string str = "AddQuestion.aspx?courseID="

112、 + courseID + "&questionID=" + questionID + "&questionContent=" + questionContent + "&a1=" + a1 + "&a2=" + a2 + "&a3=" + a3 + "&a4=" + a

113、4 + "&rightAnswer=" + rightAnswer;</p><p>  Response.Redirect(str);</p><p><b>  }</b></p><p>  主要界面設(shè)計(jì) —— USERMANGEMENT.ASPX</p><p>  5.4.1 實(shí)現(xiàn)目

114、標(biāo)</p><p>  圖5-7 用戶管理界面</p><p>  管理員登錄該界面后,對(duì)用戶所注冊(cè)的信息進(jìn)行核實(shí)和管理。相關(guān)重要代碼如下:</p><p>  private void Bind()</p><p><b>  {</b></p><p>  SqlConnection con

115、= new SqlConnection(conn);</p><p>  SqlDataAdapter sda = new SqlDataAdapter("select * from [user]", con);</p><p>  DataSet ds = new DataSet();</p><p>  sda.Fill(ds, "

116、table");</p><p>  GridView1.DataSource = ds.Tables["table"];</p><p>  GridView1.DataKeyNames = new string[] { "userName" };</p><p>  GridView1.DataBind();&l

117、t;/p><p><b>  }</b></p><p>  protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)</p><p><b>  {</b></p><p>  SqlConnectio

118、n con = new SqlConnection(conn);</p><p>  string sqlString = "delete from [user] where userName = '"+GridView1.DataKeys[e.RowIndex].Value.ToString()+"'";</p><p>  Sql

119、Command com = new SqlCommand(sqlString, con);</p><p>  con.Open();</p><p>  com.ExecuteNonQuery();</p><p>  con.Close();</p><p><b>  Bind();</b></p>

120、<p><b>  }</b></p><p>  protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)</p><p><b>  {</b></p><p>  string strSql = "

121、update [user] set password ='" +</p><p>  ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim()</p><p>  + "',sex='" + ((TextBox)(GridVie

122、w1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim()</p><p>  + "',userIdentity='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim()</p&g

123、t;<p>  + "',email='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim()</p><p>  +"' where userName = '"+GridView1.DataKeys[e.Ro

124、wIndex].Value.ToString()+"'";</p><p>  SqlConnection con = new SqlConnection(conn);</p><p>  SqlCommand com = new SqlCommand(strSql, con);</p><p>  con.Open();</p&g

125、t;<p>  com.ExecuteNonQuery();</p><p>  con.Close();</p><p>  GridView1.EditIndex = -1;</p><p><b>  Bind();</b></p><p><b>  }</b></p&g

126、t;<p><b>  結(jié) 論</b></p><p>  畢業(yè)設(shè)計(jì)是大專生學(xué)習(xí)階段上的一次非常難得的理論與實(shí)際相結(jié)合的機(jī)會(huì),通過這次比較完整的在線考試系統(tǒng)設(shè)計(jì),我擺脫了單純的理論知識(shí)學(xué)習(xí)狀態(tài),和實(shí)際相結(jié)合鍛煉了我綜合運(yùn)用所學(xué)知識(shí)的專業(yè)基礎(chǔ)知識(shí),解決了實(shí)際工程能力。</p><p>  雖然畢業(yè)設(shè)計(jì)內(nèi)容繁多,過程繁瑣,但我的收獲卻更加豐富。在設(shè)計(jì)過程中

127、,雖然遇到不少的挫折,至使很多處代碼運(yùn)行起來不協(xié)調(diào),常常遇到問題。但是,正因?yàn)檫@樣,我才有克服困難的機(jī)會(huì),問題各個(gè)擊破。從而鍛煉了自己對(duì)待事情的認(rèn)真和負(fù)責(zé)能力,從而也提高了獨(dú)立思考的能力。</p><p>  如期順利的完成本次畢業(yè)設(shè)計(jì)給我?guī)砹撕艽蟮男判?。讓我了解了專業(yè)知識(shí)同時(shí)也對(duì)本專業(yè)的發(fā)展充滿了希望。它讓我了解到,只有發(fā)現(xiàn)問題才能解決問題,不足和遺憾不會(huì)給我打擊只會(huì)更好的鞭策我前行。今后我回更加關(guān)注這方面的

128、知識(shí),掌握新的知識(shí),爭(zhēng)取為祖國(guó)的信息發(fā)展供一份力量。</p><p><b>  致 謝</b></p><p>  畢業(yè)設(shè)計(jì)是對(duì)我們知識(shí)能力的一次全面考核,也是對(duì)我們科學(xué)研究基本功的訓(xùn)練,培養(yǎng)我們綜合運(yùn)用所學(xué)知識(shí)獨(dú)立的分析問題和解決問題的能力,為以后撰寫專業(yè)學(xué)術(shù)論文和工作打下良好基礎(chǔ)。</p><p>  本次設(shè)計(jì)能夠順利完成,首先要感謝我

129、的母校——******學(xué)院。是她為我們提供了學(xué)習(xí)知識(shí)的土壤,使我們?cè)谶@里茁壯成長(zhǎng),其次要感謝***老師在設(shè)計(jì)工程中給予我的悉心指導(dǎo),她認(rèn)真負(fù)責(zé)的態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和深厚的理論水平都是我受益匪淺。她無(wú)論在理論上還是實(shí)踐中,都給予我很大的幫助,感謝她耐心的輔導(dǎo),特在此再次表示謝意。最后要感謝相關(guān)資料的編著者和給予我們支持的社會(huì)各界人士,感謝您們?yōu)槲覀兲峁┮粋€(gè)良好的環(huán)境,使這次設(shè)計(jì)圓滿完成。</p><p>  由于

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論