版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科畢業(yè)設(shè)計(jì)(論文)</p><p> 在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p> 院 系: </p>
2、<p> 專 業(yè): 通信工程 </p><p> 指導(dǎo)老師: </p><p> 太原科技大學(xué)畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p> 學(xué)院(直屬系): 電子信息工程系 時(shí)間:</p><p><b> 摘要</b&g
3、t;</p><p> 隨著社會(huì)不斷進(jìn)步與發(fā)展,生活節(jié)奏不斷加快,信息已經(jīng)成為我們生活中不可缺少的一部分,很多企業(yè)需要掌握大量的信息來(lái)了解特定用戶的需求,傳統(tǒng)的做法是組織大量的人力物力對(duì)用戶散發(fā)調(diào)查表,然后對(duì)收集的信息進(jìn)行統(tǒng)計(jì)并得到想要的調(diào)查結(jié)果,但是這種傳統(tǒng)的做法浪費(fèi)大、效率低、周期長(zhǎng),為了改變這種現(xiàn)象,我們?cè)O(shè)計(jì)了這套基于J2EE的問(wèn)卷調(diào)查系統(tǒng)。</p><p> 本系統(tǒng)前臺(tái)主要使用
4、J2EE作為開(kāi)發(fā)語(yǔ)言,后臺(tái)使用SQLServer作為數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)環(huán)境是MyEclipse,服務(wù)器采用tomcat。系統(tǒng)的主要功能包括:管理登陸、問(wèn)卷調(diào)查題目及內(nèi)容選項(xiàng)的添加、修改和查詢,調(diào)查結(jié)果統(tǒng)計(jì)等。分為管理員用戶、普通用戶這二種用戶平</p><p> 關(guān)鍵詞: 問(wèn)卷調(diào)查, 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開(kāi)發(fā)工具及技術(shù)1</p><p> 1.3.1開(kāi)發(fā)工具1</p><p>
11、1.3.2 J2EE2</p><p> 1.3.3 JavaScript3</p><p> 1.3.4 Struts 2簡(jiǎn)介3</p><p> 1.3.5 Hibernate簡(jiǎn)介4</p><p> 1.4軟硬件需求4</p><p> 第二章 需求分析6</p><p&
12、gt; 2.1可行性分析6</p><p> 2.1.1技術(shù)的可行性6</p><p> 2.1.2經(jīng)濟(jì)的可行性6</p><p> 2.1.3操作可行性6</p><p> 2.1.4法律的可行性6</p><p> 2.2系統(tǒng)用戶用例圖7</p><p> 2.2.
13、1管理員用例圖7</p><p> 2.2.2普通用戶用例圖7</p><p> 2.3功能模塊需求分析8</p><p> 2.4設(shè)計(jì)的基本思想9</p><p><b> 2.5性能需求9</b></p><p> 2.5.1系統(tǒng)的安全性9</p><
14、p> 2.5.2數(shù)據(jù)的完整性9</p><p><b> 2.6界面需求9</b></p><p> 第三章 系統(tǒng)分析與設(shè)計(jì)11</p><p> 3.1數(shù)據(jù)庫(kù)的分析與設(shè)計(jì)11</p><p> 3.1.1數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)11</p><p> 3.1.2數(shù)據(jù)庫(kù)的邏
15、輯結(jié)構(gòu)設(shè)計(jì)14</p><p> 3.1.3數(shù)據(jù)庫(kù)的連接原理15</p><p> 3.2中文亂碼問(wèn)題處理16</p><p> 第四章 系統(tǒng)功能實(shí)現(xiàn)19</p><p> 4.1系統(tǒng)登陸頁(yè)面實(shí)現(xiàn)19</p><p> 4.2總體功能模塊20</p><p> 4.2.1
16、問(wèn)卷信息管理21</p><p> 4.2.2問(wèn)卷題目管理24</p><p> 4.2.3調(diào)查結(jié)果統(tǒng)計(jì)27</p><p> 4.2.4系統(tǒng)公告管理29</p><p> 4.2.5修改個(gè)人密碼32</p><p> 4.2.6安全退出系統(tǒng)32</p><p> 4.3
17、普通用戶模塊32</p><p> 4.3.1系統(tǒng)主頁(yè)面實(shí)現(xiàn)32</p><p> 4.3.2問(wèn)卷信息查詢33</p><p> 4.3.3用戶注冊(cè)33</p><p> 4.3.4參與問(wèn)卷調(diào)查35</p><p> 第五章 系統(tǒng)測(cè)試37</p><p> 5.1系統(tǒng)測(cè)試
18、目的與意義37</p><p> 5.2測(cè)試過(guò)程37</p><p> 5.2.1主頁(yè)面的登錄模塊測(cè)試37</p><p> 5.3其他錯(cuò)誤38</p><p><b> 結(jié) 論39</b></p><p><b> 參考文獻(xiàn)40</b></p&
19、gt;<p><b> 致 謝41</b></p><p><b> 第一章 緒論</b></p><p><b> 1.1課題背景</b></p><p> 問(wèn)卷調(diào)查是收集第一手?jǐn)?shù)據(jù)或資料的常用途徑,問(wèn)卷調(diào)查法使用面廣、獲取數(shù)據(jù)便捷、研究成本較低,在很多領(lǐng)域都使用的非常廣泛
20、,20世紀(jì)80年代后,隨著個(gè)人計(jì)算機(jī)(pc)的出現(xiàn)和逐漸普及,計(jì)算機(jī)日益成為調(diào)查研究不可缺少的工具,到90年代之后,隨著互聯(lián)網(wǎng)(internet)的廣泛應(yīng)用,各種基于網(wǎng)絡(luò)的調(diào)查方法開(kāi)始出現(xiàn):計(jì)算機(jī)輔助網(wǎng)絡(luò)訪談、移動(dòng)調(diào)查等。</p><p> 目前基于internet的網(wǎng)絡(luò)問(wèn)卷調(diào)查分析系統(tǒng)用的非常頻繁和普遍,才會(huì)有那么多的企業(yè)和公司在使用網(wǎng)絡(luò)問(wèn)卷調(diào)查法來(lái)獲取信息。然而每開(kāi)發(fā)一個(gè)新的網(wǎng)絡(luò)問(wèn)卷調(diào)查系統(tǒng)需要耗費(fèi)大量的時(shí)
21、間,很多已有的產(chǎn)品功能過(guò)于強(qiáng)大、設(shè)置負(fù)責(zé)、費(fèi)用過(guò)于昂貴等缺點(diǎn)。</p><p><b> 1.2目的和意義</b></p><p> 本系統(tǒng)主要實(shí)現(xiàn)最為普遍的問(wèn)卷調(diào)查,包括問(wèn)卷管理、設(shè)計(jì)、統(tǒng)計(jì)分析等。為需求者提供網(wǎng)絡(luò)問(wèn)卷,讓需求者能夠快速、方便的實(shí)施專業(yè)的問(wèn)卷調(diào)研,調(diào)查問(wèn)卷設(shè)計(jì),快速回收,跨地域、低成本,投入少量資金即可獲得豐富的反饋信息。</p>
22、<p> 1.3開(kāi)發(fā)工具及技術(shù)</p><p><b> 1.3.1開(kāi)發(fā)工具</b></p><p> 此次設(shè)計(jì)主要采用MyEclipse加Tomcat后臺(tái)服務(wù)器進(jìn)行,設(shè)計(jì)過(guò)程中頁(yè)面主要使用J2EE技術(shù)完成,下面對(duì)MyEclipse、Tomcat和MySQL數(shù)據(jù)庫(kù)進(jìn)行簡(jiǎn)要介紹。</p><p><b> MyEcli
23、pse</b></p><p> MyEclipse,是一個(gè)十分優(yōu)秀的用于開(kāi)發(fā)Java, J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開(kāi)元產(chǎn)品的支持十分不錯(cuò)。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡(jiǎn)稱MyEclipse)是對(duì)Eclipse IDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和JavaEE
24、的開(kāi)發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML, Struts, J2EE, CSS, Javascript, SQL, Hibernate。</p><p><b> Tomcat </b></p><p> Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,
25、在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試J2EE 程序的首選。可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apahce服務(wù)器,可利用它響應(yīng)對(duì)HTML頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。</p><p> SQLServer </p><p>
26、; SQLServer使用C和C++編寫,并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性;支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng);為多種編程語(yǔ)言提供了API;支持多線程,充分利用CPU資源;提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫(kù)連接途徑;可以處理?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)。對(duì)于一般的個(gè)人
27、使用者和中小型企業(yè)來(lái)說(shuō),SQLServer提供的功能已經(jīng)綽綽有余。</p><p> 1.3.2 J2EE</p><p> J2EE技術(shù)使用Java編程語(yǔ)言編寫類XML的tags和scriptlets,來(lái)封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁(yè)的處理邏輯。網(wǎng)頁(yè)還能通過(guò)tags和scriptlets訪問(wèn)存在于服務(wù)端的資源的應(yīng)用邏輯。J2EE將網(wǎng)頁(yè)邏輯與網(wǎng)頁(yè)設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于We
28、b的應(yīng)用程序的開(kāi)發(fā)變得迅速和容易。 </p><p> Web服務(wù)器在遇到訪問(wèn)J2EE網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同J2EE文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。J2EE與Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回給客戶端就是一個(gè)HTML文本,因此客戶端只要有瀏覽器能瀏覽。J2EE頁(yè)面由HTML代碼和
29、嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。Servlet是J2EE的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開(kāi)發(fā)需要Java Servlet和J2EE配合才能完成。J2EE具備了Java技術(shù)的簡(jiǎn)單易用,完全的面向?qū)ο?,具有平臺(tái)無(wú)關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。J2EE技術(shù)的優(yōu)點(diǎn):</p><p> (1)一次編寫,到
30、處運(yùn)行。除了系統(tǒng)之外,代碼不用做任何更改。 </p><p> (2)系統(tǒng)的多平臺(tái)支持?;旧峡梢栽谒衅脚_(tái)上的任意環(huán)境中開(kāi)發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/.net的局限性是顯而易見(jiàn)的。 </p><p> ?。?)強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/J2EE,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)
31、處理,消息處理,一臺(tái)服務(wù)器到無(wú)數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。 </p><p> ?。?)多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。Java已經(jīng)有了許多非常優(yōu)秀的開(kāi)發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下</p><p> (5)支持服務(wù)器端組件。web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來(lái)支持,開(kāi)發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁(yè)面調(diào)用,
32、以增強(qiáng)系統(tǒng)性能。J2EE可以使用成熟的JAVA BEANS 組件來(lái)實(shí)現(xiàn)復(fù)雜商務(wù)功能。</p><p> 內(nèi)部對(duì)象說(shuō)明:request 客戶端請(qǐng)求,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù); response 網(wǎng)頁(yè)傳回客戶端的響應(yīng);pageContext 網(wǎng)頁(yè)的屬性是在這里管理; session 與請(qǐng)求有關(guān)的會(huì)話; application servlet正在執(zhí)行的內(nèi)容;out 用來(lái)傳送響應(yīng)的輸出流; confi
33、g 代碼片段配置對(duì)象;page J2EE網(wǎng)頁(yè)本身; exception 針對(duì)錯(cuò)誤網(wǎng)頁(yè),未捕捉的例外</p><p> 1.3.3 JavaScript</p><p> JavaScript是一種基于對(duì)象和事件驅(qū)動(dòng)并具有相對(duì)安全性的客戶端腳本語(yǔ)言。同時(shí)也是一種廣泛用于客戶端Web開(kāi)發(fā)的腳本語(yǔ)言,常用來(lái)給HTML網(wǎng)頁(yè)添加動(dòng)態(tài)功能,比如響應(yīng)用戶的各種操作。JavaScript的一個(gè)重要功能
34、就是面向?qū)ο蟮墓δ?,通過(guò)基于對(duì)象的程序設(shè)計(jì),可以用更直觀、模塊化和可重復(fù)使用的方式進(jìn)行程序開(kāi)發(fā)。在HTML基礎(chǔ)上,使用Javascript可以開(kāi)發(fā)交互式Web網(wǎng)頁(yè)。Javascript的出現(xiàn)使得網(wǎng)頁(yè)和用戶之間實(shí)現(xiàn)了一種實(shí)時(shí)性的、動(dòng)態(tài)的、交互性的關(guān)系,使網(wǎng)頁(yè)包含更多活躍的元素和更加精彩的內(nèi)容。在本系統(tǒng)中很多地方使用了javascript技術(shù),比如說(shuō),檢驗(yàn)用戶輸入數(shù)據(jù)的有效性,是否重復(fù),是否為空等等。</p><p>
35、; 1.3.4 Struts 2簡(jiǎn)介</p><p> Struts最早是作為Apache Jakarta項(xiàng)目的組成部分問(wèn)世運(yùn)作。項(xiàng)目的創(chuàng)立者希望通過(guò)對(duì)該項(xiàng)目的研究,改進(jìn)和提高Java Server Pages、Servlet、標(biāo)簽庫(kù)以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。它的目的是為了減少在運(yùn)用MVC設(shè)計(jì)模型來(lái)開(kāi)發(fā)Web應(yīng)用的時(shí)間。</p><p> 使用Struts的目的是為了幫助我們減少在運(yùn)用
36、MVC設(shè)計(jì)模型來(lái)開(kāi)發(fā)Web應(yīng)用的時(shí)間。Struts是Apache軟件基金會(huì)(ASF)贊助的一個(gè)開(kāi)源項(xiàng)目。它最初是Jakarta項(xiàng)目中的一個(gè)子項(xiàng)目,并在2002年3月成為ASF的頂級(jí)項(xiàng)目。它通過(guò)采用Java Servlet/J2EE技術(shù),實(shí)現(xiàn)了基于Java EE Web應(yīng)用的Model-View-Controller〔MVC〕設(shè)計(jì)模式的應(yīng)用框架〔Web Framework〕,是MVC經(jīng)典設(shè)計(jì)模式中的一個(gè)經(jīng)典產(chǎn)品。而Struts2則是Str
37、uts的升級(jí)版本。</p><p><b> 它的優(yōu)點(diǎn)在于:</b></p><p> Struts2基于MVC架構(gòu),框架結(jié)構(gòu)清晰,開(kāi)發(fā)流程一目了然,開(kāi)發(fā)人員可以很好的掌控開(kāi)發(fā)的過(guò)程;</p><p> 使用OGNL進(jìn)行參數(shù)傳遞;</p><p><b> 強(qiáng)大的攔截器;</b></p
38、><p><b> 易于測(cè)試;</b></p><p> 易于擴(kuò)展的插件機(jī)制;</p><p> 全局結(jié)果與聲明式異常。</p><p> 1.3.5 Hibernate簡(jiǎn)介</p><p> Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得
39、Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。 Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合,既可以在Java的客戶端程序使用,也可以在Servlet/J2EE的Web應(yīng)用中使用,最具革命意義的是,Hibernate可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。</p><p> Hibernate的核心接口一共有2個(gè),分別為:Session、SessionFactory、
40、Transaction、Query和Configuration。這2個(gè)核心接口在任何開(kāi)發(fā)中都會(huì)用到。通過(guò)這些接口,不僅可以對(duì)持久化對(duì)象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。</p><p><b> 1.4軟硬件需求</b></p><p><b> 硬件需求:</b></p><p> CPU:Pentium以上計(jì)算機(jī)&l
41、t;/p><p> 內(nèi)存: 512M以上</p><p><b> 軟件需求:</b></p><p> 操作系統(tǒng)版本:Windows XP /vista/Win7</p><p> 開(kāi)發(fā)工具:MyEclipse 6.0.1</p><p> 后臺(tái)服務(wù)器:Apache Tomcat 6.0&
42、lt;/p><p><b> 開(kāi)發(fā)語(yǔ)言:Java</b></p><p><b> 瀏覽器:IE6.0</b></p><p><b> 第二章 需求分析</b></p><p><b> 2.1可行性分析</b></p><p&g
43、t; 開(kāi)發(fā)任何一個(gè)系統(tǒng),都會(huì)受到時(shí)間和資源上的限制。因此,在每一個(gè)項(xiàng)目開(kāi)發(fā)之前,都要進(jìn)行可行性分析,可以減少項(xiàng)目的開(kāi)發(fā)風(fēng)險(xiǎn),避免人力、物力和財(cái)力的浪費(fèi)。下面就技術(shù)、經(jīng)濟(jì)、操作和法律四個(gè)方面來(lái)介紹。</p><p> 2.1.1技術(shù)的可行性</p><p> 本系統(tǒng)開(kāi)發(fā)工具是MyEclipse和SQL2005數(shù)據(jù)庫(kù),開(kāi)發(fā)語(yǔ)言是Java,主要使用了J2EE的技術(shù),java是一種面向?qū)ο缶?/p>
44、程語(yǔ)言,簡(jiǎn)單易學(xué)而且靈活方便。大三時(shí)就學(xué)習(xí)了java課程,大四期間也系統(tǒng)的了解了J2EE的知識(shí),問(wèn)卷調(diào)查管理系統(tǒng)總體上開(kāi)發(fā)難度不高,數(shù)據(jù)庫(kù)的設(shè)計(jì)和操作是本系統(tǒng)設(shè)計(jì)的核心。在大學(xué)期間學(xué)習(xí)過(guò)軟件工程,軟件測(cè)試,UML統(tǒng)一建模語(yǔ)言等課程,每個(gè)學(xué)期也會(huì)完成對(duì)應(yīng)的課程設(shè)計(jì),具備一定的系統(tǒng)分析、設(shè)計(jì)和測(cè)試能力。因此,完成系統(tǒng)實(shí)現(xiàn)在技術(shù)上完全具有可行性。</p><p> 2.1.2經(jīng)濟(jì)的可行性</p><
45、;p> 由于選擇的開(kāi)發(fā)工具和服務(wù)器幾乎全部為免費(fèi)的開(kāi)源軟件,并且由于是開(kāi)發(fā)成本較低的基于Web的B/S模式,而非成本費(fèi)用相對(duì)較高的C/S模式,所以從經(jīng)濟(jì)上來(lái)講是可行的。</p><p> 2.1.3操作可行性</p><p> 本系統(tǒng)操作簡(jiǎn)單,輸入信息頁(yè)面大多數(shù)都是下拉框的選擇形式,在某些頁(yè)面,信息可以自動(dòng)生成,無(wú)需輸入,時(shí)間的輸入也是用的日歷控件,操作簡(jiǎn)便,對(duì)操作人員的要求很
46、低,只需對(duì)WINDOWS操作熟練。而且本系統(tǒng)可視性非常好,所以在技術(shù)上不會(huì)有很大難度。</p><p> 2.1.4法律的可行性</p><p> 問(wèn)卷調(diào)查管理系統(tǒng)是自行開(kāi)發(fā)的系統(tǒng),是很有實(shí)際意義的系統(tǒng),開(kāi)發(fā)環(huán)境軟件和使用的數(shù)據(jù)庫(kù)都是開(kāi)源代碼,開(kāi)發(fā)這個(gè)系統(tǒng)不同于開(kāi)發(fā)普通的系統(tǒng)軟件,不存在侵權(quán)等問(wèn)題,即法律上是可行的。</p><p> 綜上所述,開(kāi)發(fā)一個(gè)問(wèn)卷調(diào)
47、查系統(tǒng)與原有的問(wèn)卷調(diào)查方式相比具有速度更快,操作更準(zhǔn)確,節(jié)省開(kāi)支等有利之處,因此,建立問(wèn)卷調(diào)查管理系統(tǒng)是必要可行的。</p><p> 2.2系統(tǒng)用戶用例圖</p><p> 2.2.1管理員用例圖</p><p> 管理員是系統(tǒng)的核心用戶,涉及到六大功能模塊,管理員對(duì)系統(tǒng)的所有注冊(cè)用戶有著操作的權(quán)限,能夠及時(shí)動(dòng)態(tài)的問(wèn)卷調(diào)查信息的各項(xiàng)情況。</p>
48、<p> 圖2.1 管理員用例圖</p><p> 2.2.2普通用戶用例圖</p><p> 普通用戶通過(guò)注冊(cè)加入系統(tǒng)后,實(shí)現(xiàn)在線參與問(wèn)卷調(diào)、瀏覽公告信息等功能。</p><p> 圖2.2 普通用戶用例圖</p><p> 2.3功能模塊需求分析</p><p> 圖2.3 管理員用戶功能
49、模塊圖</p><p> 圖2.4 普通用戶功能模塊圖</p><p> 2.4設(shè)計(jì)的基本思想</p><p> 設(shè)計(jì)思想遵循以下幾點(diǎn):</p><p> 1. 采用B/S模式進(jìn)行開(kāi)發(fā),其優(yōu)點(diǎn)是后臺(tái)與前臺(tái)處理層次分明,而且符合眾多已經(jīng)習(xí)慣網(wǎng)頁(yè)方式的用戶。</p><p> 2. 采用面向?qū)ο蟮拈_(kāi)發(fā)與設(shè)計(jì)理念。
50、運(yùn)用面向?qū)ο蠹夹g(shù)的前提是對(duì)整體系統(tǒng)的高度和準(zhǔn)確抽象,通過(guò)它可以保證系統(tǒng)良好的框架,進(jìn)而帶來(lái)產(chǎn)品較強(qiáng)的穩(wěn)定性和運(yùn)行效率。</p><p> 3. 采用模塊化設(shè)計(jì)。模塊化設(shè)計(jì)要求將整個(gè)系統(tǒng)劃分成基于小的模塊,有利于代碼的重載,簡(jiǎn)化設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。</p><p> 4. 簡(jiǎn)單方便的系統(tǒng)界面。設(shè)計(jì)簡(jiǎn)單友好的系統(tǒng)界面,方便用戶較快的適應(yīng)系統(tǒng)的操作。</p><p>
51、5.速度優(yōu)先原則。由于此工具最重要的評(píng)測(cè)標(biāo)準(zhǔn)就是速度,因此在設(shè)計(jì)過(guò)程中,具體過(guò)程盡量做到資源占用少,速度快。</p><p> 6.設(shè)計(jì)既要突出重點(diǎn),又要細(xì)致周到。要符合設(shè)計(jì)需求,在有可能改進(jìn)的地方進(jìn)行擴(kuò)充,使系統(tǒng)更適應(yīng)用戶的需要。</p><p><b> 2.5性能需求</b></p><p> 2.5.1系統(tǒng)的安全性</p&g
52、t;<p> 問(wèn)卷調(diào)查管理系統(tǒng)在管理權(quán)限上要嚴(yán)格進(jìn)行控制,具體要求如下:</p><p> 想登錄問(wèn)卷調(diào)查管理系統(tǒng)進(jìn)行操作,必須有操作權(quán)限,沒(méi)有權(quán)限的用戶不能通過(guò)任何方式登錄系統(tǒng)查看系統(tǒng)的任何信息和數(shù)據(jù),以確保系統(tǒng)的嚴(yán)密性和安全性。</p><p> 2.5.2數(shù)據(jù)的完整性</p><p> 1.各種記錄信息的完整性,信息記錄內(nèi)容不能為空<
53、;/p><p> 2.各種數(shù)據(jù)間相互聯(lián)系的正確性</p><p> 3.相同數(shù)據(jù)在不同記錄中的一致性</p><p><b> 2.6界面需求</b></p><p> 界面設(shè)計(jì)目前已經(jīng)成為評(píng)價(jià)軟件質(zhì)量的一條重要指標(biāo),一個(gè)好的用戶界面可以增加用戶使用系統(tǒng)的信心和興趣,提高工作效率,J2EE技術(shù)是用JAVA語(yǔ)言作為腳本
54、語(yǔ)言的,J2EE網(wǎng)頁(yè)為整個(gè)服務(wù)器端的JAVA庫(kù)單元提供了一個(gè)接口來(lái)服務(wù)于HTTP的應(yīng)用程序。 創(chuàng)建動(dòng)態(tài)頁(yè)面非常方便。用戶界面是指軟件系統(tǒng)與用戶交互的接口,通常包括輸出、輸入、人-機(jī)對(duì)話的界面格式等。</p><p><b> 1.輸出設(shè)計(jì)</b></p><p> 輸出是由計(jì)算機(jī)對(duì)輸入的原始信息進(jìn)行加工處理,形成高質(zhì)量的有效信息,并使之具有一定的格式,提供管理者使
55、用,這是輸出設(shè)計(jì)的主要職責(zé)和目標(biāo)。</p><p> 系統(tǒng)設(shè)計(jì)的過(guò)程正好和實(shí)施過(guò)程相反,并不是從輸入設(shè)計(jì)到輸出設(shè)計(jì),而是從輸出設(shè)計(jì)到輸入設(shè)計(jì),這是因?yàn)檩敵霰砀裰苯优c使用者相聯(lián)系,設(shè)計(jì)的出發(fā)點(diǎn)應(yīng)當(dāng)是保證輸出表格方便地為使用者服務(wù),正確及時(shí)反映和組成用于各部門的有用信息。輸出設(shè)計(jì)的原則是考慮既要全面反映不同管理層的各項(xiàng)需要,又要言簡(jiǎn)意賅,不要將用戶需要和不需要的都提供給用戶。</p><p>
56、;<b> 2.輸入設(shè)計(jì)</b></p><p> 輸入數(shù)據(jù)的收集和錄入是比較費(fèi)事的,需要大量的人力和一定設(shè)備,并且容易出錯(cuò)。如果輸入系統(tǒng)的數(shù)據(jù)有錯(cuò)誤,則處理后的輸出將擴(kuò)大這些錯(cuò)誤,因此輸入數(shù)據(jù)的正確性對(duì)于整個(gè)系統(tǒng)質(zhì)量的好壞是具有決定性意義的。</p><p> 輸入設(shè)計(jì)的原則有如下幾點(diǎn):</p><p> 1)輸入量應(yīng)保持在能滿足處理
57、要求的最低限度。設(shè)計(jì)中可采用設(shè)置字段初值,下拉式數(shù)據(jù)窗口等方式盡量減少用戶鍵盤輸入量。輸入量越少,錯(cuò)誤率就越少,數(shù)據(jù)準(zhǔn)備時(shí)間也減少。</p><p> 2)輸入的準(zhǔn)備及輸入過(guò)程應(yīng)盡量容易進(jìn)行,從而減少錯(cuò)誤的發(fā)生。</p><p> 3)應(yīng)盡量早對(duì)輸入數(shù)據(jù)進(jìn)行檢查(盡量接近原數(shù)據(jù)發(fā)生點(diǎn)),以便使錯(cuò)誤及時(shí)得到更正。</p><p> 4)輸入數(shù)據(jù)盡早地用其處理所需
58、的形式被記錄,以避免數(shù)據(jù)由一種介質(zhì)轉(zhuǎn)移到另一種介質(zhì)時(shí)需要轉(zhuǎn)錄而可能發(fā)生的錯(cuò)誤</p><p> 第三章 系統(tǒng)分析與設(shè)計(jì)</p><p> 3.1數(shù)據(jù)庫(kù)的分析與設(shè)計(jì)</p><p> 計(jì)算機(jī)信息系統(tǒng)以數(shù)據(jù)庫(kù)為核心,在數(shù)據(jù)庫(kù)管理系統(tǒng)的支持下,進(jìn)行信息的收集、整理、存儲(chǔ)、檢索、更新、加工、統(tǒng)計(jì)和傳播等操作。數(shù)據(jù)庫(kù)已經(jīng)成為現(xiàn)在信息系統(tǒng)等計(jì)算機(jī)系統(tǒng)的基礎(chǔ)與核心部分。數(shù)據(jù)
59、庫(kù)設(shè)計(jì)的好壞直接影響到整個(gè)系統(tǒng)的質(zhì)量和效率。</p><p> 數(shù)據(jù)庫(kù)的設(shè)計(jì)一般經(jīng)過(guò)規(guī)劃。需求分析、概念設(shè)計(jì)、邏輯設(shè)計(jì)、物理設(shè)計(jì)5個(gè)步驟。</p><p> 3.1.1數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)</p><p> 概念設(shè)計(jì)是指在數(shù)據(jù)分析的基礎(chǔ)上自底向上的建立整個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)概念結(jié)構(gòu),從用戶的角度進(jìn)行視圖設(shè)計(jì),然后將視圖集成,最后對(duì)集成的結(jié)構(gòu)分析優(yōu)化得到最后結(jié)果。&l
60、t;/p><p> 數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)采用實(shí)體—聯(lián)系(E-R)模型設(shè)計(jì)方法。E-R模型法的組成元素有:實(shí)體、屬性、聯(lián)系,E-R模型用E-R圖表示,是提示用戶工作環(huán)境中所涉及的事物,屬性則是對(duì)實(shí)體特性的描述。</p><p> 概念設(shè)計(jì)的目標(biāo)是產(chǎn)生反映企業(yè)組織信息要求的數(shù)據(jù)庫(kù)概念結(jié)構(gòu),即概念模式。概念模式是獨(dú)立于數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu),獨(dú)立于支持?jǐn)?shù)據(jù)庫(kù)的DBMS,不依賴于計(jì)算機(jī)系統(tǒng)的,</p
61、><p> 根據(jù)以上對(duì)數(shù)據(jù)庫(kù)的需求分析,并結(jié)合系統(tǒng)概念模型的特點(diǎn)及建立方法,建立E-R模型圖。</p><p> (1)普通用戶實(shí)體E-R圖如圖3.1所示:</p><p> 圖3.1 用戶信息實(shí)體E-R圖</p><p> (2)問(wèn)卷信息實(shí)體E-R圖如圖3.2所示:</p><p> 圖3.2 投訴信息實(shí)體E-
62、R圖</p><p> (3)題目信息實(shí)體E-R圖如圖3.3所示</p><p> 圖3.3 題目信息實(shí)體E-R圖</p><p> (4)選項(xiàng)信息實(shí)體E-R圖如圖3.4所示</p><p> 圖3.4 選項(xiàng)信息實(shí)體E-R圖</p><p> (5)公告信息實(shí)體E-R圖如圖3.6所示</p>&
63、lt;p> 圖3.6 公告信息實(shí)體E-R圖</p><p> (6)管理員信息E-R圖如圖3.7所示</p><p> 圖3.7 管理員信息實(shí)體E-R圖</p><p> 3.1.2數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)設(shè)計(jì)</p><p> 我們知道,數(shù)據(jù)庫(kù)概念模型獨(dú)立于任何特定的數(shù)據(jù)庫(kù)管理系統(tǒng),因此,需要根據(jù)具體使用的數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)進(jìn)行轉(zhuǎn)
64、換。即轉(zhuǎn)化為按計(jì)算機(jī)觀點(diǎn)處理的邏輯關(guān)系模型,E-R模型向關(guān)系數(shù)據(jù)庫(kù)模型轉(zhuǎn)換應(yīng)遵循下列原則:</p><p> *每一個(gè)實(shí)體要轉(zhuǎn)換成一個(gè)關(guān)系</p><p> *所有的主鍵必須定義非空(NOT NULL)</p><p> *對(duì)于二元聯(lián)系應(yīng)按照一對(duì)多、弱對(duì)實(shí)、一對(duì)一、多對(duì)多等聯(lián)系來(lái)定義外鍵。</p><p> 根據(jù)E-R模型,問(wèn)卷調(diào)查管
65、理系統(tǒng)建立了以下邏輯數(shù)據(jù)結(jié)構(gòu),下面是各數(shù)據(jù)表的詳細(xì)說(shuō)明。</p><p> (1)用戶信息表主要是記錄了注冊(cè)用戶基本信息,表結(jié)構(gòu)如表3.1所示。</p><p> 表3.1用戶信息表(t_user)</p><p> (2)問(wèn)卷信息表主要記錄了問(wèn)卷調(diào)查的基本信息,表結(jié)構(gòu)如表3.2所示。</p><p> 表3.2問(wèn)卷信息表(t_wen
66、juan)</p><p> (3)題目信息表主要是記錄了問(wèn)卷中的題目信息,表結(jié)構(gòu)如圖3.3所示。</p><p> 表3.3題目信息表(t_toupiao)</p><p> (4)選項(xiàng)信息表主要是記錄了題目的選項(xiàng)信息,表結(jié)構(gòu)如圖3.4所示。</p><p> 表3.4選項(xiàng)信息表(t_toupiaoxuanxiang)</p&
67、gt;<p> (5)公告信息表主要是注冊(cè)管理員發(fā)布的公告信息,表結(jié)構(gòu)如圖3.5所示。</p><p> 表3.5公告信息表(t_gonggao)</p><p> (6)管理員信息表主要記錄的管理員的賬號(hào)信息,包括用戶名和密碼,表結(jié)構(gòu)如表3.7所示。</p><p> 表3.6管理員信息表(t_admin)</p><p&
68、gt; 3.1.3數(shù)據(jù)庫(kù)的連接原理</p><p> 本系統(tǒng)采用Hibernate對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理。Hibernate 是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì) JDBC 進(jìn)行了輕量級(jí)的對(duì)象封裝,使 Java 程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。它不僅提供了從 Java 類到數(shù)據(jù)表之間的映射,也提供了數(shù)據(jù)查詢和恢復(fù)機(jī)制。相對(duì)于使用 JDBC 和 SQL 來(lái)手工操作數(shù)據(jù)庫(kù),Hibernate 可以
69、大大減少操作數(shù)據(jù)庫(kù)的工作量。 另外 Hibernate 可以利用代理模式來(lái)簡(jiǎn)化載入類的過(guò)程,這將大大減少利用 Hibernate QL 從數(shù)據(jù)庫(kù)提取數(shù)據(jù)的代碼的編寫量,從而節(jié)約開(kāi)發(fā)時(shí)間和開(kāi)發(fā)成本 Hibernate 可以和多種Web 服務(wù)器或者應(yīng)用服務(wù)器良好集成,如今已經(jīng)支持幾乎所有的流行的數(shù)據(jù)庫(kù)服務(wù)器。</p><p> Hibernate 技術(shù)本質(zhì)上是一個(gè)提供數(shù)據(jù)庫(kù)服務(wù)的中間件。它的架構(gòu)如圖3.5所示:&l
70、t;/p><p> 圖3.5Hibernatre架構(gòu)圖</p><p> 圖3.5顯示了 Hibernate 的工作原理,它是利用數(shù)據(jù)庫(kù)以及其他一些配置文件如 Hibernate .properties ,XML Mapping 等來(lái)為應(yīng)用程序提供數(shù)據(jù)持久化服務(wù)的。 </p><p> Hibernate 具有很大的靈活性,但同時(shí)它的體系結(jié)構(gòu)比較復(fù)雜,提供了好幾種
71、不同的運(yùn)行方式。在輕型體系中,應(yīng)用程序提供 JDBC 連接,并且自行管理事務(wù),這種方式使用了 Hibernate 的一個(gè)最小子集;在全面解決體系中,對(duì)于應(yīng)用程序來(lái)說(shuō),所有底層的 JDBC/JTA API 都被抽象了,Hibernate 會(huì)替你照管所有的細(xì)節(jié)。 </p><p> 3.2中文亂碼問(wèn)題處理</p><p> 在程序中經(jīng)常會(huì)遇到中文亂碼的情況,如果手動(dòng)的在servlet和J2
72、EE頁(yè)面進(jìn)行設(shè)置,相當(dāng)麻煩。因此,在程序的開(kāi)始就寫了一個(gè)過(guò)濾器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>//*表示工程下所有的頁(yè)面都會(huì)有此過(guò)濾器的處理</p><p> </filter-mapp
76、ing></p><p> 對(duì)應(yīng)的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類來(lái)處理字符轉(zhuǎn)換:</p><p> public static String toUni(String gbStr){</p><p> String uniStr = ""; /*把字符串轉(zhuǎn)換成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> /* 把字符串轉(zhuǎn)換成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> 第四章 系統(tǒng)功能實(shí)現(xiàn)</p><p> 在管理信息系統(tǒng)的生命周
87、期中,經(jīng)過(guò)了需求分析、系統(tǒng)設(shè)計(jì)等階段之后,便開(kāi)始了系統(tǒng)實(shí)施階段。在系統(tǒng)分析和設(shè)計(jì)階段,系統(tǒng)開(kāi)發(fā)工作主要是集中在邏輯、功能和技術(shù)設(shè)計(jì)上,系統(tǒng)實(shí)施階段要繼承此前面各個(gè)階段的工作成果,將技術(shù)設(shè)計(jì)轉(zhuǎn)化為物理實(shí)現(xiàn),因此系統(tǒng)實(shí)施的成果是系統(tǒng)分析和設(shè)計(jì)階段的結(jié)晶。</p><p> 4.1系統(tǒng)登陸頁(yè)面實(shí)現(xiàn)</p><p> 1.描述:為了保證系統(tǒng)的安全性,要先使用本系統(tǒng)必須先登陸到系統(tǒng)中,用戶需要正
88、確的賬號(hào)和密碼登錄本系統(tǒng)。</p><p> 2.程序運(yùn)行效果圖如圖4.1所示:</p><p> 圖4.1 系統(tǒng)登陸頁(yè)面設(shè)計(jì)</p><p> 3.在登陸頁(yè)面輸入用戶名和密碼以,點(diǎn)擊提交按鈕,跳轉(zhuǎn)到登陸的service中,在該service中會(huì)對(duì)用戶名,密碼,驗(yàn)證碼進(jìn)行判斷,驗(yàn)證通過(guò)進(jìn)入對(duì)應(yīng)的頁(yè)面,loginservice關(guān)鍵代碼:</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)//系統(tǒng)管理員登陸</
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.描述:系統(tǒng)主頁(yè)面:左方頁(yè)面展示了管理員可操作的六大功能,進(jìn)入相關(guān)的管理頁(yè)面可以鏈接到子菜單,并且高亮顯示,每個(gè)管理模塊下面都有相應(yīng)的子菜單。</p><p> 2.程序運(yùn)行效果圖如圖4.2所示:</p
96、><p> 圖4.2管理員主頁(yè)面</p><p> 在每個(gè)J2EE頁(yè)面將會(huì)對(duì)相關(guān)用戶進(jìn)行攔截操作,這樣可以提高安全性,防止用戶不經(jīng)過(guò)登陸頁(yè)面而進(jìn)入任何子菜單頁(yè)面:</p><p> if(session.getAttribute("user")==null)</p><p><b> {</b>&
97、lt;/p><p> out.print("<script>alert('請(qǐng)先登錄!');window.open('../index.J2EE','_self')</script>"); </p><p><b> }</b></p><p> 4.
98、2.1問(wèn)卷信息管理</p><p><b> 問(wèn)卷信息添加</b></p><p> 1.描述:管理員輸入問(wèn)卷信息后點(diǎn)擊錄入按鈕,如果是沒(méi)有輸入完整的問(wèn)卷信息,都會(huì)給出相應(yīng)的錯(cuò)誤提示,不能錄入成功。輸入數(shù)據(jù)都通過(guò)form表單中定義的方法onsubmit="return checkForm()"來(lái)檢查,checkForm()函數(shù)中是各種的校驗(yàn)輸入
99、數(shù)據(jù)的方式。</p><p> 2.程序效果圖如下圖4.3所示</p><p> 圖4.3 問(wèn)卷信息添加</p><p><b> 問(wèn)卷信息管理</b></p><p> 1.描述:管理員點(diǎn)擊左側(cè)的菜單“問(wèn)卷信息管理”,頁(yè)面跳轉(zhuǎn)到問(wèn)卷信息管理界面,調(diào)用后臺(tái)的action類查詢出所有的問(wèn)卷信息,并把這些信息封轉(zhuǎn)到數(shù)
100、據(jù)集合List中,綁定到request對(duì)象,然后頁(yè)面跳轉(zhuǎn)到相應(yīng)的J2EE,顯示出問(wèn)卷信息。</p><p> 2.程序效果圖如下圖4.4所示</p><p> 圖4.4 問(wèn)卷信息管理</p><p> 問(wèn)卷信息管理關(guān)鍵代碼:</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、 問(wèn)卷信息刪除</b></p><p> 1.描述:先是點(diǎn)擊問(wèn)卷信息管理,頁(yè)面跳轉(zhuǎn)到問(wèn)卷信息管理界面,瀏覽所有的問(wèn)卷信息,點(diǎn)擊要?jiǎng)h除的問(wèn)卷信息,點(diǎn)擊確認(rèn)按鈕,完成問(wèn)卷刪除操作。</p><p> 2.程序效果圖如下圖4.6所示</p><p> 圖4.6 問(wèn)卷信息刪除</p><p> 4.2.2問(wèn)卷題目管理</p
109、><p><b> 問(wèn)卷題目添加</b></p><p> 1.描述:點(diǎn)擊問(wèn)卷管理,顯示所有的問(wèn)卷信息,然后點(diǎn)擊“添加題目”超練級(jí),系統(tǒng)自動(dòng)彈出添加題目的頁(yè)面,輸入題目信息后點(diǎn)擊錄入按鈕,如果是沒(méi)有輸入完整的題目信息,都會(huì)給出相應(yīng)的錯(cuò)誤提示,不能錄入成功。輸入數(shù)據(jù)都通過(guò)form表單中定義的方法onsubmit="return checkForm()"
110、;來(lái)檢查,checkForm()函數(shù)中是各種的校驗(yàn)輸入數(shù)據(jù)的方式。</p><p> 2.程序效果圖如下圖4.7所示:</p><p> 圖4.7題目信息受理</p><p><b> 問(wèn)卷信息預(yù)覽</b></p><p> 1.描述:點(diǎn)擊問(wèn)卷預(yù)覽按鈕,系統(tǒng)自動(dòng)顯示改問(wèn)卷的題目信息。</p><
111、;p> 2.程序效果圖如下圖4.8所示</p><p> 圖4.8問(wèn)卷預(yù)覽界面</p><p> 問(wèn)卷題目管理關(guān)鍵代碼:</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);//這個(gè)地方的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調(diào)查結(jié)果統(tǒng)計(jì)</p><p><b> 調(diào)查結(jié)果統(tǒng)計(jì)</b></p><p> 1.描述:選擇一條問(wèn)
122、卷信息,點(diǎn)擊“結(jié)果統(tǒng)計(jì)”,系統(tǒng)調(diào)轉(zhuǎn)到統(tǒng)計(jì)頁(yè)面。</p><p> 2.程序效果圖如下圖4.9所示:</p><p> 圖4.9調(diào)查結(jié)果統(tǒng)計(jì)</p><p><b> 柱狀圖顯示</b></p><p> 1.描述:選擇一條問(wèn)卷,點(diǎn)擊“統(tǒng)計(jì)結(jié)果”,然后點(diǎn)擊“柱狀圖”超級(jí)鏈接,以柱狀圖的形式顯示統(tǒng)計(jì)結(jié)果,顯示更加直觀
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文
- 在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)——畢業(yè)論文
- 在線問(wèn)卷調(diào)查系統(tǒng)畢業(yè)論文
- 在線問(wèn)卷調(diào)查系統(tǒng)畢業(yè)論文
- 通信工程畢業(yè)論文在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 電子信息工程畢業(yè)論文在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 電子信息工程畢業(yè)論文-在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 在線問(wèn)卷調(diào)查系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 在線問(wèn)卷調(diào)查系統(tǒng)的分析與實(shí)現(xiàn)論文.doc
- 行業(yè)在線問(wèn)卷調(diào)查系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 在線問(wèn)卷調(diào)查系統(tǒng)的分析與實(shí)現(xiàn)
- 畢業(yè)論文(設(shè)計(jì))基于web的問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)
- 基于SSH的在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 大規(guī)模問(wèn)卷調(diào)查系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 大規(guī)模問(wèn)卷調(diào)查系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 基于B-S的在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)論文——調(diào)查問(wèn)卷網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文——調(diào)查問(wèn)卷網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
- 網(wǎng)絡(luò)問(wèn)卷調(diào)查管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
評(píng)論
0/150
提交評(píng)論