網(wǎng)絡(luò)考試系統(tǒng)(參考)-無(wú)憂無(wú)慮畢設(shè)網(wǎng)_第1頁(yè)
網(wǎng)絡(luò)考試系統(tǒng)(參考)-無(wú)憂無(wú)慮畢設(shè)網(wǎng)_第2頁(yè)
網(wǎng)絡(luò)考試系統(tǒng)(參考)-無(wú)憂無(wú)慮畢設(shè)網(wǎng)_第3頁(yè)
網(wǎng)絡(luò)考試系統(tǒng)(參考)-無(wú)憂無(wú)慮畢設(shè)網(wǎng)_第4頁(yè)
網(wǎng)絡(luò)考試系統(tǒng)(參考)-無(wú)憂無(wú)慮畢設(shè)網(wǎng)_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 本文配套程序下載地址 : 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ()-大學(xué)生畢業(yè)設(shè)計(jì)站 ,免費(fèi)畢業(yè)設(shè)計(jì)論文 ,無(wú)憂無(wú)慮畢設(shè)網(wǎng) 大學(xué)生畢業(yè)設(shè)計(jì) ,出售各類畢業(yè)設(shè)計(jì)源碼 ,論文 ,程序源碼 ,網(wǎng)站源碼 ,免費(fèi)視頻教程 ,我們將竭誠(chéng)為您服務(wù)! 分分 布布 式式 網(wǎng)網(wǎng) 絡(luò)絡(luò) 考考 試試 系系 統(tǒng)統(tǒng) 原原 型型 分分 析析 及及 實(shí)實(shí) 現(xiàn)現(xiàn) 計(jì)算機(jī)中心:火焰晨晨 指導(dǎo)老師: * 摘 要 軟件工程在現(xiàn)代軟件開(kāi)發(fā)中的作用越來(lái)越大,并且發(fā)展出了很多行之有效的軟件工程方法和建模語(yǔ)言。 UML( Unified Modeling Language,統(tǒng)一建模語(yǔ)言)是一種非常流行的,支持面對(duì)對(duì)象建模方法 的建模語(yǔ)言。到今天 UML 差不多已經(jīng)成為建模語(yǔ)言的事實(shí)標(biāo)準(zhǔn)。本文就采用面對(duì)對(duì)象的方法以 UML 為建模語(yǔ)言,使用 PowerDesigner這個(gè) case工具分析設(shè)計(jì)一個(gè)分布式的 B/S結(jié)構(gòu)的基于 COM+和 XML 的網(wǎng)絡(luò)考試系統(tǒng)。并使用 Delphi、 VBScript、 ADO、 XML、 HTML 等編程工具、語(yǔ)言和技術(shù)實(shí)現(xiàn)了這個(gè)系統(tǒng)。 關(guān)鍵詞: UML COM+ Delphi ASP ADO XML Abstract Software Engineering is increasingly important in then modern software development. Today there are many functions and many software engineering methods. The UML (Unified Modeling Language) is one of they. In addition, its a popular and Object-Oriented based model language. The UML has almost been the international standard of model language. Using Object-Oriented Model and UML by case tools of PowerDesigner, the paper designs a distributed B/S constructed online test system, which is based on COM+ and XML. In order to realize the system a lots of tools and program languages are used, such as Delphi, VBScript, ADO, XML, and HTML etc. Key Words: UML COM+ Delphi ASP ADO XML 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 目 錄 分布式網(wǎng)絡(luò)考試系統(tǒng)原型分析及實(shí)現(xiàn) 1 1. 問(wèn)題定義 4 2. 需求分析 4 2.1. 系統(tǒng)目標(biāo) 4 2.2. 可行性分析 4 2.2.1. 現(xiàn)有的數(shù)據(jù)庫(kù)應(yīng)用程序的分層結(jié)構(gòu) 4 . 傳統(tǒng)二層結(jié)構(gòu) 4 . 三層數(shù)據(jù)庫(kù)應(yīng)用結(jié)構(gòu) 5 . 多層分布式數(shù)據(jù)庫(kù)系統(tǒng) 5 2.2.2. 網(wǎng)絡(luò)分布式多層應(yīng)用系統(tǒng) 6 2.2.3. XML 語(yǔ)言 7 2.3. 本系統(tǒng)的方案選擇 8 2.4. 建模工具的選擇 8 3. 基于 UML 的系統(tǒng)分析 8 3.1. 用例圖 8 3.1.1. 用戶關(guān)系圖 8 3.1.2. 系統(tǒng)用例圖 9 3.1.3. 用例圖利用情況清單 9 3.2. 順序圖 10 3.2.1. 老師活動(dòng)順序圖 10 3.2.2. 學(xué)生活動(dòng)順序圖 11 3.2.3. 動(dòng)作清單 11 3.2.4. 通訊清單 12 3.3. 類圖 13 3.3.1. 類圖一 13 3.3.2. 類圖二 14 3.3.3. 類清單 14 3.3.4. 類方法清單 14 3.4. 網(wǎng)站頁(yè)面 布置圖 16 4. 數(shù)據(jù)庫(kù)的分析設(shè)計(jì) 17 4.1. 數(shù)據(jù)庫(kù)概念模型( Conceptual Data Model) 17 4.1.1. 圖 17 4.1.2. 資料清單 17 4.1.3. 實(shí)體清單 18 4.1.4. 實(shí)體的識(shí)別字清單 18 4.1.5. 關(guān)系清單 19 4.2. 數(shù)據(jù)庫(kù)物理模型( Physical Data Model) 19 4.2.1. 圖 19 4.2.2. 物理模型欄位清單 19 4.2.3. 表格索引清單 20 4.2.4. 表格引鍵清單 21 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 4.2.5. 參考清單 21 4.2.6. 表格清單 21 4.3. SQL 語(yǔ)句 21 5. 系統(tǒng)實(shí)現(xiàn) 26 5.1. 開(kāi)發(fā)平臺(tái)的選擇 26 5.2. 編程工具的選擇 27 5.3. XML 和網(wǎng)頁(yè)編輯工具的選擇 27 5.4. 系統(tǒng)編碼 27 5.4.1. 源程序文件清單 27 . 網(wǎng)站文件清單: 27 . COM+組件源程序文件清單 28 5.4.2. 程序核心代碼 28 . 學(xué)生進(jìn)行考試頁(yè)面的 XLST 文件: Testing.xsl 28 . 定制 ASP 對(duì)象主代碼 32 . 學(xué)生對(duì)象 COM+組件主代碼 39 . 老師對(duì)象 COM+組件主代碼 47 . 管理員 COM+組件主代碼 47 5.4.3. 程序運(yùn)行截圖 47 . 登錄頁(yè)面(系統(tǒng)主界面) 47 . 學(xué)生維護(hù)頁(yè)主界面 47 . 學(xué)生修改個(gè)人資料頁(yè)面 47 . 學(xué)生查詢成績(jī)頁(yè)面 47 . 學(xué)生參加考試頁(yè)面 47 . 進(jìn)行考試頁(yè)面 47 . 老師維護(hù)頁(yè)主界面 47 . 老師生成試卷頁(yè)面 47 . 老師修改個(gè)人資料頁(yè)面 47 0. 管理員維護(hù)頁(yè)主界面 47 1. 管理員增加老師頁(yè)面 47 2. 管理員增加學(xué)生頁(yè)面 47 3. 管理員修改密碼頁(yè)面 47 6. 系統(tǒng)安裝分發(fā) 48 6.1. 數(shù)據(jù)庫(kù)的設(shè)置 48 6.2. 配置 COM+環(huán)境 49 6.3. IIS 的配置 50 6.4. 注意事項(xiàng) 50 7. 系統(tǒng)不足與展望 50 8. 致謝 51 9. 參考文獻(xiàn) 51 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 1. 問(wèn)題定義 現(xiàn)在網(wǎng)絡(luò)正在 改變著傳統(tǒng)的教育方式,網(wǎng)絡(luò)教育也越來(lái)越多,就算是傳統(tǒng)的教育方式下,把考試搬到網(wǎng)絡(luò)上也是一種趨勢(shì)。考試的無(wú)紙化網(wǎng)絡(luò)化不僅能有效減少老師的工作量,很好的利用計(jì)算機(jī)的優(yōu)勢(shì),提高工作效率,也能使考試更加公平、公正。所以就一定要構(gòu)建一個(gè)性能良好安全可靠的可以滿足大量學(xué)生同時(shí)使用的網(wǎng)絡(luò)考試系統(tǒng)。 本原型系統(tǒng)主要功能如下: 1. 學(xué)生可以在網(wǎng)上進(jìn)行考試,考試結(jié)束后由計(jì)算機(jī)批改試題給出分?jǐn)?shù),并記錄成績(jī)。 2. 學(xué)生在還可以在網(wǎng)上查詢自己的考試成績(jī),修改密碼等個(gè)人資料。 3. 老師可以在網(wǎng)上出題,修改密碼等個(gè)人資料。 4. 管理員可以在網(wǎng)上建立學(xué)生 、老師等用戶。 2. 需求分析 2.1. 系統(tǒng)目標(biāo) 本網(wǎng)絡(luò)考試系統(tǒng)應(yīng)該能滿足學(xué)校幾千學(xué)生在任何地方、任何時(shí)間都能參加 考試。本系統(tǒng)要讓學(xué)生、老師和管理員在網(wǎng)絡(luò)上可以維護(hù)自己的個(gè)人資料。學(xué)生也可以在網(wǎng)絡(luò)上通過(guò)本系統(tǒng)查詢自己考試的成績(jī);老師能通過(guò)網(wǎng)絡(luò)生成試卷;管理員在網(wǎng)絡(luò)上通過(guò)本系統(tǒng)增加學(xué)生和老師;另外為了讓考試比較公平,試卷的試題由計(jì)算機(jī)隨機(jī)從題庫(kù)抽取。 2.2. 可行性分析 2.2.1. 現(xiàn)有的數(shù)據(jù)庫(kù)應(yīng)用程序的分層結(jié)構(gòu) . 傳統(tǒng)二層結(jié)構(gòu) 傳統(tǒng)的二層式程序,也就是客戶 /服務(wù)器( Client/Server)結(jié)構(gòu),這種程序相對(duì)簡(jiǎn)單、清楚、開(kāi)發(fā)容易,其結(jié)構(gòu)如 圖 1??蛻魴C(jī)都通過(guò)網(wǎng)絡(luò)連接到同一個(gè)數(shù)據(jù)庫(kù)上,不過(guò)這樣結(jié)構(gòu)問(wèn)題很多,最主要的就是性能較差維護(hù)困難已經(jīng)不適應(yīng)在因特網(wǎng)( Internet)上使用。數(shù)據(jù)同一性和完整性難以控制。同時(shí)由于每一個(gè)客戶機(jī)都必須安裝特定的軟件,且這種客戶端軟件體積還比較大,用戶使用起來(lái)非常不方便,所以目前已經(jīng)面臨淘汰。不過(guò)這樣的系統(tǒng)開(kāi)發(fā)比較簡(jiǎn)單,對(duì)開(kāi)發(fā)人員的技術(shù)要求也不高,在內(nèi)部局域網(wǎng)上使用還有一定的市場(chǎng)。 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: (圖 1) . 三層數(shù)據(jù)庫(kù)應(yīng)用結(jié)構(gòu) 三層結(jié)構(gòu)是目前用得最多的,這種結(jié)構(gòu)比傳 統(tǒng)的 C/S 結(jié)構(gòu)增加了一個(gè)應(yīng)用程序服務(wù)器,應(yīng)用程序服務(wù)器包括了統(tǒng)一的界面、業(yè)務(wù)規(guī)則和數(shù)據(jù)處理邏輯等等,這樣客戶端程序就可以做得比較小,也就是常說(shuō)的瘦客戶,更由于業(yè)務(wù)規(guī)則和數(shù)據(jù)處理邏輯的集中在服務(wù)器上統(tǒng)一管理,客戶端無(wú)須進(jìn)行復(fù)雜的計(jì)算,也不會(huì)因?yàn)殄e(cuò)誤的操作而影響到其他的用戶,所以他的可靠性、穩(wěn)定性和效率都比較好。當(dāng)然開(kāi)發(fā)這樣的系統(tǒng)在技術(shù)上和成本上要求就要多一些。(其結(jié)構(gòu)如圖 2) 圖 2 . 多層分布式數(shù)據(jù)庫(kù)系統(tǒng) 近年來(lái)隨著因特網(wǎng)的快速發(fā)展,許多企業(yè)都 開(kāi)始上網(wǎng),因此基于網(wǎng)絡(luò)的營(yíng)銷系統(tǒng)、 MIS 系統(tǒng)、 ERP 系統(tǒng)都快速發(fā)展起來(lái)了,這個(gè)時(shí)候僅僅三層的應(yīng)用程序已經(jīng)不能滿足實(shí)際需求了。因此又發(fā)展出來(lái)了多層分布式的數(shù)據(jù)庫(kù)系統(tǒng)。在多層分布式系統(tǒng)中,人們把中間的應(yīng)用服務(wù)器再拆分為很多比較小的系統(tǒng),均勻分散到多臺(tái)計(jì)算機(jī)中處理,這樣就能得到更好的性能并且降低了程序復(fù)雜度。在多層分布式數(shù)據(jù)庫(kù)系統(tǒng)中必須要有一個(gè)所謂的中間件來(lái)支持和管理分散的業(yè)務(wù)處理程序。 在 Windows 平臺(tái)下微軟公司推出了的 Windows DNA( Distributed interNet Application Architecture,分布式網(wǎng)絡(luò)應(yīng)用結(jié)構(gòu))策略。把 COM+作為 Windows DNA 策略中的中間件。在 Windows2000 以上操作系統(tǒng)中, COM+成為了系統(tǒng)的無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 一部分。 COM+為中間層提供了負(fù)載平衡、對(duì)象池( Object Pooling)、事務(wù)特性等一系列的強(qiáng)力支持,并且在 COM+中工作的程序受到操作系統(tǒng)的保護(hù),從而最大的保證了系統(tǒng)的安全、穩(wěn)定和高效。當(dāng)然開(kāi)發(fā)這樣的系統(tǒng)要求開(kāi)發(fā)人員必須掌握 COM( Component Object Model,組件對(duì)象模型)和 COM+技術(shù),開(kāi)發(fā)難度和成本更大了。 圖 3 2.2.2. 網(wǎng)絡(luò)分布式多層應(yīng)用系統(tǒng) 近幾年來(lái)因特網(wǎng)飛速發(fā)展,人們的生活因?yàn)榫W(wǎng)絡(luò)而在慢慢的改變?,F(xiàn)在的個(gè)人電腦( PC)上都安裝了瀏覽器( Browser)因此人們就利用瀏覽器來(lái)作為客戶端程序,萬(wàn)維網(wǎng)服務(wù)器( Web Server)作為中間層和客戶端溝通服務(wù)器,這就是現(xiàn)在流行的 B/S( Browser/Server)結(jié)構(gòu)方式。在這種結(jié)構(gòu)下,本地的計(jì)算機(jī)無(wú)須安裝任何客戶端程序,只要有瀏覽器,可以使用因特網(wǎng)就可以使用系統(tǒng)了。他不僅僅減少了開(kāi)發(fā)客戶端帶來(lái)的成本,最關(guān)鍵的 是,大大減少了系統(tǒng)維護(hù)的成本和時(shí)間,當(dāng)修改系統(tǒng)的時(shí)候不需要對(duì)客戶做任何的改動(dòng)。并且客戶也可以在任何計(jì)算機(jī)上使用你的系統(tǒng)而不要做特別的設(shè)置。 在 B/S 系統(tǒng)中以微軟公司的 IE 瀏覽器、和 IIS/ASP( Internet Information Server/Active Server Pages)服務(wù)器應(yīng)用最為廣泛,使用最方便,對(duì)中文的支持也是最好的。 但是, ASP 有一個(gè)天生的缺點(diǎn),就是 ASP 代碼 是采用的 VBScript、 JScript或者 PHP 等腳本語(yǔ)言編寫,運(yùn)行速度相當(dāng)?shù)穆液?HTML 代碼是混在一起的, 使 ASP 程序員既需要考慮與數(shù)據(jù)庫(kù)打交道, 又 需要關(guān)心如何與 HTML 配合,有時(shí)還需要用 ASP 直接生成 HTML 代碼。 這樣構(gòu)建起來(lái)的系統(tǒng)當(dāng)然是不能滿足中、大型網(wǎng)絡(luò)應(yīng)用的需要。 不過(guò)好在 ASP 可以通過(guò)腳本語(yǔ)言調(diào)用基于 COM 的程序,而得到功能和性能上的提升。在微軟公司最新的 IIS5.0 系統(tǒng)上更可以讓我們使用 VC+、 VB、Delphi 等開(kāi)發(fā)工具建立定制的運(yùn)行于 COM+環(huán)境中的 ASP 對(duì)象,這種對(duì)象,還可以和其他的 COM+組件協(xié)同工作。這樣一來(lái)我們就可以用 B/S 方式構(gòu)建多層分布式的應(yīng)用系統(tǒng)來(lái)滿足大型網(wǎng)絡(luò)應(yīng)用。 這也就是微軟公 司所推出的 Web 分布式多層應(yīng)用程序結(jié)構(gòu)(其結(jié)構(gòu)如圖 4)無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 也就是我們常聽(tīng)到的 Windows DNA 策略( Windows Distributed internet Application Architecture,視窗系統(tǒng)分布式網(wǎng)絡(luò)應(yīng)用結(jié)構(gòu))。不過(guò)開(kāi)發(fā)這樣的系統(tǒng)需要開(kāi)發(fā)人員掌握更多的技術(shù),如: ASP、 VBScript、 JavaScript、 HTML/DHTML、ADO、 COM/DCOM、 MTS/COM+等等,同時(shí)學(xué)習(xí)這么多的技術(shù)這對(duì)程序員來(lái)說(shuō)是一個(gè)不小的挑戰(zhàn)! 圖 4 2.2.3. XML 語(yǔ)言 XML( eXtended Markup Language)是一種標(biāo)記語(yǔ)言,就象我們熟悉的 HTML一樣,但是 XML 的標(biāo)簽是由人們根據(jù)自己的需要來(lái)定制的,也就是說(shuō),任何詞和字都可以做為標(biāo)簽來(lái)用,只要能準(zhǔn)確的表達(dá)數(shù)據(jù)的屬性。例如當(dāng)我們要表達(dá)一個(gè)人的姓名的時(shí)候用 HTML 也許我們會(huì)這樣做:“ 張三 ”,但如果用 XML 我們就可以這樣做:“ 張三 ”。數(shù)據(jù)表達(dá)的準(zhǔn)確性 XML絕對(duì)比 HTML 好多了!準(zhǔn)確表達(dá)數(shù)據(jù)的含義這就是 XML 帶來(lái)的最大好處。 有了 XML,我們就能 定制各行各業(yè)的 XML 標(biāo)簽,這樣對(duì)于要傳輸?shù)臄?shù)據(jù)就能用文本方式傳送,并且只要對(duì)方有一份標(biāo)簽的定義文件就可以理解我們所表達(dá)的意思,從而在任何程序之間,不管他是用什么語(yǔ)言編寫的;任何系統(tǒng)之間,不管他是運(yùn)行在什么 CPU 上的,是 Windows、 Linux 還是 MAC OS;任何人之間,無(wú)論他是什么國(guó)籍,說(shuō)什么語(yǔ)言,是否懂得你的語(yǔ)言,自由交換信息了。而這些正適應(yīng)了目前因特網(wǎng)的發(fā)展,適應(yīng)了人們溝通交流的需要。 XML 出現(xiàn)短短幾年就得到了廣泛的應(yīng)用,目前新推出的軟件幾乎都會(huì)支持XML。例如微軟的 Dot Net 系列軟件、 Office 系列軟件等等。不出幾年, XML就會(huì)代替 HTML 成為因特網(wǎng)上標(biāo)準(zhǔn)的標(biāo)記語(yǔ)言。 本系統(tǒng)引入 XML 語(yǔ)言表達(dá)數(shù)據(jù)的好處是使得系統(tǒng)中網(wǎng)頁(yè)的顯示和系統(tǒng)處理的數(shù)據(jù)分離,可以使系統(tǒng)不必去處理那些用于網(wǎng)頁(yè)界面的代碼,減小開(kāi)發(fā)系統(tǒng)的復(fù)雜度,減少系統(tǒng)處理時(shí)間,減少網(wǎng)絡(luò)傳送量,從而提高效率。另外我們知道目前一般程序員開(kāi)發(fā)網(wǎng)站的時(shí)候都要同時(shí)完成網(wǎng)頁(yè)的制作,但一般來(lái)說(shuō)程序員都不可能設(shè)計(jì)出比專業(yè)的美工還好的網(wǎng)頁(yè)來(lái)。不過(guò)請(qǐng)來(lái)專業(yè)美工后怎么和程序員進(jìn)行合作呢?懂程序開(kāi)發(fā)的美工可不會(huì)太多。而 XML 就比較好的解決了這個(gè)問(wèn)題,他使程序員不必 去做網(wǎng)頁(yè),網(wǎng)頁(yè)設(shè)計(jì)者不用去管程序。只要定義好XML 標(biāo)簽,程序員就可以用他來(lái)表示數(shù)據(jù),而設(shè)計(jì)網(wǎng)頁(yè)的也可以用他來(lái)制作網(wǎng)無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 頁(yè)。 2.3. 本系統(tǒng)的方案選擇 本系統(tǒng)應(yīng)用于因特網(wǎng),并且要滿足一個(gè)學(xué)校幾千學(xué)生考試的需要,因此本系統(tǒng)決定采用微軟公司所推出的 Web 分布式多層應(yīng)用程序結(jié)構(gòu),并且數(shù)據(jù)使用XML 表示。 2.4. 建模工具的選擇 以 UML 語(yǔ)言建模應(yīng)該是以 Rational 公司的 Rose 工具為最好。不過(guò) Rose 太貴了,并且 Rose 比較龐大,使用不是太方便。 Sybase 公司出品的 PowerDesigner建模工具也支持 UML,還提供一個(gè) 45 天的試用版,在數(shù)據(jù)庫(kù)建模上也有他獨(dú)到的地方。因此建模工具就選用 PowerDesigner。 3. 基于 UML 的系統(tǒng)分析 3.1. 用例 tc 圖表用戶圖 l 4圖 3.1.1. 用戶關(guān)系圖 學(xué)生老師管理員用戶 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 3.1.2. 系統(tǒng)用例圖 學(xué)生 選擇考試登錄維護(hù)題庫(kù)生成考試查詢成績(jī)老師管理員管理老師賬號(hào)管理學(xué)生賬戶更新老師的資料更新學(xué)生的資料修改管理員的密碼 3.1.3. 用例圖利用情況清單 名稱 代碼 父 選擇考試 ChoseTest Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 登錄 Login Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 維護(hù)題庫(kù) WHTK Object-Oriented Model 網(wǎng) 絡(luò)考試系統(tǒng) (OOM) 生成考試 shchksh Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 查詢成績(jī) QueryScore Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 管理老師賬號(hào) CreateTeacher Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 管理學(xué)生賬戶 CreateStudent Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 更新老師的資料 UpDateTeacher Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 更新學(xué)生的資料 UpDateStudent Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 修改管理員的密碼 UpDateAdmin Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 3.2. 順序圖 3.2.1. 老師活動(dòng)順序圖 登錄生成試卷維護(hù)確認(rèn)密碼 試卷老師學(xué)生 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 3.2.2. 學(xué)生活動(dòng)順序圖 確認(rèn)登錄查詢成績(jī)參加考試提交回答返回成績(jī)返回成績(jī)請(qǐng)求試題返回試題確認(rèn)考生考試成績(jī)記錄成績(jī)學(xué)生密碼 試卷 試題確認(rèn)學(xué)生可以參加考試 3.2.3. tc 動(dòng)作清單 l 4動(dòng)作清單 名稱 代碼 父 學(xué)生 Student Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 老師 Teacher Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 管理員 Admin Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 用戶 User Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 3.2.4. tc 通訊清單 l 4通訊清單 名稱 代碼 父 接收者 輸送者 確認(rèn) True Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) 學(xué)生 密碼 登錄 Login Object-Oriented Model網(wǎng)絡(luò)考試系統(tǒng) 密碼 學(xué)生 查詢成績(jī) QueryScore Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 試卷 學(xué)生 參加考試 Testing Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 試卷 學(xué)生 提交回答 Submit Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 試題 試卷 返回成績(jī) ReScore Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 試卷 試題 返回 成績(jī) ReScore Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 學(xué)生 試卷 登錄 Login Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 密碼 老師 生成試卷 CreatePaper Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 試卷 老師 維護(hù) weihu Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 學(xué)生 老師 請(qǐng)求試題 GetQuestion Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 試題 試卷 返回試題 ReQuestions Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 試卷 試題 確認(rèn) Sure Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 老師 密碼 確認(rèn)考生 Sure Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 試卷 試卷 考試成績(jī) Score Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 學(xué)生 試卷 記錄成績(jī) WriteScore Object-Oriented Model 網(wǎng)絡(luò)考試系統(tǒng) (OOM) 試卷 試卷 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 3.3. 類圖 3.3.1. 類圖一 學(xué)生+修改 ()增加 ()刪除 ()登錄 ()進(jìn)行考試 ()批改試卷 (): void: void: void: void: void: void老師+修改 ()增加 ()刪除 ()登錄 (): void: void: void: void試題用戶+修改 ()增加 ()刪除 ()登錄 (): void: void: void: void傳遞不同的標(biāo)志,以選擇不同的數(shù)據(jù)表格進(jìn)行相同的操作管理員+修改自己密碼 ()增加用戶 ()刪除用戶 ()登錄 (): void: void: void: void管理員對(duì)不同用戶的管理,依賴于不同用戶自身的方法。并且管理員只能創(chuàng)建或者刪除用戶,不能修改用戶的個(gè)人資料。密碼+登錄 ()修改 (): void: void用戶登錄最后由密碼類實(shí)現(xiàn) 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 3.3.2. 類圖二 試題+修改 ( )增加 ( )刪除 ( ): void: void: void試卷+-查詢成績(jī) ( )生成試卷 ( )評(píng)分 ( )取得試題 ( ): void: void: void: void老師+修改 ( )增加 ( )刪除 ( )登錄 ( ): void: void: void: void試題老師類包含試題類的方法試卷類可以調(diào)用試題類的取得試題方法 3.3.3. 類清單 3.3.4. 類 方法 清單 tc 類清單 l 4 名稱 代碼 結(jié)果類型 可見(jiàn)性 抽象 最終點(diǎn) 靜態(tài) 量詞 登錄 Login void public FALSE FALSE FALSE 密碼 名稱 代碼 父 產(chǎn)生 可見(jiàn)性 抽象 類別類型 密碼 PWD Package 數(shù)據(jù)存取組件 TRUE public FALSE Class 試題 Questions Package 數(shù)據(jù)存取組件 TRUE public FALSE Class 試卷 Paper Package 數(shù)據(jù)存取組件 TRUE public FALSE Class 學(xué)生 Students Package 數(shù)據(jù)存取組件 TRUE public FALSE Class 老師 Teacher Package 數(shù)據(jù)存取組件 TRUE public FALSE Class 用戶 Users Package 數(shù)據(jù)存取組件 TRUE public FALSE Class 管理員 Admin Package 數(shù)據(jù)存取組件 TRUE public FALSE Class 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 修改 UpDate void public FALSE FALSE FALSE 密碼 修改 UpData void public FALSE FALSE FALSE 試題 增加 Add void public FALSE FALSE FALSE 試題 刪除 Del void public FALSE FALSE FALSE 試題 查詢成績(jī) QueryScore void public FALSE FALSE FALSE 試卷 生成試卷 CreatePaper void public FALSE FALSE FALSE 試卷 評(píng)分 PutScore void public FALSE FALSE FALSE 試卷 取得試題 GetPaper void private FALSE FALSE FALSE 試卷 修改 UpDate void public FALSE FALSE FALSE 學(xué)生 增加 Add void public FALSE FALSE FALSE 學(xué)生 刪除 Del void public FALSE FALSE FALSE 學(xué)生 登錄 Login void public FALSE FALSE FALSE 學(xué)生 進(jìn)行考試 Testing void public FALSE FALSE FALSE 學(xué)生 批改試卷 CheckPaper void public FALSE FALSE FALSE 學(xué)生 修改 Edit void public FALSE FALSE FALSE 老師 增加 Add void public FALSE FALSE FALSE 老師 刪除 Del void public FALSE FALSE FALSE 老師 登錄 Login void public FALSE FALSE FALSE 老師 修改 UpDate void public FALSE FALSE FALSE 用戶 增加 Add void public FALSE FALSE FALSE 用戶 刪除 Del void public FALSE FALSE FALSE 用戶 登錄 Login void public FALSE FALSE FALSE 用戶 修改自己密碼 UpDate void public FALSE FALSE FALSE 管理員 增加用戶 Add void public FALSE FALSE FALSE 管理員 刪除用戶 Del void public FALSE FALSE FALSE 管理員 登錄 Login void public FALSE FALSE FALSE 管理員 注:因?yàn)樗褂玫?PowerDesigner 并不支持 Delphi 所使用的 Object Pascal 編程語(yǔ)言,所以類的分析中省略了參數(shù)返回值等內(nèi)容。 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 3.4. 網(wǎng)站頁(yè)面布置圖 密碼驗(yàn)證學(xué)生老師Students.htm 學(xué)生登錄首頁(yè)Index.htmTeachers.htm 老師登錄首頁(yè)Admin.htm 管理員登錄首頁(yè)UpDateT.htm 維護(hù)自身屬性UpDateS.htm 維護(hù)自身屬性UpDateA.asp 維護(hù)自身屬性Test.htm 進(jìn)行考試QueryScore.htm 查詢成績(jī)CreatePaper.htm 生成考試CreateUser.asp 維護(hù)用戶信息管理員 注: 密碼驗(yàn)證構(gòu)件分別為老師、學(xué)生、管理員三個(gè)構(gòu)件的登錄( Login)方法調(diào)用 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 4. 數(shù)據(jù)庫(kù)的分析設(shè)計(jì) 4.1. 數(shù)據(jù)庫(kù)概念模型( Conceptual Data Model) 4.1.1. 圖 參加考試生成老師老師編號(hào)姓名密碼科目電子郵件 A10A12A16VA50VA35老師編號(hào) 學(xué)生學(xué)號(hào)姓名年齡性別入學(xué)時(shí)間密碼電子郵件 A10A12SIA2DTA16VA35學(xué)號(hào) 試卷流水號(hào)試卷號(hào)科目成績(jī) NOIVA50SI流水號(hào) 試題問(wèn)題號(hào)科目問(wèn)題選項(xiàng)1選項(xiàng)2選項(xiàng)3選項(xiàng)4答案 NOVA50VA200VA100VA100VA100VA100A1問(wèn)題號(hào) 管理員姓名密碼 A12A16姓名 管理員有且僅有一個(gè),名為Ad mi n老師賬戶由管理員分配試卷由老師生成學(xué)生賬號(hào)由老師分配試題由老師管理 4.1.2. 資料清單 名稱 代碼 定義域 數(shù)據(jù)類型 長(zhǎng)度 精確度 答案 Answer A1 1 選項(xiàng) 4 Select4 VA100 100 電子郵件 Email VA35 35 電子郵件 Email VA35 35 選項(xiàng) 3 Select3 VA100 100 選項(xiàng) 2 Select2 VA100 100 選項(xiàng) 1 Select1 VA100 100 問(wèn)題 Question VA200 200 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 問(wèn)題號(hào) QuestionID NO 成績(jī) Score SI 流水號(hào) ID NO 入學(xué)時(shí)間 EnterTime DT 性別 Sex A2 2 年齡 Age SI 學(xué)號(hào) StudentID A10 10 科目 Subject VA50 50 密碼 PWD A16 16 姓名 Name A12 12 老師編號(hào) TeacherID A10 10 試卷號(hào) PaperID I 4.1.3. tc 實(shí)體清單 l 3實(shí)體清單 名稱 代碼 父 產(chǎn)生 管理員 Admin Conceptual Data Model NetTest (CDM) TRUE 老師 Teachers Conceptual Data Model NetTest (CDM) TRUE 學(xué)生 Students Conceptual Data Model NetTest (CDM) TRUE 試卷 Papers Conceptual Data Model NetTest (CDM) TRUE 試題 Questions Conceptual Data Model NetTest (CDM) TRUE 4.1.4. tc 實(shí)體的識(shí)別字清單 l 3實(shí)體的識(shí)別字清單 名稱 代碼 父 姓名 Key_Name Entity 管理員 老師編號(hào) PK_TeacherID Entity 老師 學(xué)號(hào) PK_StudentID Entity 學(xué)生 流水號(hào) PK_ID Entity 試卷 問(wèn)題號(hào) PK_QuestionID Entity 試題 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 4.1.5. tc 關(guān)系清單 l 3關(guān)系清單 名稱 代碼 父 實(shí)體 2 實(shí)體 1 參 加 考試 Testing Conceptual Data Model NetTest (CDM) 試卷 學(xué)生 生成 Create Conceptual Data Model NetTest (CDM) 試卷 老師 4.2. 數(shù)據(jù)庫(kù)物理模型( Physical Data Model) 4.2.1. 圖 FK_PAPERS_CREATE_TEACHERSFK_PAPERS_TESTING_STUDENTS老師老師編號(hào)姓名密碼科目電子郵件char(10)char(12)char(16)varchar(50)varchar(35)學(xué)生學(xué)號(hào)姓名年齡性別入學(xué)時(shí)間密碼電子郵件char(10)char(12)smallintchar(2)datetimechar(16)varchar(35)試卷流水號(hào)老師編號(hào)學(xué)號(hào)試卷號(hào)科目成績(jī)bigintchar(10)char(10)intvarchar(50)smallint試題問(wèn)題號(hào)科目問(wèn)題選項(xiàng)1選項(xiàng)2選項(xiàng)3選項(xiàng)4答案bigintvarchar(50)varchar(200)varchar(100)varchar(100)varchar(100)varchar(100)char(1)管理員姓名密碼char(12)char(16)老師賬戶由管理員分配試卷由老師生成管理員有且僅有一個(gè),名為Admin試題由老師管理學(xué)生賬號(hào)由老師分配 4.2.2. 物理模型欄位清單 名稱 代碼 老師編號(hào) TeacherID 姓名 Name 密碼 PWD 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 科目 Subject 電子郵件 Email 學(xué)號(hào) StudentID 姓名 Name 年齡 Age 性別 Sex 入學(xué)時(shí)間 EnterTime 密碼 PWD 電子郵件 Email 流水號(hào) ID 老師編號(hào) TeacherID 學(xué)號(hào) StudentID 試卷號(hào) PaperID 科目 Subject 成績(jī) Score 問(wèn)題號(hào) QuestionID 科目 Subject 問(wèn)題 Question 選項(xiàng) 1 Select1 選項(xiàng) 2 Select2 選項(xiàng) 3 Select3 選項(xiàng) 4 Select4 答案 Answer 姓名 Name 密碼 PWD 4.2.3. tc 表格索引清單 l 4表格索引清單 名稱 代碼 唯一的 群 主要的 外來(lái)鍵 代替鍵 表格 姓名 Index_Name FALSE FALSE FALSE FALSE FALSE 老師 姓名 Index_Name TRUE TRUE TRUE FALSE FALSE 學(xué)生 學(xué)號(hào) Index_StudentID FALSE FALSE FALSE TRUE FALSE 試卷 科目 Index_SubjectID FALSE FALSE FALSE FALSE FALSE 試題 姓名 Index_Name FALSE FALSE FALSE FALSE FALSE 管理員 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: 4.2.4. tc 表格引鍵清單 l 4表格引鍵清單 名稱 代碼 表格 老師編號(hào) PK_TeacherID 老師 學(xué)號(hào) PK_StudentID 學(xué)生 流水號(hào) PK_ID 試卷 問(wèn)題號(hào) PK_QuestionID 試題 姓名 Key_Name 管理員 4.2.5. tc 參考清單 l 4參考清單 名稱 代碼 父表格 子表格 參加考試 Testing 學(xué)生 試卷 生成 Create 老師 試卷 4.2.6. tc 表格清單 l 4表格清單 名稱 代碼 老師 Teachers 學(xué)生 Students 試卷 Papers 試題 Questions 管理員 Admin 4.3. SQL語(yǔ)句 /*=*/ /* Database name: NetTest (PDM) */ /* DBMS name: Microsoft SQL Server 2000 */ /* Created on: 2002-6-11 11:28:20 */ /*=*/ alter table NetTest.Papers drop constraint FK_PAPERS_CREATE_TEACHERS go 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: alter table NetTest.Papers drop constraint FK_PAPERS_TESTING_STUDENTS go if exists (select 1 from sysindexes where id = object_id(NetTest.Admin) and name = Index_Name and indid 0 and indid 0 and indid 0 and indid 0 and indid = 0 ), constraint PK_PAPERS primary key (ID) ) go /*=*/ /* Index: Index_StudentID */ /*=*/ create index Index_StudentID on NetTest.Papers ( StudentID ) go 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: /*=*/ /* Table: Questions */ /*=*/ create table NetTest.Questions ( QuestionID bigint identity, Subject varchar(50) not null, Question varchar(200) not null, Select1 varchar(100) not null, Select2 varchar(100) not null, Select3 varchar(100) not null, Select4 varchar(100) not null, Answer char(1) not null, constraint PK_QUESTIONS primary key (QuestionID) ) go /*=*/ /* Index: Index_SubjectID */ /*=*/ create index Index_SubjectID on NetTest.Questions ( Subject ) go /*=*/ /* Table: Students */ /*=*/ create table NetTest.Students ( StudentID char(10) not null, Name char(12) not null, Age smallint not null constraint CKC_AGE_STUDENTS check (Age between 0 and 100), Sex char(2) not null, EnterTime datetime not null, PWD char(16) not null, Email varchar(35) null, constraint PK_STUDENTS primary key (StudentID) ) go /*=*/ 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: /* Table: Teachers */ /*=*/ create table NetTest.Teachers ( TeacherID char(10) not null, Name char(12) not null, PWD char(16) not null, Subject varchar(50) not null, Email varchar(35) null, constraint PK_TEACHERS primary key (TeacherID) ) go /*=*/ /* Index: Index_Name */ /*=*/ create index Index_Name on NetTest.Teachers ( Name ) go alter table NetTest.Papers add constraint FK_PAPERS_CREATE_TEACHERS foreign key (TeacherID) references NetTest.Teachers (TeacherID) go alter table NetTest.Papers add constraint FK_PAPERS_TESTING_STUDENTS foreign key (StudentID) references NetTest.Students (StudentID) go 5. 系統(tǒng)實(shí)現(xiàn) 5.1. 開(kāi)發(fā)平臺(tái)的選擇 本系統(tǒng)由于是采用的微軟公司所推出的分布式 Web 應(yīng)用構(gòu)架,所以開(kāi)發(fā)平臺(tái)使用了 Windows2000,數(shù)據(jù)庫(kù)選用 SQL Server2000, Web 服務(wù)器程序使用無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: IIS5.0。由于使用了 XML,所以客戶端必須是 IE5.0 以上版本的瀏覽器才能正常使用本系統(tǒng)。 5.2. 編程工具的選擇 目前比較流行的開(kāi)發(fā)工具 VC+、 VB 和 Delphi 等都可以實(shí)現(xiàn)本程序的中間件 COM+程序的開(kāi)發(fā)。使用 VC+可以得到最好的速度,最大的靈活性,最強(qiáng)大的功能,但使用 VC+開(kāi)發(fā)系統(tǒng)所要花費(fèi)的時(shí)間和開(kāi)發(fā)成本足以抵消掉他所帶來(lái)的好 處;使用 VB 來(lái)開(kāi)發(fā)花費(fèi)的時(shí)間是少了,可是 VB 是解釋性的語(yǔ)言,這樣的系統(tǒng)運(yùn)行速度會(huì)比 VC+開(kāi)發(fā)的相同的系統(tǒng)差不少; Delphi 是 Borland 公司出品的 Windows 下的快速開(kāi)發(fā)工具,具有 VB 的開(kāi)發(fā)效率和 VC+程序的運(yùn)行速度,所以用來(lái)開(kāi)發(fā)本系統(tǒng)是最合適的選擇。 5.3. XML和網(wǎng)頁(yè)編輯工具的選擇 XML 的開(kāi)發(fā)工具我試過(guò)好幾個(gè),可都不理想,不是使用不方便就是對(duì)中文的支持不好。最后只能用 Windows 下的記事本( notepad.exe)手工書(shū)寫。這樣一來(lái)效率很底,也許正因?yàn)檫@個(gè)原因 XML 才沒(méi)有 HTML 應(yīng)用多。希望不久 以后也能出現(xiàn)比較好用的 XML 可視化編輯工具。 網(wǎng)頁(yè)的編輯工具比較好選, Dreamweaver 功能最強(qiáng)大使用方便,并且他還提供 30 天試用版,是不二之選。 5.4. 系統(tǒng)編碼 5.4.1. 源程序文件清單 . 網(wǎng)站文件清單: .nettest 的目錄 . . admin admin.asp images index.htm login.asp NetTest.asp student student.asp style.css SubmitPaper.asp teacher teacher.asp test.asp update.asp .nettestadmin 的目錄 . . admin.htm createstudent.htm createteacher.htm update.htm 4 個(gè)文件 14,685 字節(jié) 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: .nettestimages 的目錄 . . bg1.gif main.gif studies_02.gif .netteststudent 的目錄 . . QueryScore.xsl SelectTest.xsl Student.xsl style.css Testing.xsl UpDate.htm .nettestteacher 的目錄 . . createpaper.htm createquestions.htm teacher.xsl UpDate.htm . COM+組件源程序文件清 單 5.4.2. 程序核心代碼 因?yàn)楸鞠到y(tǒng)源代碼比較多,在這里就僅僅列出比較重要的核心代碼 . 學(xué)生進(jìn)行考試頁(yè)面的 XLST文件: Testing.xsl 進(jìn)行考試! 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: .: 解放軍后勤工程學(xué)院網(wǎng)絡(luò)考試系統(tǒng) :. 進(jìn)行考試 考試: 、 A 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: A B B C C D 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: D 設(shè)計(jì)制作 (C) 火焰晨晨 2001-2002 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: . 定制 ASP對(duì)象主代碼 unit uMain; $WARN SYMBOL_PLATFORM OFF interface uses ComObj, ActiveX, AspTlb, NetTest_TLB, StdVcl, MTSStu_TLB, MTSTeacher_TLB, MTSAdmin_TLB; type TNetTestASP = class(TASPMTSObject, INetTestASP) private protected procedure CopyRight; safecall; procedure Login; safecall; procedure Admin; safecall; procedure Student; safecall; procedure Teacher; safecall; procedure Testing; safecall; procedure UpDate; safecall; procedure SubmitPaper; safecall; end; implementation uses ComServ; const xmlTitle: WideString = ; xsltS: WideString = ; xsltSQS: WideString = ; 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: xsltSST: WideString = ; xsltST: WideString = ; xsltT: WideString = ; procedure TNetTestASP.CopyRight; begin Response.Write(本程序由火焰晨晨獨(dú)立制作,并作為畢業(yè)設(shè)計(jì) + 保留所有版權(quán), All Rights Resaved + 有任何問(wèn)題請(qǐng) Email 到: ); end; procedure TNetTestASP.Login; var tmpStr, UserID, tmpResult: WideString; PWD: WideString; Student: IMTSDMStu; Teacher: IMTSDMTeacher; Admin: IMTSDMAdmin; begin UserID := Request.Form.ItemUserName; PWD := Request.Form.ItemPWD; tmpStr := Request.Form.ItemSubmit; if tmpStr = 學(xué)生登錄 then begin Student := CoMTSDMStu.CreateRemote(Sun1980426); tmpResult := Student.Login(UserID, PWD); if (tmpResult = 密碼或用戶名錯(cuò)誤!請(qǐng)重試。 ) or (tmpResult = 數(shù)據(jù)庫(kù)讀取錯(cuò)誤!請(qǐng)和管理員聯(lián)系! ) then Response.Write(tmpResult) else begin Session.Set_Value(UserType, 1); Session.Set_Value(UserID, UserID); Response.Write(xmlTitle + xsltS + tmpResult); end; end else if tmpStr = 老師登錄 then begin 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: Teacher := CoMTSDMTeacher.CreateRemote(Sun1980426); tmpResult := Teacher.Login(UserID, PWD); if (tmpResult = 密碼或用戶名錯(cuò)誤!請(qǐng)重試。 ) or (tmpResult = 數(shù)據(jù)庫(kù)讀取錯(cuò)誤!請(qǐng)和管理員聯(lián)系! ) then Response.Write(tmpResult) else begin Session.Set_Value(UserType, 2); Session.Set_Value(UserID, UserID); Response.Write(xmlTitle + xsltT + tmpResult); end; end else if tmpStr = 管理員登錄 then begin Admin := CoMTSDMAdmin.CreateRemote(Sun1980426); tmpResult := Admin.Login(PWD); if tmpResult OK then Response.Write(tmpResult) else begin Session.Set_Value(UserType, 3); Session.Set_Value(UserID, Admin); Response.Redirect(./admin/admin.htm); end; end; end; procedure TNetTestASP.Admin; var Subject, PWD, Email, Age, Sex, Name, tmpStr, EnterTime, TeacherID, StudentID: WideString; UserType: Integer; Admin: IMTSDMAdmin; begin UserType := Session.ValueUserType; if 3 = UserType then/管理員 begin tmpStr := Request.QueryString.Itemaction; Admin := CoMTSDMAdmin.CreateRemote(Sun1980426); if tmpStr = CreateStudent then 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: begin StudentID := Request.Form.ItemStudentID; PWD := Request.Form.ItemPWD; Name := Request.Form.ItemName; Age := Request.Form.ItemAge; Sex := Request.Form.ItemSex; EnterTime := Request.Form.ItemEnterTime; Email := Request.Form.ItemEmail; Response.Write(Admin.CreateStudent(StudentID, Name, Sex, Age, EnterTime, Email, PWD) ); end else if tmpStr = CreateTeacher then begin TeacherID := Request.Form.ItemTeacherID; PWD := Request.Form.ItemPWD; Name := Request.Form.ItemName; Subject := Request.Form.ItemSubject; Email := Request.Form.ItemEmail; Response.Write(Admin.CreateTeacher(TeacherID, Name, Subject, PWD, Email); end; end; end; procedure TNetTestASP.Student; var Student: IMTSDMStu; tmpStr: WideString; UserType: Integer; begin UserType := Session.ValueUserType; if UserType = 1 then begin tmpStr := Request.QueryString.Itemaction; if QueryScore = tmpStr then begin Student := CoMTSDMStu.CreateRemote(Sun1980426); Response.Write(xmlTitle + xsltSQS 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: + Student.QueryScore(Session.ValueUserID); end else if GetTest = tmpStr then begin Student := CoMTSDMStu.CreateRemote(Sun1980426); Response.Write(xmlTitle + xsltSST + Student.GetTest(Session.ValueUserID); end else if GetStudentData = tmpStr then begin Student := CoMTSDMStu.CreateRemote(Sun1980426); Response.Write(xmlTitle + xsltSUD + Student.UpDate(Session.ValueUserID), False, , , ); end else Response.Write(錯(cuò)誤的請(qǐng)求! ); end else Response.Write(非法用戶! ); end; procedure TNetTestASP.Teacher; var tmpStr, UserID, StudentID, PaperID: WideString; UserType: Integer; Teacher: IMTSDMTeacher; begin tmpStr := Request.QueryString.Itemaction; UserType := Session.ValueUserType; UserID := Session.ValueUserID; if 2 = UserType then/老師 begin if tmpStr = CreatePaper then begin Teacher := CoMTSDMTeacher.CreateRemote(Sun1980426); StudentID := Request.Form.ItemStudentID; PaperID := Request.Form.ItemPaperID; Response.Write(Teacher.CreatePaper(UserID, StudentID, PaperID); end else Response.Write(錯(cuò)誤的請(qǐng)求! ); end 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: else Response.Write(非法用戶! ); end; procedure TNetTestASP.Testing; var Student: IMTSDMStu; StudentID, PaperID, Answers: WideString; UserType: Integer; begin UserType := Session.ValueUserType; StudentID := Session.ValueUserID; if UserType = 1 then begin Student := CoMTSDMStu.CreateRemote(Sun1980426); PaperID := Request.Form.ItemPaperID; Session.Set_Value(PaperID, PaperID); Response.Write(xmlTitle + xsltST + Student.GetPaper(StudentID, PaperID, Answers); Session.Set_Value(Answers,Answers); end else Response.Write(非法用戶! ); end; procedure TNetTestASP.UpDate; var Subject, PWD, Email, Age, UserID: OleVariant; UserType: Integer; Student: IMTSDMStu; Teacher: IMTSDMTeacher; Admin: IMTSDMAdmin; begin UserType := Session.ValueUserType; UserID := Session.ValueUserID; if 1 = UserType then/學(xué)生 begin Student := CoMTSDMStu.CreateRemote(Sun1980426); PWD := Request.Form.ItemPWD; Age := Request.Form.ItemAge; Email := Request.Form.ItemEmail; Response.Write(Student.UpDate(UserID, Age, PWD, Email); end else if 2 = UserType then/老師 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: begin Teacher := CoMTSDMTeacher.CreateRemote(Sun1980426); PWD := Request.Form.ItemPWD; Subject := Request.Form.ItemSubject; Email := Request.Form.ItemEmail; Response.Write(Teacher.UpDate(UserID, PWD, Subject, Email); end else if 3 = UserType then/管理員 begin Admin := CoMTSDMAdmin.CreateRemote(Sun1980426); PWD := Request.Form.ItemPWD; Response.Write(Admin.UpDate(PWD); end else Response.Write(非法用戶! ); end; procedure TNetTestASP.SubmitPaper; var Answers, Answer, UserID, PaperID: WideString; UserType, No: Integer; Score, vNo: OleVariant; Student: IMTSDMStu; begin UserType := Session.ValueUserType; Answers := Session.ValueAnswers; UserID := Session.ValueUserID; PaperID := Session.ValuePaperID; Score := 0; Answer := ; if 1 = UserType then/學(xué)生 begin for No := 1 to (Request.Form.Count - 1) do/減去提交按鈕所占數(shù)字 begin vNo := No; Answer := Request.Form.ItemvNo; if AnswersNo = Answer3 then begin Score := Score + 10; end; end;/end for Student := CoMTSDMStu.CreateRemote(Sun1980426); 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: Response.Write(Student.SubmitPaper(UserID, PaperID, Score); end else Response.Write(非法用戶! ); end; initialization TAutoObjectFactory.Create(ComServer, TNetTestASP, Class_NetTestASP, ciMultiInstance, tmApartment); end. . 學(xué)生對(duì)象 COM+組件主代碼 unit uMain; $WARN SYMBOL_PLATFORM OFF interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComServ, ComObj, VCLCom, StdVcl, bdemts, DataBkr, DBClient, MtsRdm, Mtx, MTSStu_TLB, DB, ADODB; type TMTSDMStu = class(TMtsDataModule, IMTSDMStu) ADOQuery1: TADOQuery; private / function CreatePaper(Subject: WideString Private declarations protected class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override; function GetPaper(const StudentID, PaperID: WideString; out Answers: WideString): OleVariant; safecall; function Login(const StudentID, PWD: WideString): OleVariant; safecall; function QueryScore(const StudentID: WideString): OleVariant; safecall; function UpDate(const StudentID, Age, PWD, Email: WideString): OleVariant; safecall; function GetTest(const StudentID: WideString): OleVariant; safecall; function SubmitPaper(const StudentID, PaperID, Score: WideString): OleVariant; safecall; 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: public Public declarations end; var MTSDMStu: TMTSDMStu; implementation $R *.DFM class procedure TMTSDMStu.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); begin if Register then begin inherited UpdateRegistry(Register, ClassID, ProgID); EnableSocketTransport(ClassID); EnableWebTransport(ClassID); end else begin DisableSocketTransport(ClassID); DisableWebTransport(ClassID); inherited UpdateRegistry(Register, ClassID, ProgID); end; end; function TMTSDMStu.GetPaper(const StudentID, PaperID: WideString; out Answers: WideString): OleVariant; var I, J, C: Integer; sQuestionID, Subject: WideString; aQuestionID: array0.9 of Integer; begin /取考試科目 / ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(SELECT Subject FROM NetTest.Papers WHERE + ( +StudentID = + + StudentID + +)AND(PaperID= + + PaperID + + )AND( + Score IS NULL+ ); ADOQuery1.Active := True; if not ADOQuery1.Fields0.IsNull then Subject := ADOQuery1.Fields0.AsString 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: else begin ADOQuery1.Active := False; Result := 不能重復(fù)參加考試! ; Exit; end; ADOQuery1.Active := False; /取試題條數(shù) / ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text := SELECT count(*) FROM NetTest.Questions WHERE Subject= +Subject+; ADOQuery1.Active := True; C := ADOQuery1.Fields0.AsInteger; ADOQuery1.Active := False; /隨機(jī)抽題 / ADOQuery1.SQL.Clear; I := 1; if C I do begin aQuestionIDI := Random(C); for J := 0 to I do if aQuestionIDJ = aQuestionIDI then Break; / if I = J then Inc(I); end;/end while sQuestionID := ( QuestionID= + + IntToStr(aQuestionID0) + + ); for I := 1 to 9 do 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: sQuestionID := sQuestionID + OR ( QuestionID= + IntToStr(aQuestionIDI) + ); ADOQuery1.SQL.Add(SELECT * FROM NetTest.Questions WHERE (Subject= + + Subject + + )AND( + sQuestionID +); end;/end ifsles / / ADOQuery1.Active := True; / Result := ADOQuery1.SQL.Text; / ADOQuery1.Active := False; / Answers := ; try ADOQuery1.Active := True; /建立 XML/ Result := +Subject+radio; Answers := ; I := 1; While not ADOQuery1.Eof do begin Result := Result + + IntToStr(I) + + + ADOQuery1.Fields2.AsString + + ADOQuery1.Fields3.AsString + + ADOQuery1.Fields4.AsString + + ADOQuery1.Fields5.AsString + + ADOQuery1.Fields6.AsString + ; Answers := Answers + ADOQuery1.Fields7.AsString; ADOQuery1.Next; Inc(I); end; Result := Result + ; except ADOQuery1.Active := False; Result := ; end; end; function TMTSDMStu.Login(const StudentID, PWD: WideString): OleVariant; 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(SELECT Name FROM NetTest.Students WHERE +(StudentID = + + StudentID + + ) +AND + (PWD = + + PWD + + ); try ADOQuery1.Active := True; if ADOQuery1.Fields0.IsNull then Result := 密碼或用戶名錯(cuò)誤!請(qǐng)重試。 else Result := + ADOQuery1.Fields0.AsString + ; ADOQuery1.Active := False; except ADOQuery1.Active := False; Result := 數(shù)據(jù)庫(kù)讀取錯(cuò)誤!請(qǐng)和管理員聯(lián)系! ; end; end; function TMTSDMStu.QueryScore(const StudentID: WideString): OleVariant; begin Result := ; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(SELECT PaperID, Subject, Score FROM NetTest.Papers +WHERE (StudentID = +StudentID+ +)AND(Score+); try ADOQuery1.Active := True; if not ADOQuery1.Fields0.IsNull then begin while not ADOQuery1.Eof do begin if ADOQuery1.Fields2.AsInteger 60 then Result := Result + + ADOQuery1.Fields0.AsString + + ADOQuery1.Fields1.AsString + + ADOQuery1.Fields2.AsString + else Result := Result + + ADOQuery1.Fields0.AsString 無(wú)憂無(wú)慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計(jì)源碼下載 畢業(yè)設(shè)計(jì)源碼下載: + + ADOQuery1.Fields1.AsString + + ADOQuery1.Fields2.AsString + ; ADOQuery1.Next; end;/end while ADOQUery1.Active := False; end;/end if Result := Result + ; except ADOQUery1.Active := False; Result := ; end; end; function TMTSDMStu.UpDate(const StudentID, Age, PWD, Email: WideString): OleVariant; begin Result := 更新資料成功,請(qǐng)返回進(jìn)行其他操作。 ; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(UPDATE NetTest.Students SET Age=+Age+, PWD= +PWD+, Email=+Email+ + WHERE StudentID=+StudentID+); try ADOQuery1.ExecSQL; except ADOQUery1.Active := False; Result := 更新個(gè)人資料失??!請(qǐng)重試! ;

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論