網(wǎng)絡(luò)投票管理系統(tǒng)畢業(yè)設(shè)計(jì)_第1頁(yè)
網(wǎng)絡(luò)投票管理系統(tǒng)畢業(yè)設(shè)計(jì)_第2頁(yè)
網(wǎng)絡(luò)投票管理系統(tǒng)畢業(yè)設(shè)計(jì)_第3頁(yè)
網(wǎng)絡(luò)投票管理系統(tǒng)畢業(yè)設(shè)計(jì)_第4頁(yè)
網(wǎng)絡(luò)投票管理系統(tǒng)畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、網(wǎng)絡(luò)投票管理系統(tǒng)摘要:隨著信息化技術(shù)的發(fā)展,網(wǎng)絡(luò)投票也需要一套有先進(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)越重要的作用。本文采用jsp開(kāi)發(fā)語(yǔ)言和sql數(shù)據(jù)庫(kù)開(kāi)發(fā)了網(wǎng)絡(luò)投票管理系統(tǒng)解決了管理人員的煩瑣事務(wù),達(dá)到了無(wú)紙化的調(diào)查問(wèn)卷的替代效果。其系統(tǒng)的主要特點(diǎn)有:高度可用性,該系統(tǒng)擁有前臺(tái)展示的功能,系統(tǒng)前臺(tái)用戶(hù)可以進(jìn)行投票和查看投票結(jié)果,支持后臺(tái)管理,投票項(xiàng)目及投票選項(xiàng)的管理(增加和刪除投票主題)及維護(hù)功能;實(shí)現(xiàn)界面友好性:交互界面美觀、友好、快捷,能給出及時(shí)

2、的反饋。關(guān)鍵詞:jsp;投票;數(shù)據(jù)庫(kù)internet voting management systemabstract: with the development of information technology, internet voting also need a system with the advanced management mode, as the goal and improving the existing voting management level. with improvement of science and technology, its powerful

3、functions in computer science plays an increasingly important role on various fields of society. in this paper, using jsp programming language and sql database the internet voting system is developed to solve the tedious affairs management, as the substitution of no survey paper. the main feature of

4、 the system are: high availability. the system has a front display function. the user can vote and view the voting results.and it supports the backstage management, voting and polling options management (add and delete vote-topic) and maintenance function. it has the friendly interface: interface be

5、autiful, friendly, fast, can give timely feedback.keywords: jsp; vote; database目 錄1 緒論11.1 研究意義11.2 可行性分析11.2.1 技術(shù)可行性11.2.2 經(jīng)濟(jì)可行性11.2.3 操作可行性22 基礎(chǔ)理論知識(shí)22.1 mysql數(shù)據(jù)庫(kù)簡(jiǎn)介22.2 jsp編程語(yǔ)言32.3 sql語(yǔ)句32.4 數(shù)據(jù)庫(kù)系統(tǒng)43 需求分析53.1 功能需求53.2 系統(tǒng)主要特色53.3 模塊功能需求53.4 性能需求63.5 開(kāi)發(fā)流程63.6 數(shù)據(jù)流圖64 總體設(shè)計(jì)74.1 基本設(shè)計(jì)概念和系統(tǒng)總流程圖;74.2 系統(tǒng)功能邏輯結(jié)

6、構(gòu)74.3 系統(tǒng)功能模塊的設(shè)計(jì)94.4 數(shù)據(jù)庫(kù)的設(shè)計(jì)95 系統(tǒng)開(kāi)發(fā)95.1 數(shù)據(jù)庫(kù)95.1.1 創(chuàng)建數(shù)據(jù)庫(kù)95.1.2 創(chuàng)建表105.1.3 連接數(shù)據(jù)庫(kù)105.2 功能的實(shí)現(xiàn)125.3 問(wèn)題及解決136 運(yùn)行部分136.1 系統(tǒng)的安裝136.2 系統(tǒng)的使用14結(jié)論25致謝26參考文獻(xiàn)271 緒論1.1 研究意義隨著internet的發(fā)展,世界網(wǎng)民的數(shù)量急劇增加,社會(huì)的信息化強(qiáng)度增強(qiáng),企業(yè)競(jìng)爭(zhēng)之激烈,故對(duì)市場(chǎng)信息的掌握范圍不僅僅是周邊的一些信息,而應(yīng)把范圍擴(kuò)展到全國(guó),甚至全世界,internet恰恰是實(shí)現(xiàn)這目標(biāo)的有利工具。對(duì)于新產(chǎn)品,新觀點(diǎn)的調(diào)查范圍應(yīng)該更廣泛,消息應(yīng)該及時(shí)反饋給企業(yè)單位,故一個(gè)

7、網(wǎng)上網(wǎng)絡(luò)投票管理系統(tǒng)應(yīng)允而生,它正好充分滿(mǎn)足客戶(hù)的需求,信息反饋的范圍擴(kuò)大,人力資源的節(jié)省,從而使得企業(yè)在競(jìng)爭(zhēng)激烈的市場(chǎng)中擁有更強(qiáng)大的資本。開(kāi)發(fā)此投票系統(tǒng)是為了更好的把市場(chǎng)的信息更準(zhǔn)確更快速的反饋給客戶(hù),使信息的來(lái)源更廣泛,從而提高信息的準(zhǔn)確性。運(yùn)用此系統(tǒng)可以降低企業(yè)為市場(chǎng)調(diào)查而消耗的人力和物力,利用節(jié)省的資源提高產(chǎn)品的質(zhì)量,增強(qiáng)競(jìng)爭(zhēng)力1。一個(gè)網(wǎng)站不斷發(fā)展的前提就是眾多用戶(hù)的支持,一個(gè)好的網(wǎng)站一定要注意與用戶(hù)之間信息的交流。能夠有效得到用戶(hù)反饋的信息,并及時(shí)對(duì)網(wǎng)站內(nèi)容進(jìn)行改進(jìn),這也是一個(gè)網(wǎng)站持續(xù)發(fā)展的基礎(chǔ)。也正是由于以上原因,網(wǎng)絡(luò)上各式各樣的投票系統(tǒng)層出不窮。本次課程設(shè)計(jì)的目的,就是來(lái)制作一個(gè)

8、網(wǎng)絡(luò)投票管理系統(tǒng),該系統(tǒng)可以實(shí)現(xiàn)對(duì)投票數(shù)量進(jìn)行累加、查詢(xún)、統(tǒng)計(jì)票數(shù)等操作。網(wǎng)絡(luò)投票管理系統(tǒng)主要用來(lái)統(tǒng)計(jì)網(wǎng)站用戶(hù)對(duì)某個(gè)主題或熱門(mén)話(huà)題的意見(jiàn)。決策者通過(guò)這些統(tǒng)計(jì)數(shù)據(jù)做出相應(yīng)的決策。網(wǎng)絡(luò)投票管理系統(tǒng)是一般網(wǎng)站必備的程序之一。我設(shè)計(jì)的投票系統(tǒng)主要是針對(duì)網(wǎng)民對(duì)于熱門(mén)話(huà)題的做出的選擇2。1.2 可行性分析1.2.1 技術(shù)可行性 (1)操作系統(tǒng): windows 2000 server 及以上服務(wù)器版本;(2)數(shù)據(jù)庫(kù)管理系統(tǒng):mysql;(3)服務(wù)器:tomcat 5;(4)編程工具:編程軟件為myeclipse5.5,編程語(yǔ)言選用jsp3。1.2.2 經(jīng)濟(jì)可行性(1)支出 系統(tǒng)開(kāi)發(fā)費(fèi)用 1)人員費(fèi)用:本系

9、統(tǒng)開(kāi)發(fā)期為三周,試運(yùn)行一周。開(kāi)發(fā)期需要開(kāi)發(fā)人員1人,試運(yùn)行期需要開(kāi)發(fā)人員1人。人員費(fèi)用為0.4萬(wàn)元。 2)設(shè)備費(fèi):本系統(tǒng)所需的硬件設(shè)備費(fèi)用為0.6萬(wàn)元。 3)不可預(yù)見(jiàn)費(fèi):按開(kāi)發(fā)費(fèi)用的15%計(jì)算。 系統(tǒng)運(yùn)行費(fèi)用1)系統(tǒng)維護(hù)費(fèi):需要 6人/年進(jìn)行系統(tǒng)維護(hù),維護(hù)費(fèi)為1.8萬(wàn)元。2)設(shè)備維護(hù)費(fèi):設(shè)備更新費(fèi)為0.6萬(wàn)元。設(shè)備維護(hù)費(fèi)為0.6萬(wàn)元。 3)消耗材料費(fèi):每年按600元計(jì)算。 (2)收益 (1)提高工作效率。(2)減少工作人員4。1.2.3 操作可行性本網(wǎng)絡(luò)投票管理系統(tǒng)的用戶(hù)只需懂得運(yùn)用互聯(lián)網(wǎng)絡(luò)者均可以使用,此系統(tǒng)在網(wǎng)站中的使用頻度預(yù)計(jì)非常的頻繁; 該系統(tǒng)屬于實(shí)用型網(wǎng)站,需要對(duì)數(shù)據(jù)的處理,比如對(duì)投

10、票票數(shù)的統(tǒng)計(jì)并把結(jié)果反饋給投票者,故對(duì)數(shù)據(jù)的及時(shí)更新要求較高,保證數(shù)據(jù)的真實(shí)性。該系統(tǒng)在任何操作系統(tǒng)下都可以運(yùn)行,但必須裝有mysql數(shù)據(jù)庫(kù)5。該系統(tǒng)的操作包括:?jiǎn)芜x投票、多選投票、查看投票、投票設(shè)計(jì)。單選投票:參與投票的人從提供的選擇中選擇一項(xiàng)來(lái)進(jìn)行投票。多選投票:參與投票的人從提供的選擇中可以選擇一個(gè)或多個(gè)來(lái)進(jìn)行投票。查看投票:提供參與投票的人查看目前投票的情況,投票的結(jié)果是以條形圖來(lái)顯示的。投票設(shè)計(jì):管理員有權(quán)限設(shè)計(jì)不一樣的投票主題,還有投票主題的具體內(nèi)容供參與投票的人來(lái)進(jìn)行投票,投票設(shè)計(jì)還包括這些功能需求:增加主題、刪除主題、查看主題、修改主題。2 基礎(chǔ)理論知識(shí)2.1 mysql數(shù)據(jù)庫(kù)

11、簡(jiǎn)介mysql是一種開(kāi)放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(rdbms),mysql數(shù)據(jù)庫(kù)系統(tǒng)使用最常用的數(shù)據(jù)庫(kù)管理語(yǔ)言-結(jié)構(gòu)化查詢(xún)語(yǔ)言(sql)進(jìn)行數(shù)據(jù)庫(kù)管理6。mysql因?yàn)槠渌俣取⒖煽啃院瓦m應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,mysql是管理內(nèi)容最好的選擇。mysql被廣泛地應(yīng)用在internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了mysql作為網(wǎng)站數(shù)據(jù)庫(kù)。與其他的大型數(shù)據(jù)庫(kù)例如oracle、db2、sql server等相比,mysql自有它的不足之處,如規(guī)模小、功能有限(mysq

12、l cluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),mysql提供的功能已經(jīng)綽綽有余,而且由于mysql是開(kāi)放源碼軟件,因此可以大大降低總體擁有成本7。2.2 jsp編程語(yǔ)言jsp(java server pages)是由sun microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。jsp技術(shù)有點(diǎn)類(lèi)似asp技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)html文件(*.htm,*.html)中插入java程序段(scriptlet)和jsp標(biāo)記(tag),從而形成jsp文件(*.jsp)。 用jsp開(kāi)發(fā)的web應(yīng)用是跨平臺(tái)的

13、,既能在linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行8。其優(yōu)點(diǎn)包括:(1)一次編寫(xiě),到處運(yùn)行。除了系統(tǒng)之外,代碼不用做任何更改。(2)系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開(kāi)發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比asp的局限性jsp的優(yōu)勢(shì)是顯而易見(jiàn)的。(3)強(qiáng)大的可伸縮性。從只有一個(gè)小的jar文件就可以運(yùn)行servlet/jsp,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,java顯示了一個(gè)巨大的生命力。(4)多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。這一點(diǎn)與asp很像,java已經(jīng)有了許多非常優(yōu)秀的開(kāi)發(fā)工具,

14、而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。(5)支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來(lái)支持,開(kāi)發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁(yè)面調(diào)用,以增強(qiáng)系統(tǒng)性能。jsp可以使用成熟的java beans 組件來(lái)實(shí)現(xiàn)復(fù)雜商務(wù)功能。其缺點(diǎn)有:(1)與asp也一樣,java的一些優(yōu)勢(shì)正是它致命的問(wèn)題所在。正是由于為了跨平臺(tái)的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。(2)java的運(yùn)行速度是用class常駐內(nèi)存來(lái)完成的,所以它在一些情況下所使用的內(nèi)存比起用戶(hù)數(shù)量來(lái)說(shuō)確實(shí)是“最低性能價(jià)格比”了9。2.3 sql語(yǔ)句sql語(yǔ)句主要包括數(shù)據(jù)定

15、義語(yǔ)言、數(shù)據(jù)操作語(yǔ)言、數(shù)據(jù)控制語(yǔ)言等。具體有:(1)數(shù)據(jù)定義功能:數(shù)據(jù)定義語(yǔ)言(ddl): create, alter, drop, declare用戶(hù)通過(guò)它可以方便地對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象進(jìn)行定義。(2)數(shù)據(jù)操縱功能:數(shù)據(jù)操作語(yǔ)言(dml):select, insert,delete, update,用戶(hù)可以使用dml操縱數(shù)據(jù),實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的基本操作,如查詢(xún)、插入、刪除、修改等。(3)數(shù)據(jù)控制語(yǔ)言(dcl):grant, revoke, commit。在數(shù)據(jù)庫(kù)里做修改后 (insert,delete, update,)未commit 之前,使用rollback可以恢復(fù)數(shù)據(jù)到修改之前10。2.4

16、 數(shù)據(jù)庫(kù)系統(tǒng)與人工管理和文件系統(tǒng)相比,數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)主要有以下幾個(gè)方面:數(shù)據(jù)結(jié)構(gòu)化:在文件系統(tǒng)中,盡管其記錄內(nèi)部已有了某些結(jié)構(gòu),但記錄之間沒(méi)有聯(lián)系。而數(shù)據(jù)庫(kù)系統(tǒng)則實(shí)現(xiàn)了整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫(kù)的主要特征之一,也是數(shù)據(jù)庫(kù)與文件系統(tǒng)的本質(zhì)區(qū)別11。數(shù)據(jù)的共享性高、冗余度低、易于擴(kuò)充:數(shù)據(jù)庫(kù)系統(tǒng)從整體角度看待和描述數(shù)據(jù),數(shù)據(jù)不再面向某個(gè)特定的應(yīng)用程序,而是面向整個(gè)系統(tǒng);因此,數(shù)據(jù)可以被多個(gè)用戶(hù)、多個(gè)應(yīng)用程序共享使用。數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲(chǔ)空間。數(shù)據(jù)共享還能夠避免數(shù)據(jù)之間的不相容性與不一致性12。數(shù)據(jù)獨(dú)立性高:數(shù)據(jù)獨(dú)立性包括數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性13。物理獨(dú)立性是指用戶(hù)的應(yīng)

17、用程序與存儲(chǔ)在磁盤(pán)上的數(shù)據(jù)庫(kù)中的數(shù)據(jù)是相互獨(dú)立的。也就是說(shuō),數(shù)據(jù)在磁盤(pán)上的數(shù)據(jù)庫(kù)中如何存儲(chǔ)是由dbms管理的,用戶(hù)程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣一來(lái)當(dāng)數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu)改變時(shí),用戶(hù)的程序不用改變14。邏輯獨(dú)立性是指用戶(hù)的應(yīng)用程序與數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)是相互獨(dú)立的,也就是說(shuō),數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶(hù)程序也可以不改變。數(shù)據(jù)由dbms統(tǒng)一管理和控制:數(shù)據(jù)庫(kù)的共享是并發(fā)的(concurrency)共享,即多個(gè)用戶(hù)可以同時(shí)存取數(shù)據(jù)庫(kù)中的數(shù)據(jù),甚至可以同時(shí)存取數(shù)據(jù)庫(kù)中的同一個(gè)數(shù)據(jù)15。dbms必須提供以下幾方面的數(shù)據(jù)控制功能:數(shù)據(jù)的安全性保護(hù)(security);數(shù)據(jù)的完整性檢查(

18、integrity);數(shù)據(jù)庫(kù)的并發(fā)訪(fǎng)問(wèn)控制(concurrency);數(shù)據(jù)庫(kù)的故障恢復(fù)(recovery)16。3 需求分析3.1 功能需求通過(guò)對(duì)用戶(hù)的需求調(diào)查分析,可以概括出用戶(hù)的功能需求如下:?jiǎn)芜x投票、多選投票、查看投票、投票設(shè)計(jì)。單選投票:參與投票的人從提供的選擇中選擇一項(xiàng)來(lái)進(jìn)行投票。多選投票:參與投票的人從提供的選擇中可以選擇一個(gè)或多個(gè)來(lái)進(jìn)行投票。查看投票:提供參與投票的人查看目前投票的情況,投票的結(jié)果是以條形圖來(lái)顯示的。投票設(shè)計(jì):管理員有權(quán)限設(shè)計(jì)不一樣的投票主題,還有投票主題的具體內(nèi)容供參與投票的人來(lái)進(jìn)行投票,投票設(shè)計(jì)還包括這些功能需求:增加主題、刪除主題、查看主題、修改主題。本系統(tǒng)

19、將是用圖形化的界面來(lái)顯示投票的結(jié)果,清晰明了的反饋參與投票的需求信息。3.2 系統(tǒng)主要特色本網(wǎng)絡(luò)投票管理系統(tǒng)具有的主要特色:(1)操作方便。以前手工投票管理全都是人工操作,效率低下,缺乏方便性,網(wǎng)絡(luò)投票管理系統(tǒng)運(yùn)用計(jì)算機(jī)和其他附加設(shè)備,不再需要手工操作,全都是自動(dòng)化,能夠節(jié)省人力、最大限度地利用各種寶貴的資源,提高了工作效率。 (2)界面友好。友好的用戶(hù)界面能給人一種親切的感覺(jué),使用的時(shí)候不會(huì)覺(jué)得沉悶,效率自然也會(huì)大大的提高了。(3)功能強(qiáng)大,能夠滿(mǎn)足各種統(tǒng)計(jì)需要,能夠?qū)崿F(xiàn)快速簡(jiǎn)單統(tǒng)計(jì)。3.3 模塊功能需求各個(gè)模塊所對(duì)應(yīng)的需求如下:(1)投票首頁(yè)模塊:該模塊面向?qū)ο鬄樗性L(fǎng)問(wèn)頁(yè)面用戶(hù),其中包括

20、:當(dāng)前系統(tǒng)時(shí)間的顯示,實(shí)現(xiàn)截止時(shí)間的要求;管理員信息的查詢(xún),登錄用戶(hù)信息的顯示;對(duì)主題進(jìn)行投票,并對(duì)結(jié)果進(jìn)行查詢(xún)。(2)投票實(shí)現(xiàn)模塊:該模塊供參與投票的人對(duì)投票主題進(jìn)行投票設(shè)計(jì)。在投票首頁(yè)上,將會(huì)顯示最近一個(gè)投票主題,用戶(hù)可自由選擇那些尚未過(guò)期的主題進(jìn)行投票。投票操作具體為:用戶(hù)選擇一個(gè)或多個(gè)選項(xiàng),確定,提交,即可投票成功,提交此頁(yè)面,會(huì)跳轉(zhuǎn)鏈接至顯示投票結(jié)果的頁(yè)面。(3)投票結(jié)果模塊:該模塊供參與投票的人,查看此項(xiàng)目已有的投票情況。投票結(jié)果顯示頁(yè)面會(huì)顯示,相應(yīng)投票選項(xiàng)的得票率和該項(xiàng)目總的得票數(shù)。(4)管理員登錄模:該模塊用于管理員登錄。登錄驗(yàn)證后,管理員才可以對(duì)投票信息進(jìn)行維護(hù)。(5)投票管

21、理模塊:該模塊為管理員操作的模塊。管理員登入系統(tǒng)后,可對(duì)本系統(tǒng)的所有投票項(xiàng)目進(jìn)行相應(yīng)的管理,如:增加投票主題,刪除投票主題,修改投票主題,查看投票主題。3.4 性能需求硬件環(huán)境:普通電腦硬盤(pán)200mb以上即可;軟件環(huán)境:windows xp系統(tǒng);專(zhuān)門(mén)配置要求:需安裝tomcat服務(wù)器;其他要求:無(wú)。3.5 開(kāi)發(fā)流程軟件工程中幾個(gè)經(jīng)典的開(kāi)發(fā)模型瀑布模型,快速原型模型,增量模型,螺旋模型,形式化方法模型,基于組件的開(kāi)發(fā)模型17。本系統(tǒng)具體要的開(kāi)發(fā)流程包括:u數(shù)據(jù)庫(kù)選擇 ;u數(shù)據(jù)庫(kù)接口的實(shí)現(xiàn) ;u數(shù)據(jù)庫(kù)建模方法 ;u程序開(kāi)發(fā)軟件 ;u需求分析 ;u需求的提取 ;u需求定義與規(guī)約; u系統(tǒng)總體設(shè)計(jì) ;

22、u系統(tǒng)結(jié)構(gòu)圖 ;u數(shù)據(jù)功能模塊設(shè)計(jì); u系統(tǒng)的主要功能設(shè)計(jì); u投票界面模塊的設(shè)計(jì) ;u投票主題模塊的設(shè)計(jì) ;u投票結(jié)果模塊的設(shè)計(jì) ;u用戶(hù)信息模塊的設(shè)計(jì) ;u管理員登錄的設(shè)計(jì)與實(shí)現(xiàn)18。3.6 數(shù)據(jù)流圖(1)符號(hào)定義 數(shù)據(jù)的源點(diǎn)或終點(diǎn) 變換數(shù)據(jù)的處理 數(shù)據(jù)存儲(chǔ) 數(shù)據(jù)流(2)數(shù)據(jù)流圖的組成元素表1 數(shù)據(jù)流圖的組成元素源點(diǎn)終點(diǎn)處理用戶(hù)計(jì)算信息、添加記錄、刪除記錄數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)用戶(hù)登錄信息投票結(jié)果普通用戶(hù)信息投票結(jié)果管理員信息投票結(jié)果投票信息投票結(jié)果4 總體設(shè)計(jì)4.1 基本設(shè)計(jì)概念和系統(tǒng)總流程圖;該部分將對(duì)系統(tǒng)進(jìn)行總體設(shè)計(jì),包括系統(tǒng)邏輯圖,功能模塊的概要設(shè)計(jì),交互界面設(shè)計(jì)等內(nèi)容,采用軟件工程設(shè)計(jì)思

23、想,為詳細(xì)設(shè)計(jì)打好基礎(chǔ)19。本系統(tǒng)的總流程圖如圖1所示:4.2 系統(tǒng)功能邏輯結(jié)構(gòu)本系統(tǒng)按照功能邏輯分為五個(gè)板塊:投票首頁(yè)模塊,投票實(shí)現(xiàn)模塊,投票結(jié)果模塊,管理員登錄模塊,投票項(xiàng)目管理模塊。具體功能邏輯圖如圖2所示:圖1 系統(tǒng)的總流程圖圖 2具體功能邏輯圖4.3 系統(tǒng)功能模塊的設(shè)計(jì)網(wǎng)絡(luò)投票管理系統(tǒng)(1)單選投票:顯示單選投票表單;(2)多選投票:顯示多選投票表單;(3)查看投票:顯示查看投票結(jié)果表單;(4)投票統(tǒng)計(jì):顯示增加、刪除、修改、查看投票主題表單。如圖3所示:圖 3系統(tǒng)功能模塊的設(shè)計(jì)圖4.4 數(shù)據(jù)庫(kù)的設(shè)計(jì)該系統(tǒng)的數(shù)據(jù)庫(kù)采用mysql,根據(jù)投票系統(tǒng)功能設(shè)計(jì)的要求,可以列出以下數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)

24、構(gòu)20:投票表:存放投票信息,數(shù)據(jù)項(xiàng)包括:序號(hào)(id)、標(biāo)識(shí)(flag)、選項(xiàng)類(lèi)型(opttype)、投票主題(question)、投票選項(xiàng)內(nèi)容(optcontent)、得票數(shù)(number)。5 系統(tǒng)開(kāi)發(fā)5.1 數(shù)據(jù)庫(kù)5.1.1 創(chuàng)建數(shù)據(jù)庫(kù)create database db2009; /創(chuàng)建數(shù)據(jù)庫(kù)db20095.1.2 創(chuàng)建表創(chuàng)建數(shù)據(jù)庫(kù)中用到的投票表:create table vote( id int not null auto_increment, /序號(hào) flag int, /標(biāo)識(shí) opttype int, /選項(xiàng)類(lèi)型 question char(255), /投票主題 optcont

25、ent char(255), /投票選項(xiàng)內(nèi)容 number int, /得票數(shù) primary key(id),);數(shù)據(jù)庫(kù)創(chuàng)建后的結(jié)構(gòu)圖如圖4所示:圖4 數(shù)據(jù)庫(kù)結(jié)構(gòu)圖5.1.3 連接數(shù)據(jù)庫(kù)該系統(tǒng)使用了mysql的jdbc驅(qū)動(dòng)程序來(lái)連接數(shù)據(jù)庫(kù)21。由于對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn),在整個(gè)系統(tǒng)中還是比較頻繁,將對(duì)數(shù)據(jù)庫(kù)的操作,寫(xiě)成一個(gè)dbconnect的類(lèi),通過(guò)該類(lèi)來(lái)連接數(shù)據(jù)庫(kù)和訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)22。/代碼如下dbconnect.javapackage vote;import java.sql.*;public class dbconnect /設(shè)置連接數(shù)據(jù)庫(kù)的參數(shù) private string user = roo

26、t; private string password = 821192; /mysql的jdbc驅(qū)動(dòng)程序 string sdbdriver = org.gjt.mm.mysql.driver; /連接數(shù)據(jù)庫(kù) string sconnstr = jdbc:mysql:/localhost:3306/db2009?user&password; connection conn = null; statement stmt = null; resultset rs = null; public dbconnect() try /加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序 class.forname(sdbdriver); /

27、建立連接 conn = drivermanager.getconnection(sconnstr); catch (exception e) system.out.println(dbconnect(): + e.getmessage(); /查詢(xún) public resultset executequery(string sql) try stmt = conn.createstatement(); rs = stmt.executequery(sql);catch (sqlexception ex) system.out.println(sql.executequery: + ex.getm

28、essage(); return rs; public boolean executeupdate(string sql) /更新 try stmt = conn.createstatement(); stmt.executeupdate (sql); return true; catch (sqlexception ex) system.out.println (sql.executeupdate: + ex.getmessage(); return false; public void close () throws exception /關(guān)閉數(shù)據(jù)庫(kù)的連接 conn.close (); s

29、tmt.close (); 5.2 功能的實(shí)現(xiàn)投票流程圖:如圖5所示。圖 5 投票流程圖該流程圖已經(jīng)包含了網(wǎng)絡(luò)投票管理系統(tǒng)的制作的主要方法。5.3 問(wèn)題及解決(1)數(shù)據(jù)庫(kù)連接方面:該系統(tǒng)使用了mysql的jdbc驅(qū)動(dòng)程序來(lái)連接數(shù)據(jù)庫(kù)23。由于對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn),在整個(gè)系統(tǒng)中還是比較頻繁,將對(duì)數(shù)據(jù)庫(kù)的操作,寫(xiě)成一個(gè)dbconnect的類(lèi),通過(guò)該類(lèi)來(lái)連接數(shù)據(jù)庫(kù)和訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)24。(2)數(shù)據(jù)庫(kù)操作方面如下: 插入數(shù)據(jù)庫(kù):sql=insert into vote(flag,opttype,question) values(0,+opttype+,+question+);dbbean.executeupdat

30、e(sql);sql=select * from vote order by id desc;resultset rs=dbbean.executequery(sql) 25; 查詢(xún)數(shù)據(jù)庫(kù):sql=select * from vote where flag=0 and opttype=0 order by id desc;rs=dbbean.executequery(sql) 26; 刪除數(shù)據(jù)庫(kù):string sql=delete from vote where id=+id ; dbbean.executeupdate(sql) 27;6 運(yùn)行部分6.1 系統(tǒng)的安裝該系統(tǒng)我在jdk1.5+m

31、ysql環(huán)境下測(cè)試通過(guò)28:安裝步驟:該系統(tǒng)需要jsp運(yùn)行環(huán)境和mysql數(shù)據(jù)庫(kù),如果服務(wù)器還沒(méi)有搭建的話(huà)請(qǐng)先搭建啟動(dòng)tomcat29。(1)把vote、web-inf(vote文件夾存放的是.jsp文件,web-inf存放的是該系統(tǒng)使用到的一些.class文件)文件夾上傳到你的主機(jī)目錄。(2) 修改dbconnect.java里連接mysql數(shù)據(jù)庫(kù)的ip、用戶(hù)名和密碼為你自己的ip,user, password修改編譯之后放到web-infclasses目錄下面。(3)請(qǐng)創(chuàng)建數(shù)據(jù)庫(kù)db2009,然后使用mysql db2009vote.sql腳本創(chuàng)建該數(shù)據(jù)庫(kù)使用到的表。(腳本存放的路徑vot

32、evote.sql)(4)然后先在瀏覽器輸入url:http:/localhost:8080 顯示tomcat首頁(yè)證明已經(jīng)成功啟動(dòng)tomcat服務(wù)器再輸入http:/localhost:8080/vote/vote.jsp 顯示系統(tǒng)首頁(yè)30。6.2 系統(tǒng)的使用以下是系統(tǒng)運(yùn)行過(guò)程中出現(xiàn)的一些界面和主要代碼,通過(guò)這些界面和代碼來(lái)更好的了解該投票系統(tǒng)。(1)先啟動(dòng)tomcat服務(wù)器在ie瀏覽器的地址欄里輸入http:/localhost:8080出現(xiàn)tomcat首頁(yè)證明服務(wù)器已成功開(kāi)啟,再在ie瀏覽器的地址欄里輸入網(wǎng)絡(luò)投票管理系統(tǒng)的url: http:/localhost:8080/vote/vot

33、e.jsp后,將進(jìn)入投票系統(tǒng)的首頁(yè)。在首頁(yè)中明確顯示了該系統(tǒng)的操作單選投票、多選投票、查看投票、投票設(shè)計(jì),如圖6所示。圖6網(wǎng)絡(luò)投票管理系統(tǒng)首頁(yè)vote.jsp網(wǎng)絡(luò)投票管理系統(tǒng) 單選投票 % string sql=select * from vote where flag = 0 and opttype=0 order by id desc; resultset rs=dbbean.executequery(sql); int questionnum=0,opttype,id,id1; string question,str,optcontent,type; while(rs.next() /輸

34、出投票的主題 questionnum+;str=主題+questionnum+:; question=rs.getstring(question); opttype=rs.getint(opttype);id=rs.getint(id); out.print(str+question+); resultset rs1; sql=select * from vote where flag=+id;rs1=dbbean.executequery(sql);out.print(); /輸出該主題的選項(xiàng)while(rs1.next() id1=rs1.getint(id); optcontent=rs

35、1.getstring(optcontent); if(opttype=0) type=radio; else type=checkbox; % input type= name=vote value= (2)在網(wǎng)絡(luò)投票管理系統(tǒng)首頁(yè)中點(diǎn)擊你所要進(jìn)行的操作,能打開(kāi)相應(yīng)的頁(yè)面。如點(diǎn)擊“單選投票”鏈接就可以打開(kāi)單選投票頁(yè)面,如圖7所示。圖7網(wǎng)絡(luò)投票管理系統(tǒng)單選投票(3)如果在首頁(yè)中點(diǎn)擊“多選投票“鏈接,即可打開(kāi)多選投票頁(yè)面如圖8所示。圖8網(wǎng)絡(luò)投票管理系統(tǒng)多選投票(4)如果在首頁(yè)中點(diǎn)擊“查看投票“鏈接,即可查看投票的結(jié)果如圖9所示。圖9網(wǎng)絡(luò)投票管理系統(tǒng)投票結(jié)果result.jsp投票結(jié)果單選投票結(jié)果%

36、string sql=select * from vote order by id ; resultset rs=dbbean.executequery(sql); string id; id = request.getparameter(vote); sql=update vote set number=number+1 where id=+id; dbbean.executequery(sql); resultset rs1,rstotal; int questionnum=0,opttype,id1,number,total=0; string question,str,optconte

37、nt; sql=select * from vote where flag=0 and opttype=0 order by id desc; rs=dbbean.executequery(sql); while(rs.next() questionnum+; str=主題+questionnum+:; question=rs.getstring(question); opttype=rs.getint(opttype); id=integer.tostring(rs.getint(“id”); out.print(str+question+); sql=select * from vote

38、where flag=+id; rstotal=dbbean.executequery(sql); /求得投票的總數(shù)while(rstotal.next() number=rstotal.getint(number); total+=number; sql=select * from vote where flag=+id;rs1=dbbean.executequery(sql);out.print(); /輸出各選項(xiàng)的得票數(shù)while(rs1.next() id1=rs1.getint(id); optcontent=rs1.getstring(optcontent); number=rs1

39、.getint(number);% 得票數(shù): img src = bar.gif width = height = 10 返回主頁(yè) (5)如果在首頁(yè)中點(diǎn)擊“投票設(shè)計(jì)“鏈接,即可打開(kāi)投票設(shè)計(jì)中的”增加主題“頁(yè)面,在增加主題頁(yè)面上還有投票設(shè)計(jì)中的其它幾項(xiàng)功能:刪除主題、查看主題、修改主題、返回首頁(yè)。增加主題的方法如10圖所示: 圖10網(wǎng)絡(luò)投票管理系統(tǒng)增加主題add.jsp增加主題 增加主題 增加主題|刪除主題|查看主題|修改主題|返回首頁(yè) 請(qǐng)輸入主題名: input type=text name=question size=50 value= input type=checkbox value=t name=type 多選    請(qǐng)輸入選項(xiàng)的數(shù)目: input typ=text name=num size=5 value= %string

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論