基于BS的網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn).doc_第1頁
基于BS的網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn).doc_第2頁
基于BS的網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn).doc_第3頁
基于BS的網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn).doc_第4頁
基于BS的網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn).doc_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于B/S的網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn)論文關(guān)鍵詞:ASP.netB/S網(wǎng)絡(luò)考試系統(tǒng)數(shù)據(jù)庫論文摘要:隨著網(wǎng)絡(luò)的普及和對教育的重視,各院校各學科的網(wǎng)上考試都具有了必要的使用環(huán)境。但是,目前國內(nèi)的一些網(wǎng)絡(luò)教學系統(tǒng)的主要功能是教學,不能單獨作為考試平臺,通用性差,而且系統(tǒng)中對主觀題的評閱多是采用人工評閱方式,沒有實現(xiàn)真正意義上的自動評分。另一方面,我們所在院校的計算機基礎(chǔ)課已開設(shè)了多年,但尚在沿用傳統(tǒng)的考試形式或使用單機版的考試系統(tǒng)?;赪eb的網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn)就是基于上述目的開發(fā)設(shè)計的。本系統(tǒng)采用B/S架構(gòu)作為系統(tǒng)的總體結(jié)構(gòu),以Web數(shù)據(jù)庫技術(shù)為依托,利用微軟的ASP.NET技術(shù),結(jié)合ADO,實現(xiàn)了對Web數(shù)據(jù)庫的訪問和查詢。該設(shè)計實現(xiàn)了按題型隨機抽題組卷、在線考試、題庫管理、系統(tǒng)管理的功能,能夠?qū)陀^題在線評分。學生用學號登錄成功后,閱讀考試須知,之后選擇考試科目進入考試頁面,完成相應科目考試,自動給出考試成績。系統(tǒng)管理,實現(xiàn)了對題庫、考生信息、考試成績、考試科目的管理。題庫管理,實現(xiàn)了對試題的添加、編輯、刪除功能;考生信息管理可以添加、修改、刪除、查詢考生信息,成績管理可以刪除成績信息,科目管理主要是修改考試科目信息?;赪eb的網(wǎng)上考試系統(tǒng)本身是一個很大的系統(tǒng),尤其試題庫部分需要許多人的參與以及大量的投入才能建成。該系統(tǒng)雖然僅僅是完成計算機文化基礎(chǔ)和操作系統(tǒng)課程的考試,但卻具有良好的實用性與通用性,提供友好的人機界面,具有較好的可擴充性和開放性。 一、 緒論 1.1 網(wǎng)上考試系統(tǒng)的現(xiàn)狀分析 在信息技術(shù)迅速發(fā)展的今天,網(wǎng)絡(luò)對于大多數(shù)人已不再陌生,并且其應用在人們的工作、學習和生活中越來越多地發(fā)揮著不可替代的作用。近年來隨著軟件工程技術(shù)、信息通信技術(shù)的快速發(fā)展以及計算機網(wǎng)絡(luò)技術(shù)的日趨成熟,網(wǎng)絡(luò)教育在人們的教育活動中逐步得到普及。網(wǎng)上考試是網(wǎng)絡(luò)教育不可缺少的組成部分,是網(wǎng)絡(luò)教育的一個重要環(huán)節(jié)。網(wǎng)上考試在國外一些國家已經(jīng)得到了蓬勃發(fā)展,人們選學課程和考試都是通過網(wǎng)上進行的。例如國外一些著名的考試,如Microsoft公司的MCSE(Microsoft系統(tǒng)工程師認證考試)、GMAT(工商管理碩士入學考試)、托??荚?、GRE(美國研究生入學考試)等,都是采用網(wǎng)上考試的形式進行的。在國內(nèi),目前絕大多數(shù)考試還停留在傳統(tǒng)考試方式上,對互聯(lián)網(wǎng)的真正應用僅限于一些考試的網(wǎng)上報名工作和網(wǎng)上成績查詢,還沒有真正形成網(wǎng)上考試規(guī)模。網(wǎng)上考試系統(tǒng)作為現(xiàn)代教育的一個子系統(tǒng),是保證教育教學質(zhì)量的重要手段。在傳統(tǒng)的考試方式下,組織一次考試要經(jīng)過出題、考試、評卷、試卷分析等步驟,隨著考試類型的增加及考試要求的提高,教師的工作量將會越來越大,并且其工作非常容易出錯,在一定程度上說,傳統(tǒng)的考試方式已經(jīng)存在著改革的必要了。Internet技術(shù)的發(fā)展使得考試的技術(shù)手段和載體發(fā)生了劃時代的變化,考試從傳統(tǒng)的紙筆考試到計算機輔助考試再發(fā)展到基于Web的網(wǎng)上考試成為現(xiàn)實?,F(xiàn)階段,網(wǎng)上考試系統(tǒng)的主流開發(fā)技術(shù)已經(jīng)相當成熟,且很好地適應了動態(tài)站點設(shè)計和基于Web的數(shù)據(jù)庫訪問的要求,是當前網(wǎng)上考試軟件實現(xiàn)的主流技術(shù)之一。在對大量關(guān)于網(wǎng)上考試系統(tǒng)資料的研究和學習后,根據(jù)工作的需要,針對本校實際情況特別是教學的需求,利用學校校園網(wǎng)已有的基礎(chǔ)條件,研究開發(fā)適合本校使用的基于Web的網(wǎng)上考試系統(tǒng)。1.2 選題的背景及研究意義 隨著計算機科學、網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,在教育領(lǐng)域里,實現(xiàn)網(wǎng)上考試可以充分利用學校現(xiàn)有的計算機軟、硬件資源和網(wǎng)絡(luò)資源實現(xiàn)考試;對于客觀題由計算機來完成閱卷,可以將減少人工閱卷的工作量。目前常用的網(wǎng)上考試系統(tǒng)主要有兩種基本模式:傳統(tǒng)的C/S(客戶機/服務(wù)器)模式和新型的B/S(瀏覽器/服務(wù)器)模式,所謂C/S模式,即數(shù)據(jù)庫(比如,試題庫)內(nèi)容放在遠程的服務(wù)器上,在客戶機上安裝相應軟件;C/S結(jié)構(gòu)在技術(shù)上雖然很成熟,但該結(jié)構(gòu)的程序往往只局限在小型的局域網(wǎng)內(nèi)部,不利于擴展。并且,該結(jié)構(gòu)的每臺客戶機都需要安裝相應的客戶端程序。當擁有用戶量比較多時,如果采用該結(jié)構(gòu),系統(tǒng)的安裝與維護工作比較繁重。同時,由于應用程序直接安裝在客戶機,客戶機直接和數(shù)據(jù)庫服務(wù)器交換數(shù)據(jù),系統(tǒng)的安全性也受到一定影響。與傳統(tǒng)的基于C/S模式的網(wǎng)上考試系統(tǒng)相比,B/S體系將應用邏輯與用戶界面和數(shù)據(jù)訪問相分離,使系統(tǒng)的維護變得簡單(只需要改變網(wǎng)頁,即可實現(xiàn)所有用戶的同步更新),同時簡化了客戶端的功能,用戶只需瀏覽器即可使用此考試系統(tǒng),更適宜于互聯(lián)網(wǎng)上的考試。 在信息網(wǎng)絡(luò)化的現(xiàn)實面前,我們提出一種基于Web的網(wǎng)上考試系統(tǒng),并用SQL Sever 2000數(shù)據(jù)庫與ASP.NET技術(shù)結(jié)合進行了該系統(tǒng)的開發(fā)。1.3 系統(tǒng)基本簡介 我們課題組所做的工作不僅僅是參與開發(fā)一個完整的在線考試系統(tǒng),也是一個引導性的基礎(chǔ)研究,是對.net平臺下基于B/S結(jié)構(gòu)的軟件體系結(jié)構(gòu)、關(guān)鍵技術(shù)、實現(xiàn)技術(shù)、框架解決方案進行的探索。本系統(tǒng)采用ASP.NET、HTML、Javascript、VBScript、圖形編輯與數(shù)據(jù)庫等工具,通過基于WEB服務(wù)器訪問WEB頁面,可以不受地點,時間限制,通過寬帶上網(wǎng)或其它上網(wǎng)方式,借助Internet這一強大、方便的工具,考生可以在互聯(lián)網(wǎng)上通過瀏覽器來選擇科目、參加考試,管理員可以在互聯(lián)網(wǎng)上通過瀏覽器來添加、修改學生信息,添加、修改、刪除試題,修改考試科目信息,管理學生成績;同時還實現(xiàn)有學生信息查詢功能:按班級、學號、姓名等關(guān)鍵字查詢,實現(xiàn)對整個系統(tǒng)的管理功能。系統(tǒng)的主界面主要有考生、管理員入口,根據(jù)用戶類型,分別進入考試和管理兩個不同的頁面。其最大的特點是開放性、方便性和靈活性。二、 系統(tǒng)的關(guān)鍵技術(shù)及介紹 在基于Web的網(wǎng)上考試系統(tǒng)的設(shè)計過程中,主要考慮了以下幾方面的問題:(1) ASP.NET技術(shù);(2) 建立數(shù)據(jù)庫,使用SQL Sever 2000來建立;(3) 選擇系統(tǒng)的開發(fā)模式,B/S模式;(4) ADO.NET對象模型;(5) 系統(tǒng)數(shù)據(jù)庫設(shè)計。2.1 ASP.NET技術(shù)概況 ASP.NET是微軟公司推出的一種Internet編程技術(shù),它采用效率較高的、面向?qū)ο蟮姆椒▉韯?chuàng)建動態(tài)Web應用程序。在原來的ASP技術(shù)中,服務(wù)器端代碼和客戶端HTML混合在一起,常常導致頁面的代碼冗長而復雜,程序的邏輯難以理解。ASP.NET是一種獨立于瀏覽器的編程模型,可以在最新版本的IE、NetscapeNavigator以及諸如Opera等被廣泛使用的瀏覽器上運行。ASP.NET是一種建立在通用語言上的程序構(gòu)架。一個已編譯的、基于.NET的環(huán)境,把基于通用語言的程序在服務(wù)器上運行。將程序在服務(wù)器端首次運行時進行編譯,比ASP即時解釋程序速度上要快很多。微軟公司發(fā)布了包括Visual Basic.NET、C#.NET、Visual C+.NET等與.NET兼容的語言來創(chuàng)作應用程序。2.1.1 ASP.NET的優(yōu)勢 ASP.NET是在服務(wù)器上運行的編譯好的公共語言運行庫代碼,它可利用早期綁定、實時編譯、本機優(yōu)化和盒外緩存服務(wù)。這相當于在編寫代碼行之前便顯著提高了性能。1)世界級的工具支持ASP.NET框架補充了Visual Studio集成開發(fā)環(huán)境中的大量工具箱和設(shè)計器。WYSIWYG編輯、拖放服務(wù)器控件和自動部署只是這個強大的工具所提供功能中的少數(shù)幾種。2)威力和靈活性由于ASP.NET基于公共語言運行庫,因此Web應用程序開發(fā)人員可以利用整個平臺的威力和靈活性。Microsoft.NET框架類庫、消息處理和數(shù)據(jù)訪問解決方案都可從Web無縫訪問。ASP.NET也與語言無關(guān),所以可以選擇最適合應用程序的語言,或跨多種語言分割應用程序。另外,公共語言運行庫的交互性保證在遷移到ASP.NET時保留基于COM的開發(fā)中的現(xiàn)有投資。3)簡易性ASP.NET使執(zhí)行常見任務(wù)變得容易,從簡單的窗體提交和客戶端身份驗證到部署和站點配置。例如,ASP.NET頁框架使您可以生成將應用程序邏輯與表示代碼清楚分開的用戶界面,和在類似Visual Basic的簡單窗體處理模型中處理事件并不相同。另外,公共語言運行庫利用托管代碼服務(wù)(如自動引用計數(shù)和垃圾回收)簡化了開發(fā)。4)可管理性ASP.NET采用基于文本的分層配置系統(tǒng),簡化了將設(shè)置應用于服務(wù)器環(huán)境和Web應用程序。由于配置信息是以純文本形式存儲的,因此可以在沒有本地管理工具幫助的情況下應用新設(shè)置。此“零本地管理”哲學也擴展到了ASP.NET框架應用程序的部署。只需將必要的文件復制到服務(wù)器,即可將ASP.NET框架應用程序部署到服務(wù)器。不需要重新啟動服務(wù)器,即使是在部署或替換運行的編譯代碼時。 5)可縮放性和可用性ASP.NET在設(shè)計時考慮了可縮放性,增加了專門用于在聚集環(huán)境和多處理器環(huán)境中提高性能的功能。另外,進程受到ASP.NET運行庫的密切監(jiān)視和管理,以便當進程行為不正常(泄漏、死鎖)時,可就地創(chuàng)建新進程,以幫助保持應用程序始終可用于處理請求。6)自定義性和擴展性ASP.NET隨附了一個設(shè)計周到的結(jié)構(gòu),它使開發(fā)人員可以在適當?shù)募墑e“插入”代碼。實際上,可以用自己編寫的自定義組件擴展或替換吉林大學碩士學位論文ASP.NET運行庫的任何子組件。7)安全性借助內(nèi)置的Windows身份驗證和基于每個應用程序的配置,可以保證應用程序是安全的。2.1.2 常用到的ASP.NET內(nèi)置對象 Application對象:對整個ASP.NET執(zhí)行環(huán)境而言,一個虛擬目錄下的所有ASP.NET程序構(gòu)成了一個Web應用程序。在多任務(wù)執(zhí)行的情況下,來自四面八方的眾多用戶可能執(zhí)行同一個Web應用程序,這便依賴Application對象。常用到的場合:聊天室、網(wǎng)頁計數(shù)器等。Request對象:獲取從客戶瀏覽器傳給服務(wù)器端的數(shù)據(jù),如接收來自表單的數(shù)據(jù)。Response對象:Request對象與Response對象就像一般程序語言里的Input及Output命令,若要讓服務(wù)器端的ASP.NET程序能夠接收來自客戶端的信息,須用Request對象;若想將服務(wù)器端的信息傳遞給客戶端,須用Response對象。Session對象:Session對象和Application對象極為類似,但Session對象的信息只適用于同一位用戶,換句話說,一個Session對象只屬于一位用戶。常用到的場合:虛擬購物車、用戶登陸網(wǎng)站時用戶名的臨時存儲等。2.2 利用SQL Sever 2000來建立數(shù)據(jù)庫 Microsoft SQL Server 2000 是一種關(guān)系型數(shù)據(jù)庫。此種數(shù)據(jù)庫采數(shù)據(jù)分類表格化的架構(gòu),將相關(guān)的數(shù)據(jù)組成表格,表格和表格之間可以有關(guān)聯(lián)性,因此稱為關(guān)系型數(shù)據(jù)庫。系統(tǒng)管理員可透過應用程序進入服務(wù)器,更改數(shù)據(jù)型態(tài),管理及處理服務(wù)器資源。SQL Server 也是一種具備延展性的數(shù)據(jù)庫(scalable database),亦即 SQL Server 可以支持多位使用者同時進入數(shù)據(jù)庫中處理大量的數(shù)據(jù)。2.3 Browser/Server模式本系統(tǒng)的開發(fā)模式 2.3.1 Browser/Server模式簡介 隨著網(wǎng)絡(luò)規(guī)模的日益擴大,應用程序的復雜程度不斷提高,傳統(tǒng)的數(shù)據(jù)庫應用架構(gòu)已經(jīng)不能勝任。為了充分利用網(wǎng)絡(luò)資源,越來越多的信息需要在 www(WoridWideWeb)上發(fā)布,實現(xiàn)信息最大程度的共享。Browser/Serve結(jié)構(gòu)伴隨著Intemet的發(fā)展而很快地發(fā)展起來。Browser/Serve體系結(jié)構(gòu)是一種三層結(jié)構(gòu): 第一層,瀏覽器是表示層,完成用戶接口功能。在客戶端向URL(Uniform ResourceLocator)指定的web服務(wù)器提出服務(wù)器請求,Web服務(wù)器用HTTP協(xié)議把所需文件資料傳給用戶,客戶端接受并顯示在WWW瀏覽器上。第二層,Web服務(wù)器是功能層,完成客戶的應用功能。即Web服務(wù)器接受客戶請求,以CGI或ASP與數(shù)據(jù)庫連接,進行申請?zhí)幚?,而后?shù)據(jù)庫結(jié)果返回web服務(wù)器,再傳至客戶端。第三層,數(shù)據(jù)庫服務(wù)器是數(shù)據(jù)層。數(shù)據(jù)庫服務(wù)器應客戶請求獨立地進行各種處理。Browser/server系統(tǒng)中的Browser作為一種通用的瀏覽器,一般沒有任何應用程序; Browser/server系統(tǒng)中的中間層是B/S結(jié)構(gòu)中相當關(guān)鍵的部分,中間層在Browser/Serve:系統(tǒng)中充當著雙重身份:從Browser的角度看,它是 WebServer,而從 DBServe的角度看,它是一個功能豐富的Client。2.3.2 Browser/Server模式的特點 B/S系統(tǒng)的這三層體系結(jié)構(gòu)的特點:友好、統(tǒng)一的圖形用戶界面 在Browser/Server系統(tǒng)中,由于遵循了統(tǒng)一的標準協(xié)議,而且使用瀏覽器作為統(tǒng)一的客戶軟件,用戶無須再花費大量的時間與精力去學習和熟悉不同的系統(tǒng)的使用方法,用戶可以把大部分的精力集中在系統(tǒng)的內(nèi)容上,而不是去記住系統(tǒng)的使用說明書。減少網(wǎng)絡(luò)中的數(shù)據(jù)流量在Browser/server系統(tǒng)中,由于數(shù)據(jù)的處理工作是由服務(wù)器來執(zhí)行的,因此在讀取數(shù)據(jù)和保存數(shù)據(jù)時,這些數(shù)據(jù)只在幾臺服務(wù)器之間傳輸,不需要通過瀏覽器與服務(wù)器之間的網(wǎng)絡(luò)。一般來說,瀏覽器與服務(wù)器之間的網(wǎng)絡(luò)大都是距離較長而且速度較低的,而服務(wù)器與服務(wù)器之間的網(wǎng)絡(luò)則是距離較短而且速度較高的,因此采用Browser/Server后,可以充分地利用服務(wù)器之間的高速連接通路,而減少在瀏覽器與服務(wù)器之間的長距離低速網(wǎng)絡(luò)中的數(shù)據(jù)流量。更好的開放性開放性是發(fā)揮分布式系統(tǒng)優(yōu)勢的基本保障,它為不同廠商生產(chǎn)的產(chǎn)品協(xié)同工作創(chuàng)造了條件,但是這些產(chǎn)品還應當遵循統(tǒng)一的標準。在Browser/server系統(tǒng)中,采用了一致的HTTP協(xié)議以及其他一些共同的規(guī)則,不同系統(tǒng)之間的沖突將會大大減少。平臺無關(guān)性在Browser/Server系統(tǒng)中,程序的主體分布在Mid-Server上,客戶機上只有一個標準的瀏覽器,它與服務(wù)器之間采用標準的TCP/IP及HTTP等協(xié)議進行通信,因此客戶端的平臺是相對獨立的,它不依賴于服務(wù)器方所采用的軟硬平臺。用戶可以自由地選擇自己熟悉的平臺進行工作。有效地解決異種數(shù)據(jù)庫聯(lián)合使用的問題在Browser/Serve系統(tǒng)中,由于采用了 Browser/Mid-Server/Server的三層體系結(jié)構(gòu),只需在中間層服務(wù)器上安裝數(shù)據(jù)庫的驅(qū)動程序,或者使用專門的服務(wù)器用作與數(shù)據(jù)庫連接的橋梁。因為程序的主體是運行在中間服務(wù)器上的,客戶端只是一個瀏覽器,避免了在客戶端重復安裝數(shù)據(jù)庫驅(qū)動程序的問題,從而可以有效地解決異種數(shù)據(jù)庫聯(lián)合使用的問題。客戶端的維護工作簡單Brower/Serve系統(tǒng)中,由于采用了通用的客戶軟件,維護工作主要集中在服務(wù)器端,而服務(wù)器是由專門的管理人員集中管理的,對系統(tǒng)的維護相對簡單得多?;贐/S結(jié)構(gòu)的Web應用體系有如此多的優(yōu)勢,因此本網(wǎng)上考試系統(tǒng)的主體就采用這種B/S體系結(jié)構(gòu)。2.4 ADO.NET對象模型 ADO.NET對象模型中有五個主要的組件,分別是Connection對象、Command對象、DataAdapter、DataSet以及DataReader。這些組件中負責建立聯(lián)機和數(shù)據(jù)操作的部分我們稱為數(shù)據(jù)操作組件(Managed Providers)分別由Connection對象、Command對象、DataAdapter對象以及DataReader對象所組成。數(shù)據(jù)操作組件最主要是當作DataSet對象以及數(shù)據(jù)源之間的橋梁,負責將數(shù)據(jù)源中的數(shù)據(jù)取出后植入DataSet對象中,以及將數(shù)據(jù)存回數(shù)據(jù)源的工作。Connection組件Connection對象主要是開啟程序和數(shù)據(jù)庫之間的連結(jié)。沒有利用連結(jié)對象將數(shù)據(jù)庫打開,是無法從數(shù)據(jù)庫中取得數(shù)據(jù)的。這個物件在ADO.NET的最底層,我們可以自己產(chǎn)生這個對象,或是由其它的對象自動產(chǎn)生。Command組件Command對象主要可以用來對數(shù)據(jù)庫發(fā)出一些指令,例如可以對數(shù)據(jù)庫下達查詢、新增、修改、刪除數(shù)據(jù)等指令,以及呼叫存在數(shù)據(jù)庫中的預存程序等。這個對象是架構(gòu)在Connection對象上,也就是Command對象是透過連結(jié)到數(shù)據(jù)源的Connection對象來下命令的。所以Connection連結(jié)到哪個數(shù)據(jù)庫,Command對象的命令就下到哪里。DataAdapter組件DataAdapter對象主要是在數(shù)據(jù)源以及DataSet之間執(zhí)行數(shù)據(jù)傳輸?shù)墓ぷ?,它可以透過Command對象下達命令后,并將取得的數(shù)據(jù)放入DataSet對象中。這個對象是架構(gòu)在Command對象上,并提供了許多配合DataSet使用的功能。 DataSet組件DataSet這個對象可以視為一個暫存區(qū)(Cache),可以把從數(shù)據(jù)庫中所查詢到的數(shù)據(jù)保留起來,甚至可以將整個數(shù)據(jù)庫顯示出來。DataSet的能力不只是可以儲存多個Table而已,還可以透過DataAdapter對象取得一些例如主鍵等的數(shù)據(jù)表結(jié)構(gòu),并可以記錄數(shù)據(jù)表間的關(guān)聯(lián)。DataSet對象可以說是ADO.NET中重量級的對象,這個對象架構(gòu)在DataAdapter對象上,本身不具備和數(shù)據(jù)源溝通的能力,也就是說我們是將DataAdapter對象當做DataSet對象以及數(shù)據(jù)源間傳輸數(shù)據(jù)的橋梁。DataReader組件當我們只需要循序的讀取數(shù)據(jù)而不需要其它操作時,可以使用DataReader對象。DataReader對象只是一次一筆向下循序的讀取數(shù)據(jù)源中的數(shù)據(jù),而且這些數(shù)據(jù)是只讀的,并不允許作其它的操作。因為DataReade在讀取數(shù)據(jù)的時候限制了每次只讀取一筆,而且只能只讀,所以使用起來不但節(jié)省資源而且效率很好。使用DataReader對象除了效率較好之外,因為不用把數(shù)據(jù)全部傳回,故可以降低網(wǎng)絡(luò)的負載。2.5 系統(tǒng)數(shù)據(jù)庫設(shè)計 2.5.1 數(shù)據(jù)庫結(jié)構(gòu)及說明 數(shù)據(jù)庫結(jié)構(gòu)是網(wǎng)上考試系統(tǒng)設(shè)計方案中的一個重要組成部分,目的在于滿足考生、管理員用戶實現(xiàn)其操作功能。2.5.2 用戶權(quán)限簡介 1.管理員。在此系統(tǒng)中系統(tǒng)管理員具有管理用戶、管理試題和試卷的權(quán)力。他不需注冊,在數(shù)據(jù)庫有一個表來存放相關(guān)信息。2.一般用戶主要是指考生,參加在線考試。三、 系統(tǒng)的整體分析與設(shè)計3.1 需求分析 3.1.1 系統(tǒng)需要解決的主要問題 考生進入系統(tǒng)應該進行身份驗證??忌M入考試系統(tǒng)后,需要選擇考試科目,所以系統(tǒng)還應有考試科目選擇的功能。鑒于考試環(huán)境一般為機房,考試者之間的距離很近,為了避免考試做弊,試卷的試題和題量都應是相同的,但試題并不相同。在線考試基于網(wǎng)絡(luò)環(huán)境,試卷應該從服務(wù)器的數(shù)據(jù)庫隨機抽取試題后動態(tài)生成的。另外,系統(tǒng)還應該對考試時間進行控制,時間到了會要求考試者交卷??荚囌哌x擇提交答卷后,應該自動判卷,給出考生分數(shù)。本系統(tǒng)是為了滿足在線考試的需求而設(shè)計開發(fā)的,可在Internet上進行實時考試。所以本考試系統(tǒng)應具備的考試系統(tǒng)功能,包括:題庫設(shè)計和管理,試卷的隨機組卷能力,用戶在線考試及記錄,系統(tǒng)自動評卷,系統(tǒng)數(shù)據(jù)庫管理維護,系統(tǒng)管理和維護。3.1.2 系統(tǒng)功能模塊劃分 本在線考試系統(tǒng)可分為兩個主要功能模塊進行設(shè)計,這兩個功能模塊分別為:(1)考生功能模塊:考生功能模塊可以實現(xiàn)考生登錄、選擇考試科目、在線考試、完成考試給出分數(shù),如果已經(jīng)考過,則不能登錄考試。(2)管理員功能模塊:管理員功能模塊可以實現(xiàn)管理員登錄、考生信息管理、考試科目管理、題庫管理、考試成績管理。系統(tǒng)統(tǒng)由一個登陸界面登陸,在登陸時是如果是學生,則用戶名為考生學號,如果是管理員登陸,用戶名為管理員名,分別從各自己的數(shù)據(jù)庫中查詢帳戶,并核對登陸密碼,然后根據(jù)不同的角色進入不同的界面。3.2 總體設(shè)計 本部分介紹了基于Web的網(wǎng)上考試系統(tǒng)的總體設(shè)計,主要包括公用登陸模塊的設(shè)計,學生功能模塊的設(shè)計,管理員功能模塊的設(shè)計。3.2.1 公共登陸模塊設(shè)計 所有用戶都從本模塊登陸,登陸界面(login/)上包括一個文本框用于輸入用戶名,一個文本框用于輸入密碼;包括兩個按鈕,用來區(qū)分考生登錄,還是管理員登陸。點擊登陸后,根據(jù)不同按鈕的單擊事件,連接到不同的數(shù)據(jù)庫,從相應的數(shù)據(jù)庫表中查詢用戶名和密碼,如查詢到,則進入相應的頁面,如未查詢到,則彈出出錯信息,用戶點擊確定重新輸入用戶名和密碼登陸,圖3-3示:圖3-3 用戶登錄界面3.2.2 在線考試模塊設(shè)計 考生登錄后,進入考試須知頁面(know1/),選擇考試科目后,若未參加該科目的考試,則進入相應科目考試頁面;否則,不能進入考試頁面。該頁面主要提供了一個考生選擇考試科目的功能,以簡單的超鏈接進入不同的科目考試頁面。3.2.3 管理員功能模塊設(shè)計 管理員登錄后進入后臺管理主頁面(classintro/),由該頁面可以登錄到學生信息管理、科目管理、試題管理、成績管理頁面。四、 部分頁面實現(xiàn)詳解 4.1 考試頁面的實現(xiàn) 考試頁面(exampage/)可以進行單選、多選、填空題這些客觀題的考試。每一類型題都以一個Web用戶控件來實現(xiàn)題目顯示,試題是隨機生成的,每次考試都不同的試卷, 系統(tǒng)以隨機抽題來生成試卷,使用了一個隨機函數(shù)。先在題庫question表中得到每種題型在每次抽題供抽取的總題數(shù)count= SubjectInfo(Subject),隨機選題時應在1-count之間選取,temp = Fix(count * Rnd(10)。由于試卷是考前隨機抽題而得,考生在第一時間開啟試卷,減少了接觸試題的人員間環(huán)節(jié),也在一定程度上防止了考生將試題傳出考場,增強了試題的保密性其次,為了避免由于得到的隨機數(shù)相同,而在一份試卷中抽到相同的考題,在設(shè)計題庫結(jié)構(gòu)時設(shè)置了haveselect標記字段,標記字段取值為0時,該題未被抽取,haveselect標記字段取值為1,表示該題已被抽取,不能再用。這統(tǒng)在抽題時,首先判斷haveselect標記字段是否為0,如果該題已被抽過,則必取新的隨機數(shù)重新抽取。下面以單選題為例來說明。/將haveselect置為1,標記該題為已選Public Function SetReaded(ByVal QuestionID As String)strsql = update question set haveselect=1 Where id= & CInt(QuestionID) ExeSQL(strsql)End Function /將haveselect置為0,該課程所有的考題初始化Public Sub SetRead() strsql = update question set haveselect=0 where subjectname= & Subject & ExeSQL(strsql)End Sub/用隨機函數(shù)Rnd()來生成試題號Public Sub DataBingToRep()strsql = select top & 1 & * from question Where subjectname= & Subject & AND type=單選題and haveselect= 0 Randomize()count = SubjectInfo(Subject)temp = Fix(count * Rnd(100)If Qds.Tables(0).Rows.Count 0 Then GetRowInfo(Qds.Tables(0).Rows(temp)ElselblQesName.Text = 暫時沒有 & Subject & 的單選題!End IfEnd Sub/統(tǒng)計課程考題的數(shù)量, 獲得count值Function SubjectInfo(ByVal name As String) As Integerstrsql = select * from question where subjectname= & name & AND type=單選題and haveselect=0 Dim cmd As New SqlDataAdapter(strsql, appconn) cmd.Fill(Qds, Info) Return Qds.Tables(Info).Rows.CountEnd Function4.2 管理主頁面的實現(xiàn) 管理主頁面是管理員進入后臺管理后所看到的第一個頁面,在該頁面上有Label控件顯示了管理員名,登錄時間信息,一組超鏈接實現(xiàn)各個頁面之間的跳轉(zhuǎn),以一個表格中加入超鏈接圖片也可以在不同頁面之間跳轉(zhuǎn),該頁面主要是管理員歡迎界面,沒有什么關(guān)鍵代碼,只是超鏈接的使用。4.3 學生信息管理頁面(manstudentinfo/)的實現(xiàn) 該頁面用DataGrid控件顯示了學生信息,并實現(xiàn)了分頁顯示,同時以下拉列表事件來實現(xiàn)按班級查詢學生信息,其中班級是從數(shù)據(jù)庫里查詢出來的不重復的班級,還以下拉列表提供了按序號、學號、姓名進行的關(guān)鍵字查詢,以超鏈接實現(xiàn)了跳轉(zhuǎn)到添加、修改學生信息頁面。關(guān)鍵代碼解釋:/定義數(shù)據(jù)庫連接字符串,Dim conn As New SqlConnection(ConfigurationSettings.AppSettings(ConnectionString)/使用DISTINCT關(guān)鍵字搜索出數(shù)據(jù)庫中的不同班級,class_name為下拉列表控件comdstr2 = select DISTINCT class from studentclass_name.DataSource = studs.Tables(student1)class_name.DataBind()class_name.Items.Insert(0, New ListItem(全部, 全部)/使第一項顯示為“全部”class_name.SelectedIndex = class_name.Items.IndexOf(class_name.Items.FindByText(全部)/使用Response.Redirect可以將網(wǎng)頁轉(zhuǎn)移至另外的網(wǎng)頁上,使用的語法結(jié)構(gòu)是:Response.Redirect網(wǎng)址,其中網(wǎng)址可以是相對地址或絕對地址,在此使用Response.Redirect(addstudentinfo/)跳轉(zhuǎn)到修改學生信息頁面Session(studentid) = s_datagrid.DataKeys(CInt(E.Item.ItemIndex)/使用下拉列表控件的SelectedIndexChanged事件,實現(xiàn)下拉列表改變,自動按不同班級查詢學生信息Public Sub class_name_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles class_name.SelectedIndexChanged dblstr = Request.Form(class_name) ifsub()End Sub/根據(jù)不同的查詢條件生成不同的查詢字符串Sub ifsub()/使用like % & key & %實現(xiàn)按關(guān)鍵字查詢,以下輸入學號關(guān)鍵字為來實現(xiàn)查詢 If skey = s_no Then comdskey = where s_no like % & key & % comdstr = select * from student & comdskey End If Session(str) = comdstr adp = New SqlDataAdapter(comdstr, conn) ds = New DataSet adp.Fill(ds, student) s_datagrid.DataSource = ds.Tables(student).DefaultView s_datagrid.DataBind()End Sub4.3.1 添加、修改學生信息(addstudentinfo/) 添加學生信息與修改學生信息共用一個頁面,在執(zhí)行不同操作時,傳遞不同的參數(shù)editstudent,當editstudent為空值時,顯示添加學生信息頁面,不為空顯示為修改學生信息,并根據(jù)參數(shù)綁定數(shù)據(jù)庫中的對應的學生信息,顯示在相應的文本框或下拉列表中。關(guān)鍵代碼解釋:/根據(jù)不同editstudent參數(shù)值顯示不同的頁面標題,其中editstudent為學生id添加學生信息修改學生信息/根據(jù)不同editstudent參數(shù)值顯示不同的按鈕文本/該句的功能是把表單提交的變量editstudent的值賦給一個Session對象studentid。這個對象用來存儲學生id,它在用戶對每個頁面的訪問中有效。editstudent = Session(studentid)/點擊修改學生信息事件,使用Request對象的Form獲得頁面上表單的內(nèi)容 nums = Request.Form(num) names = Request.Form(name) pwds = Request.Form(pwd) grades = Request.Form(grade)strA = update student set s_no= & nums & ,s_name= & names & ,s_pwd= & pwds & ,class= & grades & where id= & editstudent4.4 科目管理頁面(managesubject/)的實現(xiàn) 該頁面主要是對考試科目信息的修改,包括各類型題的總分和題量以及考試時間設(shè)置,其中序號和科目名稱是不可修改的。用一個DataGrid控件實現(xiàn)了顯示科目信息,以一個隱藏的Panel控件放上一個表格來綁定相應科目信息,當點擊修改時,Panel控件顯示,并將相應科目信息以表格形式顯示,以供修改。關(guān)鍵代碼解釋:/使用Panel控件的Visible屬性,當點擊修改時,Panel.Visible = True,comdstr1 = select * from subject where id= & s_datagrid.DataKeys(CInt(E.Item.ItemIndex)objcomd = New SqlCommand(comdstr1, conn)objcomd.Connection.Open()studr = objcomd.ExecuteReader/當讀出該記錄時,將相應字段的值顯示在頁面上的相應控件上If studr.Read() then id.Text = studr(id).ToStringEnd If4.5 試題管理頁面(manexampage/)的實現(xiàn) 該頁面以Repeater控件實現(xiàn)了試題的顯示,每一題都用一個表格來顯示,每一題都有一個操作,放了三個鏈接,點擊添加,則跳轉(zhuǎn)到添加試題頁面,點擊修改,則跳轉(zhuǎn)到試題修改頁面,點擊刪除,則刪除該題。此外該頁還進行了分頁,可以到上一頁,下一頁,直接到達首頁和尾頁,并顯示了總頁數(shù)和當前頁碼。關(guān)鍵代碼解釋: manadp = New SqlClient.SqlDataAdaptermanadp.SelectCommand = objcomdmands = New DataSet/填充DataSet數(shù)據(jù)集manadp.Fill(mands, mana) /設(shè)置分頁顯示試題的數(shù)量Dim manpd As PagedDataSource = New PagedDataSourcemanpd.DataSource = mands.Tables(mana).DefaultView()manpd.AllowPaging = Truemanpd.PageSize = 4/定義當前頁變量CurPageDim CurPage As Integer/設(shè)置當前頁的頁碼索引為當前頁碼減一manpd.CurrentPageIndex = CurPage - 1lblCurrentPage2.Text = /如果是上一頁,跳轉(zhuǎn)到前一頁If Not manpd.IsFirstPage ThenlnkPrev2.NavigateUrl = Request.CurrentExecutionFilePath & ?Page= & Convert.ToString(CurPage - 1) & &mana= & Server.UrlEncode(Session(mana) & lnkFirst2.NavigateUrl = Request.CurrentExecutionFilePath & ?Page=1 & &mana= & Server.UrlEncode(Session(mana) & End If/如果是下一頁,跳轉(zhuǎn)到后一頁If Not manpd.IsLastPage Then lnkNext2.NavigateUrl = Request.CurrentExecutionFilePath & ?Page= & Convert.ToString(CurPage + 1) & &mana= & Server.UrlEncode(Session(mana) & lnkLast2.NavigateUrl = Request.CurrentExecutionFilePath & ?Page= & manpd.PageCount & &mana= & Server.UrlEncode(Session(mana) & End If4.5.1 添加、修改試題頁面(addquestion/) 添加和修改試題共用一個頁面,在執(zhí)行不同操作時,傳遞不同的參數(shù)edittest,當edittest為空值時,顯示添加試題頁面,不為空顯示為修改試題頁面,并根據(jù)參數(shù)所傳遞的ID號來綁定數(shù)據(jù)庫中的對應的試題信息,顯示在相應的下拉列表、文本框或單選按鈕上。關(guān)鍵代碼解釋:/使用Request對象的QueryString屬性來獲取edittest參數(shù)的值edittest = Request.QueryString(edittest)If edittest Then comdstr = select * from question where id= & edittest objcomd = New SqlCommand(comdstr, conn) objcomd.Connection.Open() testdr = objcomd.ExecuteReader If testdr.Read() Then txtquestion.Text = testdr(question).ToString txtA.Text = testdr(A).ToString txtB.Text = testdr(B).ToString txtC.Text = testdr(C).ToString txtD.Text = testdr(D).ToString txtanswer.Text = testdr(answer).ToString If testdr(type).ToString = 單選題 Then type.Items(0).Selected = True Else If testdr(type).ToString = 多選題 Then type.Items(1).Selected = True Else type.Items(2).Selected = True End If End If End If objcomd.Connection.Close()End If/使用Request對象的QueryString屬性來獲取deltest參數(shù)的值deltest = Request.QueryString(deltest)If deltest Then comdstr = delete from question where id= & deltest objcomd = New SqlCommand(comdstr, conn) objcomd.Connection.Open() objcomd.ExecuteNonQuery() objcomd.Connection.Close() Response.Redirect(manexampage/?) End If4.6 成績管理頁面的實現(xiàn) 該頁面主要是對學生考試成績的管理,結(jié)合了學生信息表和成績表的雙表查詢,用一個DataGrid控件顯示學生考試成績,只能對學生成績進行刪除操作,設(shè)計比較簡單。 主要代碼解釋:/使用DataGrid控件的MyDataGrid_Delete事件,利用strSql字符串實現(xiàn)記錄的刪除strSql = Delete from score Where id= & s_datagrid.DataKeys(CInt(E.Item.ItemIndex)參考文獻1李萬倫,何蕾,趙海.ASP.NET程序設(shè)計.清華大學出版社,2002 2求是科技.ASP.NET數(shù)據(jù)庫管理系統(tǒng)開發(fā)實例導航.人民郵電出版社,20053張增良.ASP.NET程序設(shè)計教程.西安交通大學出版社,20064錢靈.基于.NET的網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn)D .天津大學,20055張全和關(guān)于考試閱卷系統(tǒng)開發(fā)的必要性和可行性重慶大學計算機基礎(chǔ)教學研討會論文集200446 Hoffman K,Gabriel J汪鐘鳴,戰(zhàn)曉蘇譯.NET Framework高級編程M北京.清華大學出版社.2002年7 全渝娟,范榮強.基于Web的遠距離考試系統(tǒng).計算機應用與軟件,2003,78 蔣元星.基于.NET框架的企業(yè)應用集成研究和實現(xiàn).浙江大學碩士學位論文2005,59 肖金秀,馮沃輝,陳少涌.ASP.NET程序設(shè)計教程M.冶金工業(yè)出版社,2002,710 徐世浩.高校教育網(wǎng)站ASP.NET技術(shù)應用研究.電化教育研究,2004,111 陳玉峰.SQL Server 2000數(shù)據(jù)庫開發(fā)教程(第1版)M.北京:科學出版社,2003.12 金雪云,焦桂英.ASP.NET高級開發(fā)技術(shù)與范例(第3版)M.北京:科學出版社,2002.13 劉東飛,夏丹.基于.NET的網(wǎng)上考試系統(tǒng)設(shè)計與實現(xiàn)J.福建電腦,2006,5:121-12214 張紅鷹,基于NET平臺的網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn),湖北大學成人教育學院學報,2006年第3期。15 高清和.精通ASP.NET的程序設(shè)計.中國鐵道出版社,200110肖建.ASP.NET編程實例與技巧集粹.北京希望電子出版社,2003。16 廖彬山,高峰霞.WEB數(shù)據(jù)庫開發(fā)技術(shù)M.北京:電子工業(yè)出版社,2001。17 張莉,王強.SQL SERVER數(shù)據(jù)庫原理及應用教程M.北京清華大學出版社,2003年1月。18 劉紅軍.基于B/S三層架構(gòu)的標準化網(wǎng)上考試系統(tǒng)的設(shè)計與實現(xiàn)Dl.中國海洋大學碩士學位論文,200519 孟軍精通ASP.NET網(wǎng)絡(luò)編成人民郵電出版社,200220 楊帆ASP.NET技術(shù)與應用高等教育出版社,200421 朱歸良基于Web模式的網(wǎng)上考試系統(tǒng)安全性研究(計算機工程與應用2002年3月)22 夏江林.C/S結(jié)構(gòu)與B/S結(jié)構(gòu)技術(shù)特點比較.電腦學習.2001(5) P35-3623 朱忱,宋順林.基于.硯T的Web應用框架的設(shè)計與實現(xiàn)J.計算機工程與設(shè)計,2006(8):1446144724 黃杰.基于Browser/Seve

溫馨提示

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

評論

0/150

提交評論