ASP在線投票系統(tǒng)程序設(shè)計(jì)論文_第1頁(yè)
ASP在線投票系統(tǒng)程序設(shè)計(jì)論文_第2頁(yè)
ASP在線投票系統(tǒng)程序設(shè)計(jì)論文_第3頁(yè)
ASP在線投票系統(tǒng)程序設(shè)計(jì)論文_第4頁(yè)
ASP在線投票系統(tǒng)程序設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩37頁(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)介

重慶郵電大學(xué)移通學(xué)院畢業(yè)設(shè)計(jì)(論文)PAGE42摘要在積極建立科學(xué)管理機(jī)制的今天,僅僅靠原始的手工管理或簡(jiǎn)單的單機(jī)管理,管理部門(mén)面對(duì)大量的信息,無(wú)法有效率地將其中的重要部分提取出來(lái),并做出相應(yīng)的判斷和處理。投票管理者的決策只能依據(jù)手工表數(shù)據(jù),在浪費(fèi)大量人力、物力的同時(shí)無(wú)法做到實(shí)時(shí)監(jiān)控,難以保證數(shù)據(jù)的準(zhǔn)確性和及時(shí)性。因此,先進(jìn)的管理思想就成為了一個(gè)可望而不可及的目標(biāo)。投票非常急需一套既有先進(jìn)管理思想的系統(tǒng),作為實(shí)現(xiàn)目標(biāo)和提高現(xiàn)有投票管理水平的一種重要手段。隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類(lèi)社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,在先進(jìn)的計(jì)算機(jī)技術(shù)、通信技術(shù)、控制技術(shù)及IC卡技術(shù)基礎(chǔ)上,采用系統(tǒng)集成方法,逐步建立一個(gè)智能化的投票系統(tǒng)。編寫(xiě)在線投票系統(tǒng),最重要的一點(diǎn)就是如何從煩瑣的投票結(jié)果中,導(dǎo)出全部投票項(xiàng)目的票數(shù),然后根據(jù)投票項(xiàng)目的各個(gè)票數(shù),進(jìn)行票數(shù)百分比計(jì)算,最后編輯出在線投票系統(tǒng)。開(kāi)發(fā)該系統(tǒng)我主要采用ASP技術(shù)和SQL數(shù)據(jù)庫(kù)相結(jié)合的方式。ASP技術(shù)通過(guò)在靜態(tài)HTML內(nèi)容中嵌入服務(wù)器端腳本,實(shí)現(xiàn)網(wǎng)頁(yè)內(nèi)容的動(dòng)態(tài)改變。Web服務(wù)器從磁盤(pán)上讀取含有服務(wù)器端腳本的網(wǎng)頁(yè),在網(wǎng)頁(yè)發(fā)送給客戶端瀏覽器之前,先對(duì)其中的服務(wù)器端腳本進(jìn)行解釋,輸出用戶定制內(nèi)容,從而產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)。數(shù)據(jù)庫(kù)采用SQLServer2000大型數(shù)據(jù)庫(kù),能夠勝投票系統(tǒng)中的數(shù)據(jù)處理。本文在相關(guān)理論指導(dǎo)下,在分析其他一些系統(tǒng)的基礎(chǔ)上,開(kāi)發(fā)出了一個(gè)簡(jiǎn)單的在線投票系統(tǒng)(包括功能模塊設(shè)計(jì)、數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)等)基本解決了管理人員的煩瑣事務(wù)。關(guān)鍵詞ASP投票數(shù)據(jù)庫(kù)AbstractBebuildingupvotetomanagetodayofmechanismactively,onlydependoriginalityofthehandicraftmanageorthesimplesinglemachinemanage,managementDept.publicappearancetoagreatdealofinformation,can'tefficientlywillamongthemofimportancepartwithdraw,anddoajudgmentandtheprocessingforcorresponding.Decisionwhichvotesgovernorcanaccordingtothestatementdata,atwasteagreatdealofmanpower,materialresourcescan'tinthemeantimeattainactuallysuperviseandcontrol,theaccuracyofhardassurancedatawithintimesex.Therefore,theforerunner'smanagementthoughtcarriedoutandthenbecamedaninaccessibletargetinthevote.Thevoteneedsthemanagementinformationthatasetofcurrentforerunnermanagesthoughtsystemurgentlyverymuch,isakindofimportantmeanswhichcarriesoutatargetandraisesanexistingvoteamanagementlevel.Thetechnicalalongwithscienceofraisecontinuously,thecalculatorscienceisgraduallymature,theitsstrongfunctionhasalreadybeenpeople'sdeepunderstanding,ithasalreadyenteredeachrealmofthesocietyofmankindtoerupttoflickamoreandmoreimportantfunction.Beacalculatorappliedonepart,theteachingmission'sarrangeinorderisahardnuttocrack,numeroushighschools,researchorganizationsandpersonalscarriedonagreatdealofresearchandthedevelopmentworkfromthetheoriesandfulfillment.Writeon-linevotesystem,Themostimportantonepointbehowplanfromthetrivialteachingmedium,Leadateachingmissionofdemand,Thentheconcreteneedofeverysemesterofbasis,Carryonthemissionarrangeinordertoincludemissiontoincrease,modify,delete,theteachingmissionofthebornandendperformance.Developthatsystem;ImainlyadoptthewaythattheASPtechniqueandtheSQLdatabasecombinetogether.TheASPtechniquepassesinthestaticstateHTMLcontentstoimbedaservertocarryscript,Carryoutthedynamicstatechangeofthewebpagecontents.TheWebserverreadstoimplythewebpagethattheservercarriesscriptfromthedisk,beforethewebpagesendouttothecustomercarryabrowser,theserverwonfirstastoitscarriesscripttocarryonexplain,outputthecustomermakestoorderacontents,Produceadynamicstatewebpagethus.ThedatabaseadoptstheSQLServer2000largedatabases,canbecompetentthedataprocessingintheteachingmission.Thistextdevelopedasimpleon-linevotesystem(includeafunctionmoldapieceadesign,databasestructuredesignetc.)onthefoundationoftheanalysisalittlebitothersystemsundertherelatedtheoriesinstructionbasicsolvedthemanager'strivialbusiness.ASPVOTEDatabase目錄前言 6第1章編程環(huán)境及數(shù)據(jù)庫(kù) 71.1編程環(huán)境 71.2ASP簡(jiǎn)介 71.2.1ASP的技術(shù)特點(diǎn) 71.2.2ASP對(duì)象使用基礎(chǔ) 91.2.3ASP的工作原理 101.2.4ASP的運(yùn)行環(huán)境 111.3數(shù)據(jù)庫(kù)選擇 121.4數(shù)據(jù)庫(kù)接口的實(shí)現(xiàn) 12第2章數(shù)據(jù)建模 132.1數(shù)據(jù)庫(kù)建模方法 132.2程序開(kāi)發(fā)軟件 14第3章需求分析與總體設(shè)計(jì) 193.1需求分析 193.1.1需求的提取 193.1.2需求定義與規(guī)約 193.2系統(tǒng)總體設(shè)計(jì) 203.2.1系統(tǒng)結(jié)構(gòu)圖 203.2.2數(shù)據(jù)功能模塊設(shè)計(jì) 203.2.3系統(tǒng)的主要功能設(shè)計(jì) 213.2.4數(shù)據(jù)庫(kù)設(shè)計(jì) 21第4章詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 254.1投票界面模塊的設(shè)計(jì) 254.2投票項(xiàng)目模塊的設(shè)計(jì) 284.3投票結(jié)果模塊的設(shè)計(jì) 334.4用戶管理模塊的設(shè)計(jì) 374.4.1管理員登錄的設(shè)計(jì)與實(shí)現(xiàn) 374.4.2修改密碼的設(shè)計(jì)與實(shí)現(xiàn) 39結(jié)論 41致謝 42參考文獻(xiàn) 43論文附件 44一、英文原文 44二、英文翻譯 54前言隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展和普及,眾多高校,科研機(jī)構(gòu)及個(gè)人從理論與實(shí)踐兩個(gè)方面進(jìn)行了大量的研究與開(kāi)發(fā)工作,涌現(xiàn)出了很多在線投票系統(tǒng),對(duì)學(xué)院、企業(yè)的管理起到了很好的作用??傊镀毕到y(tǒng)概括起來(lái)就是要通過(guò)科學(xué)的管理手段和專業(yè)化管理技術(shù)來(lái)實(shí)現(xiàn)統(tǒng)一。在線投票系統(tǒng)應(yīng)具有的獨(dú)特的功能:其一,方便的操作。原有的手工投票管理基本上是人工操作,效率低下,缺乏方便性,在線投票管理系統(tǒng)運(yùn)用計(jì)算機(jī)和其他附加設(shè)備,不再需要手工操作,基本上是全自動(dòng)化,能夠節(jié)省人力、最大限度地利用各種寶貴的資源,大大的提高了效率。其二,友好的界面。友好的用戶界面會(huì)給人一種親切的感覺(jué),在使用起來(lái)不會(huì)覺(jué)得沉悶,效率自然也會(huì)提高了。其三,強(qiáng)大的功能,能夠滿足學(xué)校教學(xué)需要,快速簡(jiǎn)單的統(tǒng)計(jì)教學(xué)任務(wù),提高教學(xué)質(zhì)量。正是在這樣的情況下,本人在導(dǎo)師的帶領(lǐng)下完成了在線投票系統(tǒng)的開(kāi)發(fā)與實(shí)現(xiàn)。第1章編程環(huán)境及數(shù)據(jù)庫(kù)隨著各高校辦公自動(dòng)化工作的推進(jìn),投票管理自動(dòng)化也被擺上日程。通過(guò)Dreamweaver與MicrosoftOfficeAccess2003的編程環(huán)境,采用ASP代碼和數(shù)據(jù)庫(kù)開(kāi)發(fā)一個(gè)動(dòng)態(tài)的在線投票系統(tǒng)。1.1編程環(huán)境在該投票系統(tǒng)中,我使用ASP和MicrosoftOfficeAccess2003相結(jié)合的綜合開(kāi)發(fā)環(huán)境,采用ODBC作為投票系統(tǒng)與后臺(tái)數(shù)據(jù)庫(kù)的接口。投票系統(tǒng)開(kāi)發(fā)平臺(tái)是WindowsXP。開(kāi)發(fā)工具選擇的是DreamweaverMX。1.2ASP簡(jiǎn)介ASP的簡(jiǎn)稱是ActiveServerPages,目前沒(méi)有正式的中文名稱,可理解為“動(dòng)態(tài)服務(wù)器頁(yè)面”技術(shù)。ASP是目前最流行的開(kāi)放式Web服務(wù)器應(yīng)用技術(shù),它的特點(diǎn)是將腳本、超文本和強(qiáng)大的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)結(jié)合在一起,并提供了眾多的服務(wù)器組件來(lái)擴(kuò)展功能,能夠很方便地創(chuàng)建分布式和基于Web的商業(yè)化應(yīng)用程序。如果要更簡(jiǎn)單地描述ASP,可以說(shuō)ASP就是運(yùn)行在Web服務(wù)器上的動(dòng)態(tài)網(wǎng)頁(yè)。ASP程序文件也是一個(gè)標(biāo)準(zhǔn)的網(wǎng)頁(yè),一般由HTML標(biāo)記和ASP腳本代碼混雜在一起組成。ASP網(wǎng)頁(yè)程序必須先經(jīng)Web服務(wù)器的ASP解釋器解釋執(zhí)行,產(chǎn)生HTML代碼后才傳送給瀏覽器執(zhí)行顯示。1.2.1ASP的技術(shù)特點(diǎn)1、組件在ASP技術(shù)中起著核心作用要想開(kāi)發(fā)出具有實(shí)用價(jià)值的動(dòng)態(tài)Web應(yīng)用程序,ASP腳本必須與基于COM標(biāo)準(zhǔn)的組件配合使用。組件對(duì)象模型是微軟公司提出來(lái)的一種基于二進(jìn)制的軟件標(biāo)準(zhǔn),與語(yǔ)言無(wú)關(guān)。VisualBasic、VisualC++、VisualJ++等都能創(chuàng)建COM組件,在不同的語(yǔ)言實(shí)現(xiàn)的組件之間,依據(jù)COM標(biāo)準(zhǔn)可以進(jìn)行交互操作。ASP提供了10個(gè)內(nèi)置組件。每個(gè)組件中包括一個(gè)或多個(gè)對(duì)象。在使用前,組件的對(duì)象需要被實(shí)例化。ASP提供了6個(gè)內(nèi)置對(duì)象,這6個(gè)內(nèi)置對(duì)象可以被ASP腳本直接使用,不需要被實(shí)例化。除了內(nèi)置組件和對(duì)象,開(kāi)發(fā)人員還可以自行制作實(shí)現(xiàn)特殊功能的組件。2、采用ADO技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)ASP依據(jù)ADO技術(shù)訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù),其內(nèi)置的數(shù)據(jù)庫(kù)訪問(wèn)組件ADODB提供了一組優(yōu)化的訪問(wèn)數(shù)據(jù)庫(kù)專用對(duì)象集。UDA(UniversalDataAccess)是微軟公司提出的適合企業(yè)范圍并能夠高性能地訪問(wèn)各種信息(包括關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù))的數(shù)據(jù)訪問(wèn)模型。它由ODBC、OLEDB、和ADO組成?!DBC提供了對(duì)關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)的標(biāo)準(zhǔn)訪問(wèn)界面,已得到大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)的支持?!LEDB用于處理異構(gòu)平臺(tái)的關(guān)系型和非關(guān)系型信息,非關(guān)系型信息包括電子郵件、文件系統(tǒng)、文本、圖形等。它還能使用已有的ODBC驅(qū)動(dòng)訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)?!DO是以開(kāi)放數(shù)據(jù)庫(kù)連接ODBC為基礎(chǔ)的,可支持任何ODBC數(shù)據(jù)源對(duì)數(shù)據(jù)庫(kù)的操作;可以提供任何類(lèi)型數(shù)據(jù)庫(kù)與Web服務(wù)起的訪問(wèn)方式。3、支持所有腳本語(yǔ)言除了支持VBScript、JavaScript外,ASP還支持REXX、Perl等多種腳本語(yǔ)言。VBScript是ASP支持的默認(rèn)腳本語(yǔ)言。若要重新設(shè)定默認(rèn)腳本語(yǔ)言,只需在ASP程序的第一行使用命令<%@Language=...%>即可。在同一個(gè)ASP文件中,ASP腳本可以調(diào)用不同的腳本語(yǔ)言,從而發(fā)揮各種腳本語(yǔ)言的優(yōu)勢(shì)。若要在ASP程序中使用與默認(rèn)腳本語(yǔ)言不同的腳本語(yǔ)言,可以將這段語(yǔ)言放于標(biāo)志符<ScriptRunat=ServerLanguage=...>...</Script>中。1.2.2ASP對(duì)象使用基礎(chǔ)ASP之所以成為功能強(qiáng)大的服務(wù)器端程序,是因?yàn)樗鼮閃eb程序設(shè)計(jì)人員提供了一組功能強(qiáng)大的內(nèi)置對(duì)象。所謂的對(duì)象是指具有典型方法、屬性或者集合的事物。方法決定了對(duì)象的功能;屬性決定了對(duì)象的狀態(tài)。使用ASP進(jìn)行動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)時(shí),必須熟練掌握ASP的各種內(nèi)置對(duì)象。ASP提供的內(nèi)置對(duì)象如表1-1所示。對(duì)象名稱用途Application對(duì)象Application對(duì)象是所有用戶共用的對(duì)象,通過(guò)這個(gè)對(duì)象,不同的用戶間可以共享信息。在主頁(yè)計(jì)數(shù)器中常常使用Application對(duì)象來(lái)保存訪問(wèn)網(wǎng)頁(yè)的人數(shù)ASPError對(duì)象捕捉ASP錯(cuò)誤并向用戶返回詳細(xì)信息描述ObjectContext對(duì)象提交或中止有ASP腳本啟動(dòng)的事件Request對(duì)象獲取從HTML表單傳遞給服務(wù)器的參數(shù),這些參數(shù)的傳遞方式包括POST方法或GET方法、cookies(一種保存在客戶端上的,用來(lái)保存網(wǎng)站信息的文件)以及客戶端證書(shū)Response對(duì)象控制發(fā)送給用戶的信息,包括直接發(fā)送文本和HTML代碼等信息到瀏覽器、把瀏覽器當(dāng)前訪問(wèn)的網(wǎng)頁(yè)重定向到其他URL、設(shè)置cookie的值Server對(duì)象通過(guò)Server對(duì)象可以訪問(wèn)服務(wù)器上的方法和屬性。其他方法可創(chuàng)建Active組件的實(shí)例、對(duì)字符串進(jìn)行編碼、得到虛擬目錄的實(shí)際路徑、設(shè)置網(wǎng)頁(yè)的超時(shí)時(shí)間Session對(duì)象存儲(chǔ)特定用戶的某些信息。當(dāng)用戶在不同的網(wǎng)頁(yè)間跳轉(zhuǎn)時(shí),不會(huì)丟棄存儲(chǔ)在Session對(duì)象中的變量表1-1ASP內(nèi)置對(duì)象列表通過(guò)這些內(nèi)置對(duì)象,編程人員可以控制Web頁(yè)面的各個(gè)方面。例如使用Request對(duì)象能夠得到用戶輸入的數(shù)據(jù),使用Response對(duì)象能夠向?yàn)g覽器輸入數(shù)據(jù)等。1.2.3ASP的工作原理當(dāng)用戶瀏覽網(wǎng)頁(yè)時(shí),客戶端瀏覽器與Web站點(diǎn)之間進(jìn)行交互的過(guò)程如圖1-1所示。Web服務(wù)器ASP引擎*.aspASP引擎*.asp客戶端HTTP請(qǐng)求客戶端瀏覽器瀏覽器其他組件腳本引擎ADO標(biāo)準(zhǔn)HTML頁(yè)面其他組件腳本引擎ADOODBODBCDBDBDBMSDBMS圖1-1ASP工作原理當(dāng)瀏覽器向服務(wù)器請(qǐng)求發(fā)送某個(gè)“xxx.asp”時(shí),是希望服務(wù)器傳送此文件。但是,但服務(wù)器看到文件的擴(kuò)展名為.asp時(shí),就會(huì)讀取文件內(nèi)容,解釋執(zhí)行其中的VBScript程序。當(dāng)遇到基于COM標(biāo)準(zhǔn)的組件(組件本身是經(jīng)過(guò)編譯的可重用二進(jìn)制代碼)時(shí),ASP引擎將啟動(dòng)相應(yīng)組件完成指定的功能。若ASP文件含有訪問(wèn)數(shù)據(jù)庫(kù)的請(qǐng)求時(shí),ASP內(nèi)置組件ADO(ActiveXDataObject)能與數(shù)據(jù)庫(kù)連接,對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),并將訪問(wèn)結(jié)果返回服務(wù)器。最后,生成標(biāo)準(zhǔn)的HTML文件,并將生成的HTML文件傳送給瀏覽器。這樣就完成了用戶瀏覽器對(duì)服務(wù)器的訪問(wèn)。1.2.4ASP的運(yùn)行環(huán)境1、ASP運(yùn)行所需的環(huán)境·MicrosoftInternetInformationServerversion3.0/4.0onWindowsNTServer·MicrosoftPeerWebServicesVersion3.0onWindowsNTWorkstation·MicrosoftPersonalWebServeronWindows95/98也就是說(shuō)我們經(jīng)常所使用的Window95/98/2000/XP都可以運(yùn)行ASP,只需要將其設(shè)置為單機(jī)服務(wù)器就行了。歸結(jié)一點(diǎn):Window95/98,需要安裝PWS;Window2000/XP,需要安裝IIS。才能發(fā)揮其asp的作用。一般較常使用的是Window2000+IIS5和Window98+PWS,而window95+PWS和WindowXP+IIS則較少人使用。因?yàn)閃indow95已經(jīng)很少人使用這個(gè)操作系統(tǒng)了,最少都使用Window98而XP+IIS,則是XP對(duì)IIS不是完全兼容支持,有些功能配合得不夠完美,而較少人采用。我使用Window2000+IIS5這對(duì)組合,因?yàn)閃indow2000是相對(duì)比較穩(wěn)定的系統(tǒng),對(duì)于服務(wù)器網(wǎng)絡(luò)方面微軟投入得較多,比較適合做為服務(wù)使用。2、ASP運(yùn)行環(huán)境的搭建IIS的安裝和配置。Window2000Server/Window2000advanceServer都是默認(rèn)安裝的,安裝過(guò)程就不多說(shuō)了?,F(xiàn)在開(kāi)始配置IIS。開(kāi)始->控制面板->管理工具->Internet信息服務(wù)。打開(kāi)之后就到了IIS的控制臺(tái)了。點(diǎn)計(jì)算機(jī)名前面的+號(hào)展開(kāi),再點(diǎn)網(wǎng)站前在的+號(hào)展開(kāi),這時(shí)就有一個(gè)默認(rèn)網(wǎng)站,這里就是我們要配置IIS的關(guān)鍵地方了。右擊“默認(rèn)網(wǎng)站”,在彈出菜單里選擇“屬性”這時(shí)就會(huì)彈出“屬性”選頂卡。一般情況下“網(wǎng)站/常規(guī)”選項(xiàng)卡不要更改。選擇“主目錄”選項(xiàng)卡,本地路徑就是我的主目錄路徑,這里可以點(diǎn)瀏覽更改到想設(shè)置的目錄下,默認(rèn)是:X:\inetpub\wwwroot(X:表示系統(tǒng)盤(pán))。在這里還可以設(shè)置網(wǎng)站的用戶操作權(quán)限。這些設(shè)置完后就轉(zhuǎn)到“文檔”選項(xiàng)卡,首先要在“啟用默認(rèn)文檔”前面打勾,默認(rèn)是打勾的。點(diǎn)擊“添加”,可以添加默認(rèn)文檔,例如添加index.asp、index.htm、index.html等等,這是你網(wǎng)站默認(rèn)打開(kāi)的主文件名,在這里也可以進(jìn)行刪除,選擇你要?jiǎng)h除的文檔之后再點(diǎn)“刪除”,現(xiàn)在“屬性”選項(xiàng)卡基本設(shè)置好了,點(diǎn)應(yīng)用、確定就返回到IIS控制臺(tái)了。1.3數(shù)據(jù)庫(kù)選擇數(shù)據(jù)庫(kù)平臺(tái)采用的是SQLServer2000。SQLServer2000代表著下一代Microsoft.NETEnterpriseServers(企業(yè)服務(wù)器)數(shù)據(jù)庫(kù)的發(fā)展趨勢(shì),是為創(chuàng)建可伸縮電子商務(wù)、在線商務(wù)和數(shù)據(jù)倉(cāng)儲(chǔ)解決方案而設(shè)計(jì)的真正意義上的關(guān)系型數(shù)據(jù)庫(kù)管理與分析系統(tǒng)。隨著SQLServer7.0聯(lián)機(jī)分析處理(OLAP)服務(wù)的引入,SQLServer已成為頗受眾多客戶關(guān)系管理(CRM)應(yīng)用程序、商務(wù)智能(BI)應(yīng)用程序、企業(yè)資源計(jì)劃(ERP)應(yīng)用程序及其它在線商務(wù)應(yīng)用程序廠商和客戶所青睞的數(shù)據(jù)庫(kù)產(chǎn)品,而這則主要應(yīng)歸功于該產(chǎn)品在對(duì)稱多處理(SMP)硬件方面所具有的可伸縮性和較低的數(shù)據(jù)庫(kù)維護(hù)需求。1.4數(shù)據(jù)庫(kù)接口的實(shí)現(xiàn)在ASP中,提供了多種數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)——ODBC、ADO、OLEDB等,這些技術(shù)各有自己的特點(diǎn)。該項(xiàng)目開(kāi)發(fā)中采用了OLEDB數(shù)據(jù)庫(kù)接口技術(shù)。OLEDB是一種底層數(shù)據(jù)訪問(wèn)界面接口。是用于第三方驅(qū)動(dòng)程序商家開(kāi)發(fā)輸出數(shù)據(jù)源到ADO-技術(shù)的應(yīng)用程序,由于OLEDB是基于COM接口的技術(shù),使用這種技術(shù)可以直接對(duì)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序進(jìn)行訪問(wèn),從而大大提供了訪問(wèn)速度[2]。第2章數(shù)據(jù)建模2.1數(shù)據(jù)庫(kù)建模方法數(shù)據(jù)建模采用圖形化方法來(lái)描述企業(yè)的信息需求和業(yè)務(wù)規(guī)則,也就是建立邏輯數(shù)據(jù)模型(以下簡(jiǎn)稱邏輯模型),其作用有兩個(gè),一是與用戶進(jìn)行溝通,明確需求;另一個(gè)作用是作為數(shù)據(jù)庫(kù)物理設(shè)計(jì)的基礎(chǔ),以保證物理數(shù)據(jù)模型充分滿足應(yīng)用要求,并保證數(shù)據(jù)的一致性、完整性。本文簡(jiǎn)要介紹IDEF1X方法。IDEF1X是由美國(guó)空軍開(kāi)發(fā)的基于關(guān)系數(shù)據(jù)庫(kù)理論的數(shù)據(jù)建模方法,用以實(shí)現(xiàn)關(guān)系數(shù)據(jù)庫(kù)的邏輯數(shù)據(jù)結(jié)構(gòu)。目前已廣泛應(yīng)用于政府、工業(yè)和商業(yè)領(lǐng)域,支持廣泛企業(yè)應(yīng)用。

IDEF1X模型的基本結(jié)構(gòu)為:·實(shí)體(如人、地點(diǎn)、概念、事件等)用方框表示;·實(shí)體之間的關(guān)系(聯(lián)系),用方框之間的連線表示;·實(shí)體的屬性,用方框內(nèi)的屬性名稱來(lái)表示。(1)建立邏輯模型邏輯模型的建立由用戶需求驅(qū)動(dòng),建立邏輯模型的過(guò)程首先是分析信息需求、明確業(yè)務(wù)規(guī)則,它是人腦對(duì)現(xiàn)實(shí)世界進(jìn)行抽象和加工的過(guò)程。(2)實(shí)施階段:第一階段:項(xiàng)目規(guī)劃第二階段:開(kāi)發(fā)定義實(shí)體第三階段:定義關(guān)系第四階段:定義鍵第五階段:定義屬性(3)建立物理模型對(duì)一個(gè)給定的邏輯模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(即物理模型)的過(guò)程,稱為數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。所謂數(shù)據(jù)庫(kù)的物理結(jié)構(gòu)主要是指數(shù)據(jù)庫(kù)在物理設(shè)備上的存儲(chǔ)結(jié)構(gòu)和存取方法,它與除了考慮邏輯的完美性(如第三范式)外,還必須兼顧物理環(huán)境的要求和性能的優(yōu)化,如機(jī)器的性能、事務(wù)的種類(lèi)、數(shù)據(jù)庫(kù)管理系統(tǒng)的功能等。邏輯模型轉(zhuǎn)變?yōu)槲锢砟P桶ㄒ韵聨讉€(gè)步驟:①實(shí)體名(Entity)轉(zhuǎn)變?yōu)楸砻?Table)②屬性名(Attribute)轉(zhuǎn)換為列名(Column),確定列的屬性(Property)③明確分類(lèi)關(guān)系在物理模型中的實(shí)現(xiàn)方法④實(shí)現(xiàn)業(yè)務(wù)規(guī)則數(shù)據(jù)模型轉(zhuǎn)變?yōu)镾QL命令,物理模型必須對(duì)列的屬性進(jìn)行明確的定義,包括:列名,數(shù)據(jù)類(lèi)型(與特定數(shù)據(jù)庫(kù)管理系統(tǒng)有關(guān)),長(zhǎng)度,能否為空值,有效性規(guī)則,缺省值等。物理模型確定以后,可以進(jìn)一步確定數(shù)據(jù)的存放位置和存儲(chǔ)空間的分配,最后生成定義數(shù)據(jù)庫(kù)的SQL命令。2.2程序開(kāi)發(fā)軟件MacromediaDreamweaverMX應(yīng)用所學(xué)的ASP語(yǔ)言,開(kāi)發(fā)一個(gè)在線投票系統(tǒng)。一個(gè)可視化的網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站管理工具,支持最新的Web技術(shù),包含HTML檢查、HTML格式控制、HTML格式化選項(xiàng)、HomeSite/BBEdit捆綁、可視化網(wǎng)頁(yè)設(shè)計(jì)、圖像編輯、全局查找替換、全FTP功能、處理Flash和Shockwave等富媒體格式和動(dòng)態(tài)HTML、基于團(tuán)隊(duì)的Web創(chuàng)作。在編輯上你可以選擇可視化方式或者你喜歡的源碼編輯方式。DreamweaverMX2004的十大新特性:動(dòng)態(tài)跨瀏覽器驗(yàn)證:自動(dòng)檢測(cè)標(biāo)簽和CSS規(guī)則來(lái)適應(yīng)所有主流瀏覽器!②.更強(qiáng)大的CSS支持!③.內(nèi)建的圖形編輯引擎:修剪,改變大小,尺寸,旋轉(zhuǎn)角度,調(diào)節(jié)明暗度都不需要離開(kāi)Dreamweaver環(huán)境,因?yàn)樗旧砑闪薋W的基本圖形編輯技術(shù).(這一點(diǎn)有模仿FrontPage的嫌疑,但這個(gè)功能確實(shí)很實(shí)用)!④.安全FTP:完全加密傳輸保證文件和帳號(hào)信息的安全!⑤.增強(qiáng)對(duì)當(dāng)今技術(shù)的支持:支持當(dāng)今主流的開(kāi)放環(huán)境:ColdFusion,J2EE,PHP,.NET,和其他主流的服務(wù)器技術(shù).Dreamweaver現(xiàn)在加入了XML命名空間支持,ASP.NET表單控件對(duì)象,新的參考書(shū)內(nèi)容和新的PHP服務(wù)器端行為!⑥.無(wú)縫整合外部文件和代碼:直接將Word和Excel文檔復(fù)制和粘貼到Dreamweaver中,會(huì)保留字體,顏色,CSS樣式表信息.使用,使用系統(tǒng)支持的編碼保存任何字體,包括雙字節(jié)字符集.⑦.緊密整合MM的其他工具:加強(qiáng)了和MM其他幾款產(chǎn)品的協(xié)同工作能力.例如:你可以通過(guò)DW直接設(shè)置Flash組件的參數(shù).⑧.基本支持改良:插入條,表格工具都有改進(jìn)!⑨.增強(qiáng)代碼編寫(xiě)工具:編輯代碼更省時(shí),例如右鍵編寫(xiě)代碼工具,增強(qiáng)的查找和替換,高效的屬性面板.⑩.改進(jìn)的設(shè)計(jì)開(kāi)放環(huán)境:一個(gè)改良的用戶界面,更高的實(shí)用性,非常親切和有邏輯,讓你快速找到你想要的東西,一個(gè)新的開(kāi)始屏幕讓你快速訪問(wèn)最近的文件和教程資源.本文主要運(yùn)用Visio2003繪制了系統(tǒng)UML模型圖。其主要系統(tǒng)UML模型圖有:圖2-1投票系統(tǒng)用例圖圖2-2投票管理用例圖圖2-3投票系統(tǒng)流程圖第3章需求分析與總體設(shè)計(jì)3.1需求分析3.1.1需求的提取前面已經(jīng)闡述了在線投票系統(tǒng)在高校教學(xué)管理的重要性。目前以重慶郵電大學(xué)移通學(xué)院為例,移通學(xué)院每學(xué)期期末都會(huì)對(duì)開(kāi)設(shè)新課程進(jìn)行投票統(tǒng)計(jì),邀請(qǐng)學(xué)生為各個(gè)課程在線投票統(tǒng)計(jì)。在線投票系統(tǒng)需要滿足的條件:(1)系統(tǒng)自動(dòng)把投票結(jié)果轉(zhuǎn)換為百分比顯示。(2)投票管理員可以對(duì)投票界面、投票選項(xiàng)、3.1.2需求定義與規(guī)約通過(guò)一個(gè)在線投票系統(tǒng),使管理人員能夠根據(jù)學(xué)院狀況,列出投票項(xiàng)目,在較短時(shí)間內(nèi)、以較少精力獲得一個(gè)比較實(shí)用的數(shù)據(jù),從而使投票工作系統(tǒng)化、規(guī)范化、自動(dòng)化,提高辦公效率。在線投票系統(tǒng)是移通學(xué)院教務(wù)管理系統(tǒng)的一個(gè)子系統(tǒng),教務(wù)管理系統(tǒng)包括:教學(xué)任務(wù)的下發(fā)、課表的編排、網(wǎng)上選課、學(xué)生成績(jī)的錄入以及學(xué)籍管理等部分。在線投票系統(tǒng)開(kāi)發(fā)應(yīng)遵循以下要求:(1)盡量采用現(xiàn)有軟硬件環(huán)境及先進(jìn)的系統(tǒng)開(kāi)發(fā)方案,從而達(dá)到充分利用現(xiàn)有資源,提高系統(tǒng)開(kāi)發(fā)水平和應(yīng)用效果的目的。(2)系統(tǒng)應(yīng)具有可擴(kuò)展、可復(fù)用的特點(diǎn),能與投票系統(tǒng)接軌,數(shù)據(jù)庫(kù)的設(shè)計(jì)應(yīng)該具有通用性。(3)系統(tǒng)采用模塊化程序設(shè)計(jì)方法,既便于系統(tǒng)功能的各種組合和修改,又便于系統(tǒng)維護(hù)人員的調(diào)試與修改維護(hù)。(4)系統(tǒng)應(yīng)具備數(shù)據(jù)庫(kù)維護(hù)功能,及時(shí)根據(jù)需要進(jìn)行數(shù)據(jù)的添加、刪除、修改等工作。3.2系統(tǒng)總體設(shè)計(jì)3.2.1系統(tǒng)結(jié)構(gòu)圖系統(tǒng)主要有:界面模塊、數(shù)據(jù)庫(kù)模塊、投票統(tǒng)計(jì)模塊三部分組成,系統(tǒng)結(jié)構(gòu)如圖3-1所示:界面模塊調(diào)用投票統(tǒng)計(jì)模塊顯示數(shù)據(jù)數(shù)據(jù)庫(kù)模塊插入數(shù)據(jù)查詢數(shù)據(jù)插入修改數(shù)據(jù)界面模塊調(diào)用投票統(tǒng)計(jì)模塊顯示數(shù)據(jù)數(shù)據(jù)庫(kù)模塊插入數(shù)據(jù)查詢數(shù)據(jù)插入修改數(shù)據(jù)圖3-1系統(tǒng)結(jié)構(gòu)圖界面模塊負(fù)責(zé)系統(tǒng)與用戶的交互,它是系統(tǒng)與用戶的接口部分,是實(shí)現(xiàn)人機(jī)交互功能的主要部分,它能調(diào)用數(shù)據(jù)庫(kù)的入口函數(shù),向數(shù)據(jù)庫(kù)插入、修改、顯示數(shù)據(jù)庫(kù)內(nèi)容,能調(diào)用投票統(tǒng)計(jì)模塊,從而根據(jù)投票數(shù)據(jù)統(tǒng)計(jì)投票百分比。投票統(tǒng)計(jì)模塊能根據(jù)一定的算法,排出合理的投票數(shù)量。它能調(diào)用數(shù)據(jù)庫(kù)函數(shù)調(diào)用數(shù)據(jù)庫(kù)數(shù)據(jù),經(jīng)過(guò)運(yùn)算后,將新數(shù)據(jù)存入數(shù)據(jù)庫(kù)的相應(yīng)表中。數(shù)據(jù)庫(kù)模塊則定義數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫(kù)的接口,定義數(shù)據(jù)庫(kù)表的結(jié)構(gòu),自動(dòng)完成對(duì)各種信息的輸入、查詢、修改及系統(tǒng)用戶管理、系統(tǒng)用戶權(quán)限管理等。3.2.2數(shù)據(jù)功能模塊設(shè)計(jì)根據(jù)系統(tǒng)分析的結(jié)果,在系統(tǒng)功能分析的基礎(chǔ)上,考慮ASP程序編制特點(diǎn),得到如圖3-2所示的系統(tǒng)功能模塊圖。在線投票系統(tǒng)在線投票系統(tǒng)投票項(xiàng)目投票結(jié)果權(quán)限管理投票項(xiàng)目投票結(jié)果權(quán)限管理編輯刪除添加修改投票結(jié)果投票人數(shù)帳戶管理用戶登陸編輯刪除添加修改投票結(jié)果投票人數(shù)帳戶管理用戶登陸圖3-2系統(tǒng)功能模塊圖3.2.3系統(tǒng)的主要功能設(shè)計(jì)在線投票系統(tǒng)的主要功能:投票結(jié)果的查詢:主要是實(shí)現(xiàn)投票人員從數(shù)據(jù)庫(kù)對(duì)各投票結(jié)果的查詢。投票項(xiàng)目管理:主要是實(shí)現(xiàn)投票人員對(duì)各個(gè)投票項(xiàng)目進(jìn)行編輯,生成。3.2.4數(shù)據(jù)庫(kù)設(shè)計(jì)1、數(shù)據(jù)庫(kù)需求分析在線投票系統(tǒng)的數(shù)據(jù)項(xiàng)目是依據(jù)學(xué)院開(kāi)設(shè)新課程制定的。根據(jù)系統(tǒng)開(kāi)發(fā)的要求,從學(xué)院開(kāi)設(shè)新課程中選取適當(dāng)?shù)捻?xiàng)目作為系統(tǒng)數(shù)據(jù)庫(kù)的數(shù)據(jù)參數(shù)。在實(shí)際的工作中,在線投票系統(tǒng)的項(xiàng)目主要是根據(jù)學(xué)院任務(wù)來(lái)制定展開(kāi),因此與教學(xué)有相關(guān)的一些信息,如開(kāi)設(shè)新課程等,都是學(xué)院需要統(tǒng)計(jì)的項(xiàng)目。結(jié)合學(xué)院開(kāi)設(shè)課程任務(wù)選取了以下項(xiàng)目作為系統(tǒng)數(shù)據(jù)庫(kù)的數(shù)據(jù)參數(shù):(1)開(kāi)設(shè)游泳課。讓投票者根據(jù)網(wǎng)站界面進(jìn)行投票。(2)開(kāi)設(shè)就業(yè)指導(dǎo)課。讓投票者根據(jù)網(wǎng)站內(nèi)容進(jìn)行投票(3)開(kāi)設(shè)心理咨詢室。讓投票者根據(jù)網(wǎng)站內(nèi)容進(jìn)行投票(4)開(kāi)設(shè)演講課。主要分為討論、解說(shuō)、演講等。(5)開(kāi)設(shè)課外興趣小組。根據(jù)不同學(xué)生開(kāi)設(shè)。(6)投票系統(tǒng)更新。對(duì)各個(gè)選項(xiàng)能在第一時(shí)間內(nèi)更新。2、數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)在系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)中,先要對(duì)系統(tǒng)分析得到的數(shù)據(jù)圖中的數(shù)據(jù)存儲(chǔ)進(jìn)行分析,分析各數(shù)據(jù)存儲(chǔ)之間的關(guān)系,然后得出系統(tǒng)的關(guān)系模式。本系統(tǒng)采用了實(shí)體-關(guān)系圖中的相應(yīng)符號(hào)來(lái)描述系統(tǒng)的概念模型。在需求分析的基礎(chǔ)上,設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系,為邏輯結(jié)構(gòu)的設(shè)計(jì)打下基礎(chǔ)。根據(jù)上面的設(shè)計(jì)出的實(shí)體有:投票選項(xiàng)實(shí)體、投票結(jié)果實(shí)體。投票選項(xiàng)實(shí)體屬性具體描述如圖3-3所示。投票選項(xiàng)部分投票選項(xiàng)部分投票系統(tǒng)更新課外興趣小組開(kāi)設(shè)演講課開(kāi)設(shè)投票系統(tǒng)更新課外興趣小組開(kāi)設(shè)演講課開(kāi)設(shè)心理咨詢就業(yè)指導(dǎo)課開(kāi)設(shè)游泳課圖3-3課程實(shí)體投票結(jié)果實(shí)體的屬性包括各個(gè)項(xiàng)目投票結(jié)果,各個(gè)項(xiàng)目投票人數(shù),各個(gè)項(xiàng)目投票所占百分比。3、數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)的基本關(guān)系圖,轉(zhuǎn)換為與選用的具體相關(guān)的機(jī)器上的數(shù)據(jù)庫(kù)管理系統(tǒng)所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。在上面實(shí)體之間的關(guān)系的基礎(chǔ)上,形成數(shù)據(jù)庫(kù)中表格以及各個(gè)表格之間的關(guān)系。4、數(shù)據(jù)庫(kù)物理結(jié)構(gòu)設(shè)計(jì)明確了以上所要建立的數(shù)據(jù)庫(kù)參數(shù),便可建立關(guān)系型數(shù)據(jù)庫(kù)。具體的結(jié)構(gòu)是把數(shù)據(jù)表示成若干二維關(guān)系的表,通過(guò)建立表之間的關(guān)系來(lái)定義結(jié)構(gòu)。在這種二維表中,每一列為一個(gè)字段,對(duì)應(yīng)著表格中的數(shù)據(jù)項(xiàng)。每個(gè)項(xiàng)目的名稱為字段名。每一行為一條記錄,記錄中的每個(gè)字段的取值為字段值,記錄是字段值的集合。記錄中的數(shù)據(jù)隨著每一行記錄的不同而變化。在線投票系統(tǒng)數(shù)據(jù)庫(kù)中各個(gè)表格的設(shè)計(jì)結(jié)果如下面的幾個(gè)表格所示。各個(gè)表格表示數(shù)據(jù)庫(kù)中的一個(gè)表。表3-1為創(chuàng)建投票項(xiàng)目信息表voteitem的信息。字段名稱數(shù)據(jù)類(lèi)型大小是否允許為空說(shuō)明IDInt4否項(xiàng)目ID號(hào)ItemVarchar(50)8是項(xiàng)目名稱VoteCountint150否投票數(shù)量,缺省為0表3-1VoteItem的結(jié)構(gòu)字段名稱數(shù)據(jù)類(lèi)型大小是否允許為空說(shuō)明IPvarchar(20)4否IP地址表3-2VoteIP的結(jié)構(gòu)參數(shù)Soperate的值說(shuō)明null無(wú)操作add添加記錄(單擊“添加”按鈕時(shí)產(chǎn)生)update修改記錄(單擊記錄后的“修改”鏈接時(shí)產(chǎn)生)edit修改記錄(單擊“修改”按鈕時(shí)產(chǎn)生)delete刪除記錄(單擊“刪除”按鈕時(shí)產(chǎn)生)表3-3參數(shù)Soperate狀態(tài)值的說(shuō)明一般由多個(gè)用戶來(lái)管理在線投票系統(tǒng),因此需要對(duì)每個(gè)用戶分配一定的權(quán)限,實(shí)現(xiàn)信息的共享與安全。因此需要在數(shù)據(jù)庫(kù)中建立一個(gè)用戶口令表來(lái)管理使用在線投票系統(tǒng)的用戶。5、數(shù)據(jù)庫(kù)結(jié)構(gòu)的實(shí)現(xiàn)在需求分析,概念結(jié)構(gòu)設(shè)計(jì)基礎(chǔ)上得到數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)以后,就可以在數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)該邏輯結(jié)構(gòu)。本系統(tǒng)中采用了MicrosoftOfficeAccess2003數(shù)據(jù)庫(kù)管理系統(tǒng)。使用MicrosoftOfficeAccess2003創(chuàng)建前面所定義的各個(gè)數(shù)據(jù)表。第4章詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)運(yùn)用ASP和MicrosoftOfficeAccess2003相結(jié)合開(kāi)發(fā)投票系統(tǒng),投票項(xiàng)目依據(jù)學(xué)院需要開(kāi)設(shè)哪些新課程來(lái)制作,通過(guò)學(xué)生的投票結(jié)果統(tǒng)計(jì)確定下學(xué)期開(kāi)設(shè)的新課程。以下就是設(shè)計(jì)投票系統(tǒng)步驟4.1投票界面模塊的設(shè)計(jì)投票界面模塊的功能是面向老師和學(xué)生的,因此不需要權(quán)限核實(shí),進(jìn)入系統(tǒng)頁(yè)面后,點(diǎn)擊“投票選項(xiàng)”即可進(jìn)入。1、設(shè)計(jì)投票界面表單投票項(xiàng)目表單由3部分組成:·投票選項(xiàng)列表框——用來(lái)選擇相應(yīng)項(xiàng)目進(jìn)行投票。·投票按鈕。相應(yīng)代碼如下:如果沒(méi)有投票,則變量isvoted為1,可以投票。投票按鈕代碼如下:<inputclass=Submittype=submitvalue='投票'name="submitonclick='returnSelectChk();'>這是個(gè)可以選擇多項(xiàng)的投票系統(tǒng),在函數(shù)SelectChk中取得被投票項(xiàng)目信息,并提交//取得被投票項(xiàng)目的編號(hào),打開(kāi)新窗口,查看投票結(jié)果functionSelectChk(){ vars=false; vardeptid,n=0; varstrid,strurl; varnn=self.document.all.item("poster"); varj; for(j=0;j<nn.length;j++) { if(self.document.all.item("poster",j).checked) { n=n+1; s=true; deptid=self.document.all.item("poster",j).id+""; if(n==1) { strid=deptid; } else { strid=strid+","+deptid; } } } strurl="postvote.asp?cid="+strid; if(!s) { alert("請(qǐng)選擇投票項(xiàng)目!"); returnfalse; } window.open(strurl,"newwin","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=400,height=300"); returnfalse; }functionnewwin(url){varoth="toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,left=200,top=200";oth=oth+",width=400,height=300";varnewwin=window.open(url,"newwin",oth);newwin.focus();returnfalse;圖4-2投票界面2、根據(jù)選擇查詢數(shù)據(jù)庫(kù)下面是實(shí)現(xiàn)該項(xiàng)功能的代碼:和數(shù)據(jù)庫(kù)建立連接的代碼如下:<%'Server對(duì)象的CreateObject方法建立Connection對(duì)象SetConn=Server.CreateObject("ADODB.Connection")Conn.ConnectionString="driver={SQLServer};server=Ntserver;UID=sa;PWD=sa;Database=Vote"Conn.Open%>這段代碼使用Open方法連接數(shù)據(jù)庫(kù)。USEVoteGOCREATETABLEVoteItem(Id intPrimaryKeyIDENTITY,Item varchar(50)NOTNULL,VoteCount intDEFAULT0)創(chuàng)建表voteItem的腳本文件USEVoteGOCREATETABLEVoteIP(IP varchar(20))GO表VoteIP用來(lái)保存已經(jīng)投票的IP地址<% Dimrs,n n=0 Setrs=Server.CreateObject("ADODB.RecordSet") sql="Select*FromVoteItemOrderByid" rs.Opensql,Conn,1,1 Ifrs.BofORrs.EofThen Response.Write"<tr><tdcolspan=3align=center><fontstyle='COLOR:Red'>目前還沒(méi)有投票項(xiàng)目。</font></td></tr></table>" Else DoWhileNotrs.Eof n=n+1%>從數(shù)據(jù)庫(kù)中提取投票項(xiàng)目信息4.2投票項(xiàng)目模塊的設(shè)計(jì)投票項(xiàng)目模塊的功能是進(jìn)行投票選項(xiàng)的添加,修改,刪除??梢愿鶕?jù)每次需要投票的內(nèi)容進(jìn)行修改,添加,刪除。1、驗(yàn)證用戶是否登錄因?yàn)橹挥泄芾韱T用戶才有修改項(xiàng)目的權(quán)利,包括添加、修改、刪除,所以系統(tǒng)需要驗(yàn)證想要修改投票項(xiàng)目的用戶是否為管理員用戶。通過(guò)驗(yàn)證用戶的Session對(duì)象的logined變量的值是否為1。如果Session對(duì)象的logined變量的值不為1,則跳轉(zhuǎn)到用戶登錄頁(yè)面(admin.asp)。代碼如下:<%IfSession("logined")<>1ThenResponse.Redirect"admin.asp"EndIf%>2、添加投票項(xiàng)目的設(shè)計(jì)與實(shí)現(xiàn)添加課程由以下幾部分組成:·選擇按鈕框——用來(lái)選擇投票選項(xiàng)名稱?!涡形谋究颉脕?lái)輸入投票名稱。實(shí)現(xiàn)功能的關(guān)鍵代碼如下:<% DimSoperate Soperate=Request.QueryString("oper")'操作標(biāo)記 Operid=Request.QueryString("id")'項(xiàng)目編號(hào)IfSoperate="add"Then'添加項(xiàng)目 newTitle=Request("txttitle") '判斷數(shù)據(jù)庫(kù)中是否存在此類(lèi)別 sql="Select*fromVoteItemWhereItem='"&newTitle&"'" SetrsInsert=Conn.Execute(sql) IfNOTrsInsert.EofThen Response.Write"已經(jīng)存在此投票項(xiàng)目,添加失敗!" Else sql="InsertintoVoteItem(Item)values('"&newTitle&"')" Conn.Execute(sql) Response.Write"投票項(xiàng)目已經(jīng)成功添加!" EndIf ElseIfSoperate="edit"Then'修改項(xiàng)目 newTitle=Request("txttitle") orgTitle=Request("sOrgTitle") '如果新類(lèi)別名稱和舊的不同則執(zhí)行 IfnewTitle<>orgTitleThen '判斷數(shù)據(jù)庫(kù)中是否存在此類(lèi)別 sql="Select*fromVoteItemwhereItem='"&newTitle&"'" SetrsInsert=Conn.Execute(sql) IfNOTrsInsert.EofThen Response.Write"已經(jīng)存在此投票項(xiàng)目,添加失敗!" Else Conn.Execute("UpdateVoteItemsetItem='"&newTitle&"'whereId="&cint(Operid)) Response.Write"投票項(xiàng)目已經(jīng)成功修改!" EndIf EndIf ElseIfSoperate="delete"Then'刪除項(xiàng)目sqldelt="DeletefromVoteItemWhereIdIN("&Cstr(Operid)&")" Conn.Execute(sqldelt) Response.Write"投票項(xiàng)目已經(jīng)成功刪除!" EndIf%>刪除項(xiàng)目functionsltAll(){ varnn=self.document.all.item("dept"); for(j=0;j<nn.length;j++) { self.document.all.item("dept",j).checked=true; }}functionsltNull(){ varnn=self.document.all.item("dept"); for(j=0;j<nn.length;j++) { self.document.all.item("dept",j).checked=false; }}得到要?jiǎng)h除的項(xiàng)目的編號(hào),然后刪除項(xiàng)目functionSelectChk(){ vars=false; vardeptid,n=0; varstrid,strurl; varnn=self.document.all.item("dept"); for(j=0;j<nn.length;j++) { if(self.document.all.item("dept",j).checked) { n=n+1; s=true; deptid=self.document.all.item("dept",j).id+""; if(n==1) { strid=deptid; } else { strid=strid+","+deptid; } } } strurl="AddItem.asp?Oper=delete&id="+strid; if(!s) { alert("請(qǐng)選擇要?jiǎng)h除的投票項(xiàng)目!"); returnfalse; } if(confirm("你確定要?jiǎng)h除這些投票項(xiàng)目嗎?")){ form1.action=strurl; form1.submit(); }}圖4-3是修改投票選項(xiàng)頁(yè)面圖4-4是添加投票選項(xiàng)頁(yè)面4.3投票結(jié)果模塊的設(shè)計(jì)投票結(jié)果模塊設(shè)計(jì)的好壞將直接對(duì)應(yīng)用系統(tǒng)的效率以及系統(tǒng)實(shí)現(xiàn)產(chǎn)生一定影響,較好的投票結(jié)果模塊設(shè)計(jì)會(huì)減少數(shù)管理人員的操作時(shí)間,提高操作數(shù)據(jù)的完整性和一致性,使投票結(jié)果得到準(zhǔn)確而又快速的下發(fā)。投票數(shù)百分比的計(jì)算代碼如下<%Dimimgvote'取得這批投票總數(shù) sql="SelectSum(voteCount)AStlFromVoteItem" Setvoters=Conn.Execute(sql) IfNOTvoters.EOFThen total=voters("tl") EndIf Setvoters=Nothing '取得每個(gè)投票項(xiàng)目信息 sql="Select*FromVoteItemOrderById" Setvoters=Conn.Execute(sql) DoWhileNOTvoters.EOF Iftotal=0Then itotal=1 Else itotal=total EndIf '計(jì)算每個(gè)投票項(xiàng)目百分比圖片長(zhǎng)度 imgvote=FormatNumber(voters("voteCount")/itotal,2)*170%> <tr><tdbgcolor="#FFFFFF"><%=voters("item")%></td> <tdcolspan="2"bgcolor="#FFFFFF"> <imgsrc=images/bar1.gifwidth=<%=imgvote%>height=10><fontstyle="font:7pt"face="Verdana"> <%=Cstr(FormatNumber(voters("voteCount")/itotal*100,0))%>%</font></td><tdbgcolor="#FFFFFF"align="center"><%=voters("voteCount")%></td></tr><% voters.MoveNext Loop%><%'收集需要統(tǒng)計(jì)的信息theurl="http://"&Request.ServerVariables("http_host")&Request.ServerVariables("url") vSoft=Request.ServerVariables("HTTP_USER_AGENT") 'IIS版本 vRef=Request.servervariables("HTTP_REFERER") '訪問(wèn)前的網(wǎng)址 '取得客戶端的真實(shí)IP地址 vIP=Request.ServerVariables("HTTP_X_FORWARDED_FOR") IfvIP=""Then vIP=Request.ServerVariables("REMOTE_ADDR") EndIf vExplorer=Browser(vSoft) '瀏覽器 vOS=System(vSoft) '操作系統(tǒng) vDateTime=DateTimeFormat(now(),1)&""&DateTimeformat(now(),6)'訪問(wèn)的時(shí)間 IfvRef=""Then vRef="直接輸入或書(shū)簽導(dǎo)入" EndIf%>圖4-5重復(fù)投票提示框圖4-6投票結(jié)果百分比顯示生成最終結(jié)果投票結(jié)果運(yùn)算投票選項(xiàng)生成最終結(jié)果投票結(jié)果運(yùn)算投票選項(xiàng)編輯編輯編輯、添加、編輯、添加、刪除圖4-7投票生成圖4.4用戶管理模塊的設(shè)計(jì)4.4.1管理員登錄的設(shè)計(jì)與實(shí)現(xiàn)1、設(shè)計(jì)管理員登錄表單管理員登錄表單由以下3部分組成[1]:·文本框——用來(lái)輸入用戶名。·密碼框——用來(lái)輸入密碼?!ぬ峤缓椭靥畎粹o。2、驗(yàn)證管理員的用戶和密碼驗(yàn)證管理員的用戶和密碼的步驟如下:使用Request對(duì)象的Form集合得到用戶輸入的用戶名和密碼代碼如下:<%dimuser_id,user_passworduser_id=request("user_id")user_password=request("user_password")%>建立數(shù)據(jù)庫(kù)連接,代碼與前面連接數(shù)據(jù)庫(kù)的代碼相同。查詢?cè)跀?shù)據(jù)庫(kù)中是否存在用戶輸入的用戶名。要判斷數(shù)據(jù)庫(kù)中是否存在用戶輸入的用戶名,可以在表“classuser”中統(tǒng)計(jì)user_id字段的內(nèi)容與用戶輸入的用戶名相匹配的記錄總數(shù),如果為0,表示用戶名錯(cuò)誤,提示用戶重新輸:如果不為0,說(shuō)明用戶名存在,然后進(jìn)入驗(yàn)證密碼步驟。實(shí)現(xiàn)代碼如下:<%cmd.CommandText="SelectCOUNT(*)FromclassuserWhereuser_idlike'"+user_id+"'"Setrs=cmd.ExecuteIfrs(0).ValueThenResponse.Write"<P>無(wú)效的用戶

溫馨提示

  • 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)論