2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  皖西學(xué)院</b></p><p><b>  畢業(yè)論文(設(shè)計)</b></p><p>  題 目:網(wǎng)絡(luò)投票管理系統(tǒng)</p><p>  姓 名:懷雪飛</p><p>  學(xué) 號:2009012200</p><p><

2、b>  指導(dǎo)教師:何富貴</b></p><p>  班 級:計科0903</p><p>  系 部:信息工程學(xué)院</p><p><b>  網(wǎng)絡(luò)投票管理系統(tǒng)</b></p><p>  摘要:隨著信息化技術(shù)的發(fā)展,網(wǎng)絡(luò)投票也需要一套有先進管理思想的系統(tǒng),作為實現(xiàn)目標(biāo)和提高現(xiàn)有投票管理水

3、平的一種重要手段。隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認(rèn)識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。</p><p>  本文采用JSP開發(fā)語言和SQL數(shù)據(jù)庫開發(fā)了網(wǎng)絡(luò)投票管理系統(tǒng)解決了管理人員的煩瑣事務(wù),達到了無紙化的調(diào)查問卷的替代效果。其系統(tǒng)的主要特點有:高度可用性,該系統(tǒng)擁有前臺展示的功能,系統(tǒng)前臺用戶可以進行投票和查看投票結(jié)果,支持后臺管理,投票項目及投票選項的

4、管理(增加和刪除投票主題)及維護功能;實現(xiàn)界面友好性:交互界面美觀、友好、快捷,能給出及時的反饋。</p><p>  關(guān)鍵詞:JSP;投票;數(shù)據(jù)庫</p><p>  Internet Voting Management System</p><p>  Abstract: With the development of information technolog

5、y, 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 functions in computer scie

6、nce plays an increasingly important role on various fields of society. </p><p>  In this paper, using JSP programming language and SQL database the Internet voting system is developed to solve the tedious af

7、fairs management, as the substitution of no survey paper. The main feature of 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

8、backstage management, voting and polling options Management (add and delete vote-topic) and maintenance function. It has the friendly interface: interface</p><p>  Keywords: JSP; Vote; Database目 錄</p>

9、<p><b>  1 緒論1</b></p><p>  1.1 研究意義1</p><p>  1.2 可行性分析1</p><p>  1.2.1 技術(shù)可行性1</p><p>  1.2.2 經(jīng)濟可行性1</p><p>  1.2.3 操作可行性2&

10、lt;/p><p>  2 基礎(chǔ)理論知識2</p><p>  2.1 MySQL數(shù)據(jù)庫簡介2</p><p>  2.2 JSP編程語言3</p><p>  2.3 SQL語句3</p><p>  2.4 數(shù)據(jù)庫系統(tǒng)4</p><p><b>  3 需求分析

11、5</b></p><p>  3.1 功能需求5</p><p>  3.2 系統(tǒng)主要特色5</p><p>  3.3 模塊功能需求5</p><p>  3.4 性能需求6</p><p>  3.5 開發(fā)流程6</p><p>  3.6 數(shù)據(jù)流圖6&

12、lt;/p><p><b>  4 總體設(shè)計7</b></p><p>  4.1 基本設(shè)計概念和系統(tǒng)總流程圖;7</p><p>  4.2 系統(tǒng)功能邏輯結(jié)構(gòu)7</p><p>  4.3 系統(tǒng)功能模塊的設(shè)計9</p><p>  4.4 數(shù)據(jù)庫的設(shè)計9</p>&

13、lt;p><b>  5 系統(tǒng)開發(fā)9</b></p><p>  5.1 數(shù)據(jù)庫9</p><p>  5.1.1 創(chuàng)建數(shù)據(jù)庫9</p><p>  5.1.2 創(chuàng)建表10</p><p>  5.1.3 連接數(shù)據(jù)庫10</p><p>  5.2 功能的實現(xiàn)12&l

14、t;/p><p>  5.3 問題及解決13</p><p>  6 運行部分13</p><p>  6.1 系統(tǒng)的安裝13</p><p>  6.2 系統(tǒng)的使用14</p><p><b>  結(jié)論25</b></p><p><b>  致謝

15、26</b></p><p><b>  參考文獻27</b></p><p><b>  1 緒論</b></p><p><b>  1.1 研究意義</b></p><p>  隨著INTERNET的發(fā)展,世界網(wǎng)民的數(shù)量急劇增加,社會的信息化強度增強,

16、企業(yè)競爭之激烈,故對市場信息的掌握范圍不僅僅是周邊的一些信息,而應(yīng)把范圍擴展到全國,甚至全世界,INTERNET恰恰是實現(xiàn)這目標(biāo)的有利工具。對于新產(chǎn)品,新觀點的調(diào)查范圍應(yīng)該更廣泛,消息應(yīng)該及時反饋給企業(yè)單位,故一個網(wǎng)上網(wǎng)絡(luò)投票管理系統(tǒng)應(yīng)允而生,它正好充分滿足客戶的需求,信息反饋的范圍擴大,人力資源的節(jié)省,從而使得企業(yè)在競爭激烈的市場中擁有更強大的資本。開發(fā)此投票系統(tǒng)是為了更好的把市場的信息更準(zhǔn)確更快速的反饋給客戶,使信息的來源更廣泛,從

17、而提高信息的準(zhǔn)確性。運用此系統(tǒng)可以降低企業(yè)為市場調(diào)查而消耗的人力和物力,利用節(jié)省的資源提高產(chǎn)品的質(zhì)量,增強競爭力[1]。</p><p>  一個網(wǎng)站不斷發(fā)展的前提就是眾多用戶的支持,一個好的網(wǎng)站一定要注意與用戶之間信息的交流。能夠有效得到用戶反饋的信息,并及時對網(wǎng)站內(nèi)容進行改進,這也是一個網(wǎng)站持續(xù)發(fā)展的基礎(chǔ)。</p><p>  也正是由于以上原因,網(wǎng)絡(luò)上各式各樣的投票系統(tǒng)層出不窮。本次

18、課程設(shè)計的目的,就是來制作一個網(wǎng)絡(luò)投票管理系統(tǒng),該系統(tǒng)可以實現(xiàn)對投票數(shù)量進行累加、查詢、統(tǒng)計票數(shù)等操作。</p><p>  網(wǎng)絡(luò)投票管理系統(tǒng)主要用來統(tǒng)計網(wǎng)站用戶對某個主題或熱門話題的意見。決策者通過這些統(tǒng)計數(shù)據(jù)做出相應(yīng)的決策。網(wǎng)絡(luò)投票管理系統(tǒng)是一般網(wǎng)站必備的程序之一。我設(shè)計的投票系統(tǒng)主要是針對網(wǎng)民對于熱門話題的做出的選擇[2]。</p><p>  1.2 可行性分析</p>

19、;<p>  1.2.1 技術(shù)可行性 </p><p> ?。?)操作系統(tǒng): Windows 2000 Server 及以上服務(wù)器版本;</p><p> ?。?)數(shù)據(jù)庫管理系統(tǒng):MySQL;</p><p> ?。?)服務(wù)器:Tomcat 5;</p><p> ?。?)編程工具:編程軟件為MyEclipse5.5,編程語

20、言選用JSP[3]。</p><p>  1.2.2 經(jīng)濟可行性</p><p><b> ?。?)支出 </b></p><p><b> ?、?系統(tǒng)開發(fā)費用 </b></p><p>  1)人員費用:本系統(tǒng)開發(fā)期為三周,試運行一周。開發(fā)期需要開發(fā)人員1人,試運行期需要開發(fā)人員1人。人員費用為

21、0.4萬元。 </p><p>  2)設(shè)備費:本系統(tǒng)所需的硬件設(shè)備費用為0.6萬元。 </p><p>  3)不可預(yù)見費:按開發(fā)費用的15%計算。 </p><p><b> ?、?系統(tǒng)運行費用</b></p><p>  1)系統(tǒng)維護費:需要 6人/年進行系統(tǒng)維護,維護費為1.8萬元。</p><

22、;p>  2)設(shè)備維護費:設(shè)備更新費為0.6萬元。設(shè)備維護費為0.6萬元。 </p><p>  3)消耗材料費:每年按600元計算。 </p><p><b> ?。?)收益 </b></p><p> ?。?)提高工作效率。</p><p> ?。?)減少工作人員[4]。</p><p>

23、;  1.2.3 操作可行性</p><p>  本網(wǎng)絡(luò)投票管理系統(tǒng)的用戶只需懂得運用互聯(lián)網(wǎng)絡(luò)者均可以使用,此系統(tǒng)在網(wǎng)站中的使用頻度預(yù)計非常的頻繁; </p><p>  該系統(tǒng)屬于實用型網(wǎng)站,需要對數(shù)據(jù)的處理,比如對投票票數(shù)的統(tǒng)計并把結(jié)果反饋給投票者,故對數(shù)據(jù)的及時更新要求較高,保證數(shù)據(jù)的真實性。該系統(tǒng)在任何操作系統(tǒng)下都可以運行,但必須裝有MySQL數(shù)據(jù)庫[5]。</p>

24、<p>  該系統(tǒng)的操作包括:單選投票、多選投票、查看投票、投票設(shè)計。</p><p>  單選投票:參與投票的人從提供的選擇中選擇一項來進行投票。</p><p>  多選投票:參與投票的人從提供的選擇中可以選擇一個或多個來進行投票。</p><p>  查看投票:提供參與投票的人查看目前投票的情況,投票的結(jié)果是以條形圖來顯示的。</p>

25、<p>  投票設(shè)計:管理員有權(quán)限設(shè)計不一樣的投票主題,還有投票主題的具體內(nèi)容供參與投票的人來進行投票,投票設(shè)計還包括這些功能需求:增加主題、刪除主題、查看主題、修改主題。</p><p><b>  2 基礎(chǔ)理論知識</b></p><p>  2.1 MySQL數(shù)據(jù)庫簡介</p><p>  MySQL是一種開放源代碼的關(guān)系

26、型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進行數(shù)據(jù)庫管理[6]。</p><p>  MySQL因為其速度、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。</p><p>  MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤

27、其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。</p><p>  與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQL Cluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQ

28、L是開放源碼軟件,因此可以大大降低總體擁有成本[7]。</p><p>  2.2 JSP編程語言</p><p>  JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP

29、標(biāo)記(tag),從而形成JSP文件(*.jsp)。 用JSP開發(fā)的Web應(yīng)用是跨平臺的,既能在Linux下運行,也能在其他操作系統(tǒng)上運行[8]。</p><p><b>  其優(yōu)點包括:</b></p><p> ?。?)一次編寫,到處運行。除了系統(tǒng)之外,代碼不用做任何更改。</p><p> ?。?)系統(tǒng)的多平臺支持?;旧峡梢栽谒衅脚_上的

30、任意環(huán)境中開發(fā),在任意環(huán)境中進行系統(tǒng)部署,在任意環(huán)境中擴展。相比ASP的局限性JSP的優(yōu)勢是顯而易見的。</p><p> ?。?)強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/JSP,到由多臺服務(wù)器進行集群和負(fù)載均衡,到多臺Application進行事務(wù)處理,消息處理,一臺服務(wù)器到無數(shù)臺服務(wù)器,Java顯示了一個巨大的生命力。</p><p> ?。?)多樣化和功能強

31、大的開發(fā)工具支持。這一點與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經(jīng)可以順利的運行于多種平臺之下。</p><p> ?。?)支持服務(wù)器端組件。web應(yīng)用需要強大的服務(wù)器端組件來支持,開發(fā)人員需要利用其他工具設(shè)計實現(xiàn)復(fù)雜功能的組件供web頁面調(diào)用,以增強系統(tǒng)性能。JSP可以使用成熟的JAVA BEANS 組件來實現(xiàn)復(fù)雜商務(wù)功能。</p><p&g

32、t;<b>  其缺點有:</b></p><p> ?。?)與ASP也一樣,Java的一些優(yōu)勢正是它致命的問題所在。正是由于為了跨平臺的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。</p><p> ?。?)Java的運行速度是用class常駐內(nèi)存來完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來說確實是“最低性能價格比”了[9]。</p>

33、;<p>  2.3 SQL語句</p><p>  SQL語句主要包括數(shù)據(jù)定義語言、數(shù)據(jù)操作語言、數(shù)據(jù)控制語言等。具體有:</p><p> ?。?)數(shù)據(jù)定義功能:數(shù)據(jù)定義語言(DDL): CREATE, ALTER, DROP, DECLARE用戶通過它可以方便地對數(shù)據(jù)庫中的數(shù)據(jù)對象進行定義。</p><p> ?。?)數(shù)據(jù)操縱功能:數(shù)據(jù)操作語言

34、(DML):SELECT, INSERT,DELETE, UPDATE,用戶可以使用DML操縱數(shù)據(jù),實現(xiàn)對數(shù)據(jù)庫的基本操作,如查詢、插入、刪除、修改等。</p><p> ?。?)數(shù)據(jù)控制語言(DCL):GRANT, REVOKE, COMMIT。</p><p>  在數(shù)據(jù)庫里做修改后 (INSERT,DELETE, UPDATE,)未commit 之前,使用ROLLBACK可以

35、恢復(fù)數(shù)據(jù)到修改之前[10]。</p><p>  2.4 數(shù)據(jù)庫系統(tǒng)</p><p>  與人工管理和文件系統(tǒng)相比,數(shù)據(jù)庫系統(tǒng)的特點主要有以下幾個方面:</p><p><b>  數(shù)據(jù)結(jié)構(gòu)化:</b></p><p>  在文件系統(tǒng)中,盡管其記錄內(nèi)部已有了某些結(jié)構(gòu),但記錄之間沒有聯(lián)系。而數(shù)據(jù)庫系統(tǒng)則實現(xiàn)了整體數(shù)據(jù)的結(jié)

36、構(gòu)化,這是數(shù)據(jù)庫的主要特征之一,也是數(shù)據(jù)庫與文件系統(tǒng)的本質(zhì)區(qū)別[11]。</p><p>  數(shù)據(jù)的共享性高、冗余度低、易于擴充:</p><p>  數(shù)據(jù)庫系統(tǒng)從整體角度看待和描述數(shù)據(jù),數(shù)據(jù)不再面向某個特定的應(yīng)用程序,而是面向整個系統(tǒng);因此,數(shù)據(jù)可以被多個用戶、多個應(yīng)用程序共享使用。數(shù)據(jù)共享可以大大減少數(shù)據(jù)冗余,節(jié)約存儲空間。數(shù)據(jù)共享還能夠避免數(shù)據(jù)之間的不相容性與不一致性[12]。<

37、;/p><p><b>  數(shù)據(jù)獨立性高:</b></p><p>  數(shù)據(jù)獨立性包括數(shù)據(jù)的物理獨立性和邏輯獨立性[13]。</p><p>  物理獨立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中的數(shù)據(jù)是相互獨立的。也就是說,數(shù)據(jù)在磁盤上的數(shù)據(jù)庫中如何存儲是由DBMS管理的,用戶程序不需要了解,應(yīng)用程序要處理的只是數(shù)據(jù)的邏輯結(jié)構(gòu),這樣一來當(dāng)數(shù)據(jù)的

38、物理存儲結(jié)構(gòu)改變時,用戶的程序不用改變[14]。</p><p>  邏輯獨立性是指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的,也就是說,數(shù)據(jù)的邏輯結(jié)構(gòu)改變了,用戶程序也可以不改變。</p><p>  數(shù)據(jù)由DBMS統(tǒng)一管理和控制:</p><p>  數(shù)據(jù)庫的共享是并發(fā)的(concurrency)共享,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù),甚至可以同時存取數(shù)據(jù)

39、庫中的同一個數(shù)據(jù)[15]。</p><p>  DBMS必須提供以下幾方面的數(shù)據(jù)控制功能:</p><p>  數(shù)據(jù)的安全性保護(security);</p><p>  數(shù)據(jù)的完整性檢查(integrity);</p><p>  數(shù)據(jù)庫的并發(fā)訪問控制(concurrency);</p><p>  數(shù)據(jù)庫的故障恢復(fù)

40、(recovery)[16]。</p><p><b>  3 需求分析</b></p><p><b>  3.1 功能需求</b></p><p>  通過對用戶的需求調(diào)查分析,可以概括出用戶的功能需求如下:單選投票、多選投票、查看投票、投票設(shè)計。</p><p>  單選投票:參與投票的人

41、從提供的選擇中選擇一項來進行投票。</p><p>  多選投票:參與投票的人從提供的選擇中可以選擇一個或多個來進行投票。</p><p>  查看投票:提供參與投票的人查看目前投票的情況,投票的結(jié)果是以條形圖來顯示的。</p><p>  投票設(shè)計:管理員有權(quán)限設(shè)計不一樣的投票主題,還有投票主題的具體內(nèi)容供參與投票的人來進行投票,投票設(shè)計還包括這些功能需求:增加主

42、題、刪除主題、查看主題、修改主題。</p><p>  本系統(tǒng)將是用圖形化的界面來顯示投票的結(jié)果,清晰明了的反饋參與投票的需求信息。</p><p>  3.2 系統(tǒng)主要特色</p><p>  本網(wǎng)絡(luò)投票管理系統(tǒng)具有的主要特色:</p><p> ?。?)操作方便。以前手工投票管理全都是人工操作,效率低下,缺乏方便性,網(wǎng)絡(luò)投票管理系統(tǒng)運用

43、計算機和其他附加設(shè)備,不再需要手工操作,全都是自動化,能夠節(jié)省人力、最大限度地利用各種寶貴的資源,提高了工作效率。 </p><p> ?。?)界面友好。友好的用戶界面能給人一種親切的感覺,使用的時候不會覺得沉悶,效率自然也會大大的提高了。</p><p> ?。?)功能強大,能夠滿足各種統(tǒng)計需要,能夠?qū)崿F(xiàn)快速簡單統(tǒng)計。</p><p>  3.3 模塊功能需求&

44、lt;/p><p>  各個模塊所對應(yīng)的需求如下:</p><p> ?。?)投票首頁模塊:該模塊面向?qū)ο鬄樗性L問頁面用戶,其中包括:當(dāng)前系統(tǒng)時間的顯示,實現(xiàn)截止時間的要求;管理員信息的查詢,登錄用戶信息的顯示;對主題進行投票,并對結(jié)果進行查詢。</p><p> ?。?)投票實現(xiàn)模塊:該模塊供參與投票的人對投票主題進行投票設(shè)計。在投票首頁上,將會顯示最近一個投票主題

45、,用戶可自由選擇那些尚未過期的主題進行投票。投票操作具體為:用戶選擇一個或多個選項,確定,提交,即可投票成功,提交此頁面,會跳轉(zhuǎn)鏈接至顯示投票結(jié)果的頁面。</p><p> ?。?)投票結(jié)果模塊:該模塊供參與投票的人,查看此項目已有的投票情況。投票結(jié)果顯示頁面會顯示,相應(yīng)投票選項的得票率和該項目總的得票數(shù)。</p><p> ?。?)管理員登錄模:該模塊用于管理員登錄。登錄驗證后,管理員才

46、可以對投票信息進行維護。</p><p> ?。?)投票管理模塊:該模塊為管理員操作的模塊。管理員登入系統(tǒng)后,可對本系統(tǒng)的所有投票項目進行相應(yīng)的管理,如:增加投票主題,刪除投票主題,修改投票主題,查看投票主題。</p><p><b>  3.4 性能需求</b></p><p>  硬件環(huán)境:普通電腦硬盤200MB以上即可;</p&g

47、t;<p>  軟件環(huán)境:Windows XP系統(tǒng);</p><p>  專門配置要求:需安裝Tomcat服務(wù)器;</p><p><b>  其他要求:無。</b></p><p><b>  3.5 開發(fā)流程</b></p><p>  軟件工程中幾個經(jīng)典的開發(fā)模型瀑布模型,快速

48、原型模型,增量模型,螺旋模型,形式化方法模型,基于組件的開發(fā)模型[17]。本系統(tǒng)具體要的開發(fā)流程包括:</p><p><b>  ?數(shù)據(jù)庫選擇 ;</b></p><p>  ?數(shù)據(jù)庫接口的實現(xiàn) ;</p><p>  ?數(shù)據(jù)庫建模方法 ;</p><p>  ?程序開發(fā)軟件 ;</p><

49、p><b>  ?需求分析 ;</b></p><p><b>  ?需求的提取 ;</b></p><p>  ?需求定義與規(guī)約; </p><p>  ?系統(tǒng)總體設(shè)計 ;</p><p><b>  ?系統(tǒng)結(jié)構(gòu)圖 ;</b></p><p

50、>  ?數(shù)據(jù)功能模塊設(shè)計; </p><p>  ?系統(tǒng)的主要功能設(shè)計; </p><p>  ?投票界面模塊的設(shè)計 ;</p><p>  ?投票主題模塊的設(shè)計 ;</p><p>  ?投票結(jié)果模塊的設(shè)計 ;</p><p>  ?用戶信息模塊的設(shè)計 ;</p><p>

51、  ?管理員登錄的設(shè)計與實現(xiàn)[18]。</p><p><b>  3.6 數(shù)據(jù)流圖</b></p><p><b> ?。?)符號定義</b></p><p> ?、?數(shù)據(jù)的源點或終點</p><p><b> ?、?變換數(shù)據(jù)的處理</b></p><

52、p><b> ?、?數(shù)據(jù)存儲</b></p><p><b> ?、?數(shù)據(jù)流</b></p><p> ?。?)數(shù)據(jù)流圖的組成元素</p><p>  表1 數(shù)據(jù)流圖的組成元素</p><p><b>  4 總體設(shè)計</b></p><p> 

53、 4.1 基本設(shè)計概念和系統(tǒng)總流程圖;</p><p>  該部分將對系統(tǒng)進行總體設(shè)計,包括系統(tǒng)邏輯圖,功能模塊的概要設(shè)計,交互界面設(shè)計等內(nèi)容,采用軟件工程設(shè)計思想,為詳細設(shè)計打好基礎(chǔ)[19]。</p><p>  本系統(tǒng)的總流程圖如圖1所示:</p><p>  4.2 系統(tǒng)功能邏輯結(jié)構(gòu)</p><p>  本系統(tǒng)按照功能邏輯分為五個板

54、塊:投票首頁模塊,投票實現(xiàn)模塊,投票結(jié)果模塊,管理員登錄模塊,投票項目管理模塊。具體功能邏輯圖如圖2所示:</p><p>  圖1 系統(tǒng)的總流程圖</p><p>  圖 2具體功能邏輯圖</p><p>  4.3 系統(tǒng)功能模塊的設(shè)計</p><p><b>  網(wǎng)絡(luò)投票管理系統(tǒng)</b></p>&l

55、t;p> ?。?)單選投票:顯示單選投票表單;</p><p> ?。?)多選投票:顯示多選投票表單;</p><p> ?。?)查看投票:顯示查看投票結(jié)果表單;</p><p> ?。?)投票統(tǒng)計:顯示增加、刪除、修改、查看投票主題表單。</p><p><b>  如圖3所示:</b></p>&

56、lt;p>  圖 3系統(tǒng)功能模塊的設(shè)計圖</p><p>  4.4 數(shù)據(jù)庫的設(shè)計</p><p>  該系統(tǒng)的數(shù)據(jù)庫采用MySQL,根據(jù)投票系統(tǒng)功能設(shè)計的要求,可以列出以下數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)[20]:</p><p>  投票表:存放投票信息,數(shù)據(jù)項包括:序號(id)、標(biāo)識(flag)、選項類型(optType)、投票主題(question)、投票選項內(nèi)容(

57、optContent)、得票數(shù)(number)。</p><p><b>  5 系統(tǒng)開發(fā)</b></p><p><b>  5.1 數(shù)據(jù)庫</b></p><p>  5.1.1 創(chuàng)建數(shù)據(jù)庫</p><p>  CREATE DATABASE db2009; //創(chuàng)建數(shù)據(jù)庫db2009&

58、lt;/p><p>  5.1.2 創(chuàng)建表</p><p>  創(chuàng)建數(shù)據(jù)庫中用到的投票表:</p><p>  CREATE TABLE vote</p><p><b>  (</b></p><p>  id INT NOT NULL AUTO_INCREMENT, //序號</p>

59、;<p>  flag int, //標(biāo)識</p><p>  optType int, //選項類型</p><p>  question CHAR(255), //投票主題</p><p>  optContent CHAR(255), //投票選項內(nèi)容</p><p>  number INT, //得票數(shù)<

60、/p><p>  PRIMARY KEY(id),</p><p><b>  );</b></p><p>  數(shù)據(jù)庫創(chuàng)建后的結(jié)構(gòu)圖如圖4所示:</p><p><b>  圖4 數(shù)據(jù)庫結(jié)構(gòu)圖</b></p><p>  5.1.3 連接數(shù)據(jù)庫</p><

61、p>  該系統(tǒng)使用了MySQL的JDBC驅(qū)動程序來連接數(shù)據(jù)庫[21]。由于對數(shù)據(jù)庫的訪問,在整個系統(tǒng)中還是比較頻繁,將對數(shù)據(jù)庫的操作,寫成一個DBConnect的類,通過該類來連接數(shù)據(jù)庫和訪問數(shù)據(jù)庫[22]。</p><p><b>  //代碼如下</b></p><p>  DBConnect.java</p><p>  packa

62、ge vote;</p><p>  import java.sql.*;</p><p>  public class DBConnect {</p><p>  //設(shè)置連接數(shù)據(jù)庫的參數(shù)</p><p>  private String user = "root";</p><p>  priv

63、ate String password = "821192";</p><p>  //MySQL的JDBC驅(qū)動程序</p><p>  String sDBDriver = "org.gjt.mm.mysql.Driver";</p><p><b>  //連接數(shù)據(jù)庫</b></p>&

64、lt;p>  String sConnStr = "jdbc:mysql://localhost:3306/db2009?user&password";</p><p>  Connection conn = null;</p><p>  Statement stmt = null;</p><p>  ResultSet rs

65、= null; </p><p>  public DBConnect() {</p><p><b>  try {</b></p><p>  //加載數(shù)據(jù)庫驅(qū)動程序</p><p>  Class.forName(sDBDriver);</p><p><b>  //建立連接&

66、lt;/b></p><p>  conn = DriverManager.getConnection(sConnStr);</p><p><b>  }</b></p><p>  catch (Exception e) {</p><p>  System.out.println("DBConnec

67、t():" + e.getMessage());</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //查詢</b></p><p>  public ResultSet executeQuery(String

68、 sql) { </p><p><b>  try {</b></p><p>  stmt = conn.createStatement();</p><p>  rs = stmt.executeQuery(sql);</p><p><b>  }</b></p><

69、;p>  catch (SQLException ex) {</p><p>  System.out.println("sql.executeQuery:" + ex.getMessage());</p><p><b>  }</b></p><p>  return rs;</p><p&g

70、t;<b>  }</b></p><p>  public boolean executeUpdate(String sql){ //更新 </p><p><b>  try{</b></p><p>  stmt = conn.createStatement();</p><p>  st

71、mt.executeUpdate (sql);</p><p>  Return true;</p><p>  } catch (SQLException ex) {</p><p>  System.out.println ("sql.executeUpdate:" + ex.getMessage());</p><p&g

72、t;  return false;</p><p><b>  }</b></p><p><b>  } </b></p><p>  public void close () throws Exception { //關(guān)閉數(shù)據(jù)庫的連接 </p><p>  conn.close ();&l

73、t;/p><p>  stmt.close ();</p><p><b>  }</b></p><p><b>  }</b></p><p>  5.2 功能的實現(xiàn)</p><p>  投票流程圖:如圖5所示。</p><p><b> 

74、 圖 5 投票流程圖</b></p><p>  該流程圖已經(jīng)包含了網(wǎng)絡(luò)投票管理系統(tǒng)的制作的主要方法。</p><p>  5.3 問題及解決</p><p> ?。?)數(shù)據(jù)庫連接方面:該系統(tǒng)使用了MySQL的JDBC驅(qū)動程序來連接數(shù)據(jù)庫[23]。由于對數(shù)據(jù)庫的訪問,在整個系統(tǒng)中還是比較頻繁,將對數(shù)據(jù)庫的操作,寫成一個DBConnect的類,通過該類來

75、連接數(shù)據(jù)庫和訪問數(shù)據(jù)庫[24]。</p><p> ?。?)數(shù)據(jù)庫操作方面如下:</p><p> ?、?插入數(shù)據(jù)庫:sql="insert into vote(flag,optType,question) </p><p>  values(0,"+optType+",'"+question+"')

76、";</p><p>  dbBean.executeUpdate(sql);</p><p>  sql="select * from vote order by id desc";</p><p>  ResultSet rs=dbBean.executeQuery(sql) [25]; </p><p>

77、 ?、?查詢數(shù)據(jù)庫:sql="select * from vote where flag=0 and optType=0 order by id desc";</p><p>  rs=dbBean.executeQuery(sql) [26];</p><p> ?、?刪除數(shù)據(jù)庫:String sql="delete from vote where id=&

78、quot;+id ; </p><p>  dbBean.executeUpdate(sql) [27];</p><p><b>  6 運行部分</b></p><p>  6.1 系統(tǒng)的安裝</p><p>  該系統(tǒng)我在jdk1.5+MySQL環(huán)境下測試通過[28]:</p><p>

79、<b>  安裝步驟:</b></p><p>  該系統(tǒng)需要JSP運行環(huán)境和MySQL數(shù)據(jù)庫,如果服務(wù)器還沒有搭建的話請先搭建啟動Tomcat[29]。</p><p> ?。?)把vote、WEB-INF(vote文件夾存放的是.jsp文件,WEB-INF存放的是該系統(tǒng)使用到的一些.class文件)文件夾上傳到你的主機目錄。</p><p>

80、; ?。?) 修改DBConnect.java里連接MySQL數(shù)據(jù)庫的IP、用戶名和密碼為你自己的IP,user, password修改編譯之后放到WEB-INF\classes\目錄下面。</p><p> ?。?)請創(chuàng)建數(shù)據(jù)庫db2009,然后使用mysql db2009<vote.sql腳本創(chuàng)建該數(shù)據(jù)庫使用到的表。(腳本存放的路徑vote\vote.sql)</p><p> 

81、?。?)然后先在瀏覽器輸入URL:http://localhost:8080 顯示Tomcat首頁證明已經(jīng)成功啟動Tomcat服務(wù)器再輸入http://localhost:8080/vote/vote.jsp 顯示系統(tǒng)首頁[30]。</p><p>  6.2 系統(tǒng)的使用</p><p>  以下是系統(tǒng)運行過程中出現(xiàn)的一些界面和主要代碼,通過這些界面和代碼來更好的了解該投票系統(tǒng)。<

82、/p><p> ?。?)先啟動Tomcat服務(wù)器在IE瀏覽器的地址欄里輸入http://localhost:8080出現(xiàn)Tomcat首頁證明服務(wù)器已成功開啟,再在IE瀏覽器的地址欄里輸入網(wǎng)絡(luò)投票管理系統(tǒng)的URL: http://localhost:8080/vote/vote.jsp后,將進入投票系統(tǒng)的首頁。在首頁中明確顯示了該系統(tǒng)的操作單選投票、多選投票、查看投票、投票設(shè)計,如圖6所示。</p>

83、;<p>  圖6網(wǎng)絡(luò)投票管理系統(tǒng)首頁</p><p><b>  vote.jsp</b></p><p>  <%@page contentType="text/html;charset=gb2312"%></p><p>  <%@page import="java.sql.*

84、"%></p><p>  <jsp:useBean id="dbBean" class="vote.DBConnect" scope="page" /></p><p>  <html><head></p><p>  <title>網(wǎng)絡(luò)投票

85、管理系統(tǒng)</title></p><p>  <link href="vote.css" rel="stylesheet" type="text/css"></p><p>  </head><body><center></p><p>  <

86、;h3>單選投票</h3> <hr></p><p>  <form action="result.jsp" method="post"></p><p>  <div align="left"> </p><p>  <% String sql=

87、"select * from vote where flag = 0 and optType=0 order by id desc";</p><p>  ResultSet rs=dbBean.executeQuery(sql);</p><p>  int questionNum=0,optType,id,id1;</p><p>  St

88、ring question,str,optContent,type;</p><p>  while(rs.next()){ //輸出投票的主題</p><p>  questionNum++;</p><p>  str="主題"+questionNum+":";</p><p>  questio

89、n=rs.getString("question");</p><p>  optType=rs.getInt("optType");</p><p>  id=rs.getInt("id");</p><p>  out.print(str+question+"<br>")

90、;</p><p>  ResultSet rs1;</p><p>  sql="select * from vote where flag="+id;</p><p>  rs1=dbBean.executeQuery(sql);</p><p>  out.print("<hr>");

91、 //輸出該主題的選項</p><p>  while(rs1.next()){</p><p>  id1=rs1.getInt("id");</p><p>  optContent=rs1.getString("optContent");</p><p>  if(optType==0)<

92、/p><p>  type="radio";</p><p><b>  else{</b></p><p>  type="checkbox"; } %></p><p>  <input type="<%=type%>" name=&

93、quot;vote" value="<%=id1%>"></p><p>  <%=optContent%> <br></p><p>  <%}%> </div><hr></p><p>  <div align="left">

94、; </p><p>  <%}%> </div></p><p>  <input type="submit" name="sumbit1" value="確定"></form><%rs.close();%></p><p>  </cen

95、ter></body></html></p><p> ?。?)在網(wǎng)絡(luò)投票管理系統(tǒng)首頁中點擊你所要進行的操作,能打開相應(yīng)的頁面。如點擊“單選投票”鏈接就可以打開單選投票頁面,如圖7所示。</p><p>  圖7網(wǎng)絡(luò)投票管理系統(tǒng)單選投票</p><p> ?。?)如果在首頁中點擊“多選投票“鏈接,即可打開多選投票頁面如圖8所示。<

96、/p><p>  圖8網(wǎng)絡(luò)投票管理系統(tǒng)多選投票</p><p> ?。?)如果在首頁中點擊“查看投票“鏈接,即可查看投票的結(jié)果如圖9所示。</p><p>  圖9網(wǎng)絡(luò)投票管理系統(tǒng)投票結(jié)果</p><p>  result.jsp</p><p>  <%@page contentType="text/ht

97、ml;charset=gb2312"%></p><p>  <%@page import="java.sql.*"%></p><p>  <html><head></p><p>  <title>投票結(jié)果</title></p><p>  

98、<link href="vote.css" rel="stylesheet" type="text/css"></head></p><p><b>  <body></b></p><p>  <jsp:useBean id="dbBean" c

99、lass="vote.DBConnect" scope="page" /></p><p>  <h3 align="center">單選投票結(jié)果</h3><hr></p><p>  <%String sql="select * from vote order by id

100、 ";</p><p>  ResultSet rs=dbBean.executeQuery(sql);</p><p>  String id;</p><p>  id = request.getParameter("vote");</p><p>  sql="update vote set nu

101、mber=number+1 where id="+id;</p><p>  dbBean.executeQuery(sql);</p><p>  ResultSet rs1,rstotal;</p><p>  int questionNum=0,optType,id1,number,total=0;</p><p>  Str

102、ing question,str,optContent;</p><p>  sql="select * from vote where flag=0 and optType=0 order by id desc";</p><p>  rs=dbBean.executeQuery(sql);</p><p>  while(rs.next())

103、{</p><p>  questionNum++;</p><p>  str="主題"+questionNum+":";</p><p>  question=rs.getString("question");</p><p>  optType=rs.getInt("

104、optType"); </p><p>  id=Integer.toString(rs.getInt(“id”));</p><p>  out.print(str+question+"<br>");</p><p>  sql="select * from vote where flag="+id;&

105、lt;/p><p>  rstotal=dbBean.executeQuery(sql); //求得投票的總數(shù)</p><p>  while(rstotal.next()){</p><p>  number=rstotal.getInt("number");</p><p>  total+=number; }<

106、/p><p>  sql="select * from vote where flag="+id;</p><p>  rs1=dbBean.executeQuery(sql);</p><p>  out.print("<hr>"); //輸出各選項的得票數(shù)</p><p>  while(

107、rs1.next()){</p><p>  id1=rs1.getInt("id");</p><p>  optContent=rs1.getString("optContent");</p><p>  number=rs1.getInt("number");%></p><

108、p>  <%=optContent%> 得票數(shù):<%=number%> </p><p>  <img src = bar.gif width ="<%=100*number/total%>" height = 10><br><%}%></p><p>  <hr><div

109、align="left"><%}%></div> </p><p>  <div align="center"><a href="index.jsp"> 返回主頁 </a> </div></body></html></p><p&g

110、t; ?。?)如果在首頁中點擊“投票設(shè)計“鏈接,即可打開投票設(shè)計中的”增加主題“頁面,在增加主題頁面上還有投票設(shè)計中的其它幾項功能:刪除主題、查看主題、修改主題、返回首頁。增加主題的方法如10圖所示: </p><p>  圖10網(wǎng)絡(luò)投票管理系統(tǒng)增加主題</p><p><b>  add.jsp</b></p><p>  <%@pag

111、e contentType="text/html;charset=gb2312"%></p><p>  <%@page import="java.sql.*"%></p><p>  <jsp:useBean id="dbBean" scope="page" class="v

112、ote.DBConnect"/></p><p>  <% String question=request.getParameter("question");</p><p>  if(question==null){</p><p>  question =""; }</p><p

113、>  String type=request.getParameter("type");</p><p>  int num=0,optType=0;</p><p>  try{ num=Integer.parseInt(request.getParameter("num")); }</p><p>  catch

114、(Exception e){}%></p><p>  <html><head></p><p>  <title>增加主題</title></p><p>  <meta http-equiv="Content-Type" content="text/html; charse

115、t=gb2312"></p><p>  <link href="vote.css" rel="stylesheet" type="text/css"></p><p>  </head><body><center></p><p>  <

116、;h3>增加主題</h3></p><p>  <hr><a href=”add.jsp”>增加主題</a>||<a href=”del.jsp”>刪除主題</a>||<a href=”display.jsp”>查看主題</a>||<a href=”modify.jsp”>修改主題</a>

117、||<a href=”index.jsp”>返回首頁</a><hr></p><p>  <form action="add.jsp" method="post"> 請輸入主題名:<br></p><p>  <input type="text" name=&quo

118、t;question" size="50" value="<%=question%>"><p> </p><p>  <input type="checkbox" value="T" name="type" </p><p>  <%if(

119、type!=null){</p><p>  out.print("checked");</p><p>  optType=1;}</p><p><b>  else{</b></p><p>  optType=0;} %> >多選 &nbsp;&nbsp; 請輸

120、入選項的數(shù)目: </p><p>  <input typ="text" name="num" size="5" value="<%=num%>"></p><p>  <input type="submit" name="sumbit" v

121、alue="創(chuàng)建選項"> <p> </p><p>  <%String submit=request.getParameter("sumbit");</p><p>  if(submit!=null){</p><p>  for(int i=1;i<=num;i++){ %> 選

122、項<%=i%>:</p><p>  <input type="text" name="<%=i%>" value="" size="50"></p><p><b>  <br><%}%></b></p><

123、p>  <input type="submit" name="submit1" value="增加主題"></p><p>  <%}%></form></p><p>  <% String submit1=request.getParameter("submit1&q

124、uot;),str="",optContent,sql;</p><p><b>  int id;</b></p><p>  if(submit1!=null){</p><p>  sql="insert into vote(flag,optType,question) values(0,"+opt

125、Type+",'"+question+"')";</p><p>  dbBean.executeUpdate(sql);</p><p>  sql="select * from vote order by id desc";</p><p>  ResultSet rs=dbBean.

126、executeQuery(sql); </p><p>  id=rs.getInt(1);</p><p>  for(int i=1;i<=num;i++){</p><p>  str=Integer.toString(i);</p><p>  optContent=request.getParameter(str);</

127、p><p>  sql="insert into vote(flag,optContent,number) values("+id+",'"+optContent+"',0)";</p><p>  dbBean.executeUpdate(sql); }</p><p>  out.print

128、("成功插入主題!"); }%></p><p>  </center></body></html></p><p>  (6)如果在投票設(shè)計中點擊“刪除主題“鏈接,即可打開刪除主題頁面。如果你要刪除某個主題還有選項,只需在文本框中輸入其id號即可。(如果不知道待刪除主題的id號,請點擊”查看主題“查看其id號,如圖11所示。

129、</p><p>  圖11網(wǎng)絡(luò)投票管理系統(tǒng)刪除主題</p><p><b>  del.jsp</b></p><p>  <%@page contentType="text/html;charset=gb2312"%></p><p>  <jsp:useBean id=&quo

130、t;dbBean" scope="session" class="vote.DBConnect"/></p><p>  <% String id=request.getParameter("id");</p><p>  String sql="delete from vote where id=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論