jsp問(wèn)卷調(diào)查系統(tǒng)sqlserver論文_第1頁(yè)
jsp問(wèn)卷調(diào)查系統(tǒng)sqlserver論文_第2頁(yè)
jsp問(wèn)卷調(diào)查系統(tǒng)sqlserver論文_第3頁(yè)
jsp問(wèn)卷調(diào)查系統(tǒng)sqlserver論文_第4頁(yè)
jsp問(wèn)卷調(diào)查系統(tǒng)sqlserver論文_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

緒論1.1研究背景及意義隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,現(xiàn)在Internet已從單純的學(xué)術(shù)科研向綜合性商業(yè)網(wǎng)絡(luò)發(fā)展,人們對(duì)于互聯(lián)網(wǎng)技術(shù)的要求已不單單是瀏覽一下網(wǎng)頁(yè)、收發(fā)電子郵件等簡(jiǎn)單的網(wǎng)絡(luò)應(yīng)用。高速發(fā)展的互聯(lián)網(wǎng)技術(shù)為線上問(wèn)卷調(diào)查系統(tǒng)的發(fā)展提供了強(qiáng)大的動(dòng)力,同時(shí),線上問(wèn)卷調(diào)查的環(huán)境已經(jīng)逐步得到了改善。線上問(wèn)卷調(diào)查對(duì)用戶的吸引力將會(huì)越來(lái)越大,人們對(duì)線上問(wèn)卷調(diào)查的看法也將必定會(huì)從不了解到了解,從拒絕到接受,從懷疑到信任,線上問(wèn)卷調(diào)查的觀念將更加深入人心。網(wǎng)絡(luò)正在從產(chǎn)品形式向服務(wù)形式轉(zhuǎn)化,所以線上問(wèn)卷調(diào)查在網(wǎng)絡(luò)中的發(fā)展將要占據(jù)重要的地位,因?yàn)樗淖谥季褪浅浞掷肐nternet取代傳統(tǒng)的問(wèn)卷調(diào)查的方式,大幅度提高問(wèn)卷調(diào)查管理效率。JAVA技術(shù)戰(zhàn)略意義本身就是幫助用戶在任何時(shí)候、任何地方、利用任何的工具都可以獲得網(wǎng)絡(luò)上的信息,并享受網(wǎng)絡(luò)通訊帶來(lái)的快樂(lè)。本課題就是通過(guò)JAVA開(kāi)發(fā)的一個(gè)在線問(wèn)卷調(diào)查系統(tǒng),主要實(shí)現(xiàn)了通過(guò)互聯(lián)網(wǎng)進(jìn)行問(wèn)卷調(diào)查和后臺(tái)的管理。作為廣大的用戶,他們希望是能夠獲得良好的問(wèn)卷調(diào)查管理的體驗(yàn)。在線問(wèn)卷調(diào)查系統(tǒng)的引入,可以變革現(xiàn)有的傳統(tǒng)的問(wèn)卷調(diào)查模式。在線問(wèn)卷調(diào)查系統(tǒng)可以跟傳統(tǒng)的問(wèn)卷調(diào)查模式相互補(bǔ)充,相輔相成。1.2研究現(xiàn)狀隨著社會(huì)進(jìn)步和技術(shù)的發(fā)展,人們不再滿足現(xiàn)有的生活方式,生活方式越來(lái)越多樣化,當(dāng)然年輕一代,這個(gè)社會(huì)的儲(chǔ)備人才力量更是便隨著時(shí)代的進(jìn)步越來(lái)越進(jìn)步。同時(shí),基于現(xiàn)代科學(xué)發(fā)展的本質(zhì),我們本身的特性——接受新事物,人人都渴望與人交流,尤其是小范圍的人們更加急需通過(guò)一個(gè)簡(jiǎn)單便捷的方式來(lái)進(jìn)行問(wèn)卷調(diào)查。用戶更加急需一個(gè)不受時(shí)間限制,不受空間限制的問(wèn)卷調(diào)查系統(tǒng)。這樣就衍生了一個(gè)在線問(wèn)卷調(diào)查系統(tǒng)。而網(wǎng)絡(luò)平臺(tái)的特點(diǎn)非常符合我們網(wǎng)絡(luò)問(wèn)卷調(diào)查的特點(diǎn),最重要的是,無(wú)需在安裝任何軟件,即時(shí)做問(wèn)卷調(diào)查。由于互聯(lián)網(wǎng)的迅速的發(fā)展。伴隨著在線問(wèn)卷調(diào)查的網(wǎng)站與系統(tǒng)也涌現(xiàn)了出來(lái),利用網(wǎng)絡(luò)信息共享性的特點(diǎn),只要上網(wǎng)就可以進(jìn)行問(wèn)卷調(diào)查,線上問(wèn)卷調(diào)查系統(tǒng)極大程度的拓展了用戶對(duì)系統(tǒng)中資源的選擇和利用的程度,提高了資源的普及程度與選擇程度。問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),不僅僅可以解決現(xiàn)有的問(wèn)卷調(diào)查模式中存在的調(diào)查形式單一化、選擇局限性的問(wèn)題,還可以有效的提高問(wèn)卷調(diào)查資源的共享程度。同時(shí)對(duì)問(wèn)卷調(diào)查管理效率也有很大的貢獻(xiàn)。綜上所述,在線問(wèn)卷調(diào)查系統(tǒng)的引入,有非常廣泛的應(yīng)用前景。1.3研究思路在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),主要采用JSP技術(shù)與SQLServer相結(jié)合來(lái)實(shí)現(xiàn)的,前期主要進(jìn)行搜索資料,對(duì)JSP技術(shù)與數(shù)據(jù)庫(kù)軟件的熟悉等。后期,進(jìn)行本課題的設(shè)計(jì)與開(kāi)發(fā)。用JSP技術(shù)對(duì)系統(tǒng)進(jìn)行開(kāi)發(fā),采用SQLServer數(shù)據(jù)庫(kù)實(shí)現(xiàn)對(duì)數(shù)據(jù)表的編程,整個(gè)界面的查找可以通過(guò)數(shù)據(jù)庫(kù)的搜索來(lái)實(shí)現(xiàn),在整個(gè)設(shè)計(jì)過(guò)程中主要以客戶的需求為基礎(chǔ),設(shè)計(jì)過(guò)程中記錄網(wǎng)站實(shí)現(xiàn)的過(guò)程及遇到的問(wèn)題和解決的方法,在設(shè)計(jì)完成之后,進(jìn)行運(yùn)行和調(diào)試。1.4本文主體結(jié)構(gòu)第一章對(duì)整個(gè)應(yīng)用系統(tǒng)的開(kāi)發(fā)背景和研究意義進(jìn)行了簡(jiǎn)述,對(duì)在線問(wèn)卷調(diào)查系統(tǒng)的研究現(xiàn)狀進(jìn)行了詳細(xì)的講解,并對(duì)開(kāi)發(fā)過(guò)程中的整體思路進(jìn)行了大致的概述。第二章從JSP開(kāi)發(fā)平臺(tái)、SQLServer數(shù)據(jù)庫(kù)和Tomcat服務(wù)器三個(gè)方面對(duì)整個(gè)系統(tǒng)開(kāi)發(fā)過(guò)程中所用到的開(kāi)發(fā)環(huán)境和開(kāi)發(fā)技術(shù)進(jìn)行了講解。第三章從用戶的功能需求和非功能需求兩方面對(duì)整個(gè)設(shè)計(jì)的模塊進(jìn)行了需求分析和細(xì)節(jié)講解,對(duì)設(shè)計(jì)的可行性進(jìn)行了總結(jié)。第四章對(duì)整個(gè)設(shè)計(jì)的體系結(jié)構(gòu)進(jìn)行了模塊化設(shè)計(jì),并對(duì)定位軟件的開(kāi)發(fā)方法和要點(diǎn)進(jìn)行講解,對(duì)系統(tǒng)的整個(gè)實(shí)現(xiàn)流程和數(shù)據(jù)庫(kù)設(shè)計(jì)進(jìn)行了詳細(xì)敘述,并繪制系統(tǒng)的程序流程圖。第五章是系統(tǒng)的整體實(shí)現(xiàn)章節(jié),將第四章的模塊化功能進(jìn)行實(shí)現(xiàn),展示了設(shè)計(jì)的實(shí)現(xiàn)成果,然后逐步介紹了界面的特點(diǎn)及其界面的主要應(yīng)用和操作。第六章是對(duì)整個(gè)設(shè)計(jì)的一個(gè)總結(jié),通過(guò)對(duì)整個(gè)設(shè)計(jì)過(guò)程中遇到的問(wèn)題進(jìn)行歸納,總結(jié)了整個(gè)設(shè)計(jì)中依舊存在的問(wèn)題,并對(duì)這些問(wèn)題進(jìn)行了展望,希望在后期的完善中,彌補(bǔ)這些缺陷。1.5本章小結(jié)本章首先從在線問(wèn)卷調(diào)查系統(tǒng)近幾年的發(fā)展?fàn)顩r和在線問(wèn)卷調(diào)查系統(tǒng)的用戶量和適用性兩方面對(duì)課題的研究背景和研究意義進(jìn)行了論述,然后對(duì)在線問(wèn)卷調(diào)查系統(tǒng)優(yōu)點(diǎn)做了一個(gè)詳細(xì)的總結(jié),接著又對(duì)整個(gè)課題的探究思路和探究過(guò)程做了簡(jiǎn)單的敘述和工作安排,最后對(duì)整個(gè)文章的主體結(jié)構(gòu)進(jìn)行了規(guī)劃。

2開(kāi)發(fā)環(huán)境和相關(guān)技術(shù)2.1開(kāi)發(fā)環(huán)境2.1.1系統(tǒng)硬件環(huán)境CPU:GenuineIntel(R)CPUT2080@1.73GHz或以上(服務(wù)器);內(nèi)存:1GB或以上(服務(wù)器);硬盤:120GB以上(服務(wù)器)。2.1.2系統(tǒng)軟件環(huán)境操作系統(tǒng):windows7及其以上操作系統(tǒng)。數(shù)據(jù)庫(kù):SQLServerWeb服務(wù)端管理:Tomcat前端端請(qǐng)求服務(wù)器:Tomcat2.2開(kāi)發(fā)技術(shù)2.2.1Java簡(jiǎn)介Java語(yǔ)言自從1996年正式發(fā)布。目前已經(jīng)成長(zhǎng)為IT領(lǐng)域必不可少的主流編程語(yǔ)言。Java起源于Sun公司的“Green”項(xiàng)目。1999年,Sun公司把Java2技術(shù)分成了J2SE,J2EE和J2ME。進(jìn)入21世紀(jì)以后,J2EE由于固有的良好的線性和可擴(kuò)展性,逐漸成為各大開(kāi)發(fā)商青睞的對(duì)象。Java語(yǔ)言中具有面向?qū)ο蟮膬?yōu)勢(shì)、安全、跨平臺(tái)、直接支持分布式的網(wǎng)絡(luò)中的應(yīng)用、效率等.Java語(yǔ)言是非常簡(jiǎn)單且高效的,它使編程時(shí)間縮短,卻使功能增強(qiáng),方便。Java語(yǔ)言就像萬(wàn)花筒一樣,隨意只是幾個(gè)普通碎片組成起來(lái),但是只要你發(fā)揮想象輕輕搖一搖,就會(huì)變換出千萬(wàn)種不同的花色。2.互聯(lián)網(wǎng)已經(jīng)發(fā)展成為Web應(yīng)用程序中,如電子商務(wù),電子政務(wù),應(yīng)用系統(tǒng)的基礎(chǔ)設(shè)施。在開(kāi)發(fā)Web程序中已經(jīng)不像傳統(tǒng)的HTML不能滿足客戶需求,滿足客戶需求或者客戶需要時(shí),必須通過(guò)添加代碼才可實(shí)現(xiàn)。目前,生成動(dòng)態(tài)網(wǎng)頁(yè)的方法有CGI、ASP.NET、PHP和JSP。其中JSP是基于Java的。JSP具有以下特點(diǎn):1.可以將代碼和所顯示內(nèi)容分離2.可以凸顯出重要的組件3.采用有標(biāo)識(shí)可簡(jiǎn)化的頁(yè)面開(kāi)發(fā)4.是企業(yè)級(jí)的可擴(kuò)展性和延伸性。2.2.2SQLServer介紹SQLServer是非結(jié)構(gòu)化語(yǔ)言,用戶可以在高層數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)上工作,并且其語(yǔ)言簡(jiǎn)單,學(xué)習(xí)起來(lái)比較容易,其結(jié)構(gòu)也簡(jiǎn)單,功能強(qiáng)大,存儲(chǔ)信息量大,SQLServer是一種主要應(yīng)用于數(shù)據(jù)的查詢和編程,現(xiàn)在普遍存在的關(guān)系數(shù)據(jù)庫(kù)有很多,而SQLServer數(shù)據(jù)庫(kù)在其中得到了普遍的應(yīng)用。使用SQLServer數(shù)據(jù)庫(kù)在編程過(guò)程中帶來(lái)了極大的方便,可以對(duì)數(shù)據(jù)進(jìn)行廣泛地查詢,SQLServer數(shù)據(jù)庫(kù)的應(yīng)用并不需要用戶了解其存儲(chǔ)的方式,更不用掌握數(shù)據(jù)存放的方法,所以,SQLServer數(shù)據(jù)庫(kù)是完全不同于其他數(shù)據(jù)的結(jié)構(gòu),并且不同數(shù)據(jù)庫(kù)系統(tǒng)也可以使用相同的數(shù)據(jù)庫(kù)進(jìn)行輸入和管理的接口,它的操縱對(duì)象是記錄相應(yīng)集合,SQLServer數(shù)據(jù)庫(kù)的靈活性較強(qiáng),功能也較強(qiáng)大,大多數(shù)情況下,在其他程序中實(shí)現(xiàn)某功能需要編寫一大堆代碼,而在SQL數(shù)據(jù)庫(kù)中只需要一小段代碼就可以實(shí)現(xiàn)功能,所以,SQLServer數(shù)據(jù)庫(kù)的語(yǔ)言較簡(jiǎn)潔,數(shù)據(jù)庫(kù)文件的擴(kuò)展名是SQLServer。介于數(shù)據(jù)庫(kù)的功能強(qiáng)大等特點(diǎn),本系統(tǒng)的開(kāi)發(fā)主要應(yīng)用了SQLServer進(jìn)行對(duì)數(shù)據(jù)的管理。2.2.3myeclipse介紹MyEclipse是比eclipse功能更加強(qiáng)大的一種企業(yè)級(jí)集成開(kāi)發(fā)環(huán)境,主要用于Java、JavaEE以及移動(dòng)應(yīng)用的開(kāi)發(fā)。MyEclipse的功能非常強(qiáng)大,應(yīng)用領(lǐng)域更加廣泛,在網(wǎng)站開(kāi)發(fā)領(lǐng)域備受人們青睞。1.J2EE模型2.WEB開(kāi)發(fā)工具3.EJB開(kāi)發(fā)工具4.應(yīng)用程序服務(wù)器的連接器5.J2EE項(xiàng)目部署服務(wù)6.數(shù)據(jù)庫(kù)服務(wù)7.MyEclipse整合幫助2.2.4B/S框架介紹在三層體系結(jié)構(gòu)的B/S(Browser/Server,瀏覽器/服務(wù)器結(jié)構(gòu))系統(tǒng)中,用戶可以通過(guò)瀏覽器向分布在網(wǎng)絡(luò)上的眾多服務(wù)器發(fā)出請(qǐng)求。B/S系統(tǒng)極大地簡(jiǎn)化了客戶機(jī)的工作量,客戶機(jī)上只需要安裝、配置少量的客戶端運(yùn)行軟件即可,服務(wù)器將擔(dān)負(fù)大量的工作,對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)以及應(yīng)用程序的執(zhí)行都將由服務(wù)器來(lái)完成。B/S系統(tǒng)包括:表示邏輯層,控制邏輯層,數(shù)據(jù)展現(xiàn)層,三層是相對(duì)獨(dú)立又相互關(guān)聯(lián)。2.3本章小結(jié)整個(gè)在線問(wèn)卷調(diào)查系統(tǒng)的前期準(zhǔn)備工作,包括由環(huán)境配置和關(guān)鍵技術(shù)兩部分組成。本章對(duì)所需的開(kāi)發(fā)環(huán)境進(jìn)行了配置,也對(duì)所需技術(shù)進(jìn)行了解析。開(kāi)發(fā)環(huán)境主要包括硬件、軟件兩部分,主要從JAVA技術(shù)、Myeclipse開(kāi)發(fā)平臺(tái)、SQLServer數(shù)據(jù)庫(kù)和B/S框架四個(gè)發(fā)面對(duì)開(kāi)發(fā)技術(shù)進(jìn)行敘述,為系統(tǒng)的整個(gè)開(kāi)發(fā)做好了理論和技術(shù)基礎(chǔ)。3需求分析3.1需求分析完成“在線問(wèn)卷調(diào)查系統(tǒng)”的設(shè)計(jì),在線問(wèn)卷調(diào)查系統(tǒng)是一個(gè)適用于各類用戶的在線進(jìn)行問(wèn)卷調(diào)查的系統(tǒng),本平臺(tái)大方向上由用戶和管理員組成:3.1.1用戶功能需求用戶的主要功能模塊:該功能需求主要面向用戶,為用戶提供服務(wù)。問(wèn)題查看模塊:用戶打開(kāi)系統(tǒng)之后,就可以查看系統(tǒng)提供的所有的信息。用戶可以簡(jiǎn)單的瀏覽系統(tǒng)界面,然后就去做自己感興趣的問(wèn)卷調(diào)查,按照題目要求填寫自己的答案,用戶做完所有的題目就可以提交信息,供后臺(tái)管理員查看統(tǒng)計(jì)。3.1.2管理員功能需求后臺(tái)管理員的主要功能模塊:后臺(tái)管理員通過(guò)登錄注冊(cè)之后,可以通過(guò)管理員服務(wù)端管理網(wǎng)站上的所有信息、管理問(wèn)卷調(diào)查信息、管理友情鏈接信息等。管理員需要通過(guò)后臺(tái)添加問(wèn)卷調(diào)查信息,設(shè)計(jì)所要調(diào)查的問(wèn)卷、對(duì)其他管理員提交的問(wèn)卷進(jìn)行審核,還需要對(duì)用戶提交的問(wèn)卷調(diào)查信息進(jìn)行統(tǒng)計(jì)。管理員用例圖圖3-1管理員用例圖3.2系統(tǒng)性能分析(1)可靠性需求系統(tǒng)可用性:一般的用戶可以用該系統(tǒng)就可以完成通常的操作需求,由此,需要界面的設(shè)計(jì)完全合理,該系統(tǒng)的使用對(duì)用戶來(lái)說(shuō)是方便可行的。(2)可支持性需求本系統(tǒng)為B/S結(jié)構(gòu)的應(yīng)用網(wǎng)站,系統(tǒng)在完成的時(shí)候,只需要在服務(wù)器上進(jìn)行一個(gè)簡(jiǎn)單的部署之后,用戶可以直接通過(guò)瀏覽器訪問(wèn)該系統(tǒng)。所以,部署的程序如果有需要改動(dòng)的時(shí)候,用戶只需要在服務(wù)器端修改程序就可以實(shí)現(xiàn),修改完成的程序,再次訪問(wèn)就可以看到修改之后版本的程序。(3)系統(tǒng)的完整性需求要求在線問(wèn)卷調(diào)查系統(tǒng)的問(wèn)卷信息記錄的完整性,故內(nèi)容是不能為空的,信息發(fā)布的各種數(shù)據(jù)之間的聯(lián)系需要保證正確性。(4)性能需求該系統(tǒng)的頁(yè)面響應(yīng)的時(shí)問(wèn)應(yīng)該在3秒以內(nèi),響應(yīng)的最長(zhǎng)時(shí)間不能超過(guò)4秒;該系統(tǒng)可同時(shí)容納多個(gè)客戶在線的訪問(wèn)。(5)易用性需求進(jìn)入該系統(tǒng)的使用者應(yīng)該掌握系統(tǒng)的所有的操作,要求系統(tǒng)的界面設(shè)計(jì)盡量的友、頁(yè)面簡(jiǎn)潔、易用的可視化操作界面;目有相應(yīng)的操作的提示與操作的幫助。3.3可行性分析在整個(gè)在線問(wèn)卷調(diào)查系統(tǒng)的開(kāi)發(fā)過(guò)程中,除了對(duì)用戶的需求進(jìn)行分析,還要對(duì)它的技術(shù)需要、技術(shù)是否可以支撐整個(gè)系統(tǒng)的開(kāi)發(fā)以及在開(kāi)發(fā)過(guò)程中的人力、物力、財(cái)力進(jìn)行綜合的分析和規(guī)劃。支持一個(gè)系統(tǒng)成功開(kāi)發(fā)的除了成熟的技術(shù)還需要足夠的財(cái)力支撐,下面從技術(shù)可行性、經(jīng)濟(jì)可行性、管理可行性和法律可行性進(jìn)行分析。1.技術(shù)可行性 大學(xué)時(shí),就已經(jīng)掌握了JSP的主要知識(shí),也對(duì)SQLServer數(shù)據(jù)庫(kù)的操作進(jìn)行了系統(tǒng)的學(xué)習(xí)。在大學(xué)對(duì)軟件工程,軟件測(cè)試,UML統(tǒng)一建模語(yǔ)言等課程進(jìn)行過(guò)系統(tǒng)的了解,也能夠?qū)@些課程進(jìn)行開(kāi)發(fā),擁有一定的系統(tǒng)辨別、開(kāi)發(fā)和檢驗(yàn)?zāi)芰?。JSP以及SQLServer結(jié)合起來(lái)開(kāi)發(fā)一套在線問(wèn)卷調(diào)查系統(tǒng),必定是可行并且高效的。綜上所述:在線問(wèn)卷調(diào)查系統(tǒng)的開(kāi)發(fā)技術(shù)具有很高可行性,且開(kāi)發(fā)人員掌握了一定的開(kāi)發(fā)技術(shù),所以系統(tǒng)的開(kāi)發(fā)具有可行性。2.經(jīng)濟(jì)可行性一個(gè)成功的系統(tǒng)從開(kāi)發(fā)運(yùn)行到后期維護(hù),主要成本由系統(tǒng)建設(shè)成本與運(yùn)行維護(hù)成本組成。系統(tǒng)建設(shè)成本又分為設(shè)備費(fèi)、通信費(fèi)、信息費(fèi)、軟件開(kāi)發(fā)成本和其他成本等。為保障其正常運(yùn)行需向系統(tǒng)管理機(jī)構(gòu)支付的運(yùn)行費(fèi)用以及系統(tǒng)的技術(shù)維護(hù)和管理等費(fèi)用構(gòu)成了后期運(yùn)行維護(hù)成本。在線問(wèn)卷調(diào)查系統(tǒng)的開(kāi)發(fā)的過(guò)程中,所需要的系統(tǒng)開(kāi)發(fā)人員數(shù)量較少,涉及到的開(kāi)發(fā)費(fèi)用不高,并且在前期的開(kāi)發(fā)和投資過(guò)程中,不需要投入大量的資本,它打破了傳統(tǒng)的運(yùn)行模式,大大降低了成本,提高了效率,增加了社會(huì)效益。所以,從經(jīng)濟(jì)角度考慮,在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)是完全可行的。3.管理可行性由于本系統(tǒng)的操作簡(jiǎn)單明了,用戶無(wú)需學(xué)習(xí),可以直接根據(jù)界面上的提示信息進(jìn)行操作,并且不需要較多的后臺(tái)維護(hù)和管理人員。所以,從管理角度來(lái)說(shuō),在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)是完全可行的。4.法律可行性在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)僅僅只是撰寫畢業(yè)論文所進(jìn)行的一個(gè)設(shè)計(jì),該軟件不參與任何商業(yè)活動(dòng),因此在法律上是可行的。5.結(jié)論在上面的可行性分析過(guò)程中,主要從技術(shù)可行性、經(jīng)濟(jì)可行性、管理可行性和法律可行性進(jìn)行了分析,通過(guò)分析可以發(fā)現(xiàn):在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)具有可靠性和易操作性,并且開(kāi)發(fā)技術(shù)都較為成熟,適用人群和范圍也較為廣泛,所以完全可以進(jìn)行設(shè)計(jì)與開(kāi)發(fā)。3.4系統(tǒng)數(shù)據(jù)流圖數(shù)據(jù)流圖在系統(tǒng)分析中的主要作用體現(xiàn)在以下幾點(diǎn):(1)數(shù)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示,即使不是專業(yè)的計(jì)算機(jī)人員也容易理解它,所以它是分析員和用戶之間極好的通信工具。(2)數(shù)據(jù)流圖能清楚地描繪數(shù)據(jù)在系統(tǒng)中的流動(dòng)和被處理的邏輯過(guò)程。(3)數(shù)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示,容易理解。經(jīng)過(guò)對(duì)系統(tǒng)的分析,頂層數(shù)據(jù)流圖如下圖所示:圖3-2頂層數(shù)據(jù)流圖3.5系統(tǒng)流程分析系統(tǒng)流程分析是調(diào)查分析系統(tǒng)所涉及到的每個(gè)環(huán)節(jié)的業(yè)務(wù)流程,從系統(tǒng)的注冊(cè)登錄著手,以實(shí)際操作為出發(fā)點(diǎn),掌握所有問(wèn)卷信息的管理內(nèi)容,保證信息能夠正確的輸入和輸出,數(shù)據(jù)存儲(chǔ)的完整性以及信息處理方法過(guò)程,并根據(jù)實(shí)際操作步驟來(lái)繪制出具體的流程圖。為保證系統(tǒng)的安全性,要使用本系統(tǒng)必須進(jìn)行登錄操作,登錄模塊主要滿足管理員和用戶的權(quán)限登錄,登錄流程圖如圖3-5所示圖3-3登錄流程圖3.6本章小結(jié)本章主要從用戶和開(kāi)發(fā)者兩個(gè)視覺(jué)出發(fā),對(duì)用戶的需求進(jìn)行了分析,又從技術(shù)可行性、經(jīng)濟(jì)可行性、管理可行性和法律可行性對(duì)開(kāi)發(fā)的可行性進(jìn)行了分析,最后又根據(jù)系統(tǒng)的終極目標(biāo)的實(shí)現(xiàn),對(duì)系統(tǒng)的主要功能進(jìn)行了詳細(xì)敘述。

4系統(tǒng)功能模塊設(shè)計(jì)4.1系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)該系統(tǒng)是一個(gè)三層B/S結(jié)構(gòu)。其運(yùn)行環(huán)境分為三部分:客戶端,應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器。web瀏覽器將HTTP請(qǐng)求發(fā)送到web服務(wù)器。Web服務(wù)器接收該請(qǐng)求并發(fā)送SQL請(qǐng)求到數(shù)據(jù)庫(kù)服務(wù)器。數(shù)據(jù)庫(kù)接收請(qǐng)求并在請(qǐng)求上的反饋。Web服務(wù)器從數(shù)據(jù)庫(kù)服務(wù)器接收到SQL結(jié)果后,它會(huì)做出響應(yīng)。如圖4-1所示。圖4-1B/S結(jié)構(gòu)圖以下是系統(tǒng)的軟件環(huán)境:1.客戶端操作系統(tǒng):Windows7或更新版本。瀏覽器:IE7以上,其它常見(jiàn)瀏覽器如FireFox。2.應(yīng)用服務(wù)器端操作系統(tǒng):Windows2012Server或更新版本。應(yīng)用服務(wù)器:JDK1.6+Tomcat。數(shù)據(jù)庫(kù)訪問(wèn):JDBC。3.數(shù)據(jù)庫(kù)服務(wù)器端操作系統(tǒng):Windows2012Server或更新版本。數(shù)據(jù)庫(kù)系統(tǒng):SQLServer。4.2總體設(shè)計(jì)在線問(wèn)卷調(diào)查系統(tǒng)的主要角色分為用戶和管理員兩個(gè)部分,具體的功能分析在前三章節(jié)已經(jīng)介紹,結(jié)合功能需求分析,畫出系統(tǒng)功能圖如圖4-2所示。圖4-2管理員功能圖4.3概要設(shè)計(jì)4.3.1系統(tǒng)邏輯設(shè)計(jì)在線問(wèn)卷調(diào)查系統(tǒng)的特點(diǎn)就是利用Browser/Server(B/S)結(jié)構(gòu),提供了一個(gè)網(wǎng)絡(luò)平臺(tái),讓用戶通過(guò)網(wǎng)絡(luò)隨時(shí)隨地的進(jìn)行問(wèn)卷調(diào)查。系統(tǒng)的優(yōu)勢(shì)在于系統(tǒng)簡(jiǎn)單、功能強(qiáng)大、擴(kuò)展能力良好以及能夠方便的跨地域操作等性能。系統(tǒng)的網(wǎng)絡(luò)應(yīng)用原理示意圖如圖4-3所示:圖4-3系統(tǒng)的網(wǎng)絡(luò)應(yīng)用原理示意圖4.3.2系統(tǒng)物理結(jié)構(gòu)系統(tǒng)實(shí)現(xiàn)的物理結(jié)構(gòu)如圖4-4所示:圖4-4系統(tǒng)實(shí)現(xiàn)的物理結(jié)構(gòu)圖4.3.3系統(tǒng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖在線問(wèn)卷調(diào)查系統(tǒng)采用先進(jìn)的B/S架構(gòu),該架構(gòu)具有開(kāi)發(fā)簡(jiǎn)、單共享性強(qiáng)、維護(hù)簡(jiǎn)單方便等諸多優(yōu)點(diǎn)。本系統(tǒng)的網(wǎng)絡(luò)拓?fù)鋱D如圖4-5所示:圖4-5系統(tǒng)的網(wǎng)絡(luò)拓?fù)鋱D在整個(gè)設(shè)計(jì)過(guò)程中,應(yīng)該考慮到以下問(wèn)題:1.要確定好用戶具體的功能需求以及設(shè)計(jì)過(guò)程中的非功能需求,以及在整個(gè)應(yīng)用過(guò)程中應(yīng)該具備的基本功能。2.頁(yè)面與頁(yè)面之間的銜接程度和跳轉(zhuǎn)速度。3.在實(shí)現(xiàn)每個(gè)目標(biāo)模塊時(shí),應(yīng)該對(duì)所需要的數(shù)據(jù)、數(shù)據(jù)的格式、數(shù)據(jù)的來(lái)源以及存儲(chǔ)方式有好的分析。4.服務(wù)端的支持至關(guān)重要,應(yīng)用程序在使用的過(guò)程中,需要何種服務(wù)器進(jìn)行支持,具體的支持方案。5.?dāng)?shù)據(jù)終端的設(shè)計(jì),具體的數(shù)據(jù)庫(kù)及其數(shù)據(jù)格式,相應(yīng)的數(shù)據(jù)支持。6.具體的權(quán)限管理,不同界面與場(chǎng)景,不同的設(shè)計(jì)權(quán)限。4.3.4時(shí)序圖(1)管理員注冊(cè)時(shí)序圖圖4-6管理員注冊(cè)時(shí)序圖(2)管理員登錄時(shí)序圖圖4-7管理員登錄時(shí)序圖(3)用戶進(jìn)行問(wèn)卷調(diào)查時(shí)序圖圖4-8用戶進(jìn)行問(wèn)卷調(diào)查時(shí)序圖4.3.4類圖(1)Admin實(shí)體類圖Admin類是對(duì)管理員信息描述類。其中包括包括管理員登錄賬號(hào)、登錄密碼、管理員郵箱、登錄狀態(tài)、管理員注冊(cè)時(shí)間以及管理員真實(shí)姓名等信息。圖4-9Admin類圖(2)Answersheet實(shí)體類圖Answersheet類是對(duì)系統(tǒng)問(wèn)題答案的描述類。由問(wèn)卷ID、答案信息、用戶IP等信息構(gòu)成。圖4-10Answersheet類圖(3)Config實(shí)體類圖Config類是對(duì)系統(tǒng)配置的描述類,主要由系統(tǒng)名稱、系統(tǒng)網(wǎng)址、系統(tǒng)ID、系統(tǒng)信息描述、系統(tǒng)狀態(tài)等幾部分構(gòu)成。圖4-11Config類圖(4)Link實(shí)體類圖Link類是對(duì)系統(tǒng)超鏈接信息的描述類,主要包括鏈接名稱、鏈接添加時(shí)間、鏈接ID、鏈接狀態(tài)、鏈接信息、鏈接URL等幾部分構(gòu)成。圖4-12Link類圖(5)Question實(shí)體類圖Question類是對(duì)問(wèn)題信息的描述類。由問(wèn)題題目、問(wèn)題描述、添加人、問(wèn)題類型、問(wèn)卷ID等等幾部分構(gòu)成。圖4-13Question實(shí)體屬性圖(6)Survey實(shí)體類圖Survey類是對(duì)問(wèn)卷信息的描述類。由問(wèn)卷名稱、問(wèn)卷發(fā)起單位、問(wèn)卷到期時(shí)間、審核狀態(tài)、IP限制信息、用戶點(diǎn)擊率等信息構(gòu)成圖4-14Survey實(shí)體屬性圖4.4數(shù)據(jù)庫(kù)E-R圖1.管理員E-R圖如下所示:圖4-15管理員實(shí)體屬性關(guān)系2.系統(tǒng)配置E-R圖如下圖所示圖4-16系統(tǒng)配置實(shí)體屬性關(guān)系3.問(wèn)題E-R圖如下圖所示:圖4-17問(wèn)題實(shí)體屬性關(guān)系4.友情鏈接E-R圖如下圖所示:圖4-18友情鏈接實(shí)體屬性關(guān)系5.答案信息E-R圖如下圖所示:圖4-19答案鏈接實(shí)體屬性關(guān)系圖4.5數(shù)據(jù)表設(shè)計(jì)在線問(wèn)卷調(diào)查系統(tǒng)的設(shè)計(jì)中的數(shù)據(jù)庫(kù)的設(shè)計(jì)實(shí)質(zhì)上主要是對(duì)數(shù)據(jù)表的設(shè)計(jì),即對(duì)表字段和類型的設(shè)計(jì),數(shù)據(jù)表主要分為管理員數(shù)據(jù)表設(shè)計(jì)、題庫(kù)信息的數(shù)據(jù)庫(kù)表設(shè)計(jì)和用戶的數(shù)據(jù)表設(shè)計(jì)等這幾個(gè)部分,具體設(shè)計(jì)如下。4.5.1管理員數(shù)據(jù)表設(shè)計(jì)管理員數(shù)據(jù)表主要包括管理員登錄賬號(hào)、登錄密碼、管理員郵箱、登錄狀態(tài)、管理員注冊(cè)時(shí)間以及管理員真實(shí)姓名等信息。管理員數(shù)據(jù)表如表4-1所示。表4-1管理員數(shù)據(jù)表(admins)序號(hào)名稱數(shù)據(jù)類型長(zhǎng)度注釋1a_addtimedatetime注冊(cè)時(shí)間2a_emailvarchar(100)100郵箱3a_idnumeric(18,0)18管理員ID4a_infovarchar(1000)1,000管理員信息5a_isLockbit是否鎖定6a_lastLogTimedatetime最后操作時(shí)間7a_loginIpvarchar(50)50登錄ID8a_logTimesnumeric(18,0)18操作時(shí)間9a_namevarchar(50)50管理員真實(shí)姓名10a_passvarchar(50)50管理員密碼11a_uservarchar(50)50管理員登錄賬號(hào)4.5.2系統(tǒng)配置數(shù)據(jù)表設(shè)計(jì)系統(tǒng)配置數(shù)據(jù)表主要由系統(tǒng)名稱、系統(tǒng)網(wǎng)址、系統(tǒng)ID、系統(tǒng)信息描述、系統(tǒng)狀態(tài)等幾部分構(gòu)成,系統(tǒng)配置數(shù)據(jù)表如表4-2所示。表4-2系統(tǒng)配置數(shù)據(jù)表(config)序號(hào)名稱數(shù)據(jù)類型長(zhǎng)度注釋1c_closeWordvarchar(1000)1,000系統(tǒng)字?jǐn)?shù)統(tǒng)計(jì)2c_isOpenbit系統(tǒng)狀態(tài)3c_siteNamevarchar(500)500系統(tǒng)名稱4c_siteURLvarchar(500)500系統(tǒng)網(wǎng)址5copyrightvarchar(500)500系統(tǒng)信息6idint系統(tǒng)ID4.5.3問(wèn)題數(shù)據(jù)表設(shè)計(jì)系統(tǒng)中,調(diào)查問(wèn)卷所包含的問(wèn)題數(shù)據(jù)表由問(wèn)題題目、問(wèn)題描述、添加人、問(wèn)題類型、問(wèn)卷ID等等幾部分構(gòu)成,問(wèn)題信息表如表4-3所示:表4-3問(wèn)題信息表(question)序號(hào)名稱數(shù)據(jù)類型長(zhǎng)度注釋1q_bodyvarchar(8000)8,000問(wèn)題描述2q_headvarchar(1000)1,000題目3q_idnumeric(18,0)18問(wèn)題ID4q_imgvarchar(1000)1,000圖片5q_jdtzvarchar(1000)1,0006q_ordernumeric(18,0)18添加人7q_resultvarchar(1000)1,000結(jié)果描述8q_typenumeric(18,0)18問(wèn)題類型9s_idnumeric(18,0)18調(diào)查ID4.5.4友情鏈接數(shù)據(jù)表設(shè)計(jì)系統(tǒng)主頁(yè)上有幾個(gè)友情鏈接供用戶選擇,友情鏈接數(shù)據(jù)表主要包括鏈接名稱、鏈接添加時(shí)間、鏈接ID、鏈接狀態(tài)、鏈接信息、鏈接URL等幾部分構(gòu)成。友情鏈接數(shù)據(jù)表如下表所示:表4-4友情鏈接數(shù)據(jù)表(Link)序號(hào)名稱數(shù)據(jù)類型長(zhǎng)度注釋1l_addtimedatetime添加時(shí)間2l_idnumeric(18,0)18鏈接ID3l_imgvarchar(500)500圖片4l_infovarchar(1000)1,000鏈接信息5l_isLockbit鏈接狀態(tài)6l_namevarchar(50)50鏈接名稱7l_urlvarchar(500)500鏈接URL4.5.5問(wèn)卷數(shù)據(jù)表設(shè)計(jì)問(wèn)卷數(shù)據(jù)表是該系統(tǒng)的核心數(shù)據(jù)表,問(wèn)卷數(shù)據(jù)表由問(wèn)卷名稱、問(wèn)卷發(fā)起單位、問(wèn)卷到期時(shí)間、審核狀態(tài)、IP限制信息、用戶點(diǎn)擊率等信息構(gòu)成,問(wèn)卷信息表如下表所示:表4-5問(wèn)卷信息表(survey)序號(hào)名稱數(shù)據(jù)類型長(zhǎng)度注釋1s_authorvarchar(100)100添加人2s_createDatedatetime問(wèn)卷添加時(shí)間3s_descvarchar(500)500問(wèn)卷描述4s_expireDatedatetime問(wèn)卷到期時(shí)間5s_hitsnumeric(18,0)18問(wèn)卷點(diǎn)擊率6s_idnumeric(18,0)18問(wèn)卷iD7s_imgvarchar(1000)1,000問(wèn)卷圖片8s_ipLimitTypevarchar(10)10是否限制訪問(wèn)IP類型9s_ipRangevarchar(2000)2,000IP范圍10s_ipRepeatbit同一IP是否重復(fù)提交11s_isAuditedbit審核是否通過(guò)12s_isOpenbit操作類型13s_namevarchar(100)100問(wèn)卷名稱14s_passwordvarchar(100)100提交密碼15s_usehitsnumeric(18,0)18用戶點(diǎn)擊率16templet_idnumeric(18,0)18模板ID4.5.6答案數(shù)據(jù)表設(shè)計(jì)答案數(shù)據(jù)表由問(wèn)卷ID、答案信息、用戶IP等信息構(gòu)成,如表4-6所示:表4-6答案數(shù)據(jù)表(answersheet)序號(hào)名稱數(shù)據(jù)類型長(zhǎng)度注釋1as_idnumeric(18,0)18答案ID2as_postdatedatetime過(guò)期時(shí)間3as_resultvarchar(8000)8,000答案信息4as_userIPvarchar(50)50用戶IP5s_idnumeric(18,0)18問(wèn)卷ID4.5.7模板數(shù)據(jù)表設(shè)計(jì)模板數(shù)據(jù)表,如表4-7所示。 表4-7模板數(shù)據(jù)表(templet) 序號(hào)名稱數(shù)據(jù)類型長(zhǎng)度注釋1templet_bodyvarchar(8000)8,000模板主體2templet_bottomvarchar(8000)8,000模板標(biāo)題3templet_defaultbit默認(rèn)信息4templet_idnumeric(18,0)18模板ID5templet_namevarchar(100)100模板名稱4.6管理端數(shù)據(jù)庫(kù)鏈接代碼<beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <!--指定連接數(shù)據(jù)庫(kù)的驅(qū)動(dòng)--> <propertyname="driverClass"value="com.sql.jdbc.Driver"/> <!--指定到數(shù)據(jù)庫(kù)的連接的URL--> <!--&zeroDateTimeBehavior=convertToNull是為了避免因數(shù)據(jù)庫(kù)中為date類型的數(shù)據(jù)為0000-00-00, 若為此值hibernate會(huì)報(bào)錯(cuò)‘Cannotconvertvalue'0000-00-0000:00:00'fromcolumn1toTIMESTAMP’ --> <propertyname="jdbcUrl"value="jdbc:mysql://localhost:3306/gis?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull"/> <!--指定的用戶名,用于連接到數(shù)據(jù)庫(kù)--> <propertyname="user"value="root"/> <!--指定連接到數(shù)據(jù)庫(kù)的密碼--> <propertyname="password"value="root"/> <!--指定連接的最大數(shù)目連接到數(shù)據(jù)庫(kù)連接池--> <propertyname="maxPoolSize"value="40"/> <!--指定連接的最小數(shù)目連接到數(shù)據(jù)庫(kù)連接池--> <propertyname="minPoolSize"value="10"/> <!--指定初始連接的號(hào)碼連接到數(shù)據(jù)庫(kù)連接池--> <propertyname="initialPoolSize"value="10"/> <!--指定用于連接到數(shù)據(jù)庫(kù)連接池連接的最大空閑時(shí)間--> <propertyname="maxIdleTime"value="20"/> <propertyname="idleConnectionTestPeriod"value="18000"/> </bean>4.7本章小結(jié)本章首先對(duì)整個(gè)設(shè)計(jì)的框架進(jìn)行了講解,對(duì)在整個(gè)設(shè)計(jì)的體系結(jié)構(gòu)進(jìn)行了講解,又處采用分層設(shè)計(jì)思想,對(duì)系統(tǒng)的模塊進(jìn)行了劃分,并繪制了模塊化分層圖,進(jìn)行了用戶操作流程的敘述及其圖的設(shè)計(jì),最后對(duì)整個(gè)系統(tǒng)在設(shè)計(jì)過(guò)程中所用的數(shù)據(jù)表進(jìn)行了表述。

5系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)在這個(gè)系統(tǒng)中,服務(wù)器的主要任務(wù)是維護(hù)數(shù)據(jù)庫(kù)。管理員使用服務(wù)器來(lái)維護(hù)系統(tǒng)的一些基本數(shù)據(jù),例如用戶管理,相關(guān)信息管理和信息處理。其操作主要在電腦實(shí)現(xiàn),采用的是C/S的開(kāi)發(fā)模式。下面對(duì)整個(gè)設(shè)計(jì)的主要界面進(jìn)行講解。5.1系統(tǒng)首頁(yè)系統(tǒng)主界面主要分為查看系統(tǒng)首頁(yè)、查看問(wèn)卷列表、訪問(wèn)私有問(wèn)卷、查看系統(tǒng)中所有的問(wèn)卷信息等,用戶不需要注冊(cè)登錄步驟就可以訪問(wèn)系統(tǒng)界面上的功能。系統(tǒng)主界面如圖5-1所示。圖5-1系統(tǒng)主界面5.2管理員登陸界面管理員要想登入系統(tǒng),首先要從登入頁(yè)面登入,登入頁(yè)面的主要作用是驗(yàn)證管理要的權(quán)限,只有通過(guò)驗(yàn)證的用戶才可以進(jìn)入系統(tǒng)進(jìn)行操作。登入頁(yè)面主要由用戶賬號(hào)和密碼兩個(gè)輸入框組成。首先頁(yè)面會(huì)對(duì)輸入數(shù)據(jù)的完整性進(jìn)行檢查,然后在查詢數(shù)據(jù)庫(kù),如果用戶存在則會(huì)登入成功,如果不存在則會(huì)提示。界面如下:圖5-2用戶登錄5.3問(wèn)卷信息添加界面為了便于管理員對(duì)問(wèn)卷信息的管理,在問(wèn)卷信息添加頁(yè)面接收到的問(wèn)卷信息要經(jīng)過(guò)嚴(yán)格的過(guò)濾。用ajax技術(shù)來(lái)保證相關(guān)問(wèn)題的是否填寫合格,通過(guò)javascript來(lái)保證用戶填入的相關(guān)信息不能為空。圖5-3問(wèn)卷信息添加界面5.4問(wèn)卷審核界面管理員登錄系統(tǒng)之后可以進(jìn)行問(wèn)卷調(diào)查信息的審核操作,管理員審核問(wèn)卷調(diào)查信息如5-4所示。管理員可以通過(guò)該界面進(jìn)行問(wèn)卷調(diào)查信息預(yù)覽、問(wèn)卷調(diào)查信息編輯、管理、刪除等操作。圖5-4用戶導(dǎo)航界面5.5題目添加界面管理員可以通過(guò)以下界面添加問(wèn)卷調(diào)查中所包含的題目信息。包括問(wèn)卷調(diào)查中的題目、選擇問(wèn)卷調(diào)查題型、添加問(wèn)卷調(diào)查中問(wèn)題的題目、選項(xiàng)、備選項(xiàng)等信息。管理員添加題目界面如圖5-5所示:圖5-5題目添加界面5.6用戶進(jìn)行問(wèn)卷調(diào)查界面用戶可以通過(guò)本系統(tǒng)進(jìn)行調(diào)查。用戶不需要登錄,登錄。打開(kāi)系統(tǒng)查看系統(tǒng)提供的問(wèn)卷調(diào)查信息,選擇感興趣的調(diào)查問(wèn)題回答問(wèn)題。用戶的問(wèn)卷調(diào)查界面如下圖所示:圖5-6用戶進(jìn)行問(wèn)卷調(diào)查界面6出錯(cuò)處理設(shè)計(jì)6.1出錯(cuò)原因在線問(wèn)卷調(diào)查系統(tǒng)在運(yùn)行和調(diào)試的過(guò)程中出現(xiàn)了一些錯(cuò)誤,具體的錯(cuò)誤如下。數(shù)據(jù)庫(kù)連接失敗輸入錯(cuò)誤其他操作錯(cuò)誤6.2解決方案我們分析了這個(gè)程序中的上述錯(cuò)誤,并進(jìn)行了不同的處理。詳情如下:數(shù)據(jù)庫(kù)連接錯(cuò)誤:這種錯(cuò)誤的原因主要有:數(shù)據(jù)庫(kù)安裝錯(cuò)誤,數(shù)據(jù)庫(kù)連接錯(cuò)誤,SQL服務(wù)器錯(cuò)誤等。輸入錯(cuò)誤:根據(jù)協(xié)議將不可避免地導(dǎo)致錯(cuò)誤不正確的用戶輸入或故障的輸入。因此,降低了用戶的錯(cuò)誤條件的情況下,該對(duì)話框提醒用戶取消操作,檢查輸入,并輸入正確的命令。其他操作錯(cuò)誤:在正常情況下,用戶的操作不當(dāng)會(huì)導(dǎo)致系統(tǒng)故障。面對(duì)這個(gè)問(wèn)題,我們主要采取暫停操作并通過(guò)使用對(duì)話框來(lái)提示用戶。6.3功能測(cè)試功能測(cè)試主要包括五項(xiàng)內(nèi)容:適用性、準(zhǔn)確性、可操作性、依從性、安全性。本在線問(wèn)卷調(diào)查系統(tǒng)功能測(cè)試如表6-1所示。表6-1網(wǎng)站功能測(cè)試測(cè)試內(nèi)容測(cè)試結(jié)果適用性好準(zhǔn)確性好可操作性好依從性好安全性好6.4可用性測(cè)試可用性測(cè)試用于檢測(cè)網(wǎng)站的可理解性、可操作性和學(xué)習(xí)性等方面內(nèi)容。具體測(cè)試方面如表6-2所示。表6-2網(wǎng)站可用性測(cè)試測(cè)試項(xiàng)測(cè)試人員評(píng)價(jià)窗口移動(dòng)、改變大小、關(guān)閉等操作是否正常好操作模塊是否友好好模塊和提示內(nèi)容等文字描述是否正確好模塊布局是否合理、協(xié)調(diào)好模塊的狀態(tài)是否正確(對(duì)選中項(xiàng)能否發(fā)生對(duì)應(yīng)切換)好鍵盤、鼠標(biāo)操作是否支持好所需的數(shù)據(jù)項(xiàng)是否正確顯示好操作流程是否合理好是否提供幫助信息好6.5測(cè)試資源對(duì)測(cè)試資源的說(shuō)明如下:開(kāi)發(fā)人員要按時(shí)完成開(kāi)發(fā)工作,應(yīng)避免應(yīng)用環(huán)境受到的限制,如網(wǎng)絡(luò)帶寬;可維護(hù)性、可移植的限制。確定測(cè)試項(xiàng)目對(duì)外部因素存在的依賴。6.6測(cè)試分析經(jīng)過(guò)對(duì)上述的測(cè)試結(jié)果分析,在線問(wèn)卷調(diào)查系統(tǒng)滿足用戶的要求和需求。所有基本功能齊全,操作簡(jiǎn)單,系統(tǒng)運(yùn)行性能良好,是一個(gè)值得推廣、應(yīng)用的在線問(wèn)卷調(diào)查系統(tǒng)。

7總結(jié)與展望以上是對(duì)在線問(wèn)卷調(diào)查系統(tǒng)的開(kāi)發(fā)技術(shù)、系統(tǒng)功能、開(kāi)發(fā)環(huán)境使用等方面的介紹和總結(jié)。整個(gè)設(shè)計(jì)從需求分析設(shè)計(jì)到編碼實(shí)現(xiàn)以及測(cè)試的這個(gè)過(guò)程中,無(wú)論是環(huán)境搭建還是系統(tǒng)程序代碼的編寫上都遇到了很多問(wèn)題。個(gè)人對(duì)于平臺(tái)的搭建和系統(tǒng)程序的代碼編寫不是很擅長(zhǎng),因此在這兩個(gè)部分花費(fèi)了大量的精力。通過(guò)本系統(tǒng)的設(shè)計(jì),我不僅僅對(duì)系統(tǒng)的開(kāi)發(fā)有了更好的認(rèn)識(shí),同時(shí)還對(duì)系統(tǒng)的設(shè)計(jì)有了更加完整的思路。在以往的學(xué)習(xí)過(guò)程中,由于缺乏實(shí)際的開(kāi)發(fā)經(jīng)驗(yàn)和知識(shí)體系,盡管整個(gè)系統(tǒng)的基本功能已經(jīng)實(shí)現(xiàn)了,但界面的美觀程度和數(shù)據(jù)的完整度還存在一定的問(wèn)題,在系統(tǒng)的安全性以及穩(wěn)定性上,也不能達(dá)到一個(gè)很高的水平。在以后的時(shí)間里,會(huì)繼續(xù)對(duì)系統(tǒng)界面、擴(kuò)展功能及其數(shù)據(jù)的完整性進(jìn)行探究,努力做出一個(gè)完善的識(shí)別系統(tǒng)。

致謝在這次畢業(yè)設(shè)計(jì)過(guò)程中,不僅鞏固了自己對(duì)系統(tǒng)開(kāi)發(fā)的基本功,同時(shí)還對(duì)實(shí)際動(dòng)手能力有了很大的提高。畢業(yè)設(shè)計(jì)對(duì)于我們來(lái)說(shuō)是一個(gè)非常好的可以檢驗(yàn)自我能力的機(jī)會(huì),也是監(jiān)測(cè)我四年內(nèi)學(xué)習(xí)成果的一個(gè)標(biāo)準(zhǔn)。在系統(tǒng)的設(shè)計(jì)過(guò)程中,我遇到過(guò)各種各樣的問(wèn)題,不管是在代碼方面還是在軟件設(shè)計(jì)方面。代碼編寫的時(shí)候經(jīng)常會(huì)出現(xiàn)一些意料之外的問(wèn)題,需要潛心學(xué)習(xí),多跟別人請(qǐng)教,不斷的去嘗試新的方式方法。在軟件設(shè)計(jì)的過(guò)程中,繪制時(shí)序圖與系統(tǒng)類圖時(shí)花費(fèi)了大量的時(shí)間與精力。不斷地進(jìn)行修改與調(diào)整,最終熟練掌握了Visio軟件,也繪制出來(lái)自己想要的圖,這在以后的工作生活當(dāng)中讓我受益匪淺。在程序代碼的編寫過(guò)程中,遇到了很大的困難,調(diào)試過(guò)程中經(jīng)常會(huì)出現(xiàn)不可預(yù)知的錯(cuò)誤,整個(gè)開(kāi)發(fā)設(shè)計(jì)的過(guò)程能夠順利并且?guī)捉昝赖倪M(jìn)行下去不僅需要耐心需要學(xué)習(xí)、同時(shí)也少不了知道老師孜孜不倦的教誨。讓我在順利完成整個(gè)設(shè)計(jì)的同時(shí)也學(xué)到了不少知識(shí)。在這個(gè)將前三年學(xué)習(xí)的所有的理論融會(huì)貫通,應(yīng)用到實(shí)際操作中,過(guò)程比我想的多很多,但是幸好,堅(jiān)持到了最后,完成畢業(yè)設(shè)計(jì)的整個(gè)過(guò)程,不僅是提高了自身解決問(wèn)題的能力,也讓自己學(xué)會(huì)了如何鉆研專業(yè)以及如何更好的與他人合作。在收獲了學(xué)術(shù)技術(shù)的同時(shí),收獲了很多志同道合的朋友。同時(shí)也感覺(jué)到,冰凍三尺非一日之寒,很多的東西,都需要總結(jié),需要在生活的點(diǎn)點(diǎn)滴滴中去發(fā)現(xiàn),更多的還是要感謝老師孜孜不倦的教誨與同學(xué)們所有的幫助。雖然最后做出來(lái)的這個(gè)東西不是很盡人意,但是,努力過(guò)了,就可以了,在以后的學(xué)習(xí)中,會(huì)不斷的進(jìn)取,不斷的完善,爭(zhēng)取把設(shè)計(jì)做的盡善盡美,在整個(gè)過(guò)程中所學(xué)習(xí)到的東西,所收獲的東西,永遠(yuǎn)都是受益無(wú)窮的,這也將使我終身受益。在開(kāi)發(fā)過(guò)程中收獲到的所有的東西,是我一生最大的財(cái)富。該在線問(wèn)卷調(diào)查系統(tǒng)的完成以及論文的撰寫,得到了很多人的幫助,是很多人辛苦的結(jié)晶。這個(gè)設(shè)計(jì)和論文的完成,凝結(jié)著老師和大家汗水。首先,我要感謝導(dǎo)師的鼓勵(lì)和指導(dǎo),從選題到整個(gè)設(shè)計(jì)方案的制定和修改,到整個(gè)設(shè)計(jì)的時(shí)進(jìn)度安排,具體設(shè)計(jì)過(guò)程的實(shí)現(xiàn),問(wèn)題的解決和畢業(yè)論文定稿。完成整個(gè)界面的算法設(shè)計(jì)和實(shí)現(xiàn),讓我有了一個(gè)大的進(jìn)步。由于自己的學(xué)術(shù)水平不高,能力有限,但這也是對(duì)自己的一次考驗(yàn)。同時(shí),我還要感謝這所大學(xué)所有的老師四年。他們的指導(dǎo)給了我專業(yè)知識(shí)的基礎(chǔ)。最后我要感謝我的母校,是它給我提供了一個(gè)良好的學(xué)習(xí)環(huán)境。

參考文獻(xiàn)[1]徐建波,周新蓮.Web設(shè)計(jì)原理于編程技術(shù)[M].中南大學(xué)出版社,2015.185-193.[2]馮燕奎.JSP實(shí)用案例教程[M].清華大學(xué)出版社,2014:70-100.[3]張洪斌.Java2高級(jí)程序設(shè)計(jì)[M].中科多媒體出版社,2011:85-90.[4]Michaelkofler.SQLServer.5權(quán)威指南[M].北京:人民郵電出版社,2016.[5]孫衛(wèi)琴.基于MVC的JavaWeb設(shè)計(jì)與開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2014.[6]林信良.spring2.0技術(shù)手冊(cè)[M].電子工業(yè)出版社,2016.6:50-100.[7]薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論(第三版)[M].高等教育出版社,1998.[8]王宜貴.軟件工程[M].北京:機(jī)械工業(yè)出版社,2012:20-79.[9]張海藩.《軟件工程導(dǎo)論》.清華大學(xué)出版社.2013.[10]耿祥義.JSP基礎(chǔ)編程[M.清華大學(xué)出版社,2014:55-162[11]林上杰,林康司.JAVA2.0技術(shù)手冊(cè)[M].電子工業(yè)出版社,2014:3-6.[12]JimArlow.UML2.0andtheUnifiedProcess[M].機(jī)械工業(yè)出版社,2006:30-40.[13]李愛(ài)萍.系統(tǒng)分析與設(shè)計(jì)[M].北京:人民郵電出版社,2015:50-71

附件部分源代碼1.管理員功能實(shí)現(xiàn)代碼publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Stringmutex1=""; //Stringmutex2=""; Stringop=request.getParameter("op"); if("AddAdmin".equals(op)){ Stringusername=request.getParameter("username"); Stringpwd=request.getParameter("pwd"); AdminDAOdao=DAOFactory.getAdminDAO(); Adminadmin=newAdmin(); admin.setA_user(username); admin.setA_pass(pwd); booleanret1=dao.addAdmin(admin); if(ret1) response.sendRedirect("../admin/AdminList.jsp"); else response.sendRedirect("../admin/OpResult.jsp?op=default&ret=false&words="+URLEncoder.encode("增加管理員出錯(cuò)!請(qǐng)聯(lián)系管理員","UTF-8")); } elseif("DelAdmin".equals(op)){ Longaid=Long.valueOf(request.getParameter("aid")); AdminDAOdao=DAOFactory.getAdminDAO(); booleanret1=dao.delAdmin(aid); if(ret1) response.sendRedirect("../admin/AdminList.jsp"); else response.sendRedirect("../admin/OpResult.jsp?op=default&ret=false&words="+URLEncoder.encode("刪除管理員出錯(cuò)!請(qǐng)聯(lián)系管理員","UTF-8")); }elseif("EditAdmin".equals(op)){ Longaid=Long.valueOf(request.getParameter("aid")); Stringoldpwd=request.getParameter("oldpwd"); Stringpwd=request.getParameter("pwd"); Stringusername=request.getParameter("username"); AdminDAOdao=DAOFactory.getAdminDAO(); if(dao.checkPwd(username,oldpwd)!=true){ response.sendRedirect("../admin/OpResult.jsp?op=default&ret=false&words="+URLEncoder.encode("yy","UTF-8")); return; } synchronized(mutex1){ Adminadmin=dao.findAdmin(aid); admin.setA_user(username); admin.setA_pass(pwd); booleanret1=dao.updateAdmin(admin); if(ret1) response.sendRedirect("../admin/AdminList.jsp"); else response.sendRedirect("../admin/OpResult.jsp?op=default&ret=false&words="+URLEncoder.encode("編輯管理員出錯(cuò)!請(qǐng)聯(lián)系管理員","UTF-8")); } } }2.問(wèn)卷管理代碼publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ PrintWriterout=response.getWriter(); Stringmutex1=""; Stringmutex2=""; if("AddSurvey".equals(request.getParameter("op"))){ SurveyDAOsurveydao=DAOFactory.getSurveyDAO(); Surveysurvey=newSurvey(); survey.setSName(request.getParameter("Survey_name")); survey.setSAuthor(request.getParameter("Survey_author")); survey.setSDesc(request.getParameter("Survey_description")); survey.setSCreateDate(newDate()); SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); try{ survey.setSExpireDate(sdf.parse(request.getParameter("Survey_ExpireDate"))); }catch(ParseExceptione){ out.println("wrongDATEformat.pleasecheckit!"); } survey.setTemplet(0L); survey.setSIpRepeat(Boolean.valueOf(request.getParameter("Survey_ipRepeat"))); survey.setSIsOpen(Boolean.valueOf(request.getParameter("Survey_isOpen"))); if(request.getParameter("Survey_isImg")!=null) survey.setSImg(request.getParameter("imgfilepath")); if(request.getParameter("Survey_isPassword")!=null) survey.setSPassword(request.getParameter("Survey_Password1")); if(request.getParameter("Survry_IPLimit")!=null){ //survey.setSIpLimitType(request.getParameter("Survey_ipLimitKinds")); survey.setSIpRange(request.getParameter("Survey_ipRange")); } survey.setSHits(0L); survey.setSIsAudited(false); survey.setSUsehits(0L); booleanret=surveydao.addSurvey(survey); //System.out.println(ret); if(ret==true) response.sendRedirect("../admin/OpResult.jsp?op=SurveyAdd&ret=true"); else response.sendRedirect("../admin/OpResult.jsp?op=SurveyAdd&ret=false"); } elseif("SurveyAudi".equals(request.getParameter("op"))){ Booleanaudit=Boolean.valueOf(request.getParameter("audit")); SurveyDAOsurveydao=DAOFactory.getSurveyDAO(); synchronized(mutex1){ Surveysurvey=surveydao.findSurvey(Long.valueOf(request.getParameter("sid"))); if(audit==true) survey.setSIsAudited(true); else survey.setSIsAudited(false); booleanret=surveydao.updateSurvey(survey); if(ret==true) response.sendRedirect("../admin/SurveyAudi.jsp"); else response.sendRedirect("../admin/OpResult.jsp?op=SurveyAudi&ret=false"); } }elseif("EditSurvey".equals(request.getParameter("op"))){ SurveyDAOsurveydao=DAOFactory.getSurveyDAO(); Stringsid=request.getParameter("Survey_id"); synchronized(mutex2){ Surveysurvey=surveydao.findSurvey(Long.valueOf(request.getParameter("Survey_id"))); survey.setSName(request.getParameter("Survey_name")); survey.setSAuthor(request.getParameter("Survey_author")); survey.setSDesc(request.getParameter("Survey_description")); SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); try{ survey.setSExpireDate(sdf.parse(request.getParameter("Survey_ExpireDate"))); }catch(ParseExceptione){ out.println("wrongDATEformat.pleasecheckit!"); } survey.setTemplet(0L); survey.setSIpRepeat(Boolean.valueOf(request.getParameter("Survey_ipRepeat"))); survey.setSIsOpen(Boolean.valueOf(request.getParameter("Survey_isOpen"))); if(request.getParameter("Survey_isImg")!=null){ if(request.getParameter("imgfilepath")!=null) survey.setSImg(request.getParameter("imgfilepath")); }else survey.setSImg(null); //System.out.println(request.getParameter("Survey_isPassword")); if(request.getParameter("Survey_isPassword")!=null){ survey.setSPassword(request.getParameter("Survey_isPassword")); }else survey.setSPassword(null); if(request.getParameter("Survry_IPLimit")!=null){ //survey.setSIpLimitType(request.getParameter("Survey_ipLimitKinds")); survey.setSIpRange(request.getParameter("Survey_ipRange")); //System.out.print(request.getParameter("Survey_ipRange")); }else { survey.setSIpLimitType(null); survey.setSIpRange(null); } booleanret=surveydao.updateSurvey(survey); //System.out.println(ret); if(ret==true) response.sendRedirect("../admin/SurveyEdit.jsp?sid="+sid+"&words="+URLEncoder.encode("hh","UTF-8")); else response.sendRedirect("../admin/OpResult.jsp?op=SurveyEdit&ret=false"); } }elseif("DelSurvey".equals(request.getParameter("op"))){ LongsurveyId=Long.valueOf(request.getParameter("sid")); SurveyDAOsurveydao=DAOFactory.getSurveyDAO(); booleanret1=surveydao.delSurvey(surveyId); QuestionDAOquestiondao=DAOFactory.getQuestionDAO(); if(ret1==true) ret1=questiondao.delQuestions(surveyId); if(ret1==true){ TextDAOtdao=DAOFactory.getTextDAO(); ret1=tdao.delText(surveyId); } if(ret1==true){ AnswersheetDAOadao=DAOFactory.getAnswersheetDAO(); ret1=adao.delAnswersheets(surveyId); } if(ret1==true) response.sendRedirect("../admin/SurveyAdmin.jsp"); else response.sendRedirect("../admin/OpResult.jsp?op=SurveyDel&ret=false"); } }3.問(wèn)題管理代碼publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Stringmutex=""; Stringmutex1=""; Stringmutex2=""; Stringop=request.getParameter("op"); if("AddQuestion".equals(op)){ Stringsid=request.getParameter("sid"); Stringtype=request.getParameter("type"); Stringqhead=request.getParameter("qHead"); Stringqbody=request.getParameter("qBody"); Stringqresult=request.getParameter("qResult"); Stringqimg=request.getParameter("qImg"); Questionquestion=newQuestion(); question.setSurvey(Long.valueOf(sid)); question.setQType(Long.valueOf(type)); question.setQHead(qhead); question.setQBody(qbody); question.setQResult(qresult); question.setQImg(qimg); question.setQOrder(0L); String[]qbodys=qbody.split("&\\$\\$&"); Stringspliter=""; for(inti=1;i<qbodys.length;i++) if(i==qbodys.length-1) spliter=spliter+"null&null"; else spliter=spliter+"null&"; question.setQJdtz(spliter); QuestionDAOdao=DAOFactory.getQuestionDAO(); booleanret=dao.addQuestion(question); if(ret==true) response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=true&sid="+sid); else{ response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=false"); } }elseif("DelQuestion".equals(op)){ Stringsid=request.getParameter("sid"); Stringqid=request.getParameter("qid"); QuestionDAOdao=DAOFactory.getQuestionDAO(); booleanret=dao.delQuestion(Long.valueOf(qid)); if(ret==true) response.sendRedirect("../admin/QuestionAdmin.jsp?sid="+sid); else response.sendRedirect("../admin/OpResult.jsp?op=Question&ret=false"); }elseif("EditQuestion".equals(op)){ Stringsid=request.getParameter("sid"); Stringqid=request.getParameter("qid"); //System.out.println(qid); Stringtype=request.getParameter("type"); Stringqhead=request.getParameter("qHead"); Stringqbody=request.getParameter("qBody"); Stringqimg=request.getParameter("qImg"); QuestionDAOdao=DAOFactory.getQuestionDAO(); synchronized(mutex){ Questionquestion=dao.findQuestion(Long.valueOf(qid)); //System.out.println(question==null); question.setQType(Long.valueOf(type)); question.setQHead(qhead); question.setQBody(qbody); question.setQImg(qimg); String[]qbodys=qbody.split("&\\$\\$&"); Stringspliter=""; for(inti=1;i<qbodys.

溫馨提示

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

評(píng)論

0/150

提交評(píng)論