版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要</b></p><p> 軟件工程在現(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ǔ)言,使用PowerDe
2、signer這個(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)。</p><p> 關(guān)鍵詞:UML COM+ Delphi ASP ADO XML</p><p><b> Abstract</b></p><p&
3、gt; 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 additi
4、on, it’s 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 d
5、istributed B/S constructed online test system, which is based on </p><p> Key Words:UML COM+ Delphi ASP ADO XML</p><p><b> 目 錄</b></p><p> 分布式網(wǎng)絡(luò)考試系統(tǒng)原型分析及實(shí)現(xiàn)1</p&g
6、t;<p><b> 1.問(wèn)題定義4</b></p><p><b> 2.需求分析4</b></p><p> 2.1.系統(tǒng)目標(biāo)4</p><p> 2.2.可行性分析4</p><p> 2.2.1.現(xiàn)有的數(shù)據(jù)庫(kù)應(yīng)用程序的分層結(jié)構(gòu)4</p>
7、<p> 2.2.1.1.傳統(tǒng)二層結(jié)構(gòu)4</p><p> 2.2.1.2.三層數(shù)據(jù)庫(kù)應(yīng)用結(jié)構(gòu)5</p><p> 2.2.1.3.多層分布式數(shù)據(jù)庫(kù)系統(tǒng)5</p><p> 2.2.2.網(wǎng)絡(luò)分布式多層應(yīng)用系統(tǒng)6</p><p> 2.2.3.XML語(yǔ)言7</p><p>
8、2.3.本系統(tǒng)的方案選擇8</p><p> 2.4.建模工具的選擇8</p><p> 3.基于UML的系統(tǒng)分析8</p><p> 3.1.用例圖8</p><p> 3.1.1.用戶(hù)關(guān)系圖8</p><p> 3.1.2.系統(tǒng)用例圖9</p><p>
9、3.1.3.用例圖利用情況清單9</p><p> 3.2.順序圖10</p><p> 3.2.1.老師活動(dòng)順序圖10</p><p> 3.2.2.學(xué)生活動(dòng)順序圖11</p><p> 3.2.3.動(dòng)作清單11</p><p> 3.2.4.通訊清單12</p>&l
10、t;p> 3.3.類(lèi)圖13</p><p> 3.3.1.類(lèi)圖一13</p><p> 3.3.2.類(lèi)圖二13</p><p> 3.3.3.類(lèi)清單14</p><p> 3.3.4.類(lèi)方法清單14</p><p> 3.4.網(wǎng)站頁(yè)面布置圖16</p><p
11、> 4.數(shù)據(jù)庫(kù)的分析設(shè)計(jì)17</p><p> 4.1.數(shù)據(jù)庫(kù)概念模型(Conceptual Data Model)17</p><p> 4.1.1.圖17</p><p> 4.1.2.資料清單17</p><p> 4.1.3.實(shí)體清單18</p><p> 4.1.4.實(shí)
12、體的識(shí)別字清單18</p><p> 4.1.5.關(guān)系清單19</p><p> 4.2.數(shù)據(jù)庫(kù)物理模型(Physical Data Model)19</p><p> 4.2.1.圖19</p><p> 4.2.2.物理模型欄位清單19</p><p> 4.2.3.表格索引清單20
13、</p><p> 4.2.4.表格引鍵清單21</p><p> 4.2.5.參考清單21</p><p> 4.2.6.表格清單21</p><p> 4.3.SQL語(yǔ)句21</p><p> 5.系統(tǒng)實(shí)現(xiàn)26</p><p> 5.1.開(kāi)發(fā)平臺(tái)的選擇26
14、</p><p> 5.2.編程工具的選擇27</p><p> 5.3.XML和網(wǎng)頁(yè)編輯工具的選擇27</p><p> 5.4.系統(tǒng)編碼27</p><p> 5.4.1.源程序文件清單27</p><p> 5.4.1.1.網(wǎng)站文件清單:27</p><p>
15、 5.4.1.2.COM+組件源程序文件清單28</p><p> 5.4.2.程序核心代碼29</p><p> 5.4.2.1.學(xué)生進(jìn)行考試頁(yè)面的XLST文件:Testing.xsl29</p><p> 5.4.2.2.定制ASP對(duì)象主代碼32</p><p> 5.4.2.3.學(xué)生對(duì)象COM+組件主代碼4
16、0</p><p> 5.4.2.4.老師對(duì)象COM+組件主代碼47</p><p> 5.4.2.5.管理員COM+組件主代碼50</p><p> 5.4.3.程序運(yùn)行截圖53</p><p> 5.4.3.1.登錄頁(yè)面(系統(tǒng)主界面)53</p><p> 5.4.3.2.學(xué)生維護(hù)頁(yè)主界
17、面54</p><p> 5.4.3.3.學(xué)生修改個(gè)人資料頁(yè)面55</p><p> 5.4.3.4.學(xué)生查詢(xún)成績(jī)頁(yè)面56</p><p> 5.4.3.5.學(xué)生參加考試頁(yè)面57</p><p> 5.4.3.6.進(jìn)行考試頁(yè)面58</p><p> 5.4.3.7.老師維護(hù)頁(yè)主界面59&
18、lt;/p><p> 5.4.3.8.老師生成試卷頁(yè)面60</p><p> 5.4.3.9.老師修改個(gè)人資料頁(yè)面61</p><p> 5.4.3.10.管理員維護(hù)頁(yè)主界面62</p><p> 5.4.3.11.管理員增加老師頁(yè)面63</p><p> 5.4.3.12.管理員增加學(xué)生頁(yè)面
19、64</p><p> 5.4.3.13.管理員修改密碼頁(yè)面65</p><p> 6.系統(tǒng)安裝分發(fā)65</p><p> 6.1.數(shù)據(jù)庫(kù)的設(shè)置65</p><p> 6.2.配置COM+環(huán)境67</p><p> 6.3.IIS的配置68</p><p> 6.
20、4.注意事項(xiàng)68</p><p> 7.系統(tǒng)不足與展望68</p><p><b> 8.致謝69</b></p><p> 9.參考文獻(xiàn)69</p><p><b> 問(wèn)題定義</b></p><p> 現(xiàn)在網(wǎng)絡(luò)正在改變著傳統(tǒng)的教育方式,網(wǎng)絡(luò)教育也
21、越來(lái)越多,就算是傳統(tǒng)的教育方式下,把考試搬到網(wǎng)絡(luò)上也是一種趨勢(shì)??荚嚨臒o(wú)紙化網(wǎng)絡(luò)化不僅能有效減少老師的工作量,很好的利用計(jì)算機(jī)的優(yōu)勢(shì),提高工作效率,也能使考試更加公平、公正。所以就一定要構(gòu)建一個(gè)性能良好安全可靠的可以滿(mǎn)足大量學(xué)生同時(shí)使用的網(wǎng)絡(luò)考試系統(tǒng)。</p><p> 本原型系統(tǒng)主要功能如下:</p><p> 學(xué)生可以在網(wǎng)上進(jìn)行考試,考試結(jié)束后由計(jì)算機(jī)批改試題給出分?jǐn)?shù),并記錄成績(jī)。
22、</p><p> 學(xué)生在還可以在網(wǎng)上查詢(xún)自己的考試成績(jī),修改密碼等個(gè)人資料。</p><p> 老師可以在網(wǎng)上出題,修改密碼等個(gè)人資料。</p><p> 管理員可以在網(wǎng)上建立學(xué)生、老師等用戶(hù)。</p><p><b> 需求分析</b></p><p><b> 系統(tǒng)目標(biāo)&
23、lt;/b></p><p> 本網(wǎng)絡(luò)考試系統(tǒng)應(yīng)該能滿(mǎn)足學(xué)校幾千學(xué)生在任何地方、任何時(shí)間都能參加</p><p> 考試。本系統(tǒng)要讓學(xué)生、老師和管理員在網(wǎng)絡(luò)上可以維護(hù)自己的個(gè)人資料。學(xué)生也可以在網(wǎng)絡(luò)上通過(guò)本系統(tǒng)查詢(xún)自己考試的成績(jī);老師能通過(guò)網(wǎng)絡(luò)生成試卷;管理員在網(wǎng)絡(luò)上通過(guò)本系統(tǒng)增加學(xué)生和老師;另外為了讓考試比較公平,試卷的試題由計(jì)算機(jī)隨機(jī)從題庫(kù)抽取。</p><
24、;p><b> 可行性分析</b></p><p> 現(xiàn)有的數(shù)據(jù)庫(kù)應(yīng)用程序的分層結(jié)構(gòu)</p><p><b> 傳統(tǒng)二層結(jié)構(gòu)</b></p><p> 傳統(tǒng)的二層式程序,也就是客戶(hù)/服務(wù)器(Client/Server)結(jié)構(gòu),這種程序相對(duì)簡(jiǎn)單、清楚、開(kāi)發(fā)容易,其結(jié)構(gòu)如圖1??蛻?hù)機(jī)都通過(guò)網(wǎng)絡(luò)連接到同一個(gè)數(shù)據(jù)庫(kù)上,
25、不過(guò)這樣結(jié)構(gòu)問(wèn)題很多,最主要的就是性能較差維護(hù)困難已經(jīng)不適應(yīng)在因特網(wǎng)(Internet)上使用。數(shù)據(jù)同一性和完整性難以控制。同時(shí)由于每一個(gè)客戶(hù)機(jī)都必須安裝特定的軟件,且這種客戶(hù)端軟件體積還比較大,用戶(hù)使用起來(lái)非常不方便,所以目前已經(jīng)面臨淘汰。不過(guò)這樣的系統(tǒng)開(kāi)發(fā)比較簡(jiǎn)單,對(duì)開(kāi)發(fā)人員的技術(shù)要求也不高,在內(nèi)部局域網(wǎng)上使用還有一定的市場(chǎng)。</p><p><b> ?。▓D1)</b></p&g
26、t;<p><b> 三層數(shù)據(jù)庫(kù)應(yīng)用結(jié)構(gòu)</b></p><p> 三層結(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ù)處理邏輯等等,這樣客戶(hù)端程序就可以做得比較小,也就是常說(shuō)的瘦客戶(hù),更由于業(yè)務(wù)規(guī)則和數(shù)據(jù)處理邏輯的集中在服務(wù)器上統(tǒng)一管理,客戶(hù)端無(wú)須進(jìn)行復(fù)雜的計(jì)算,也不會(huì)因?yàn)殄e(cuò)誤的操作而影響到其他的用戶(hù)
27、,所以他的可靠性、穩(wěn)定性和效率都比較好。當(dāng)然開(kāi)發(fā)這樣的系統(tǒng)在技術(shù)上和成本上要求就要多一些。(其結(jié)構(gòu)如圖2)</p><p><b> 圖2</b></p><p> 多層分布式數(shù)據(jù)庫(kù)系統(tǒng)</p><p> 近年來(lái)隨著因特網(wǎng)的快速發(fā)展,許多企業(yè)都開(kāi)始上網(wǎng),因此基于網(wǎng)絡(luò)的營(yíng)銷(xiāo)系統(tǒng)、MIS系統(tǒng)、ERP系統(tǒng)都快速發(fā)展起來(lái)了,這個(gè)時(shí)候僅僅三層的應(yīng)用
28、程序已經(jīng)不能滿(mǎn)足實(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ù)處理程序。</p><p> 在Windows平臺(tái)下微軟公司推出了的Windows DNA(Distributed interNet A
29、pplication Architecture,分布式網(wǎng)絡(luò)應(yīng)用結(jié)構(gòu))策略。把COM+作為Windows DNA策略中的中間件。在Windows2000以上操作系統(tǒng)中,COM+成為了系統(tǒng)的一部分。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(Compone
30、nt Object Model,組件對(duì)象模型)和COM+技術(shù),開(kāi)發(fā)難度和成本更大了。</p><p><b> 圖3</b></p><p> 網(wǎng)絡(luò)分布式多層應(yīng)用系統(tǒng)</p><p> 近幾年來(lái)因特網(wǎng)飛速發(fā)展,人們的生活因?yàn)榫W(wǎng)絡(luò)而在慢慢的改變?,F(xiàn)在的個(gè)人電腦(PC)上都安裝了瀏覽器(Browser)因此人們就利用瀏覽器來(lái)作為客戶(hù)端程序,萬(wàn)
31、維網(wǎng)服務(wù)器(Web Server)作為中間層和客戶(hù)端溝通服務(wù)器,這就是現(xiàn)在流行的B/S(Browser/Server)結(jié)構(gòu)方式。在這種結(jié)構(gòu)下,本地的計(jì)算機(jī)無(wú)須安裝任何客戶(hù)端程序,只要有瀏覽器,可以使用因特網(wǎng)就可以使用系統(tǒng)了。他不僅僅減少了開(kāi)發(fā)客戶(hù)端帶來(lái)的成本,最關(guān)鍵的是,大大減少了系統(tǒng)維護(hù)的成本和時(shí)間,當(dāng)修改系統(tǒng)的時(shí)候不需要對(duì)客戶(hù)做任何的改動(dòng)。并且客戶(hù)也可以在任何計(jì)算機(jī)上使用你的系統(tǒng)而不要做特別的設(shè)置。</p><p
32、> 在B/S系統(tǒng)中以微軟公司的IE瀏覽器、和IIS/ASP(Internet Information Server/Active Server Pages)服務(wù)器應(yīng)用最為廣泛,使用最方便,對(duì)中文的支持也是最好的。</p><p> 但是,ASP有一個(gè)天生的缺點(diǎn),就是ASP代碼是采用的VBScript、JScript或者PHP等腳本語(yǔ)言編寫(xiě),運(yùn)行速度相當(dāng)?shù)穆液虷TML代碼是混在一起的,使ASP程序員
33、既需要考慮與數(shù)據(jù)庫(kù)打交道,又需要關(guān)心如何與HTML配合,有時(shí)還需要用ASP直接生成HTML代碼。這樣構(gòu)建起來(lái)的系統(tǒng)當(dāng)然是不能滿(mǎn)足中、大型網(wǎng)絡(luò)應(yīng)用的需要。</p><p> 不過(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+
34、組件協(xié)同工作。這樣一來(lái)我們就可以用B/S方式構(gòu)建多層分布式的應(yīng)用系統(tǒng)來(lái)滿(mǎn)足大型網(wǎng)絡(luò)應(yīng)用。</p><p> 這也就是微軟公司所推出的Web分布式多層應(yīng)用程序結(jié)構(gòu)(其結(jié)構(gòu)如圖4)也就是我們常聽(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ù),如:AS
35、P、VBScript、JavaScript、HTML/DHTML、ADO、COM/DCOM、MTS/COM+等等,同時(shí)學(xué)習(xí)這么多的技術(shù)這對(duì)程序員來(lái)說(shuō)是一個(gè)不小的挑戰(zhàn)!</p><p><b> 圖4</b></p><p><b> XML語(yǔ)言</b></p><p> XML(eXtended Markup Lan
36、guage)是一種標(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ì)這樣做:“<H3>張三</H3>”,但如果用XML我們就可以這樣做:“<姓名>張三</姓名>”。數(shù)據(jù)表達(dá)的準(zhǔn)確性XML絕對(duì)比HTML好多了!準(zhǔn)確表達(dá)數(shù)據(jù)的含義這就是X
37、ML帶來(lái)的最大好處。</p><p> 有了XML,我們就能定制各行各業(yè)的XML標(biāo)簽,這樣對(duì)于要傳輸?shù)臄?shù)據(jù)就能用文本方式傳送,并且只要對(duì)方有一份標(biāo)簽的定義文件就可以理解我們所表達(dá)的意思,從而在任何程序之間,不管他是用什么語(yǔ)言編寫(xiě)的;任何系統(tǒng)之間,不管他是運(yùn)行在什么CPU上的,是Windows、Linux還是MAC OS;任何人之間,無(wú)論他是什么國(guó)籍,說(shuō)什么語(yǔ)言,是否懂得你的語(yǔ)言,自由交換信息了。而這些正適應(yīng)了目
38、前因特網(wǎng)的發(fā)展,適應(yīng)了人們溝通交流的需要。</p><p> XML出現(xiàn)短短幾年就得到了廣泛的應(yīng)用,目前新推出的軟件幾乎都會(huì)支持XML。例如微軟的Dot Net系列軟件、Office系列軟件等等。不出幾年,XML就會(huì)代替HTML成為因特網(wǎng)上標(biāo)準(zhǔn)的標(biāo)記語(yǔ)言。</p><p> 本系統(tǒng)引入XML語(yǔ)言表達(dá)數(shù)據(jù)的好處是使得系統(tǒng)中網(wǎng)頁(yè)的顯示和系統(tǒng)處理的數(shù)據(jù)分離,可以使系統(tǒng)不必去處理那些用于網(wǎng)頁(yè)界
39、面的代碼,減小開(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ì)出比專(zhuān)業(yè)的美工還好的網(wǎng)頁(yè)來(lái)。不過(guò)請(qǐng)來(lái)專(zhuān)業(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)頁(yè)。&l
40、t;/p><p><b> 本系統(tǒng)的方案選擇</b></p><p> 本系統(tǒng)應(yīng)用于因特網(wǎng),并且要滿(mǎn)足一個(gè)學(xué)校幾千學(xué)生考試的需要,因此本系統(tǒng)決定采用微軟公司所推出的Web分布式多層應(yīng)用程序結(jié)構(gòu),并且數(shù)據(jù)使用XML表示。</p><p><b> 建模工具的選擇</b></p><p> 以UML
41、語(yǔ)言建模應(yīng)該是以Rational公司的Rose工具為最好。不過(guò)Rose太貴了,并且Rose比較龐大,使用不是太方便。Sybase公司出品的PowerDesigner建模工具也支持UML,還提供一個(gè)45天的試用版,在數(shù)據(jù)庫(kù)建模上也有他獨(dú)到的地方。因此建模工具就選用PowerDesigner。</p><p> 基于UML的系統(tǒng)分析</p><p><b> 用例圖</b&
42、gt;</p><p><b> 用戶(hù)關(guān)系圖</b></p><p><b> 系統(tǒng)用例圖</b></p><p><b> 用例圖利用情況清單</b></p><p><b> 順序圖</b></p><p><b&
43、gt; 老師活動(dòng)順序圖</b></p><p><b> 學(xué)生活動(dòng)順序圖</b></p><p><b> 動(dòng)作清單</b></p><p><b> 通訊清單</b></p><p><b> 類(lèi)圖</b></p>&
44、lt;p><b> 類(lèi)圖一</b></p><p><b> 類(lèi)圖二</b></p><p><b> 類(lèi)清單</b></p><p><b> 類(lèi)方法清單</b></p><p> 注:因?yàn)樗褂玫腜owerDesigner并不支持Del
45、phi所使用的Object Pascal編程語(yǔ)言,所以類(lèi)的分析中省略了參數(shù)返回值等內(nèi)容。</p><p><b> 網(wǎng)站頁(yè)面布置圖</b></p><p> 注:密碼驗(yàn)證構(gòu)件分別為老師、學(xué)生、管理員三個(gè)構(gòu)件的登錄(Login)方法調(diào)用</p><p><b> 數(shù)據(jù)庫(kù)的分析設(shè)計(jì)</b></p><
46、p> 數(shù)據(jù)庫(kù)概念模型(Conceptual Data Model)</p><p><b> 圖</b></p><p><b> 資料清單</b></p><p><b> 實(shí)體清單</b></p><p><b> 實(shí)體的識(shí)別字清單</b&g
47、t;</p><p><b> 關(guān)系清單</b></p><p> 數(shù)據(jù)庫(kù)物理模型(Physical Data Model)</p><p><b> 圖</b></p><p><b> 物理模型欄位清單</b></p><p><b&g
48、t; 表格索引清單</b></p><p><b> 表格引鍵清單</b></p><p><b> 參考清單</b></p><p><b> 表格清單</b></p><p><b> SQL語(yǔ)句</b></p>&
49、lt;p> /*==============================================================*/</p><p> /* Database name: NetTest (PDM) */</p><p> /* DBMS name: Microsoft SQL
50、 Server 2000 */</p><p> /* Created on: 2002-6-11 11:28:20 */</p><p> /*==============================================================*/</p&g
51、t;<p> alter table NetTest.Papers</p><p> drop constraint FK_PAPERS_CREATE_TEACHERS</p><p><b> go</b></p><p> alter table NetTest.Papers</p><p>
52、 drop constraint FK_PAPERS_TESTING_STUDENTS</p><p><b> go</b></p><p> if exists (select 1</p><p> from sysindexes</p><p> where id = object_id('
53、;NetTest.Admin')</p><p> and name = 'Index_Name'</p><p> and indid > 0</p><p> and indid < 255)</p><p> drop index NetTest.Admin.Index_Name
54、</p><p><b> go</b></p><p> if exists (select 1</p><p> from sysindexes</p><p> where id = object_id('NetTest.Papers')</p><p>
55、 and name = 'Index_StudentID'</p><p> and indid > 0</p><p> and indid < 255)</p><p> drop index NetTest.Papers.Index_StudentID</p><p><b>
56、 go</b></p><p> if exists (select 1</p><p> from sysindexes</p><p> where id = object_id('NetTest.Questions')</p><p> and name = 'Index_Su
57、bjectID'</p><p> and indid > 0</p><p> and indid < 255)</p><p> drop index NetTest.Questions.Index_SubjectID</p><p><b> go</b></p>
58、<p> if exists (select 1</p><p> from sysindexes</p><p> where id = object_id('NetTest.Teachers')</p><p> and name = 'Index_Name'</p><p&g
59、t; and indid > 0</p><p> and indid < 255)</p><p> drop index NetTest.Teachers.Index_Name</p><p><b> go</b></p><p> if exists (select 1</p&
60、gt;<p> from sysobjects</p><p> where id = object_id('NetTest.Admin')</p><p> and type = 'U')</p><p> drop table NetTest.Admin</p><p><
61、;b> go</b></p><p> if exists (select 1</p><p> from sysobjects</p><p> where id = object_id('NetTest.Papers')</p><p> and type = 'U')&
62、lt;/p><p> drop table NetTest.Papers</p><p><b> go</b></p><p> if exists (select 1</p><p> from sysobjects</p><p> where id = object_id(
63、9;NetTest.Questions')</p><p> and type = 'U')</p><p> drop table NetTest.Questions</p><p><b> go</b></p><p> if exists (select 1</p>
64、<p> from sysobjects</p><p> where id = object_id('NetTest.Students')</p><p> and type = 'U')</p><p> drop table NetTest.Students</p><p>
65、<b> go</b></p><p> if exists (select 1</p><p> from sysobjects</p><p> where id = object_id('NetTest.Teachers')</p><p> and type = 'U
66、39;)</p><p> drop table NetTest.Teachers</p><p><b> go</b></p><p> /*==============================================================*/</p><p> /* Table:
67、Admin */</p><p> /*==============================================================*/</p><p> create table NetTest.Admin (</p><p> N
68、ame char(12) not null,</p><p> PWD char(16) not null,</p><p> constraint PK_ADMIN primary key (Name)</p><p><b> )&
69、lt;/b></p><p><b> go</b></p><p> /*==============================================================*/</p><p> /* Index: Index_Name
70、 */</p><p> /*==============================================================*/</p><p> create index Index_Name on NetTest.Admin (</p><p><b> Name</b></p&
71、gt;<p><b> )</b></p><p><b> go</b></p><p> /*==============================================================*/</p><p> /* Table: Papers
72、 */</p><p> /*==============================================================*/</p><p> create table NetTest.Papers (</p><p> ID
73、 bigint identity,</p><p> TeacherID char(10) not null,</p><p> StudentID char(10) not null,</p><p> PaperID
74、 int not null,</p><p> Subject varchar(50) not null,</p><p> Score smallint null</p><p> constraint CKC_SCOR
75、E_PAPERS check (Score is null or (Score >= 0 )),</p><p> constraint PK_PAPERS primary key (ID)</p><p><b> )</b></p><p><b> go</b></p><p>
76、 /*==============================================================*/</p><p> /* Index: Index_StudentID */</p><p> /*======================================
77、========================*/</p><p> create index Index_StudentID on NetTest.Papers (</p><p><b> StudentID</b></p><p><b> )</b></p><p><b&
78、gt; go</b></p><p> /*==============================================================*/</p><p> /* Table: Questions */</p><p> /*
79、==============================================================*/</p><p> create table NetTest.Questions (</p><p> QuestionID bigint identity,</p><p> Subj
80、ect varchar(50) not null,</p><p> Question varchar(200) not null,</p><p> Select1 varchar(100) not null,</p><p> Se
81、lect2 varchar(100) not null,</p><p> Select3 varchar(100) not null,</p><p> Select4 varchar(100) not null,</p><p>
82、Answer char(1) not null,</p><p> constraint PK_QUESTIONS primary key (QuestionID)</p><p><b> )</b></p><p><b> go</b></p>
83、<p> /*==============================================================*/</p><p> /* Index: Index_SubjectID */</p><p> /*===========================
84、===================================*/</p><p> create index Index_SubjectID on NetTest.Questions (</p><p><b> Subject</b></p><p><b> )</b></p><
85、;p><b> go</b></p><p> /*==============================================================*/</p><p> /* Table: Students */</p>&
86、lt;p> /*==============================================================*/</p><p> create table NetTest.Students (</p><p> StudentID char(10) not null,</p><
87、p> Name char(12) not null,</p><p> Age smallint not null</p><p> constraint CKC_AGE_STUDENTS check (Age between 0 and 100),</p&g
88、t;<p> Sex char(2) not null,</p><p> EnterTime datetime not null,</p><p> PWD char(16) not null,</p
89、><p> Email varchar(35) null,</p><p> constraint PK_STUDENTS primary key (StudentID)</p><p><b> )</b></p><p><b> go</b>
90、;</p><p> /*==============================================================*/</p><p> /* Table: Teachers */</p><p> /*================
91、==============================================*/</p><p> create table NetTest.Teachers (</p><p> TeacherID char(10) not null,</p><p> Name
92、char(12) not null,</p><p> PWD char(16) not null,</p><p> Subject varchar(50) not null,</p><p> Email
93、 varchar(35) null,</p><p> constraint PK_TEACHERS primary key (TeacherID)</p><p><b> )</b></p><p><b> go</b></p><p> /*==========
94、====================================================*/</p><p> /* Index: Index_Name */</p><p> /*====================================================
95、==========*/</p><p> create index Index_Name on NetTest.Teachers (</p><p><b> Name</b></p><p><b> )</b></p><p><b> go</b></
96、p><p> alter table NetTest.Papers</p><p> add constraint FK_PAPERS_CREATE_TEACHERS foreign key (TeacherID)</p><p> references NetTest.Teachers (TeacherID)</p><p><b&
97、gt; go</b></p><p> alter table NetTest.Papers</p><p> add constraint FK_PAPERS_TESTING_STUDENTS foreign key (StudentID)</p><p> references NetTest.Students (StudentID)<
98、/p><p><b> go</b></p><p><b> 系統(tǒng)實(shí)現(xiàn)</b></p><p><b> 開(kāi)發(fā)平臺(tái)的選擇</b></p><p> 本系統(tǒng)由于是采用的微軟公司所推出的分布式Web應(yīng)用構(gòu)架,所以開(kāi)發(fā)平臺(tái)使用了Windows2000,數(shù)據(jù)庫(kù)選用SQL Serv
99、er2000,Web服務(wù)器程序使用IIS5.0。由于使用了XML,所以客戶(hù)端必須是IE5.0以上版本的瀏覽器才能正常使用本系統(tǒng)。</p><p><b> 編程工具的選擇</b></p><p> 目前比較流行的開(kāi)發(fā)工具VC++、VB和Delphi等都可以實(shí)現(xiàn)本程序的中間件COM+程序的開(kāi)發(fā)。使用VC++可以得到最好的速度,最大的靈活性,最強(qiáng)大的功能,但使用VC+
100、+開(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)是最合適的選擇。</p><p> XML和網(wǎng)頁(yè)編輯工具的選擇</p><p> XM
101、L的開(kāi)發(fā)工具我試過(guò)好幾個(gè),可都不理想,不是使用不方便就是對(duì)中文的支持不好。最后只能用Windows下的記事本(notepad.exe)手工書(shū)寫(xiě)。這樣一來(lái)效率很底,也許正因?yàn)檫@個(gè)原因XML才沒(méi)有HTML應(yīng)用多。希望不久以后也能出現(xiàn)比較好用的XML可視化編輯工具。</p><p> 網(wǎng)頁(yè)的編輯工具比較好選,Dreamweaver功能最強(qiáng)大使用方便,并且他還提供30天試用版,是不二之選。</p><
102、;p><b> 系統(tǒng)編碼</b></p><p><b> 源程序文件清單</b></p><p><b> 網(wǎng)站文件清單:</b></p><p> .\nettest 的目錄</p><p> [.] [..]
103、 [admin] admin.asp</p><p> [images] index.htm login.asp NetTest.asp</p><p> [student] student.asp style.css SubmitPaper.asp</p>
104、;<p> [teacher] teacher.asp test.asp update.asp </p><p> .\nettest\admin 的目錄</p><p> [.] [..] admin.htm createstudent.
105、htm</p><p> createteacher.htm update.htm </p><p> 4 個(gè)文件 14,685 字節(jié)</p><p> .\nettest\images 的目錄</p><p> [.] [..] bg1.gif
106、 main.gif</p><p> studies_02.gif </p><p> .\nettest\student 的目錄</p><p> [.] [..] QueryScore.xsl SelectTest.xsl</p><p> Student.
107、xsl style.css Testing.xsl UpDate.htm</p><p> .\nettest\teacher 的目錄</p><p> [.] [..] createpaper.htm</p><p> createquestions.ht
108、m teacher.xsl UpDate.htm</p><p> COM+組件源程序文件清單</p><p><b> 程序核心代碼</b></p><p> 因?yàn)楸鞠到y(tǒng)源代碼比較多,在這里就僅僅列出比較重要的核心代碼</p><p> 學(xué)生進(jìn)行考試頁(yè)面的XLST文件:Testing.x
109、sl</p><p> <?xml version="1.0" encoding="GB2312"?></p><p> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"></p><p> <xsl:temp
110、late match="/"></p><p><b> <html></b></p><p><b> <head></b></p><p> <title>進(jìn)行考試!</title></p><p> <li
111、nk rel="stylesheet" href="./student/style.css" type="text/css"/></p><p><b> </head></b></p><p> <body bgcolor="#FFFFFF" text=&qu
112、ot;#000000" background="./images/bg1.gif"></p><p> <div align="center"></p><p> <p></p><table width="700" border="0" cellsp
113、acing="1" cellpadding="0" bgcolor="#666666"></p><p><b> <tr></b></p><p> <td bgcolor="#FFFFFF" height="110"> </p
114、><p> <p align="center"></p></p><p> <p align="center"><font color="#000000">...::: <b>解放軍后勤工程學(xué)院網(wǎng)絡(luò)考試系統(tǒng)</b> </font>:::....&l
115、t;br/></p><p><b> </p></b></p><p> <table width="90%" border="0" cellspacing="1" cellpadding="0" align="center" bgcolo
116、r="#CCCCCC"></p><p><b> <tr> </b></p><p> <td bgcolor="#FFFFFF"> </p><p> <table width="100%" border="0" cel
117、lspacing="0" cellpadding="0" align="center"></p><p><b> <tr> </b></p><p> <td width="170" background="./images/studies_02.g
118、if" height="20"> </p><p> <div align="center"><font color="#6699FF">進(jìn)行考試</font></div></p><p><b> </td></b></p
119、><p> <td> <xsl:value-of select="//Subject"/>考試:</td></p><p><b> </tr></b></p><p><b> </table></b></p><
120、p><b> <p></p></b></p><p> <form name="form1" method="post" action="SubmitPaper.asp"></p><p> <table width="90%" bor
121、der="0" align="center" cellpadding="1" cellspacing="1" class="font12"></p><p> <xsl:for-each select="//Questions"></p><p>
122、<tr bgcolor="#DFDFFF"></p><p> <td colspan="2"><xsl:value-of select="No"/>、<xsl:value-of select="Question"/></td></p><p>&l
123、t;b> </tr></b></p><p> <tr bgcolor="#FFFFCA"> </p><p> <td width="50%"></p><p> <xsl:element name="input"></p&g
124、t;<p> <xsl:attribute name="type"></p><p> <xsl:value-of select="//type"/></p><p> </xsl:attribute></p><p> <xsl:attribute name=&
125、quot;name"></p><p> <xsl:value-of select="No"/></p><p> </xsl:attribute></p><p> <xsl:attribute name="value"></p><p>&l
126、t;b> A</b></p><p> </xsl:attribute></p><p> </xsl:element></p><p> A<xsl:value-of select="Select1"/></td></p><p> <td
127、 width="50%"></p><p> <xsl:element name="input"></p><p> <xsl:attribute name="type"></p><p> <xsl:value-of select="//type&quo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于delphi的教務(wù)管理系統(tǒng)畢業(yè)論文
- 基于delphi的教務(wù)管理系統(tǒng)畢業(yè)論文
- 基于delphi的圖書(shū)管理系統(tǒng)畢業(yè)論文
- 基于delphi的圖書(shū)管理系統(tǒng)畢業(yè)論文)
- 基于delphi的圖書(shū)管理系統(tǒng)畢業(yè)論文1
- delphi考試系統(tǒng)畢業(yè)設(shè)計(jì)
- delphi汽車(chē)零件銷(xiāo)售管理系統(tǒng)畢業(yè)論文
- 網(wǎng)上考試系統(tǒng)畢業(yè)論文
- 在線(xiàn)考試系統(tǒng)畢業(yè)論文
- 在線(xiàn)考試系統(tǒng)畢業(yè)論文
- 網(wǎng)上考試系統(tǒng)畢業(yè)論文
- 在線(xiàn)考試系統(tǒng)畢業(yè)論文
- 網(wǎng)絡(luò)考試系統(tǒng)——畢業(yè)論文
- 網(wǎng)絡(luò)考試系統(tǒng)——畢業(yè)論文
- 在線(xiàn)考試系統(tǒng)畢業(yè)論文
- 在線(xiàn)考試系統(tǒng)畢業(yè)論文
- 在線(xiàn)考試系統(tǒng)畢業(yè)論文
- 在線(xiàn)考試系統(tǒng)畢業(yè)論文
- 網(wǎng)上考試系統(tǒng)畢業(yè)論文
- 在線(xiàn)考試系統(tǒng)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論