版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 前言</b></p><p> 隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,現(xiàn)在很多國(guó)外的大學(xué)和社會(huì)其他部門都已經(jīng)開(kāi)設(shè)了遠(yuǎn)程教育,通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)異地教育和培訓(xùn)?,F(xiàn)在,計(jì)算機(jī)硬件技術(shù)的發(fā)展已經(jīng)達(dá)到了相當(dāng)高的水平。但是,遠(yuǎn)程教育軟件的開(kāi)發(fā)目前還處于起步階段,隨著這項(xiàng)技術(shù)的不斷深入發(fā)展,就要求有更好、更完善的軟件系統(tǒng)應(yīng)用到遠(yuǎn)程教育當(dāng)中去,這就給軟件設(shè)計(jì)人員提出了更高的設(shè)計(jì)要求。&l
2、t;/p><p> 遠(yuǎn)程教育包括很多環(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)程教育已經(jīng)蓬勃地發(fā)展起來(lái),但是目前學(xué)校與社會(huì)上的各種考試大都采用傳統(tǒng)的考試方式,在此方式下,組織一次考試至少要經(jīng)過(guò)五個(gè)步驟,即人工出題、考生考試、人工閱卷、成績(jī)?cè)u(píng)估和試卷分析。顯然,隨著考試類型的不斷增加及考試要求的不斷提高,教師的工作量將會(huì)越來(lái)越大,并且其工
3、作將是一件十分煩瑣和非常容易出錯(cuò)的事情,可以說(shuō)傳統(tǒng)的考試方式已經(jīng)不能適應(yīng)現(xiàn)代考試的需要。隨著計(jì)算機(jī)應(yīng)用的迅猛發(fā)展,網(wǎng)絡(luò)應(yīng)用不斷擴(kuò)大,如遠(yuǎn)程教育和虛擬大學(xué)的出現(xiàn)等等,且這些應(yīng)用正逐步深入到千家萬(wàn)戶。人們迫切要求利用這些技術(shù)來(lái)進(jìn)行在線考試,以減輕教師的工作負(fù)擔(dān)及提高工作效率,與此同時(shí)也提高了考試的質(zhì)量,從而使考試更趨于公證、客觀,更加激發(fā)學(xué)生的學(xué)習(xí)興趣。例如目前許多國(guó)際著名的計(jì)算機(jī)公司所舉辦的各種認(rèn)證考試絕大部分采用這種方式。</p&
4、gt;<p> 在線考試是現(xiàn)階段研究開(kāi)發(fā)的一個(gè)熱點(diǎn)。它是建立在國(guó)際互聯(lián)網(wǎng)上的應(yīng)用系統(tǒng),客戶端的配置可以極為簡(jiǎn)單,使考試不受地域的局限。一個(gè)完備的在線考試系統(tǒng)可以使用戶在網(wǎng)上學(xué)習(xí)過(guò)后及時(shí)檢驗(yàn)自己的學(xué)習(xí)效果,已發(fā)現(xiàn)自己的不足,使得學(xué)習(xí)效率得到很大提高。在線考試系統(tǒng)中題目的生成、試卷的提交、成績(jī)的批閱等都可以在網(wǎng)絡(luò)上自動(dòng)完成。只要形成一套成熟的題庫(kù)就可以實(shí)現(xiàn)考試的自動(dòng)化。這樣一來(lái),教師所要做的只是精心設(shè)計(jì)題目、維護(hù)題庫(kù),而不是
5、組織考試,從而大大減輕了教師的負(fù)擔(dān),這表明其經(jīng)濟(jì)性是相當(dāng)可觀的。為了適應(yīng)新形勢(shì)的發(fā)展,我進(jìn)行了這一系統(tǒng)的初步設(shè)計(jì)工作,也可以說(shuō)是做一個(gè)初步的探索,希望它能夠在各類考試中發(fā)揮高效、便捷的作用,把老師從繁重的工作中解脫出來(lái)!</p><p> 目前,網(wǎng)絡(luò)應(yīng)用軟件運(yùn)行的模式主要有二類:Client/server模式,Browser/Web模式。前者主要的缺點(diǎn)是維護(hù)、升級(jí)較麻煩,后者是近幾年伴隨Internet迅速發(fā)展
6、起來(lái)的一種技術(shù),它與客戶/服務(wù)器方式類似,客戶端是一個(gè)標(biāo)準(zhǔn)的瀏覽器,服務(wù)器端是Web Server ,而Web Server與數(shù)據(jù)庫(kù)和應(yīng)用服務(wù)器的緊密結(jié)合,使得這種模式的應(yīng)用范圍不斷擴(kuò)大,它已不僅僅用于網(wǎng)上查詢,有很多部門的業(yè)務(wù)系統(tǒng)、企業(yè)的MIS系統(tǒng)紛紛采用這種模式,它的主要優(yōu)點(diǎn)是便于擴(kuò)充應(yīng)用、升級(jí)維護(hù)簡(jiǎn)便。</p><p> 另外,考試系統(tǒng)的軟件也必將不斷的更新;同時(shí)軟件產(chǎn)品本身就要經(jīng)過(guò)一個(gè)不斷自我完善的過(guò)程
7、。</p><p> 基于上述考慮,用Browser/Web模式來(lái)設(shè)計(jì)考試系統(tǒng)比較合適,服務(wù)器端我們采用Access數(shù)據(jù)庫(kù)系統(tǒng)和ASP組件來(lái)構(gòu)成考試的應(yīng)用服務(wù)系統(tǒng);客戶端采用瀏覽器來(lái)完成考試全過(guò)程,同時(shí)可進(jìn)行遠(yuǎn)程系統(tǒng)維護(hù)和管理。</p><p> 利用網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)技術(shù),結(jié)合目前硬件價(jià)格普遍下跌與寬帶網(wǎng)大力建設(shè)的有利優(yōu)勢(shì),應(yīng)用Active Server Page技術(shù),我開(kāi)發(fā)了基于B/S模
8、式多用戶在線考試系統(tǒng)這一程序。它運(yùn)用方便、操作簡(jiǎn)單,效率很高(同時(shí),它要求計(jì)算機(jī)配置也很高,尤其是服務(wù)器端)。現(xiàn)階段雖只實(shí)現(xiàn)了試卷的客觀題部分,但已具有用戶注冊(cè)、多用戶同時(shí)在線考試、動(dòng)態(tài)隨機(jī)出題、時(shí)間控制、自動(dòng)判卷,試題錄入、修改題庫(kù)、用戶管理、科目管理、管理員管理、分?jǐn)?shù)管理等重要功能,也就是說(shuō)實(shí)現(xiàn)了真正的無(wú)紙化考試,滿足任何授權(quán)的考生隨時(shí)隨地考試并迅速獲得成績(jī),同時(shí)也大大減輕了教師出題、出題和判卷等繁重的工作量。</p>
9、<p> 第一章 系統(tǒng)設(shè)計(jì)相關(guān)原理</p><p> 該在線考試系統(tǒng)主要采用ASP、HTML、Access數(shù)據(jù)庫(kù)、VBScript、SQL等技術(shù)和工具,整體設(shè)計(jì)遵循軟件工程的方法,經(jīng)過(guò)需求分析、總體設(shè)計(jì)、文檔和代碼的編制、模塊測(cè)試和系統(tǒng)實(shí)現(xiàn)幾個(gè)階段。下面就對(duì)這幾種技術(shù)和方法做一個(gè)概述。</p><p> 1.1 ASP技術(shù)介紹</p><p>
10、 Microsoft Active Server Pages 即我們所稱的ASP,其實(shí)是一套微軟開(kāi)發(fā)的服務(wù)器端腳本環(huán)境。Active Server Page 是創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)的一個(gè)很好的工具,它起一種編程語(yǔ)言的作用,可以利用它編寫動(dòng)態(tài)產(chǎn)生HTML的程序代碼。因此,只要用戶瀏覽Web站點(diǎn)并請(qǐng)求一個(gè)ASP頁(yè),Web服務(wù)器就可以處理相應(yīng)的ASP代碼,生成HTML代碼,然后將它傳遞到用戶瀏覽器并顯示出網(wǎng)頁(yè)。ASP內(nèi)含于IIS3.0和4.0之中,通
11、過(guò)ASP我們可以結(jié)合HTML網(wǎng)頁(yè)、ASP指令和ActiveX元件建立動(dòng)態(tài)、交互且高效的WEB服務(wù)器應(yīng)用程序。有了ASP就不必?fù)?dān)心客戶的瀏覽器是否能運(yùn)行所編寫的代碼,因?yàn)樗械某绦蚨紝⒃诜?wù)器端執(zhí)行,包括所有嵌在普通HTML中的腳本程序。當(dāng)程序執(zhí)行完畢后,服務(wù)器僅將執(zhí)行的結(jié)果返回給客戶瀏覽器,這樣也就減輕了客戶端瀏覽器的負(fù)擔(dān),大大提高了交互的速度。以下羅列了ASP所獨(dú)具的一些特點(diǎn):</p><p> 1.使用VB
12、Script 、JScript等簡(jiǎn)單易懂的腳本語(yǔ)言,結(jié)合HTML代碼,即可快速地完成網(wǎng)站的應(yīng)用程序。</p><p> 2.無(wú)須編譯,容易編寫,可在服務(wù)器端直接執(zhí)行。</p><p> 3.使用普通的文本編輯器,如Windows的記事本,即可進(jìn)行編輯設(shè)計(jì)。</p><p> 4.與瀏覽器無(wú)關(guān),用戶端只要使用可執(zhí)行HTML碼的瀏覽器,即可瀏覽ASP所設(shè)計(jì)的網(wǎng)頁(yè)內(nèi)
13、容。ASP所使用的腳本語(yǔ)言(VBScript 、Jscript)均在WEB服務(wù)器端執(zhí)行,用戶端的瀏覽器不需要能夠執(zhí)行這些腳本語(yǔ)言。</p><p> 5.ASP能與任何ActiveX scripting語(yǔ)言相容。除了可使用VBScript或JScript語(yǔ)言來(lái)設(shè)計(jì)外,還通過(guò)plug-in的方式,使用由第三方所提供的其他腳本語(yǔ)言,譬如REXX、Perl、Tcl等。腳本引擎是處理腳本程序的COM(Component
14、 Object Model)物件。</p><p> 6.ASP的源程序,不會(huì)被傳到客戶瀏覽器,因而可以避免所寫的源程序被他人剽竊,也提高了程序的安全性。</p><p> 7.可使用服務(wù)器端的腳本來(lái)產(chǎn)生客戶端的腳本。</p><p> 8.物件導(dǎo)向(Object-oriented)。</p><p> 9.ActiveX Serve
15、r Components(ActiveX服務(wù)器元件)具有無(wú)限可擴(kuò)充性。可以使用Visual Basic 、Java 、Visual C++ 、COBOL等編程語(yǔ)言來(lái)編寫你所需要的ActiveX Server Component。</p><p> 10.另外,ASP技術(shù)的處理速度相當(dāng)快,并且其安全性也很高。ASP最重要的優(yōu)點(diǎn)是能夠建立對(duì)諸如時(shí)間、地點(diǎn)、用戶標(biāo)志、以前的選擇和活動(dòng)等因素敏感的頁(yè)面。換句話說(shuō),可針對(duì)
16、每個(gè)用戶的個(gè)別需求,用ASP定制網(wǎng)頁(yè),能夠滿足用戶的各種需求。</p><p> 總之,ASP包含三方面含義:</p><p> 1.Active:ASP使用了微軟的ActiveX技術(shù)。ActiveX(COM)技術(shù)是現(xiàn)在Microsoft軟件的重要基礎(chǔ)。它采用封裝對(duì)象,程序調(diào)用對(duì)象的技術(shù),簡(jiǎn)化編程,加強(qiáng)程序間合作。ASP本身封裝了一些基本組件和常用組件,有很多公司也開(kāi)發(fā)了很多實(shí)用組件。
17、只要你可以在服務(wù)器上安裝這些組件,通過(guò)訪問(wèn)組件,你就可以快速、簡(jiǎn)易地建立自己的WEB應(yīng)用。</p><p> 2.Server:ASP運(yùn)行在服務(wù)器端。這樣就不必?fù)?dān)心瀏覽器是否支持ASP所使用的編程語(yǔ)言。ASP的編程語(yǔ)言可以是VBSCRIPT和JSCRIPT。VBSCRIPT是VB的一個(gè)簡(jiǎn)集,會(huì)VB的人可以很方便的快速上手。然而Netscape瀏覽器不支持客戶端的VBSCRIPT,所以最好不要在客戶端使用VBSC
18、RIPT。而在服務(wù)器端,則無(wú)需考慮瀏覽器的支持問(wèn)題。Netscape瀏覽器也可以正常顯示ASP頁(yè)面。</p><p> 3.Pages:ASP返回標(biāo)準(zhǔn)的HTML頁(yè)面,可以正常地在常用的瀏覽器中顯示。瀏覽者查看頁(yè)面源文件時(shí),看到的是ASP生成的HTML代碼,而不是ASP程序代碼。這樣就可以防止別人抄襲程序。</p><p> 由此可以看出,ASP是在IIS下開(kāi)發(fā)WEB應(yīng)用的一種簡(jiǎn)單、方便
19、的編程工具。在了解了VBSCRIPT的基本語(yǔ)法后,只需要清楚各個(gè)組件的用途、屬性、方法,就可以輕松編寫出自己的ASP系統(tǒng)。 </p><p> 運(yùn)行 ASP 所需的環(huán)境如下:</p><p> ☆Microsoft Internet Information Server version 3.0/4.0 on Windows NT Server</p><p>
20、 ☆Microsoft Peer Web Services Version 3.0 on Windows NT Workstation</p><p> ☆Microsoft Personal Web Server on Windows 95/98</p><p> 與一般的程序不同,ASP程序無(wú)須編譯。ASP程序的控制部份,是使用VBScript、JScript等腳本語(yǔ)言來(lái)設(shè)計(jì)的,當(dāng)
21、執(zhí)行ASP程序時(shí),腳本程序?qū)⒁徽酌畎l(fā)送給腳本解釋器(即腳本引擎),由腳本解釋器進(jìn)行翻譯并將其轉(zhuǎn)換成服務(wù)器所能執(zhí)行的命令。當(dāng)然,同其他編程語(yǔ)言一樣,ASP程序的編寫也遵循一定的規(guī)則,如果你想使用你所喜愛(ài)的腳本語(yǔ)言編寫ASP程序,那么你的服務(wù)器上必須要有能解釋這種腳本語(yǔ)言的腳本解釋器。當(dāng)你安裝ASP時(shí),系統(tǒng)提供了兩種腳本語(yǔ)言:VBSrcipt和JScript,而VBScript則被作為系統(tǒng)默認(rèn)的腳本語(yǔ)言。</p><
22、p> ASP程序其實(shí)是以擴(kuò)展名為.asp的純文本形式存在于WEB服務(wù)器上的,可以用任何文本編輯器打開(kāi)它,ASP程序中可以包含純文本、HTML標(biāo)記以及腳本命令。只需將.asp程序放在Web服務(wù)器的虛擬目錄下(該目錄必須要有可執(zhí)行權(quán)限),就可以通過(guò)WWW的方式訪問(wèn)ASP程序了。要學(xué)好ASP程序的設(shè)計(jì),必須掌握腳本的編寫,那么究竟什么是腳本呢?其實(shí)腳本是由一系列的腳本命令所組成的,如同一般的程序,腳本可以將一個(gè)值賦給一個(gè)變量,可以命令
23、Web服務(wù)器發(fā)送一個(gè)值到客戶瀏覽器,還可以將一系列命令定義成一個(gè)過(guò)程。要編寫腳本,你必須要熟悉至少一門腳本語(yǔ)言,如VBScript。腳本語(yǔ)言是一種介于HTML和諸如JAVA、Visual Basic、C++等編程語(yǔ)言之間的一種特殊的語(yǔ)言,盡管它更接近后者,但它卻不具有編程語(yǔ)言復(fù)雜、嚴(yán)謹(jǐn)?shù)恼Z(yǔ)法和規(guī)則。如前所述ASP所提供的腳本運(yùn)行環(huán)境可支持多種腳本語(yǔ)言,譬如:JScript、REXX、PERL等等,這無(wú)疑給ASP程序設(shè)計(jì)者提供了廣泛的發(fā)揮
24、余地。ASP的出現(xiàn)使得廣大Web設(shè)計(jì)者不必在為客戶瀏覽器是否支持而擔(dān)心,實(shí)際上就算在同一個(gè).asp文件中使用不同的腳本語(yǔ)言,都無(wú)須為此</p><p> ASP的對(duì)象和組件:</p><p> 1.ASP有7個(gè)固有對(duì)象</p><p> 這7個(gè)固有對(duì)象分別是Request、Response、Server、Application、Session、ASPError
25、和ObjectContext。</p><p> Request對(duì)象用來(lái)處理用戶做出的請(qǐng)求,就是處理用戶要求瀏覽器查看特定的網(wǎng)頁(yè)或Web應(yīng)用時(shí)做出的請(qǐng)求。此請(qǐng)求可以HTML的形式輸入或僅以URL的形式作出。Response對(duì)象用來(lái)處理從Web服務(wù)器向用戶發(fā)送信息并對(duì)此信息進(jìn)行控制。</p><p> Serve對(duì)象用來(lái)代表服務(wù)器自身。因此它提供幾個(gè)與Web服務(wù)器可能要完成的任務(wù)相關(guān)的常
26、用功能,諸如建立新對(duì)象和設(shè)置腳本的超時(shí)特性等。還有通過(guò)將不合法字符轉(zhuǎn)化為合法字符,把字符串轉(zhuǎn)換為URL和HTML正確的使用格式的方法。</p><p> Application對(duì)象用來(lái)代表應(yīng)用,可用它來(lái)管理諸如應(yīng)用目錄這一類的東西。</p><p> Session對(duì)象用來(lái)代表用戶會(huì)話,并存儲(chǔ)該會(huì)話的信息。可利用Session對(duì)象來(lái)管理如Web服務(wù)器在用戶“請(qǐng)求”之間等待的時(shí)間等。&l
27、t;/p><p> ObjectContext對(duì)象用來(lái)管理事務(wù)處理。它目前已經(jīng)集成到Windows2000操作系統(tǒng)中了。它包含了所有ASP其他對(duì)象,可通過(guò)ObjectContext引用ASP的每個(gè)對(duì)象。</p><p> ASPError對(duì)象包含ASP腳本或asp.dll本身產(chǎn)生的任何錯(cuò)誤的詳細(xì)內(nèi)容。</p><p> 2.Microsoft Data Acces
28、s Component</p><p> MDAC作為操作系統(tǒng)的組成部分的組件,與ASP一起提供。此組件中包含一組稱為ActiveX Data Object(ADO)的對(duì)象,他們對(duì)于查看不同平臺(tái)上的各種數(shù)據(jù)(數(shù)據(jù)庫(kù)、表單、文本文件)是必不可少的。ADO主要有3個(gè)對(duì)象,分別是Connection、Command和Recordset。</p><p> Connection對(duì)象就是使ADO
29、與數(shù)據(jù)庫(kù)之間建立一個(gè)通道,也就是實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接。</p><p> Command對(duì)象就是對(duì)數(shù)據(jù)庫(kù)進(jìn)行發(fā)號(hào)施令,比如建立新的索引,執(zhí)行查詢等,它可以通過(guò)標(biāo)準(zhǔn)的SQL數(shù)據(jù)庫(kù)操作語(yǔ)言得以實(shí)現(xiàn)。</p><p> Recordset對(duì)象是一個(gè)數(shù)據(jù)記錄集,它包含了我們檢索出來(lái)的記錄數(shù)據(jù),通過(guò)它可以直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改。</p><p><b> 3.活動(dòng)
30、服務(wù)器組件</b></p><p> 活動(dòng)服務(wù)器組件是與ASP一起免費(fèi)帶來(lái)的組件或DLL,他們有著廣泛的用途。主要包括AD Rotator、Browser Capabilities、Content Link、Content Rotator、Counters、logging Utility、MyInfo、Page Counter、permission Checker、tools等組件。由于本次設(shè)計(jì)用到
31、的不多,在此就不詳細(xì)介紹了</p><p><b> 4.ASP腳本對(duì)象</b></p><p> 他們分別是Dictionary、FileSystemObject和TextStream.由于本設(shè)計(jì)用到的也不多,在此就不詳細(xì)介紹了。</p><p> 1.2 SQL語(yǔ)句介紹</p><p> SQL全稱是“結(jié)構(gòu)化
32、查詢語(yǔ)言(Structured Query Language)”,最早的是IBM的圣約瑟研究實(shí)驗(yàn)室為其關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)SYSTEM R開(kāi)發(fā)的一種查詢語(yǔ)言,它的前身是SQUARE語(yǔ)言。SQL語(yǔ)言結(jié)構(gòu)簡(jiǎn)潔,功能強(qiáng)大,簡(jiǎn)單易學(xué),所以自從IBM公司1981年推出以來(lái),SQL語(yǔ)言,得到了廣泛的應(yīng)用。如今無(wú)論是像Oracle ,Sybase,Informix,SQL server這些大型的數(shù)據(jù)庫(kù)管理系統(tǒng),還是像Visual Foxporo,Pow
33、erBuilder這些微機(jī)上常用的數(shù)據(jù)庫(kù)開(kāi)發(fā)系統(tǒng),都支持SQL語(yǔ)言作為查詢語(yǔ)言。</p><p> Structured Query Language包含4個(gè)部分:</p><p> ☆數(shù)據(jù)查詢語(yǔ)言DQL-Data Query Language SELECT</p><p> ☆據(jù)操縱語(yǔ)言DQL-Data Manipulation Language INSER
34、T, UPDATE, DELETE </p><p> ☆數(shù)據(jù)定義語(yǔ)言DQL-Data Definition Language CREATE, ALTER, DROP</p><p> ☆數(shù)據(jù)控制語(yǔ)言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK 1.2.1 SQL的優(yōu)點(diǎn)</p><p> SQL廣泛
35、地被采用正說(shuō)明了它的優(yōu)點(diǎn)。它使全部用戶,包括應(yīng)用程序員、DBA管理員和終端用戶受益非淺。</p><p><b> 1.非過(guò)程化語(yǔ)言</b></p><p> SQL是一個(gè)非過(guò)程化的語(yǔ)言,因?yàn)樗淮翁幚硪粋€(gè)記錄,對(duì)數(shù)據(jù)提供自動(dòng)導(dǎo)航。SQL允許用戶在高層的數(shù)據(jù)結(jié)構(gòu)上工作,而不對(duì)單個(gè)記錄進(jìn)行操作,可操作記錄集。所有SQL 語(yǔ)句接受集合作為輸入,返回集合作為輸出。SQL
36、的集合特性允許一條SQL語(yǔ)句的結(jié)果作為另一條SQL語(yǔ)句的輸入。 SQL不要求用戶指定對(duì)數(shù)據(jù)的存放方法。 這種特性使用戶更易集中精力于要得到的結(jié)果。所有SQL語(yǔ)句使用查詢優(yōu)化器,它是RDBMS的一部分,由它決定對(duì)指定數(shù)據(jù)存取的最快速度的手段。查詢優(yōu)化器知道存在什么索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什么類型的索引。 2.統(tǒng)一的語(yǔ)言</p><p> SQL可用于所有用戶的DB活動(dòng)模型,
37、包括系統(tǒng)管理員、數(shù)據(jù)庫(kù)管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶?;镜腟QL 命令只需很少時(shí)間就能學(xué)會(huì),最高級(jí)的命令在幾天內(nèi)便可掌握。 SQL為許多任務(wù)提供了命令,包括:</p><p> ☆查詢數(shù)據(jù)☆在表中插入、修改和刪除記錄 ☆建立、修改和刪除數(shù)據(jù)對(duì)象 ☆控制對(duì)數(shù)據(jù)和數(shù)據(jù)對(duì)象的存取 ☆保證數(shù)據(jù)庫(kù)一致性和完整性 以前的數(shù)據(jù)庫(kù)管理系統(tǒng)為上述各類操作提供單獨(dú)的語(yǔ)言,而SQL將全部任
38、務(wù)統(tǒng)一在一種語(yǔ)言中。</p><p> 3.是所有關(guān)系數(shù)據(jù)庫(kù)的公共語(yǔ)言</p><p> 由于所有主要的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)都支持SQL語(yǔ)言,用戶可將使用SQL的技能從一個(gè)RDBMS轉(zhuǎn)到另一個(gè)。所有用SQL編寫的程序都是可以移植的。SQL是PostgreSQL(和大多數(shù)其它關(guān)系型數(shù)據(jù)庫(kù))用做查詢語(yǔ)言的語(yǔ)言。它是可以移植的,并且容易學(xué)習(xí)使用。但是所有SQL語(yǔ)句都必須由數(shù)據(jù)庫(kù)服務(wù)器獨(dú)立地執(zhí)行
39、。這就意味著客戶端應(yīng)用必須把每條查詢發(fā)送到數(shù)據(jù)庫(kù)服務(wù)器,等待它處理這個(gè)查詢,接收結(jié)果,做一些運(yùn)算,然后給服務(wù)器發(fā)送另外一條查詢。所有這些東西都會(huì)產(chǎn)生進(jìn)程間通訊,并且如果客戶端在另外一臺(tái)機(jī)器上甚至還會(huì)導(dǎo)致網(wǎng)絡(luò)開(kāi)銷。如果使用了 PL/pgSQL,那么可以把一塊運(yùn)算和一系列查詢?cè)跀?shù)據(jù)庫(kù)服務(wù)器里面組成一個(gè)塊,這樣就擁有了過(guò)程語(yǔ)言的力量并且簡(jiǎn)化SQL的使用,因而節(jié)約了大量的時(shí)間,因?yàn)橛貌恢冻隹蛻舳?服務(wù)器通訊的過(guò)熱。通過(guò)使用PL/pgSQL,應(yīng)
40、用可以獲得可觀的性能提升。 </p><p> 1.2.2 SQL的使用</p><p> 1.ASP與Access數(shù)據(jù)庫(kù)連接:<%@language=VBscript%><%dimconn,mdbfilemdbfile=server.mappath("數(shù)據(jù)庫(kù)名稱.mdb")setconn=server.createobject(&quo
41、t;adodb.connection")conn.open"driver={microsoftaccessdriver(*.mdb)};uid=admin;pwd=數(shù)據(jù)庫(kù)密碼;dbq="&mdbfile%>2.ASP與SQL數(shù)據(jù)庫(kù)連接:<%@language=VBscript%><%dimconnset conn=server.createobject(&qu
42、ot;ADODB.connection")conn.open"PROVIDER=SQLOLEDB;DATASOURCE=SQL服務(wù)器名稱或IP地址;UID=sa;PWD=數(shù)據(jù)庫(kù)密碼;DATABASE=數(shù)據(jù)庫(kù)名稱%>建立記錄集對(duì)象:setrs=server.createobject("adodb.recordset")rs.openSQL語(yǔ)句,conn,3,23.SQL</
43、p><p> 1.3 VBScript介紹</p><p> Microsoft Visual Basic Scripting Edition是程序開(kāi)發(fā)語(yǔ)言Visual Basic家族的最新成員,它將靈活的Script應(yīng)用于更廣泛的領(lǐng)域,包括Microsoft Internet Explorer中的 Web 客戶機(jī) Script 和 Microsoft Internet Informati
44、on Server 中的 Web 服務(wù)器 Script。</p><p> VBScript使用ActiveX? Script與宿主應(yīng)用程序?qū)υ挕J褂肁ctiveX Script,瀏覽器和其他宿主應(yīng)用程序不再需要每個(gè)Script部件的特殊集成代碼。ActiveX Script使宿主可以編譯Script、獲取和調(diào)用入口點(diǎn)及管理開(kāi)發(fā)者可用的命名空間。通過(guò)ActiveX Script,語(yǔ)言廠商可以建立標(biāo)準(zhǔn)Script
45、運(yùn)行時(shí)語(yǔ)言。Microsoft將提供VBScript的運(yùn)行時(shí)支持。Microsoft正在與多個(gè)Internet組一起定義ActiveX Script標(biāo)準(zhǔn)以使Script引擎可以互換。ActiveX Script可用在Microsoft® Internet Explorer和Microsoft® Internet Information Server中。</p><p> VBScript只有
46、一種數(shù)據(jù)類型,稱為Variant。Variant 是一種特殊的數(shù)據(jù)類型,根據(jù)使用的方式,它可以包含不同類別的信息。因?yàn)閂ariant是VBScript中唯一的數(shù)據(jù)類型,所以它也VBScript 中所有函數(shù)的返回值的數(shù)據(jù)類型。最簡(jiǎn)單的Variant可以包含數(shù)字或字符串信息。Variant用于數(shù)字上下文中時(shí)作為數(shù)字處理,用于字符串上下文中時(shí)作為字符串處理。這就是說(shuō),如果使用看起來(lái)象是數(shù)字的數(shù)據(jù),則VBScript會(huì)假定其為數(shù)字并以適用于數(shù)字
47、的方式處理。與此類似,如果使用的數(shù)據(jù)只可能是字符串,則VBScript將按字符串處理。當(dāng)然,也可以將數(shù)字包含在引號(hào)("")中使其成為字符串。除簡(jiǎn)單數(shù)字或字符串以外,Variant可以進(jìn)一步區(qū)分?jǐn)?shù)值信息的特定含義。例如使用數(shù)值信息表示日期或時(shí)間。此類數(shù)據(jù)在與其他日期或時(shí)間數(shù)據(jù)一起使用時(shí),結(jié)果也總是表示為日期或時(shí)間。當(dāng)然,從Boolean值到浮點(diǎn)數(shù),數(shù)值信息是多種多樣的。Variant包含的數(shù)值信息類型稱為子類型。大多數(shù)
48、情況下,可將所需的數(shù)據(jù)放進(jìn)Variant中,而Variant也會(huì)按照最適用于其包含的數(shù)據(jù)的方式進(jìn)行操作。聲明變量的一種方</p><p> 另一種方式是通過(guò)直接在Script中使用變量名這一簡(jiǎn)單方式隱式聲明變量。這通常不是一個(gè)好習(xí)慣,因?yàn)檫@樣有時(shí)會(huì)由于變量名被拼錯(cuò)而導(dǎo)致在運(yùn)行Script時(shí)出現(xiàn)意外的結(jié)果。因此,最好使用Option Explicit語(yǔ)句顯式聲明所有變量。 1.過(guò)程 在VBScri
49、pt中,過(guò)程被分為兩類:Sub過(guò)程和Function過(guò)程。 (1)Sub過(guò)程</p><p> Sub過(guò)程是包含在Sub和End Sub語(yǔ)句之間的一組VBScript語(yǔ)句,執(zhí)行操作但不返回值。Sub過(guò)程可以使用參數(shù)(由調(diào)用過(guò)程傳遞的常數(shù)、變量或表達(dá)式)。</p><p> (2)Function過(guò)程</p><p> Function過(guò)程是包含在Fun
50、ction和End Function語(yǔ)句之間的一組VBScript語(yǔ)句。Function過(guò)程與Sub過(guò)程類似,但是Function過(guò)程可以返回值。Function過(guò)程可以使用參數(shù)(由調(diào)用過(guò)程傳遞的常數(shù)、變量或表達(dá)式)。如果Function過(guò)程無(wú)任何參數(shù),則Function語(yǔ)句必須包含空括號(hào)()。Function過(guò)程通過(guò)函數(shù)名返回一個(gè)值,這個(gè)值是在過(guò)程的語(yǔ)句中賦給函數(shù)名的。Function 返回值的數(shù)據(jù)類型總是Variant。</p
51、><p> 2.VBScript中可使用下列循環(huán)語(yǔ)句:☆Do...Loop:當(dāng)(或直到)條件為True時(shí)循環(huán)。☆While...Wend:當(dāng)條件為True時(shí)循環(huán)。☆For...Next:指定循環(huán)次數(shù),使用計(jì)數(shù)器重復(fù)運(yùn)行語(yǔ)句。☆For Each...Next:對(duì)于集合中的每項(xiàng)或數(shù)組中的每個(gè)元素,重復(fù)執(zhí)行一組語(yǔ)句。</p><p> 3.在VBScript中可使用以下條件語(yǔ)句:☆I(lǐng)f
52、...Then...Else 語(yǔ)句☆Select Case 語(yǔ)句</p><p><b> 第二章 需求分析</b></p><p> 要實(shí)現(xiàn)一個(gè)軟件系統(tǒng),首先應(yīng)該進(jìn)行需求分析,這樣才能令設(shè)計(jì)出的軟件滿足用戶的各項(xiàng)功能。下面就對(duì)在線考試系統(tǒng)的設(shè)計(jì)進(jìn)行需求分析。</p><p> 2.1 系統(tǒng)需要解決的主要問(wèn)題</p>&
53、lt;p> 首先,因?yàn)榭荚囀敲嫦蛱囟ǖ哪承?duì)象的,所以考試者進(jìn)入系統(tǒng)應(yīng)該進(jìn)行身份驗(yàn)證。考試者進(jìn)入考試系統(tǒng)后,應(yīng)該能根據(jù)自己的需要選擇考試科目,所以該系統(tǒng)還應(yīng)具有考試科目選擇的功能。在線考試于一般的單機(jī)考試是不同的。鑒于考試環(huán)境一般為機(jī)房,考試者之間的距離很近,為了在線考試做到規(guī)范,對(duì)于每個(gè)應(yīng)試者來(lái)說(shuō),試卷的試題和題量都應(yīng)是相同的,但試題并不相同。在線考試基于網(wǎng)絡(luò)環(huán)境,試卷應(yīng)該從服務(wù)器的數(shù)據(jù)庫(kù)隨機(jī)抽取試題后動(dòng)態(tài)生成的。另外,系統(tǒng)還
54、應(yīng)該對(duì)考試時(shí)間進(jìn)行控制,時(shí)間到了會(huì)要求考試者交卷??荚囌哌x擇答案提交后,應(yīng)該由計(jì)算機(jī)自動(dòng)判卷,得到成績(jī)后顯示出來(lái)??荚囃戤吅螅梢苑祷氐卿浗缑婊蚶^續(xù)考試。此外,應(yīng)該能夠方便、快捷的對(duì)在線考試系統(tǒng)管理,此外,用戶還應(yīng)能進(jìn)行遠(yuǎn)程注冊(cè)。</p><p> 2.2 系統(tǒng)應(yīng)該具備的基本功能</p><p> ☆用戶注冊(cè):用戶可以進(jìn)行注冊(cè),然后登錄。</p><p> ☆
55、用戶信息的管理:管理員可以增刪用戶</p><p> ☆試題模型設(shè)置:設(shè)置各科目試題的每種題型的數(shù)量和分值。</p><p> ☆試題庫(kù)管理:分科目,對(duì)單選、多選兩種題型試題庫(kù)的管理,使試題的增刪、編輯更為簡(jiǎn)便。</p><p> ☆試卷生成:可以指定試卷的各題型的數(shù)量,從試題庫(kù)里隨機(jī)抽取試題生成一份原始試卷。</p><p> ☆在
56、線考試:系統(tǒng)嚴(yán)格控制整個(gè)考試過(guò)程,實(shí)行時(shí)間的監(jiān)控與權(quán)限的控制,考生需要在限定的考試時(shí)間內(nèi)交卷。 </p><p> ☆計(jì)算機(jī)自動(dòng)閱卷:本系統(tǒng)只考慮客觀題,要求計(jì)算機(jī)能自動(dòng)閱卷,然后馬上顯示出考生分?jǐn)?shù)。</p><p> ☆成績(jī)查閱:考生考完以后,管理員應(yīng)該能對(duì)所有紀(jì)錄進(jìn)行查詢,并應(yīng)該可以刪除指定紀(jì)錄。</p><p> 除了實(shí)現(xiàn)上述功能以外,在線考試系統(tǒng)還應(yīng)該
57、具有友好、簡(jiǎn)潔的界面,安全性要高,穩(wěn)定性要強(qiáng),能夠滿足100人以上同時(shí)及進(jìn)行在線考試。</p><p> 第三章 系統(tǒng)總體設(shè)計(jì)</p><p><b> 3.1基本簡(jiǎn)介</b></p><p> 該系統(tǒng)是專門用于用戶注冊(cè)、登錄、參加在線考試以及管理員進(jìn)行試題錄入、修改、刪除、成績(jī)查詢、管理用戶的ASP應(yīng)用程序。它應(yīng)該具有開(kāi)放性、方便性和
58、靈活性。管理員不僅可以輕松地向題庫(kù)添加、修改和查詢?cè)囶},而且還可以自動(dòng)新增科目并建立相應(yīng)的數(shù)據(jù);它還允許用戶根據(jù)自己的需求,選取考試科目??忌M(jìn)行有效的身份驗(yàn)證登錄后,選擇考試科目,并要求在規(guī)定的時(shí)間內(nèi)進(jìn)行答題,當(dāng)達(dá)到規(guī)定的時(shí)間后,系統(tǒng)將自動(dòng)予以提示。一旦考生做完交卷后便能立即看到自己的考試成績(jī),并且其分?jǐn)?shù)將被記入庫(kù)中以供審核和查閱;另外,還可完全由計(jì)算機(jī)自動(dòng)靈活、隨機(jī)的抽取試題庫(kù)中的各類試題組成各種形式的試卷,其內(nèi)容會(huì)隨著庫(kù)中試題的改
59、變而改變,而且,不同的考生生成的試題是不同的。</p><p> 用戶可以是學(xué)校等單位的教師及學(xué)生和企事業(yè)單位的培訓(xùn)部門(因企事業(yè)單位每年要對(duì)員工進(jìn)行素質(zhì)、安全教育與技能等方面的培訓(xùn)及考試等)。</p><p> 3.2 運(yùn)行環(huán)境與系統(tǒng)結(jié)構(gòu)</p><p> 為了保證系統(tǒng)運(yùn)行的效率和可靠性,系統(tǒng)服務(wù)器端應(yīng)具有較高的軟硬件配置,客戶端的要求不是很高。此應(yīng)用程序可
60、廣泛運(yùn)行于國(guó)際互聯(lián)網(wǎng)即Internet,也可適用于內(nèi)部的局域網(wǎng)。其運(yùn)行要求如下:</p><p><b> ☆軟件環(huán)境:</b></p><p> 客戶端: Windows95/98,Internet Explorer(IE)等</p><p> 服務(wù)器端:Windows NT/Windows2000,Internet Informat
61、ion Server (IIS)4.0及其以上版本,IE等;或者Windows98,Personal Web Server(PWS),IE等。</p><p> 數(shù)據(jù)庫(kù):采用access,運(yùn)行于服務(wù)器端。</p><p><b> ☆硬件環(huán)境:</b></p><p> 服務(wù)器 CPU:PIII 500以上 ,內(nèi)存:256M以上</
62、p><p> 客戶機(jī) CPU:P200MMX以上,內(nèi)存:32M以上 </p><p><b> 3.2 系統(tǒng)結(jié)構(gòu)圖</b></p><p> 根據(jù)需求分析,在線考試系統(tǒng)的結(jié)構(gòu)圖如下:</p><p> 圖3-1 在線考試系統(tǒng)結(jié)構(gòu)圖</p><p><b> 3.3 詳細(xì)設(shè)計(jì)<
63、/b></p><p> 詳細(xì)設(shè)計(jì)是整個(gè)設(shè)計(jì)過(guò)程中,最重要的步驟之一。下面就分如下幾個(gè)部分對(duì)系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì):(1)試題設(shè)計(jì)(2)數(shù)據(jù)庫(kù)中表的設(shè)計(jì)(3)用戶、管理員權(quán)限(4)功能模塊詳細(xì)設(shè)計(jì)(5)在線考試系統(tǒng)考試模塊框圖</p><p><b> 3.3.1試題設(shè)計(jì)</b></p><p> 鑒于主觀題的主觀性,目前無(wú)法實(shí)現(xiàn)系統(tǒng)自動(dòng)
64、判卷,所以本系統(tǒng)只作客觀題部分。一般情況下,單選題往往在四個(gè)供選的答案A、B、C、D中選擇唯一正確的答案;多選題是在供選答案中有多個(gè)選擇;而判斷題實(shí)質(zhì)上就相當(dāng)于有兩個(gè)選項(xiàng)的單選題。因而,本系統(tǒng)中所涉及的單選題和多選題跟過(guò)去的大體相同,由于時(shí)間的關(guān)系,判斷題部分沒(méi)有做。并且假設(shè)多選題一般情況下也是最多提供四個(gè)備選答案,標(biāo)準(zhǔn)答案至少有一個(gè)。故各題型的樣題設(shè)計(jì)如下:</p><p> 單選題:password的意思是
65、: A、密碼 B、經(jīng)過(guò) C、單詞 </p><p><b> D、通路</b></p><p><b> 正確答案為A</b></p><p> 多選題:下面的表達(dá)式為真的有:A、1>2 B、7%5=2 </p><p> C、sin(30)=1/2 D、Cint(7/5
66、)=1</p><p> 正確答案為B、C、D</p><p> 3.3.2數(shù)據(jù)庫(kù)中表的設(shè)計(jì)</p><p> 1.question表結(jié)構(gòu)</p><p> 通常,每一類型的試題都應(yīng)有一個(gè)表結(jié)構(gòu)。但考慮到目前系統(tǒng)存貯空間可以很大,也為了更加方便。我們采用把全部試題集中在一起的方案來(lái)建立數(shù)據(jù)表,每道客觀題均有四個(gè)備選答案項(xiàng),每個(gè)試題均具
67、有題型、所屬科目等數(shù)據(jù)段表示其屬性。字段名一般是相應(yīng)的英文單詞。這樣,查詢起來(lái)較方便,會(huì)節(jié)約時(shí)間,也不致于造成數(shù)據(jù)十分雜亂等。詳細(xì)設(shè)計(jì)如下表所示:</p><p> 表3-1 question 表 </p><p><b> 各字段說(shuō)明:</b></p><p> (1)haveselect字段代表在隨機(jī)選題時(shí)是否已經(jīng)被某用戶選過(guò),類型為
68、數(shù)字。</p><p> (2)ID是問(wèn)題的id號(hào),用來(lái)唯一標(biāo)志該問(wèn)題,把它設(shè)為主鍵,類型為自動(dòng)編號(hào)。</p><p> (3)Question字段為問(wèn)題內(nèi)容,類型為文本。</p><p> (4)A字段代表選項(xiàng)A的內(nèi)容</p><p> (5)B字段代表選項(xiàng)B的內(nèi)容</p><p> (6)C字段代表選項(xiàng)C
69、的內(nèi)容</p><p> (7)D字段代表選項(xiàng)D的內(nèi)容</p><p> (8)Answer字段表示答案選項(xiàng)</p><p> (9)Type字段表示試題類型</p><p> (10)subjectname字段代表試題所屬科目名稱</p><p> 2.subject表結(jié)構(gòu)</p><p
70、> 表3-2 subject表</p><p><b> 各字段說(shuō)明:</b></p><p> (1)multiper字段代表在某考試科目的考試題中每個(gè)多選題的分值。</p><p> (2)singleper字段代表在某考試科目的考試題中每個(gè)單選題的分值。</p><p> (3)multinumbe
71、r字段為某科的多選題題量。</p><p> (4)singlenumber字段為某科的多選題題量。</p><p> (5)subjectname字段代表科目名稱。</p><p> (6)testtime字段代表某科的考試總時(shí)間。</p><p> (7)id字段代表科目的id號(hào)。</p><p> 3.
72、score表結(jié)構(gòu)</p><p> 表3-3 score表</p><p><b> 各字段說(shuō)明:</b></p><p> (1)studentname字段代表在某次考試記錄中學(xué)生的名字。</p><p> (2)subjectname字段代表在某次考試紀(jì)錄中考試科目名。</p><p>
73、; (3)score字段為某次考試紀(jì)錄中考試分?jǐn)?shù)。</p><p> (4)id字段為某次考試紀(jì)錄的標(biāo)志號(hào)。</p><p> (5)endtime字段代表考試的結(jié)束時(shí)間。</p><p> 4.student表結(jié)構(gòu)</p><p> 表3-4 student表</p><p><b> 各字段說(shuō)
74、明:</b></p><p> (1)studentname字段代表學(xué)生的名字。</p><p> (2)studentpassword字段代表密碼。</p><p> (3)id字段為學(xué)生的標(biāo)志號(hào)。</p><p> 5.admin表結(jié)構(gòu)</p><p> 表3-5 admin表</p&g
75、t;<p><b> 各字段說(shuō)明:</b></p><p> (1)name字段代表管理員的名字。</p><p> (2)password字段代表密碼。</p><p> (3)id字段為管理員的標(biāo)志號(hào)。</p><p> 3.3.3 用戶、管理員權(quán)限</p><p>
76、 ☆管理員:在此系統(tǒng)中可以由若干個(gè)管理員,即系統(tǒng)管理員。他們具有一般用戶所沒(méi)有的權(quán)限,即具有管理用戶、試題以及試卷等內(nèi)容的權(quán)力。它不需注冊(cè),在數(shù)據(jù)庫(kù)有一個(gè)表來(lái)存放相關(guān)信息,可由以存在的管理員添加或刪除管理員。</p><p> ☆一般用戶:主要是指學(xué)校的學(xué)生和企事業(yè)單位的培訓(xùn)對(duì)象等。</p><p> 3.3.4 功能模塊詳細(xì)設(shè)計(jì)</p><p> 下面,對(duì)各
77、個(gè)功能模塊分別進(jìn)行詳細(xì)討論,具體情況見(jiàn)系統(tǒng)源程序。</p><p> 3.3.4.1 管理模塊</p><p> 管理員可以向題庫(kù)中添加各種類型且符合要求的試題,也可以對(duì)它們進(jìn)行修改和刪除。同時(shí),管理員也能對(duì)科目、用戶、考試記錄等數(shù)據(jù)進(jìn)行管理。</p><p><b> 試題管理</b></p><p><b
78、> (1)試題錄入</b></p><p> 首先,用戶選擇試題所屬科目。若菜單中沒(méi)有該科目,則可以新增一個(gè)。返回、刷新一次頁(yè)面,即可看到新增的科目名稱。而且,在本系統(tǒng)中其它需要選擇科目的地方也會(huì)自動(dòng)更新。其次,每道試題有類型、試題內(nèi)容與選項(xiàng)和答案等欄目。管理員輸入完以后,即可看到預(yù)覽效果。如果輸入不合法,或者該科題庫(kù)中已有該試題編號(hào)和內(nèi)容等,則系統(tǒng)給出相應(yīng)的提示或警告,以待更正。</
79、p><p><b> (2)試題修改</b></p><p> 管理員還可以對(duì)試題進(jìn)行修改。不過(guò),對(duì)于各表中的主鍵不用修改,避免了造成系統(tǒng)中的數(shù)據(jù)混亂,或者覆蓋其它有用數(shù)據(jù)的現(xiàn)象。如果用戶執(zhí)行了非法操作,則必須重新操作。</p><p><b> (3)試題刪除</b></p><p> 管理員
80、可以刪除不再需要的試題。</p><p><b> 科目管理</b></p><p><b> (1)添加科目</b></p><p> 其基本信息有科目名稱、題型、題量和考試總時(shí)間等,對(duì)于用戶輸入的不符合系統(tǒng)要求的數(shù)據(jù),系統(tǒng)仍舊給出提示或警告。</p><p><b> (2)科
81、目刪除</b></p><p> 管理員可以刪除不再需要的科目。</p><p><b> 3.用戶管理</b></p><p> 管理員可以通過(guò)管理界面添加或刪除用戶。</p><p><b> 4.管理管理員</b></p><p> 管理員可以通過(guò)
82、管理界面添加新管理員或刪除原有管理員。</p><p><b> 5.考試記錄管理</b></p><p> 系統(tǒng)中的管理員可以查詢考試記錄,也可以刪除考試紀(jì)錄。</p><p> 3.3.4.2在線考試模塊</p><p> 進(jìn)入在線考場(chǎng)是本系統(tǒng)最重要的部分之一。因?yàn)橐粋€(gè)系統(tǒng)如果涉及到現(xiàn)實(shí)的話,就必須考慮得十分
83、周到、完善??忌卿浐?,只要選擇考試科目以后,就可以調(diào)出試卷進(jìn)行在線考試。為了實(shí)現(xiàn)動(dòng)態(tài)隨機(jī)不重復(fù)的抽取試題,需要在選題過(guò)程中每選出一題,就要在試題庫(kù)中作相應(yīng)的標(biāo)志,以便下次不會(huì)重復(fù)取出此題。試卷出來(lái)后要對(duì)試題庫(kù)中的標(biāo)志位復(fù)原。這樣就會(huì)使每個(gè)考生的試卷都不同。考生的其答題信息通過(guò)單、復(fù)選按鈕選擇答案來(lái)反映。考試結(jié)束采取自主交卷和到了規(guī)定的時(shí)間自動(dòng)題示有機(jī)結(jié)合的方式辦法予以實(shí)現(xiàn)。</p><p> 3.3.4.2用
84、戶注冊(cè)模塊</p><p> 該模塊的功能是實(shí)現(xiàn)用戶遠(yuǎn)程注冊(cè)。用戶輸入想要注冊(cè)的用戶名和密碼,提交之后由系統(tǒng)判斷該用戶是否已經(jīng)存在,如果存在,就給出相應(yīng)信息,如果不存在,就把用戶輸入的用戶名和密碼寫到數(shù)據(jù)庫(kù)中,完成注冊(cè)。</p><p> 3.3.5 在線考試系統(tǒng)考試模塊框圖</p><p><b> 否</b></p>&
85、lt;p><b> 是</b></p><p> 圖3-2 在線考試系統(tǒng)考試模塊框圖</p><p><b> 第四章 系統(tǒng)實(shí)現(xiàn)</b></p><p> 在進(jìn)行了整體設(shè)計(jì)以后,就開(kāi)始進(jìn)行詳細(xì)的設(shè)計(jì)及編碼工作。也就是設(shè)計(jì)文件和把他們有機(jī)地組織在一起實(shí)現(xiàn)所有功能。</p><p>
86、4.1 系統(tǒng)流程圖設(shè)計(jì)</p><p> 根據(jù)系統(tǒng)總體設(shè)計(jì),首先系統(tǒng)要有一個(gè)登錄界面,用戶可以從該界面登錄參加考試。管理員也應(yīng)該有一個(gè)進(jìn)入管理登錄界面的通道。此外,這個(gè)界面上還應(yīng)該有一個(gè)用戶注冊(cè)的通道。</p><p> 在考生正確輸入用戶名和密碼以后,接著應(yīng)該進(jìn)入考試科目選擇界面。在該界面上,考生選擇參加考試的科目,這個(gè)人機(jī)交互的過(guò)程是必不可少的。</p><p&
87、gt; 考生確定考試科目以后,進(jìn)入開(kāi)始考試界面,由計(jì)算機(jī)隨機(jī)提取試題,顯示出來(lái)組成試卷,并開(kāi)始進(jìn)行計(jì)時(shí)。考生再次進(jìn)行考試,答完試題后交卷,進(jìn)入下一個(gè)界面。</p><p> 考生提交答卷后,由計(jì)算機(jī)進(jìn)行處理--判卷,得出考試分?jǐn)?shù),顯示出來(lái),并把該生考試記錄存入數(shù)據(jù)庫(kù)。在這個(gè)界面上應(yīng)該可以返回繼續(xù)進(jìn)行考試或回到登錄界面。</p><p> 以上是系統(tǒng)進(jìn)行考試功能的部分,要對(duì)系統(tǒng)進(jìn)行管理
88、,如試題管理、科目管理、用戶管理等就需要設(shè)計(jì)一些管理界面。下面就來(lái)逐步進(jìn)行設(shè)計(jì)。</p><p> 要進(jìn)行管理首先要有管理員登陸驗(yàn)證,這里另外設(shè)計(jì)了一個(gè)界面,使它與用戶登錄區(qū)別開(kāi)來(lái)。這個(gè)界面與用戶登錄界面表面上很相似,但是他們是從不同的表中提取數(shù)據(jù)進(jìn)行驗(yàn)證的,以便于系統(tǒng)擴(kuò)充和增加安全性。</p><p> 管理員登錄以后,應(yīng)該有一個(gè)管理項(xiàng)目選擇界面,其中包括管理用戶選項(xiàng)、管理管理員選項(xiàng)
89、、管理考試科目選項(xiàng)、管理考試紀(jì)錄選項(xiàng)以及管理各科試題選項(xiàng)。</p><p> 管理用戶的界面可以實(shí)現(xiàn)用戶的增加、和刪除的功能,管理員在此可以對(duì)用戶進(jìn)行管理。</p><p> 管理管理員的界面,功能和管理用戶的差不多,實(shí)現(xiàn)對(duì)管理員的增加和刪除功能。</p><p> 管理考試科目界面用來(lái)增加或刪除考試的科目,以方便對(duì)各科試題的管理和查詢。</p>
90、<p> 管理考試紀(jì)錄界面可以對(duì)考生的每次考試進(jìn)行紀(jì)錄,管理員科可以對(duì)考生成績(jī)、考試科目、時(shí)間及考試各相關(guān)紀(jì)錄進(jìn)行查詢和刪除。</p><p> 最后是試題庫(kù)管理界面,它根據(jù)各科進(jìn)行分類。通過(guò)這個(gè)界面管理員可以對(duì)題庫(kù)中的某科試題進(jìn)行增加、修改或刪除。這樣就十分方便靈活的對(duì)試題庫(kù)進(jìn)行管理。</p><p> 下圖就是系統(tǒng)流程圖:</p><p>
91、圖4-1 系統(tǒng)流程圖</p><p> 4.2 各文件功能介紹及詳解</p><p> 1.<conn.asp></p><p> 該文件實(shí)現(xiàn)的是連接數(shù)據(jù)庫(kù)和斷開(kāi)連接的功能。</p><p> 文件中主要是定義了兩個(gè)過(guò)程conn_init()和endConnection()。第一個(gè)是連接數(shù)據(jù)庫(kù),第二個(gè)是實(shí)現(xiàn)斷開(kāi)連接。其中c
92、onn_init()過(guò)程中的連接是通過(guò)下面語(yǔ)句實(shí)現(xiàn)的:</p><p> connstr= "DBQ=" + server.mappath("data.mdb") + ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"</p><p> set conn=serve
93、r.createobject("ADODB.CONNECTION")</p><p> conn.open connstr</p><p> connstr確定了數(shù)據(jù)文件的路徑和數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。</p><p> Conn的含義是定義了一個(gè)變量用,來(lái)存放數(shù)據(jù)庫(kù)連接所創(chuàng)建的對(duì)象。</p><p> conn.open
94、 connstr則真正實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的連接。</p><p> 該文件主要被包含在其他文件中實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接和斷開(kāi)功能。</p><p> 2.<default.asp></p><p> 該文件的功能是系統(tǒng)登陸的入口,在此可以實(shí)現(xiàn)用戶注冊(cè)入口,管理員管理入口以及用戶進(jìn)入考試系統(tǒng)登陸界面的功能。</p><p> 該文件的功
95、能使這樣實(shí)現(xiàn)的:表單提交給文件本身。再由HTML上面的ASP程序?qū)μ峤恍畔⑦M(jìn)行處理。</p><p> 最上面的<%@ Language=VBScript %>表示腳本語(yǔ)言是VBScript。</p><p> <!--#include file="conn.asp"-->表示包含conn.asp文件。以下的程序進(jìn)行了選擇判斷,如果提交的表單
96、中的submit值為“登錄”,就繼續(xù)判斷看student表中是否存在與該用戶輸入的用戶名和密碼相同的記錄,如果存在就轉(zhuǎn)到selectsubject.asp頁(yè)進(jìn)行考試科目選擇。不存在就返回“對(duì)不起,請(qǐng)輸入正確的用戶名和密碼?!比绻鹲ubmit值為“注冊(cè)”,就轉(zhuǎn)到register.asp頁(yè)進(jìn)行用戶注冊(cè)。如果submit的值為“管理”就轉(zhuǎn)到admin文件夾中的login.asp頁(yè)。重點(diǎn)程序如下:</p><p> s
97、et rs = server.createobject("adodb.recordset")</p><p> rs是一個(gè)變量,用來(lái)存放一個(gè)recordset對(duì)象。</p><p> sql="select * from student where studentname='" & Request.Form("stude
98、ntname") & "' and studentpassword='" & Request.Form("studentpassword") & "'"</p><p> 變量sql代表一個(gè)SQL語(yǔ)句,功能是從表student中選出用戶名和密碼與考生提交的用戶名和密碼都相同的記錄。</p&
99、gt;<p> rs.open sql,conn,1,1</p><p> 該語(yǔ)句的功能是執(zhí)行sql語(yǔ)句并把記錄集結(jié)果存儲(chǔ)在變量rs中。</p><p> rs.close的作用是關(guān)閉紀(jì)錄。</p><p> session("studentname")=request.form("studentname"
100、;)</p><p> 該句的意思是把表單提交的變量studentname的值賦給一個(gè)session對(duì)象studentname。這個(gè)對(duì)象用來(lái)存儲(chǔ)用戶名,它在該用戶對(duì)每個(gè)頁(yè)面的訪問(wèn)中有效。</p><p> set rs=nothing含義是清空rs變量。</p><p> call endConnection()是調(diào)用conn.asp中的過(guò)程,用來(lái)關(guān)閉于數(shù)據(jù)庫(kù)
101、的連接。</p><p> 3.<register.asp></p><p> 該文件實(shí)現(xiàn)了用戶注冊(cè)的功能,用戶只要填寫想要注冊(cè)的用戶名及密碼,文件首先查看用戶名是否已經(jīng)存在,如果存在就提示該用戶名已經(jīng)存在,否則就將用戶輸入的信息添加到數(shù)據(jù)庫(kù)中的student表內(nèi)。然后用戶就可以使用自己注冊(cè)的用戶名和密碼登錄在線考試系統(tǒng)進(jìn)行在線考試。</p><p>
102、; 在文件中,表單提交給register.Asp自身進(jìn)行處理,如果submit值為“注冊(cè)”首先進(jìn)行判斷看用戶名或密碼是否為空。如果為空就顯示“錯(cuò)誤!用戶名或密碼不能為空!”的信息。如果不為空,進(jìn)行下一步判斷,看student表中是否已經(jīng)存在用戶想要注冊(cè)的用戶名,如果存在,就顯示信息“錯(cuò)誤!該用學(xué)生存在!”,如果不存在就將要注冊(cè)的用戶名和密碼寫入student表。代碼如下:</p><p> sql="
103、;insert into student(studentname,studentpassword) values('" & cstr(trim(request("studentname"))) & "','" & cstr(trim(request("studentpassword"))) & "
104、9;)"</p><p> conn.execute sql</p><p> 最后,用一個(gè)Vbscrip語(yǔ)言編寫的消息框顯示注冊(cè)成功信息。</p><p> 4.<selectsubject.asp></p><p> 該文件是實(shí)現(xiàn)用戶登錄在線考試系統(tǒng)后進(jìn)行考試科目選擇的功能,選擇科目后進(jìn)入考試界面。</
105、p><p> 該文件首先是將subject表中所有的紀(jì)錄都以單選項(xiàng)的方式選出來(lái),如果沒(méi)有紀(jì)錄,則顯示“對(duì)不起,暫時(shí)沒(méi)有任何考試科目?!庇脩舭刺峤缓?,表單仍然提交給文件自身。處理程序首先判斷用戶是否選擇了一個(gè)考試科目,如果沒(méi)有選擇顯示“你沒(méi)有選擇考試科目,請(qǐng)選擇考試科目!”如果選擇了某個(gè)考試科目,先把該科目賦值給一個(gè)session變量selectsubjectname,然后從subject表中選出該科的相關(guān)信息,并也
106、都設(shè)成session變量。Singlenumber表示單選試題數(shù)量,multinumber表示多選試題數(shù)量,singleper表示單選試題分值,multiper表示多選試題分值,testtime表示考試總時(shí)間。接著進(jìn)入考試界面。</p><p> 5.<test.asp></p><p> 該文件就是考試界面,實(shí)現(xiàn)真正的動(dòng)態(tài)隨機(jī)選題,并對(duì)每個(gè)考生的考試時(shí)間進(jìn)行監(jiān)控,到結(jié)束時(shí)
107、間后自動(dòng)給出提示。</p><p> 該文件的總體構(gòu)架是使用了if else 語(yǔ)句進(jìn)行了一個(gè)選擇,剛進(jìn)入該頁(yè)面submit1得值肯定不等于“開(kāi)始考試”,所以先顯示出“開(kāi)始考試”的按鈕。按下以后,首先把當(dāng)前時(shí)間以分種為單位存儲(chǔ)在session的變量starttime中。然后進(jìn)入隨機(jī)抽取試題部分,單選題和多選題的抽取很相似,只不過(guò)一個(gè)是單選按鈕,一個(gè)是多選按鈕罷了。這里只解釋單選題的部分。</p>&
108、lt;p> strid1=""是定義了一個(gè)字符串變量,并先賦值為空。</p><p> Randomize是產(chǎn)生隨機(jī)種子,在使用rnd()函數(shù)之前一定要先用Randomize產(chǎn)生隨機(jī)種子才能實(shí)現(xiàn)其產(chǎn)生0~1之間隨機(jī)數(shù)的功能。</p><p> for i=1 to session("singlenumber")直到next是選擇singl
109、enumber(代表某科目的單選題數(shù)量)個(gè)單選題。</p><p> 下面的代碼實(shí)現(xiàn)了從數(shù)據(jù)庫(kù)中隨機(jī)不重復(fù)的選題:</p><p> set rs=server.createobject("adodb.recordset")</p><p> sql="select * from question where subjectnam
110、e='"&session("selectsubjectname") & "'and type='單選題' and haveselect=0 "</p><p> rs.open sql,conn,3,2</p><p> count=rs.recordcount</p>&l
111、t;p> temp=fix(count*rnd(10))</p><p> rs.move temp</p><p> rs("haveselect")=1</p><p> rs.update </p><p> strid1=strid1 & rs("ID") & &
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文——遠(yuǎn)程教育在線考試系統(tǒng)
- 遠(yuǎn)程教育研究 畢業(yè)論文
- 《遠(yuǎn)程教育在線考試系統(tǒng)》開(kāi)題報(bào)告
- 畢業(yè)論文——遠(yuǎn)程教育網(wǎng)
- 畢業(yè)論文——遠(yuǎn)程教育網(wǎng)
- 遠(yuǎn)程教育在線考試系統(tǒng)研究.pdf
- 工商管理遠(yuǎn)程教育畢業(yè)論文
- -鄭州大學(xué)遠(yuǎn)程教育畢業(yè)論文
- 鄭州大學(xué)遠(yuǎn)程教育畢業(yè)論文
- 大學(xué)畢業(yè)論文之網(wǎng)絡(luò)遠(yuǎn)程教育-遠(yuǎn)程教育研究及其理論范式
- 《遠(yuǎn)程教育的設(shè)計(jì)與實(shí)現(xiàn)》畢業(yè)論文
- 北大遠(yuǎn)程教育法學(xué)畢業(yè)論文
- 鄭州大學(xué)遠(yuǎn)程教育畢業(yè)論文金融專業(yè)
- 畢業(yè)論文---遠(yuǎn)程教育平臺(tái)的設(shè)計(jì)與開(kāi)發(fā)
- 在線考試系統(tǒng)畢業(yè)論文
- 在線考試系統(tǒng)畢業(yè)論文
- 在線考試系統(tǒng)畢業(yè)論文
- 在線考試系統(tǒng)畢業(yè)論文
- 在線考試系統(tǒng)畢業(yè)論文
- 在線考試系統(tǒng)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論