在線問卷調查系統的設計與實現-畢業(yè)論文_第1頁
已閱讀1頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  本科畢業(yè)設計(論文)</p><p>  在線問卷調查系統的設計與實現</p><p>  姓 名: </p><p>  學 號: </p><p>  院 系: </p>

2、<p>  專 業(yè): 通信工程 </p><p>  指導老師: </p><p>  太原科技大學畢業(yè)設計(論文)任務書</p><p>  學院(直屬系): 電子信息工程系 時間:</p><p><b>  摘要</b&g

3、t;</p><p>  隨著社會不斷進步與發(fā)展,生活節(jié)奏不斷加快,信息已經成為我們生活中不可缺少的一部分,很多企業(yè)需要掌握大量的信息來了解特定用戶的需求,傳統的做法是組織大量的人力物力對用戶散發(fā)調查表,然后對收集的信息進行統計并得到想要的調查結果,但是這種傳統的做法浪費大、效率低、周期長,為了改變這種現象,我們設計了這套基于J2EE的問卷調查系統。</p><p>  本系統前臺主要使用

4、J2EE作為開發(fā)語言,后臺使用SQLServer作為數據庫管理系統,開發(fā)環(huán)境是MyEclipse,服務器采用tomcat。系統的主要功能包括:管理登陸、問卷調查題目及內容選項的添加、修改和查詢,調查結果統計等。分為管理員用戶、普通用戶這二種用戶平</p><p>  關鍵詞: 問卷調查, J2EE,SQLServer</p><p>  Questionnaire survey syste

5、m</p><p><b>  Abstract</b></p><p>  Along with the social progress and development, the pace of life, information has already become an indispensable part of our life, a lot of enter

6、prises need to have a large number of information to understand the specific needs of the users, the traditional approach is to organize a lot of manpower and material resources to users distributed questionnaires, and t

7、hen on to collect statistical information and want to get investigation the results, but such traditional practices waste, low efficie</p><p>  The front of the system using J2EE as a development language, t

8、he use of SQServer as database management system, the development environment is MyEclipse, server using tomcat. The main functions of the system include: Management landing, questionnaires and content options to add, mo

9、dify, query, statistics, survey results. As the administrator user, user two user platform.</p><p>  Key words: Questionnaire investigation, J2EE,SQLServer</p><p><b>  目 錄</b></p

10、><p><b>  第一章 緒論1</b></p><p><b>  1.1課題背景1</b></p><p>  1.2目的和意義1</p><p>  1.3開發(fā)工具及技術1</p><p>  1.3.1開發(fā)工具1</p><p>  

11、1.3.2 J2EE2</p><p>  1.3.3 JavaScript3</p><p>  1.3.4 Struts 2簡介3</p><p>  1.3.5 Hibernate簡介4</p><p>  1.4軟硬件需求4</p><p>  第二章 需求分析6</p><p&

12、gt;  2.1可行性分析6</p><p>  2.1.1技術的可行性6</p><p>  2.1.2經濟的可行性6</p><p>  2.1.3操作可行性6</p><p>  2.1.4法律的可行性6</p><p>  2.2系統用戶用例圖7</p><p>  2.2.

13、1管理員用例圖7</p><p>  2.2.2普通用戶用例圖7</p><p>  2.3功能模塊需求分析8</p><p>  2.4設計的基本思想9</p><p><b>  2.5性能需求9</b></p><p>  2.5.1系統的安全性9</p><

14、p>  2.5.2數據的完整性9</p><p><b>  2.6界面需求9</b></p><p>  第三章 系統分析與設計11</p><p>  3.1數據庫的分析與設計11</p><p>  3.1.1數據庫的概念結構設計11</p><p>  3.1.2數據庫的邏

15、輯結構設計14</p><p>  3.1.3數據庫的連接原理15</p><p>  3.2中文亂碼問題處理16</p><p>  第四章 系統功能實現19</p><p>  4.1系統登陸頁面實現19</p><p>  4.2總體功能模塊20</p><p>  4.2.1

16、問卷信息管理21</p><p>  4.2.2問卷題目管理24</p><p>  4.2.3調查結果統計27</p><p>  4.2.4系統公告管理29</p><p>  4.2.5修改個人密碼32</p><p>  4.2.6安全退出系統32</p><p>  4.3

17、普通用戶模塊32</p><p>  4.3.1系統主頁面實現32</p><p>  4.3.2問卷信息查詢33</p><p>  4.3.3用戶注冊33</p><p>  4.3.4參與問卷調查35</p><p>  第五章 系統測試37</p><p>  5.1系統測試

18、目的與意義37</p><p>  5.2測試過程37</p><p>  5.2.1主頁面的登錄模塊測試37</p><p>  5.3其他錯誤38</p><p><b>  結 論39</b></p><p><b>  參考文獻40</b></p&

19、gt;<p><b>  致 謝41</b></p><p><b>  第一章 緒論</b></p><p><b>  1.1課題背景</b></p><p>  問卷調查是收集第一手數據或資料的常用途徑,問卷調查法使用面廣、獲取數據便捷、研究成本較低,在很多領域都使用的非常廣泛

20、,20世紀80年代后,隨著個人計算機(pc)的出現和逐漸普及,計算機日益成為調查研究不可缺少的工具,到90年代之后,隨著互聯網(internet)的廣泛應用,各種基于網絡的調查方法開始出現:計算機輔助網絡訪談、移動調查等。</p><p>  目前基于internet的網絡問卷調查分析系統用的非常頻繁和普遍,才會有那么多的企業(yè)和公司在使用網絡問卷調查法來獲取信息。然而每開發(fā)一個新的網絡問卷調查系統需要耗費大量的時

21、間,很多已有的產品功能過于強大、設置負責、費用過于昂貴等缺點。</p><p><b>  1.2目的和意義</b></p><p>  本系統主要實現最為普遍的問卷調查,包括問卷管理、設計、統計分析等。為需求者提供網絡問卷,讓需求者能夠快速、方便的實施專業(yè)的問卷調研,調查問卷設計,快速回收,跨地域、低成本,投入少量資金即可獲得豐富的反饋信息。</p>

22、<p>  1.3開發(fā)工具及技術</p><p><b>  1.3.1開發(fā)工具</b></p><p>  此次設計主要采用MyEclipse加Tomcat后臺服務器進行,設計過程中頁面主要使用J2EE技術完成,下面對MyEclipse、Tomcat和MySQL數據庫進行簡要介紹。</p><p><b>  MyEcli

23、pse</b></p><p>  MyEclipse,是一個十分優(yōu)秀的用于開發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開元產品的支持十分不錯。MyEclipse企業(yè)級工作平臺(MyEclipse Enterprise Workbench ,簡稱MyEclipse)是對Eclipse IDE的擴展,利用它我們可以在數據庫和JavaEE

24、的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調試、測試和發(fā)布功能,完整支持HTML, Struts, J2EE, CSS, Javascript, SQL, Hibernate。</p><p><b>  Tomcat </b></p><p>  Tomcat是一個小型的輕量級應用服務器,

25、在中小型系統和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調試J2EE 程序的首選??梢赃@樣認為,當在一臺機器上配置好Apahce服務器,可利用它響應對HTML頁面的訪問請求。實際上Tomcat 部分是Apache 服務器的擴展,但它是獨立運行的,所以當運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。</p><p>  SQLServer </p><p>

26、;  SQLServer使用C和C++編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性;支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統;為多種編程語言提供了API;支持多線程,充分利用CPU資源;提供TCP/IP、ODBC和JDBC等多種數據庫連接途徑;可以處理擁有上千萬條記錄的大型數據庫。對于一般的個人

27、使用者和中小型企業(yè)來說,SQLServer提供的功能已經綽綽有余。</p><p>  1.3.2 J2EE</p><p>  J2EE技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態(tài)網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。J2EE將網頁邏輯與網頁設計和顯示分離,支持可重用的基于組件的設計,使基于We

28、b的應用程序的開發(fā)變得迅速和容易。 </p><p>  Web服務器在遇到訪問J2EE網頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結果連同J2EE文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數據庫、重新定向網頁等,以實現建立動態(tài)網頁所需要的功能。J2EE與Servlet一樣,是在服務器端執(zhí)行的,通常返回給客戶端就是一個HTML文本,因此客戶端只要有瀏覽器能瀏覽。J2EE頁面由HTML代碼和

29、嵌入其中的Java代碼所組成。服務器在頁面被客戶端請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Servlet是J2EE的技術基礎,而且大型的Web應用程序的開發(fā)需要Java Servlet和J2EE配合才能完成。J2EE具備了Java技術的簡單易用,完全的面向對象,具有平臺無關性且安全可靠,主要面向因特網的所有特點。J2EE技術的優(yōu)點:</p><p> ?。?)一次編寫,到

30、處運行。除了系統之外,代碼不用做任何更改。 </p><p>  (2)系統的多平臺支持?;旧峡梢栽谒衅脚_上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統部署,在任意環(huán)境中擴展。相比ASP/.net的局限性是顯而易見的。 </p><p> ?。?)強大的可伸縮性。從只有一個小的Jar文件就可以運行Servlet/J2EE,到由多臺服務器進行集群和負載均衡,到多臺Application進行事務

31、處理,消息處理,一臺服務器到無數臺服務器,Java顯示了一個巨大的生命力。 </p><p> ?。?)多樣化和功能強大的開發(fā)工具支持。Java已經有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經可以順利的運行于多種平臺之下</p><p>  (5)支持服務器端組件。web應用需要強大的服務器端組件來支持,開發(fā)人員需要利用其他工具設計實現復雜功能的組件供web頁面調用,

32、以增強系統性能。J2EE可以使用成熟的JAVA BEANS 組件來實現復雜商務功能。</p><p>  內部對象說明:request 客戶端請求,此請求會包含來自GET/POST請求的參數; response 網頁傳回客戶端的響應;pageContext 網頁的屬性是在這里管理; session 與請求有關的會話; application servlet正在執(zhí)行的內容;out 用來傳送響應的輸出流; confi

33、g 代碼片段配置對象;page J2EE網頁本身; exception 針對錯誤網頁,未捕捉的例外</p><p>  1.3.3 JavaScript</p><p>  JavaScript是一種基于對象和事件驅動并具有相對安全性的客戶端腳本語言。同時也是一種廣泛用于客戶端Web開發(fā)的腳本語言,常用來給HTML網頁添加動態(tài)功能,比如響應用戶的各種操作。JavaScript的一個重要功能

34、就是面向對象的功能,通過基于對象的程序設計,可以用更直觀、模塊化和可重復使用的方式進行程序開發(fā)。在HTML基礎上,使用Javascript可以開發(fā)交互式Web網頁。Javascript的出現使得網頁和用戶之間實現了一種實時性的、動態(tài)的、交互性的關系,使網頁包含更多活躍的元素和更加精彩的內容。在本系統中很多地方使用了javascript技術,比如說,檢驗用戶輸入數據的有效性,是否重復,是否為空等等。</p><p>

35、;  1.3.4 Struts 2簡介</p><p>  Struts最早是作為Apache Jakarta項目的組成部分問世運作。項目的創(chuàng)立者希望通過對該項目的研究,改進和提高Java Server Pages、Servlet、標簽庫以及面向對象的技術水準。它的目的是為了減少在運用MVC設計模型來開發(fā)Web應用的時間。</p><p>  使用Struts的目的是為了幫助我們減少在運用

36、MVC設計模型來開發(fā)Web應用的時間。Struts是Apache軟件基金會(ASF)贊助的一個開源項目。它最初是Jakarta項目中的一個子項目,并在2002年3月成為ASF的頂級項目。它通過采用Java Servlet/J2EE技術,實現了基于Java EE Web應用的Model-View-Controller〔MVC〕設計模式的應用框架〔Web Framework〕,是MVC經典設計模式中的一個經典產品。而Struts2則是Str

37、uts的升級版本。</p><p><b>  它的優(yōu)點在于:</b></p><p>  Struts2基于MVC架構,框架結構清晰,開發(fā)流程一目了然,開發(fā)人員可以很好的掌控開發(fā)的過程;</p><p>  使用OGNL進行參數傳遞;</p><p><b>  強大的攔截器;</b></p

38、><p><b>  易于測試;</b></p><p>  易于擴展的插件機制;</p><p>  全局結果與聲明式異常。</p><p>  1.3.5 Hibernate簡介</p><p>  Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得

39、Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/J2EE的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。</p><p>  Hibernate的核心接口一共有2個,分別為:Session、SessionFactory、

40、Transaction、Query和Configuration。這2個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。</p><p><b>  1.4軟硬件需求</b></p><p><b>  硬件需求:</b></p><p>  CPU:Pentium以上計算機&l

41、t;/p><p>  內存: 512M以上</p><p><b>  軟件需求:</b></p><p>  操作系統版本:Windows XP /vista/Win7</p><p>  開發(fā)工具:MyEclipse 6.0.1</p><p>  后臺服務器:Apache Tomcat 6.0&

42、lt;/p><p><b>  開發(fā)語言:Java</b></p><p><b>  瀏覽器:IE6.0</b></p><p><b>  第二章 需求分析</b></p><p><b>  2.1可行性分析</b></p><p&g

43、t;  開發(fā)任何一個系統,都會受到時間和資源上的限制。因此,在每一個項目開發(fā)之前,都要進行可行性分析,可以減少項目的開發(fā)風險,避免人力、物力和財力的浪費。下面就技術、經濟、操作和法律四個方面來介紹。</p><p>  2.1.1技術的可行性</p><p>  本系統開發(fā)工具是MyEclipse和SQL2005數據庫,開發(fā)語言是Java,主要使用了J2EE的技術,java是一種面向對象編

44、程語言,簡單易學而且靈活方便。大三時就學習了java課程,大四期間也系統的了解了J2EE的知識,問卷調查管理系統總體上開發(fā)難度不高,數據庫的設計和操作是本系統設計的核心。在大學期間學習過軟件工程,軟件測試,UML統一建模語言等課程,每個學期也會完成對應的課程設計,具備一定的系統分析、設計和測試能力。因此,完成系統實現在技術上完全具有可行性。</p><p>  2.1.2經濟的可行性</p><

45、;p>  由于選擇的開發(fā)工具和服務器幾乎全部為免費的開源軟件,并且由于是開發(fā)成本較低的基于Web的B/S模式,而非成本費用相對較高的C/S模式,所以從經濟上來講是可行的。</p><p>  2.1.3操作可行性</p><p>  本系統操作簡單,輸入信息頁面大多數都是下拉框的選擇形式,在某些頁面,信息可以自動生成,無需輸入,時間的輸入也是用的日歷控件,操作簡便,對操作人員的要求很

46、低,只需對WINDOWS操作熟練。而且本系統可視性非常好,所以在技術上不會有很大難度。</p><p>  2.1.4法律的可行性</p><p>  問卷調查管理系統是自行開發(fā)的系統,是很有實際意義的系統,開發(fā)環(huán)境軟件和使用的數據庫都是開源代碼,開發(fā)這個系統不同于開發(fā)普通的系統軟件,不存在侵權等問題,即法律上是可行的。</p><p>  綜上所述,開發(fā)一個問卷調

47、查系統與原有的問卷調查方式相比具有速度更快,操作更準確,節(jié)省開支等有利之處,因此,建立問卷調查管理系統是必要可行的。</p><p>  2.2系統用戶用例圖</p><p>  2.2.1管理員用例圖</p><p>  管理員是系統的核心用戶,涉及到六大功能模塊,管理員對系統的所有注冊用戶有著操作的權限,能夠及時動態(tài)的問卷調查信息的各項情況。</p>

48、<p>  圖2.1 管理員用例圖</p><p>  2.2.2普通用戶用例圖</p><p>  普通用戶通過注冊加入系統后,實現在線參與問卷調、瀏覽公告信息等功能。</p><p>  圖2.2 普通用戶用例圖</p><p>  2.3功能模塊需求分析</p><p>  圖2.3 管理員用戶功能

49、模塊圖</p><p>  圖2.4 普通用戶功能模塊圖</p><p>  2.4設計的基本思想</p><p>  設計思想遵循以下幾點:</p><p>  1. 采用B/S模式進行開發(fā),其優(yōu)點是后臺與前臺處理層次分明,而且符合眾多已經習慣網頁方式的用戶。</p><p>  2. 采用面向對象的開發(fā)與設計理念。

50、運用面向對象技術的前提是對整體系統的高度和準確抽象,通過它可以保證系統良好的框架,進而帶來產品較強的穩(wěn)定性和運行效率。</p><p>  3. 采用模塊化設計。模塊化設計要求將整個系統劃分成基于小的模塊,有利于代碼的重載,簡化設計和實現過程。</p><p>  4. 簡單方便的系統界面。設計簡單友好的系統界面,方便用戶較快的適應系統的操作。</p><p>  

51、5.速度優(yōu)先原則。由于此工具最重要的評測標準就是速度,因此在設計過程中,具體過程盡量做到資源占用少,速度快。</p><p>  6.設計既要突出重點,又要細致周到。要符合設計需求,在有可能改進的地方進行擴充,使系統更適應用戶的需要。</p><p><b>  2.5性能需求</b></p><p>  2.5.1系統的安全性</p&g

52、t;<p>  問卷調查管理系統在管理權限上要嚴格進行控制,具體要求如下:</p><p>  想登錄問卷調查管理系統進行操作,必須有操作權限,沒有權限的用戶不能通過任何方式登錄系統查看系統的任何信息和數據,以確保系統的嚴密性和安全性。</p><p>  2.5.2數據的完整性</p><p>  1.各種記錄信息的完整性,信息記錄內容不能為空<

53、;/p><p>  2.各種數據間相互聯系的正確性</p><p>  3.相同數據在不同記錄中的一致性</p><p><b>  2.6界面需求</b></p><p>  界面設計目前已經成為評價軟件質量的一條重要指標,一個好的用戶界面可以增加用戶使用系統的信心和興趣,提高工作效率,J2EE技術是用JAVA語言作為腳本

54、語言的,J2EE網頁為整個服務器端的JAVA庫單元提供了一個接口來服務于HTTP的應用程序。 創(chuàng)建動態(tài)頁面非常方便。用戶界面是指軟件系統與用戶交互的接口,通常包括輸出、輸入、人-機對話的界面格式等。</p><p><b>  1.輸出設計</b></p><p>  輸出是由計算機對輸入的原始信息進行加工處理,形成高質量的有效信息,并使之具有一定的格式,提供管理者使

55、用,這是輸出設計的主要職責和目標。</p><p>  系統設計的過程正好和實施過程相反,并不是從輸入設計到輸出設計,而是從輸出設計到輸入設計,這是因為輸出表格直接與使用者相聯系,設計的出發(fā)點應當是保證輸出表格方便地為使用者服務,正確及時反映和組成用于各部門的有用信息。輸出設計的原則是考慮既要全面反映不同管理層的各項需要,又要言簡意賅,不要將用戶需要和不需要的都提供給用戶。</p><p>

56、;<b>  2.輸入設計</b></p><p>  輸入數據的收集和錄入是比較費事的,需要大量的人力和一定設備,并且容易出錯。如果輸入系統的數據有錯誤,則處理后的輸出將擴大這些錯誤,因此輸入數據的正確性對于整個系統質量的好壞是具有決定性意義的。</p><p>  輸入設計的原則有如下幾點:</p><p>  1)輸入量應保持在能滿足處理

57、要求的最低限度。設計中可采用設置字段初值,下拉式數據窗口等方式盡量減少用戶鍵盤輸入量。輸入量越少,錯誤率就越少,數據準備時間也減少。</p><p>  2)輸入的準備及輸入過程應盡量容易進行,從而減少錯誤的發(fā)生。</p><p>  3)應盡量早對輸入數據進行檢查(盡量接近原數據發(fā)生點),以便使錯誤及時得到更正。</p><p>  4)輸入數據盡早地用其處理所需

58、的形式被記錄,以避免數據由一種介質轉移到另一種介質時需要轉錄而可能發(fā)生的錯誤</p><p>  第三章 系統分析與設計</p><p>  3.1數據庫的分析與設計</p><p>  計算機信息系統以數據庫為核心,在數據庫管理系統的支持下,進行信息的收集、整理、存儲、檢索、更新、加工、統計和傳播等操作。數據庫已經成為現在信息系統等計算機系統的基礎與核心部分。數據

59、庫設計的好壞直接影響到整個系統的質量和效率。</p><p>  數據庫的設計一般經過規(guī)劃。需求分析、概念設計、邏輯設計、物理設計5個步驟。</p><p>  3.1.1數據庫的概念結構設計</p><p>  概念設計是指在數據分析的基礎上自底向上的建立整個系統的數據庫概念結構,從用戶的角度進行視圖設計,然后將視圖集成,最后對集成的結構分析優(yōu)化得到最后結果。&l

60、t;/p><p>  數據庫的概念結構設計采用實體—聯系(E-R)模型設計方法。E-R模型法的組成元素有:實體、屬性、聯系,E-R模型用E-R圖表示,是提示用戶工作環(huán)境中所涉及的事物,屬性則是對實體特性的描述。</p><p>  概念設計的目標是產生反映企業(yè)組織信息要求的數據庫概念結構,即概念模式。概念模式是獨立于數據庫邏輯結構,獨立于支持數據庫的DBMS,不依賴于計算機系統的,</p

61、><p>  根據以上對數據庫的需求分析,并結合系統概念模型的特點及建立方法,建立E-R模型圖。</p><p>  (1)普通用戶實體E-R圖如圖3.1所示:</p><p>  圖3.1 用戶信息實體E-R圖</p><p>  (2)問卷信息實體E-R圖如圖3.2所示:</p><p>  圖3.2 投訴信息實體E-

62、R圖</p><p>  (3)題目信息實體E-R圖如圖3.3所示</p><p>  圖3.3 題目信息實體E-R圖</p><p>  (4)選項信息實體E-R圖如圖3.4所示</p><p>  圖3.4 選項信息實體E-R圖</p><p>  (5)公告信息實體E-R圖如圖3.6所示</p>&

63、lt;p>  圖3.6 公告信息實體E-R圖</p><p>  (6)管理員信息E-R圖如圖3.7所示</p><p>  圖3.7 管理員信息實體E-R圖</p><p>  3.1.2數據庫的邏輯結構設計</p><p>  我們知道,數據庫概念模型獨立于任何特定的數據庫管理系統,因此,需要根據具體使用的數據庫管理系統的特點進行轉

64、換。即轉化為按計算機觀點處理的邏輯關系模型,E-R模型向關系數據庫模型轉換應遵循下列原則:</p><p>  *每一個實體要轉換成一個關系</p><p>  *所有的主鍵必須定義非空(NOT NULL)</p><p>  *對于二元聯系應按照一對多、弱對實、一對一、多對多等聯系來定義外鍵。</p><p>  根據E-R模型,問卷調查管

65、理系統建立了以下邏輯數據結構,下面是各數據表的詳細說明。</p><p>  (1)用戶信息表主要是記錄了注冊用戶基本信息,表結構如表3.1所示。</p><p>  表3.1用戶信息表(t_user)</p><p>  (2)問卷信息表主要記錄了問卷調查的基本信息,表結構如表3.2所示。</p><p>  表3.2問卷信息表(t_wen

66、juan)</p><p>  (3)題目信息表主要是記錄了問卷中的題目信息,表結構如圖3.3所示。</p><p>  表3.3題目信息表(t_toupiao)</p><p>  (4)選項信息表主要是記錄了題目的選項信息,表結構如圖3.4所示。</p><p>  表3.4選項信息表(t_toupiaoxuanxiang)</p&

67、gt;<p>  (5)公告信息表主要是注冊管理員發(fā)布的公告信息,表結構如圖3.5所示。</p><p>  表3.5公告信息表(t_gonggao)</p><p>  (6)管理員信息表主要記錄的管理員的賬號信息,包括用戶名和密碼,表結構如表3.7所示。</p><p>  表3.6管理員信息表(t_admin)</p><p&

68、gt;  3.1.3數據庫的連接原理</p><p>  本系統采用Hibernate對數據庫進行管理。Hibernate 是一個開放源代碼的對象關系映射框架,它對 JDBC 進行了輕量級的對象封裝,使 Java 程序員可以隨心所欲的使用對象編程思維來操縱數據庫。它不僅提供了從 Java 類到數據表之間的映射,也提供了數據查詢和恢復機制。相對于使用 JDBC 和 SQL 來手工操作數據庫,Hibernate 可以

69、大大減少操作數據庫的工作量。 另外 Hibernate 可以利用代理模式來簡化載入類的過程,這將大大減少利用 Hibernate QL 從數據庫提取數據的代碼的編寫量,從而節(jié)約開發(fā)時間和開發(fā)成本 Hibernate 可以和多種Web 服務器或者應用服務器良好集成,如今已經支持幾乎所有的流行的數據庫服務器。</p><p>  Hibernate 技術本質上是一個提供數據庫服務的中間件。它的架構如圖3.5所示:&l

70、t;/p><p>  圖3.5Hibernatre架構圖</p><p>  圖3.5顯示了 Hibernate 的工作原理,它是利用數據庫以及其他一些配置文件如 Hibernate .properties ,XML Mapping 等來為應用程序提供數據持久化服務的。 </p><p>  Hibernate 具有很大的靈活性,但同時它的體系結構比較復雜,提供了好幾種

71、不同的運行方式。在輕型體系中,應用程序提供 JDBC 連接,并且自行管理事務,這種方式使用了 Hibernate 的一個最小子集;在全面解決體系中,對于應用程序來說,所有底層的 JDBC/JTA API 都被抽象了,Hibernate 會替你照管所有的細節(jié)。 </p><p>  3.2中文亂碼問題處理</p><p>  在程序中經常會遇到中文亂碼的情況,如果手動的在servlet和J2

72、EE頁面進行設置,相當麻煩。因此,在程序的開始就寫了一個過濾器SetCharacterEncodingFilter。</p><p>  在web.xml中配置:</p><p><b>  <filter></b></p><p>  <filter-name>SetCharacterEncodingFilter<

73、;/filter-name></p><p>  <filter-class>myweb.util.filter.SetCharacterEncodingFilter</filter-class></p><p>  <init-param></p><p>  <param-name>encoding</

74、param-name></p><p>  <param-value>gb2312</param-value></p><p>  </init-param></p><p><b>  </filter></b></p><p>  <filter-mappi

75、ng></p><p>  <filter-name>SetCharacterEncodingFilter</filter-name></p><p>  <url-pattern>/*</url-pattern>//*表示工程下所有的頁面都會有此過濾器的處理</p><p>  </filter-mapp

76、ing></p><p>  對應的SetCharacterEncodingFilter.java文件中的重要代碼,在初始化init()方法中定義:</p><p>  public void init(FilterConfig filterConfig) throws ServletException {</p><p>  this.filterConfi

77、g = filterConfig;</p><p>  this.encoding = filterConfig.getInitParameter("encoding");</p><p>  String value = filterConfig.getInitParameter("ignore");</p><p><

78、;b>  }</b></p><p>  在工具包util包中同樣定義了DataFormate類來處理字符轉換:</p><p>  public static String toUni(String gbStr){</p><p>  String uniStr = ""; /*把字符串轉換成uincode編碼*/</p

79、><p>  if(gbStr == null){</p><p>  gbStr = "";</p><p><b>  }</b></p><p><b>  try{</b></p><p>  byte[] tempByte = gbStr.getBy

80、tes("GB2312");</p><p>  uniStr = new String(tempByte,"ISO8859_1");</p><p>  }catch(Exception ex){</p><p><b>  }</b></p><p>  return uniS

81、tr;</p><p><b>  }</b></p><p>  /* 把字符串轉換成Utf8編碼*/</p><p>  public static String toUtf8String(String s) {</p><p>  StringBuffer sb = new StringBuffer();</

82、p><p>  for (int i = 0; i < s.length(); i++) {</p><p>  char c = s.charAt(i);</p><p>  if (c >= 0 && c <= 255) {</p><p>  sb.append(c);</p><p&g

83、t;<b>  }</b></p><p><b>  else {</b></p><p><b>  byte[] b;</b></p><p><b>  try {</b></p><p>  b = Character.toString(c).g

84、etBytes("utf-8");</p><p>  }catch (Exception ex) {</p><p>  System.out.println(ex);</p><p>  b = new byte[0];</p><p><b>  }</b></p><p&g

85、t;  for (int j = 0; j < b.length; j++) {</p><p>  int k = b[j];</p><p>  if (k < 0) {</p><p><b>  k += 256;</b></p><p><b>  }</b></p>

86、;<p>  sb.append("%" + Integer.toHexString(k).</p><p>  toUpperCase()); } }</p><p>  return sb.toString(); }</p><p>  第四章 系統功能實現</p><p>  在管理信息系統的生命周

87、期中,經過了需求分析、系統設計等階段之后,便開始了系統實施階段。在系統分析和設計階段,系統開發(fā)工作主要是集中在邏輯、功能和技術設計上,系統實施階段要繼承此前面各個階段的工作成果,將技術設計轉化為物理實現,因此系統實施的成果是系統分析和設計階段的結晶。</p><p>  4.1系統登陸頁面實現</p><p>  1.描述:為了保證系統的安全性,要先使用本系統必須先登陸到系統中,用戶需要正

88、確的賬號和密碼登錄本系統。</p><p>  2.程序運行效果圖如圖4.1所示:</p><p>  圖4.1 系統登陸頁面設計</p><p>  3.在登陸頁面輸入用戶名和密碼以,點擊提交按鈕,跳轉到登陸的service中,在該service中會對用戶名,密碼,驗證碼進行判斷,驗證通過進入對應的頁面,loginservice關鍵代碼:</p>&

89、lt;p>  public String login(String userName,String userPw,int userType)</p><p><b>  {</b></p><p>  String result="no";</p><p>  if(userType==0)//系統管理員登陸</

90、p><p><b>  {</b></p><p>  String sql="from TAdmin where userName=? and userPw=?";</p><p>  Object[] con={userName,userPw};</p><p>  List adminList=ad

91、minDAO.getHibernateTemplate().find(sql,con);</p><p>  if(adminList.size()==0)</p><p><b>  {</b></p><p>  result="no";</p><p><b>  }</b>

92、;</p><p><b>  else</b></p><p><b>  {</b></p><p>  WebContext ctx = WebContextFactory.get(); </p><p>  HttpSession session=ctx.getSession(); <

93、/p><p>  TAdmin admin=(TAdmin)adminList.get(0);</p><p>  session.setAttribute("userType", 0);</p><p>  session.setAttribute("admin", admin);</p><p>  r

94、esult="yes";</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(userType==1)//putongyuangong</p><p><b>  {</b></p><

95、;p><b>  }</b></p><p><b>  4.2總體功能模塊</b></p><p>  1.描述:系統主頁面:左方頁面展示了管理員可操作的六大功能,進入相關的管理頁面可以鏈接到子菜單,并且高亮顯示,每個管理模塊下面都有相應的子菜單。</p><p>  2.程序運行效果圖如圖4.2所示:</p

96、><p>  圖4.2管理員主頁面</p><p>  在每個J2EE頁面將會對相關用戶進行攔截操作,這樣可以提高安全性,防止用戶不經過登陸頁面而進入任何子菜單頁面:</p><p>  if(session.getAttribute("user")==null)</p><p><b>  {</b>&

97、lt;/p><p>  out.print("<script>alert('請先登錄!');window.open('../index.J2EE','_self')</script>"); </p><p><b>  }</b></p><p>  4.

98、2.1問卷信息管理</p><p><b>  問卷信息添加</b></p><p>  1.描述:管理員輸入問卷信息后點擊錄入按鈕,如果是沒有輸入完整的問卷信息,都會給出相應的錯誤提示,不能錄入成功。輸入數據都通過form表單中定義的方法onsubmit="return checkForm()"來檢查,checkForm()函數中是各種的校驗輸入

99、數據的方式。</p><p>  2.程序效果圖如下圖4.3所示</p><p>  圖4.3 問卷信息添加</p><p><b>  問卷信息管理</b></p><p>  1.描述:管理員點擊左側的菜單“問卷信息管理”,頁面跳轉到問卷信息管理界面,調用后臺的action類查詢出所有的問卷信息,并把這些信息封轉到數

100、據集合List中,綁定到request對象,然后頁面跳轉到相應的J2EE,顯示出問卷信息。</p><p>  2.程序效果圖如下圖4.4所示</p><p>  圖4.4 問卷信息管理</p><p>  問卷信息管理關鍵代碼:</p><p>  public String wenjuanAdd()</p><p>

101、;<b>  {</b></p><p>  TWenjuan wenjuan=new TWenjuan();</p><p>  wenjuan.setId(String.valueOf(new Date().getTime()));</p><p>  wenjuan.setMingcheng(mingcheng);</p>

102、<p>  wenjuan.setShijian(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));</p><p>  wenjuanDAO.save(wenjuan);</p><p>  this.setMessage("添加完畢");</p><p>

103、;  this.setPath("wenjuanMana.action");</p><p>  return "succeed";</p><p><b>  }</b></p><p>  public String wenjuanMana()</p><p><b>

104、;  {</b></p><p>  String sql="from TWenjuan";</p><p>  List wenjuanList =wenjuanDAO.getHibernateTemplate().find(sql);</p><p>  Map request=(Map)ServletActionContext.

105、getContext().get("request");</p><p>  request.put("wenjuanList", wenjuanList);</p><p>  return ActionSupport.SUCCESS;</p><p><b>  }</b></p>&l

106、t;p>  public String wenjuanDel()</p><p><b>  {</b></p><p>  TWenjuan wenjuan=wenjuanDAO.findById(id);</p><p>  wenjuanDAO.delete(wenjuan);</p><p>  this.

107、setMessage("刪除完畢");</p><p>  this.setPath("wenjuanMana.action");</p><p>  return "succeed";</p><p><b>  }</b></p><p><b>

108、  問卷信息刪除</b></p><p>  1.描述:先是點擊問卷信息管理,頁面跳轉到問卷信息管理界面,瀏覽所有的問卷信息,點擊要刪除的問卷信息,點擊確認按鈕,完成問卷刪除操作。</p><p>  2.程序效果圖如下圖4.6所示</p><p>  圖4.6 問卷信息刪除</p><p>  4.2.2問卷題目管理</p

109、><p><b>  問卷題目添加</b></p><p>  1.描述:點擊問卷管理,顯示所有的問卷信息,然后點擊“添加題目”超練級,系統自動彈出添加題目的頁面,輸入題目信息后點擊錄入按鈕,如果是沒有輸入完整的題目信息,都會給出相應的錯誤提示,不能錄入成功。輸入數據都通過form表單中定義的方法onsubmit="return checkForm()"

110、;來檢查,checkForm()函數中是各種的校驗輸入數據的方式。</p><p>  2.程序效果圖如下圖4.7所示:</p><p>  圖4.7題目信息受理</p><p><b>  問卷信息預覽</b></p><p>  1.描述:點擊問卷預覽按鈕,系統自動顯示改問卷的題目信息。</p><

111、;p>  2.程序效果圖如下圖4.8所示</p><p>  圖4.8問卷預覽界面</p><p>  問卷題目管理關鍵代碼:</p><p>  public String toupiaoAdd()</p><p><b>  {</b></p><p>  HttpServletRequ

112、est request=ServletActionContext.getRequest();</p><p>  String id=String.valueOf(new Date().getTime());</p><p>  String title=request.getParameter("title");</p><p>  Strin

113、g wenjuan_id=request.getParameter("wenjuan_id");</p><p>  TToupiao toupiao=new TToupiao();</p><p>  toupiao.setId(id);</p><p>  toupiao.setTitle(title);</p><p&g

114、t;  toupiao.setWenjuan_id(wenjuan_id);</p><p>  toupiaoDAO.save(toupiao);</p><p>  String[] xuanxiangneirong=request.getParameterValues("xuanxiangneirong");</p><p>  for(i

115、nt i=0;i<xuanxiangneirong.length;i++)</p><p><b>  {</b></p><p><b>  try</b></p><p><b>  {</b></p><p>  Thread.sleep(100);</p&g

116、t;<p><b>  } </b></p><p>  catch (InterruptedException e)</p><p><b>  {</b></p><p>  e.printStackTrace();</p><p><b>  }</b>&l

117、t;/p><p>  System.out.println(xuanxiangneirong[i]+"%%");</p><p>  toupiaoxuanxiangSave(xuanxiangneirong[i], id);//這個地方的id是投票的id</p><p><b>  }</b></p><p

118、>  request.setAttribute("msg", "添加完畢");</p><p>  return "msg";</p><p><b>  }</b></p><p>  public void toupiaoxuanxiangSave(String xuanxi

119、angneirong,String toupiao_id)</p><p><b>  {</b></p><p>  TToupiaoxuanxiang toupiaoxuanxiang=new TToupiaoxuanxiang();</p><p>  toupiaoxuanxiang.setId(String.valueOf(new D

120、ate().getTime()));</p><p>  toupiaoxuanxiang.setXuanxiangneirong(xuanxiangneirong);</p><p>  toupiaoxuanxiang.setPiaoshu(0);</p><p>  toupiaoxuanxiang.setToupiao_id(toupiao_id);<

121、/p><p>  toupiaoxuanxiangDAO.save(toupiaoxuanxiang);</p><p><b>  }</b></p><p>  4.2.3調查結果統計</p><p><b>  調查結果統計</b></p><p>  1.描述:選擇一條問

122、卷信息,點擊“結果統計”,系統調轉到統計頁面。</p><p>  2.程序效果圖如下圖4.9所示:</p><p>  圖4.9調查結果統計</p><p><b>  柱狀圖顯示</b></p><p>  1.描述:選擇一條問卷,點擊“統計結果”,然后點擊“柱狀圖”超級鏈接,以柱狀圖的形式顯示統計結果,顯示更加直觀

溫馨提示

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

評論

0/150

提交評論