【正文】
? ( 20) 其他模塊 ?????????????????? ????? ( 24) 問題及其解決 ?????????????????? ????? ( 25) 結(jié)束語(yǔ) ??????????????????????????? ???? ( 26) 參考文獻(xiàn) ???? ????????????????????????? ? ( 27) 10 基于 XML的在線投票系統(tǒng)的開發(fā) 摘 要 本文是計(jì)算機(jī)系 01 級(jí)本科畢業(yè)生畢業(yè)設(shè)計(jì)論文。其項(xiàng)目背景是Inter 上的網(wǎng)絡(luò)信息資源。本項(xiàng)目旨在開發(fā)一個(gè)滿足網(wǎng)上投票需求的網(wǎng)上投票系統(tǒng)。能基于常用的若干網(wǎng)站,進(jìn)行在線投票,收集投票結(jié)果,并且以報(bào)表的形式表示。所得信息可以最大限度的滿足用戶的需求。 本文以網(wǎng)上投票系統(tǒng)的基本原理、主頁(yè)面設(shè)計(jì)、后臺(tái)數(shù)據(jù)庫(kù)的建立、后臺(tái)的處理程序的制作為 線索 ,描述了“網(wǎng)上投票系統(tǒng)”的主要結(jié)構(gòu)及工作過程, 并給出了 投票過 程中使用的一些算法。 關(guān)鍵詞: ASP , XML,網(wǎng)頁(yè)制作 11 The development of Online Voting system based on XML Abstract This thesis is a graduate design of the 01Grade of the Department of Computer Science and Technology. The purpose for the graduate design is to develop a “voting system”, allowing the users to vote via Web. It gives an entrance for the user to vote. Then the data is collected into the database backwards. Finally the result will be shown in another web page dynamically. The main functions and the processing of the “Online Voting System” is described in this paper, anized by analysis of working principle, design of “Index”, database establishing and processing in the background. Some algorithms are also provided in this paper. Key Words: ASP, XML, Web page development 12 第一章 緒論 Inter 強(qiáng)大的信息服務(wù)功能使得 用戶 幾乎可以從中找到任何需要的信息, 作為一個(gè)平臺(tái), Inter 為在線調(diào)查,使用戶能在第一時(shí)間采集第一手資料提供了有效的技術(shù)手段 。本課題的目的是完成一個(gè)基于 XML技術(shù)的在線投票系統(tǒng),能基于常用的若干網(wǎng)站, 進(jìn)行在線投票,收集投票結(jié)果,并且以報(bào)表的形式表示。 所得信息可以最大限度的滿足用戶的需求。 對(duì)比傳統(tǒng)的調(diào)查方式,在線投票具有以下優(yōu)勢(shì): 1. 及時(shí)性和共享性 網(wǎng)上 調(diào)查是基于 Inter 技術(shù)的一種調(diào)查,相對(duì)于傳統(tǒng)的郵寄調(diào)查方式,其時(shí)效性大大提高 。 網(wǎng)上調(diào)查的結(jié)果是開放的,共享的,被調(diào)查者可以和調(diào)查者一樣使用調(diào)查結(jié)果,而且投票信息經(jīng)過統(tǒng)計(jì)分析軟件初步處理后,可以馬上查看到階段性的調(diào)查結(jié)果 。 2. 便捷性和低成本 實(shí)施網(wǎng)上調(diào)查節(jié)省了傳統(tǒng)調(diào)查中耗費(fèi)的大量人力和物力。實(shí)施網(wǎng)上調(diào)查時(shí),只需要一臺(tái)能上網(wǎng)的計(jì)算機(jī)即可,通過站點(diǎn)發(fā)布電子調(diào)查問卷,由 網(wǎng)絡(luò)用戶 自愿填寫,然后通過 系統(tǒng)進(jìn)行處理,統(tǒng)計(jì)出投票結(jié)果。 這個(gè)課題是由吳潔老師授題,本人獨(dú)立完成的。 這篇文章中,將分部分來介紹 基于 XML在線投票系統(tǒng) 的基本理論、結(jié)構(gòu)框架和具體的各個(gè)功能模塊的作用和實(shí)現(xiàn)方法。 論文組織如下: 第二章介紹了本課題相關(guān)的一些技術(shù)背景。 基于 XML 在線投票系統(tǒng)的 原理以及項(xiàng)目具體開發(fā)的環(huán)境。 第三章介紹了本課題中 在線投票系統(tǒng) 的具體設(shè)計(jì)思想。對(duì) 在線投票系統(tǒng) 進(jìn)行了功能模塊的分類,并描述了它的具體工作過程。這一章是全文的重點(diǎn)。 在第四章中,可以看到 在線投票系統(tǒng) 用戶界面各個(gè)模塊各個(gè)類的代碼實(shí)現(xiàn)。對(duì)代碼中的重要的 函數(shù) 進(jìn)行了具體的描述及解析。最后是程序運(yùn)行的結(jié)果的顯示。至此,一個(gè)簡(jiǎn)單的 在線投票系統(tǒng) 真正完成。這一章是全文的又一 重點(diǎn)。 13 第二章 相關(guān)技術(shù)背景 投票系統(tǒng)簡(jiǎn)介 投票系統(tǒng)主要是為站點(diǎn)向用戶某項(xiàng)主題調(diào)查收集信息。通常一個(gè)投票主題提供幾個(gè)選項(xiàng)供用戶某個(gè)選項(xiàng)進(jìn)行投票。系統(tǒng)將對(duì)用戶選擇結(jié)果進(jìn)行統(tǒng)計(jì),并將統(tǒng)計(jì)結(jié)果進(jìn)行顯示。統(tǒng)計(jì)結(jié)果顯示有幾種方式:使用直方圖顯示每個(gè)選項(xiàng)用戶的投票數(shù)量;或使用圓餅圖顯示各個(gè)選項(xiàng)用戶投票的相對(duì)百分比。在本課題中我們選用直方圖的形式來顯示投票結(jié)果,并在直方圖的下方顯示其所對(duì)應(yīng)的方圖所表示的數(shù)據(jù)百分比。 XML 簡(jiǎn)介 XML是 eXtensible Markup Language 的英文簡(jiǎn)寫,意 即可擴(kuò)展標(biāo)記語(yǔ)言。XML和 HTML 都起源于 SGML(Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言 ),但 XML 在文檔設(shè)計(jì)方面比 HTML具有更大的靈活性,在耗費(fèi)時(shí)間和資金方面比 SGML 的成本更低。 XML 語(yǔ)言可讓信息提供者根據(jù)需要自行定義標(biāo)記及屬性,結(jié)構(gòu)化地描述信息內(nèi)容,使 XML 文件的結(jié)構(gòu)可以復(fù)雜到任意程度。再加上良好的數(shù)據(jù)格式、可擴(kuò)展行、高度結(jié)構(gòu)化、便于網(wǎng)絡(luò)傳輸?shù)仁褂锰攸c(diǎn),使得XML在應(yīng)用中體現(xiàn)出極大的優(yōu)勢(shì)。 DOM 簡(jiǎn)介 DOM 的全稱是 Document Object Model(文檔對(duì)象模型)。在應(yīng)用程序中,基于 DOM 的 XML 分析器將一個(gè) XML 文檔轉(zhuǎn)換成一個(gè)對(duì)象模型的集合(通常稱 DOM樹),應(yīng)用程序正是通過對(duì)這個(gè)對(duì)象模型的操作,來實(shí)現(xiàn)對(duì) XML文檔數(shù)據(jù)的操作。通過 DOM接口,應(yīng)用程序可以在任何時(shí)候訪問 XML 文檔中的任何一部分?jǐn)?shù)據(jù),因此,這種利用 DOM 接口的機(jī)制也被稱作隨機(jī)訪問機(jī)制。 DOM 接口提供了一種通過分層對(duì)象模型來訪問 XML 文檔信息的方式,這些分層對(duì)象模型依據(jù) XML 的文檔結(jié)構(gòu)形成了一棵節(jié)點(diǎn)樹。無(wú)論 XML 文檔中所描述的是什么類型的信息,即便是制表數(shù)據(jù)、項(xiàng)目列 表或一個(gè)文檔,利用 DOM 所生成的模型都是節(jié)點(diǎn)樹的形式。也就是說, DOM 強(qiáng)制使用樹模型來訪問 XML文檔中的信息。利用 DOM,程序開發(fā)人員可以動(dòng)態(tài)地創(chuàng)建文檔,遍歷文檔結(jié)構(gòu),添加、修改、刪除文檔內(nèi)容,改變文檔的顯 14 示方式等等。 ASP 簡(jiǎn)介 ASP(Active Server Pages)是包括 HTML 標(biāo)記、文本和腳本命令的文件,使用它可以創(chuàng)建動(dòng)態(tài)、交互的 Web 服務(wù)器應(yīng)用程序,并可以組合 HTML頁(yè)、腳本命令和 ActiveX 組件以創(chuàng)建交互的 Web頁(yè)和基于 Web 的功能強(qiáng)大的應(yīng)用程序。它擺脫之前所有所謂動(dòng)態(tài)產(chǎn)生 頁(yè)面技術(shù)的局限性,具有簡(jiǎn)單易學(xué)的特性,良好的數(shù)據(jù)庫(kù)操作能力,以及如同 Windows 程序一樣的靈活性和交互性。 基于 XML設(shè)計(jì)的基本理論 現(xiàn)今, XML的使用越來越廣泛。 XML 可以跨越所有邊界,是進(jìn)行跨數(shù)據(jù)平臺(tái)數(shù)據(jù)傳送最好的選擇。同時(shí), XML 也使得數(shù)據(jù)能夠以多種方式進(jìn)行顯示,通過 的支持,在 ASP 中使用 XML 也很簡(jiǎn)單。使用 XML 構(gòu)建投票系統(tǒng), XML文件用來存儲(chǔ)數(shù)據(jù),則需要一種方法來對(duì) XML 文件中的數(shù)據(jù)進(jìn)行方便的訪問、操作。 MSXML DOM 提供了對(duì) XML文檔進(jìn)行訪問、操作的方法。因此通過 XML 來進(jìn)行數(shù)據(jù)交換,具有非常好的兼容性,可以將不同來源的數(shù)據(jù)集成在一起。 15 第三章 在線投票系統(tǒng)設(shè)計(jì) 在線投票系統(tǒng)的工作原理 在線以網(wǎng)頁(yè)的形式生成一個(gè)包含投票主題,投票選項(xiàng)的投票頁(yè)。用戶用鼠標(biāo)選擇自己認(rèn)為合適的答案進(jìn)行在線投票。系統(tǒng)收集投票結(jié)果數(shù)據(jù)后,給出反饋。結(jié)果頁(yè)將以柱狀圖的方式顯示投票結(jié)果。 在線投票系統(tǒng)的結(jié)構(gòu) 基于 XML的在線投票系統(tǒng)包含 4個(gè)基本部分: 投票存儲(chǔ) 投票顯示 投票處理 結(jié)果顯示 投票存儲(chǔ):創(chuàng)建一個(gè) XML 文檔,文檔中存儲(chǔ)了投票 的基本數(shù)據(jù),包括:投票主題,投票選項(xiàng),每一項(xiàng)所得票數(shù)。使用這個(gè) XML文檔可以達(dá)到代替數(shù)據(jù)庫(kù)存儲(chǔ)、訪問、操作數(shù)據(jù)的功能。 投票顯示:利用 DOM接口訪問 XML文檔。從文檔中獲取投票主題,投票選項(xiàng)的信息,以 HTML 形式生成投票頁(yè)。 投票處理:用戶在進(jìn)行了一次投票之后,系統(tǒng)將通過 DOM 接口訪問 XML文檔,修改投票選項(xiàng)的得票數(shù)。同時(shí)將生成得票率、投票人數(shù)等一系列有用信息。 結(jié)果顯示:利用 DOM接口訪問 XML文檔。從中獲取得票數(shù),投票選項(xiàng)的信息,將得票數(shù)以柱狀圖的形式顯示出來。 16 在線投票系統(tǒng)的處理流 程 圖 從流程框圖 可以看到,當(dāng)用戶提交表單后,表單數(shù)據(jù)交由后臺(tái)投票處理分析數(shù)據(jù),把相應(yīng)的處理結(jié)果存入 文件,然后再由投票結(jié)果顯示頁(yè)面從 中讀取結(jié)果,并把處理結(jié)果顯示出來。 投票頁(yè)面 ( ) 后臺(tái)投票處理 ( ) 處理結(jié)果存檔 ( ) 投票結(jié)果顯示頁(yè)面 ( ) 17 本課題的關(guān)鍵在于以 XML文檔作為數(shù)據(jù)存儲(chǔ),這一點(diǎn)使得本系統(tǒng)在訪問和操縱數(shù)據(jù)上與以往其它“網(wǎng)絡(luò)投票系統(tǒng)”有很大的不同,關(guān)鍵在于要對(duì) XML 文檔進(jìn)行高效率的訪問。以上的 頁(yè)面都對(duì) XML 文檔進(jìn)行了必要的訪問,這些頁(yè)面都需要通過 DOM技術(shù)對(duì) XML 文檔進(jìn)行訪問。 DOM 技術(shù)作為本次課題的核心有必要做進(jìn)一步的說明。 DOM 是一組對(duì)象的集合,通過操作這些對(duì)象,程序員可操縱 XML 和 HTML 中的數(shù)據(jù)。利用 DOM 中的對(duì)象可以對(duì)文檔進(jìn)行讀取、遍歷、修改以及刪除等操作。 從本質(zhì)上來說,編寫 XML文檔的過程實(shí)際上就是按照數(shù)據(jù)結(jié)構(gòu)化的要求組織信息的過程,不管相關(guān)信息是如何簡(jiǎn)單或復(fù)雜,最終得到的結(jié)果都將是一個(gè)具有樹狀層次結(jié)構(gòu)的 XML 文檔。這樣的文檔在被 DOM處理時(shí),其包含所有的信息都被轉(zhuǎn)化成一棵結(jié)點(diǎn)樹 ,我們稱之為 DOM樹。 XML 文檔中的每一個(gè)元素都可以用 DOM樹中相應(yīng)的結(jié)點(diǎn)來代表,對(duì)結(jié)點(diǎn)進(jìn)行操作就是對(duì)文檔中的元素進(jìn)行操作。 開發(fā)環(huán)境 本課題是在 WINDOWS2021 Professional 配置 IIS 的操作系統(tǒng)下采用XML+ASP 的方式開發(fā)的。 XML 文檔的編輯器使用的是 Altova XMLSpy2021。 ASP的編輯器采用的是 Macromedia Dreamweaver MX2021。 AltovaXMLSpy2021 簡(jiǎn)介 XMLSpy2021 (圖 ) 是建置 在 eXtensible Markup Language (XML)技術(shù)企業(yè)標(biāo)準(zhǔn)上的 XML Development Environment 的 軟件 . 一般的 XML 編輯器大都采用 以 結(jié)構(gòu)編輯 或 重復(fù)顯示的方式編輯 XML文檔,而 XMLSpy2021 則 以 更為先進(jìn)的 Enhanced Grid View 方式編輯文檔。運(yùn)用 XMLSpy2021 可以非常容易的開發(fā)結(jié)構(gòu)復(fù)雜 的 data schemas,并且 完全支 持 graphical design of XML Schema。XML2021 使用嵌入式 XSL editor,并 包含 了除錯(cuò), XPath visualizer, 語(yǔ)法協(xié)助,顏色識(shí)別, 和整合 瀏覽器預(yù)覽等功能。 XMLSpy2021 同時(shí)還具有 XSLTengine,可以支持 MSXML, Saxon, Xalan 實(shí)現(xiàn)其 ODBC and ADO database access 的 功能 。 18 圖 Macromedia Dreamweaver MX2021 簡(jiǎn)介 Dreamweaver MX 2021(圖 ) 是一款專業(yè)的 HTML 編輯器,用于對(duì) Web 站點(diǎn)、 Web 頁(yè)和 Web 應(yīng)用程序進(jìn) 行設(shè)計(jì)、編碼和開發(fā)。無(wú)論 是 喜歡直接編寫 HTML 代碼的 用戶 還是偏愛在可視化編輯環(huán)境中工作 的用戶 ,Dreamweaver 都 能 提供幫助