基于-web在線問卷調(diào)查系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于-web在線問卷調(diào)查系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于-web在線問卷調(diào)查系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于-web在線問卷調(diào)查系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于-web在線問卷調(diào)查系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.沈陽航空航天大學(xué)課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告課程設(shè)計(jì)名稱:軟件綜合課程設(shè)計(jì)軟件綜合課程設(shè)計(jì)課程設(shè)計(jì)題目:基于基于 webweb 的在線問卷調(diào)查系的在線問卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)院(系):計(jì)算機(jī)學(xué)院專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班 級:學(xué) 號:2姓 名:指導(dǎo)教師:說明:結(jié)論(優(yōu)秀、良好、中等、及格、不及格)作為相關(guān)教環(huán)節(jié)考核必要依說明:結(jié)論(優(yōu)秀、良好、中等、及格、不及格)作為相關(guān)教環(huán)節(jié)考核必要依據(jù);格式不符合要求;數(shù)據(jù)不實(shí),不予通過。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重?fù)?jù);格式不符合要求;數(shù)據(jù)不實(shí),不予通過。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)的關(guān)鍵依據(jù)復(fù)的關(guān)鍵依據(jù).學(xué)術(shù)誠信聲明本人聲

2、明本人聲明:所呈交的報(bào)告(含電子版及數(shù)據(jù)文件)是我個人在導(dǎo)師指導(dǎo)下獨(dú)立進(jìn)行設(shè)計(jì)工作及取得的研究結(jié)果。盡我所知,除了文中特別或撰寫過的研究結(jié)果,也不包含其它教育機(jī)構(gòu)使用過的材料.與我一同工作的同學(xué)對本研究所做的任何貢獻(xiàn)均己在報(bào)告中做了明確的說明并表示了謝意。報(bào)告資料及實(shí)驗(yàn)數(shù)據(jù)若有不實(shí)之處,本人愿意接受本教學(xué)環(huán)節(jié)“不及格”和“重修或重做”的評分結(jié)論并承擔(dān)相關(guān)一切后果. 本人簽名: 日期: 年 月 日沈陽航空航天大學(xué)沈陽航空航天大學(xué).課課程程設(shè)設(shè)計(jì)計(jì)任任務(wù)務(wù)書書課程設(shè)計(jì)名稱軟軟件件綜綜合合課課程程設(shè)設(shè)計(jì)計(jì)專業(yè)計(jì)計(jì)算算機(jī)機(jī)科科學(xué)學(xué)與與技技術(shù)術(shù)學(xué)生姓名班級學(xué)號題目名稱基于 web 的在線問卷調(diào)查系統(tǒng)的設(shè)

3、計(jì)與實(shí)現(xiàn)起止日期2016年 12月 19日起至2017年1月 13日止課設(shè)內(nèi)容和要求:在校園、企事業(yè)單位里,由于各種調(diào)查研究的需要,經(jīng)常會有各種各樣的調(diào)查問卷,在傳統(tǒng)模式下,人們不但要花費(fèi)不少的費(fèi)用印刷問卷,而且還要消耗大量時(shí)間和精力對調(diào)查問卷進(jìn)行發(fā)放和回收,對調(diào)查問卷進(jìn)行統(tǒng)計(jì),并且人工操作調(diào)查問卷隨意性較大,容易產(chǎn)生遺漏等問題.本系統(tǒng)建立在信息技術(shù)基礎(chǔ)上,構(gòu)建一個在線的問卷設(shè)計(jì)、分發(fā)、調(diào)查、回收、統(tǒng)計(jì)的系統(tǒng),基本解決傳統(tǒng)問卷的上述老大難問題.1. 實(shí)現(xiàn)用戶管理系統(tǒng),注冊用戶可以發(fā)布、編輯問卷;非注冊用戶只可以填寫問卷.2. 實(shí)現(xiàn)問卷發(fā)布管理系統(tǒng),可以對問卷進(jìn)行增加,修改,刪除,查詢等操作。3

4、. 實(shí)現(xiàn)數(shù)據(jù)可視化,對問卷統(tǒng)計(jì)結(jié)果通過圖表進(jìn)行展示。4. 界面美觀,用戶交互、體驗(yàn)良好。參考資料:麥克勞克林。 PHP MySQL 實(shí)戰(zhàn)手冊-第二版M。 中國電力出版社, 2014。楊克李強(qiáng), 裴云, 黃向黨。 PHP 和 MySQL Web 開發(fā)從新手到高手M。 人民郵電出版社, 2013。教教研研室室審審核核意意見見 : 教教研研室室主主任任簽簽字字:指導(dǎo)教師指導(dǎo)教師(簽名)簽名)2016年12月16日學(xué)學(xué) 生(簽名)生(簽名)2016年12月19日.課程設(shè)計(jì)總結(jié):課程設(shè)計(jì)總結(jié):本次課程設(shè)計(jì)的主要任務(wù)是在線問卷系統(tǒng)。此實(shí)現(xiàn)了問卷創(chuàng)建,編輯,用戶管理,問卷信息統(tǒng)計(jì)等功能,使用 PHP 語言的

5、 laravel 框架,Mysql 數(shù)據(jù)庫。在這次課程設(shè)計(jì)中,使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有知識是遠(yuǎn)不夠的,只有把所學(xué)理論知與實(shí)踐相結(jié)合起來從中得出識是遠(yuǎn)不夠的, 只有把所學(xué)理論知與實(shí)踐相結(jié)合起來從中得出才能真正為社會服務(wù),從而提高自己的實(shí)際動手力和獨(dú)立思考. 才能真正為社會服務(wù),從而提高自己的實(shí)際動手力和獨(dú)立思考。才能真正為社會服務(wù),從而提高自己的實(shí)際動手力和獨(dú)立思考。才能真正為社會服務(wù),從而提高自己的實(shí)際動手力和獨(dú)立思考.系統(tǒng)中存在的一些不足和設(shè)計(jì)上存在的缺憾,說明自己這些方面還有很多不足之處有待自己進(jìn)一步學(xué)習(xí)、提高。在這次課程設(shè)計(jì)中,我學(xué)到很多東西真正達(dá)與用合,增強(qiáng)了對數(shù)據(jù)庫

6、方面應(yīng)用的理解自己今后參與開發(fā)系統(tǒng)積累不少經(jīng)驗(yàn),在課程設(shè)計(jì)過中從建立數(shù)據(jù)開始對庫理念及思想上有更高的認(rèn)識。從書本上知運(yùn)用到實(shí)際動手操作來,收獲頗多我真正學(xué)了計(jì)算機(jī)教科書上所沒有或者真正用到了課本的知識。這樣,既鞏固舊又掌握了新知識。不僅提高自己的動手能力,更體會到軟件開發(fā)樂趣加深入的了解數(shù)據(jù)庫實(shí)際應(yīng)用,為我們將來踐打下良好的基礎(chǔ)。在課設(shè)期間,與同學(xué)之間的相互探討對我有很大的啟發(fā)。讓我對有關(guān)知識有了更加深入的理解,也增強(qiáng)了我解決困難,克服困難的勇氣和決心。這次課設(shè)的感悟?qū)ξ胰蘸蟮膶W(xué)習(xí)和工作有了很大的促進(jìn)作用。.目目 錄錄1 需求分析 11。1 系統(tǒng)開發(fā)背景 11。2 系統(tǒng)開發(fā)目的 11。3 系統(tǒng)

7、開發(fā)意義 22 概要設(shè)計(jì)概要設(shè)計(jì) 32。1 總體設(shè)計(jì) 32。2 功能設(shè)計(jì) 32。2。1 用戶系統(tǒng)設(shè)計(jì) 32.2。2 問卷系統(tǒng)設(shè)計(jì) 32.3 數(shù)據(jù)庫設(shè)計(jì) 42。3 交互設(shè)計(jì) 63 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 73。1 用戶管理系統(tǒng) 73.1。1 用戶注冊 73.1。2 用戶登錄 93.2 問卷管理系統(tǒng) 93。2。1 問卷信息管理 93.2。2 題目信息管理 123.2。3 選項(xiàng)信息管理 143。2。4 問卷結(jié)果統(tǒng)計(jì) 173。2.5 問卷生成 183。2.6 問卷提交 194 測試測試 204.1 出現(xiàn)的錯誤 204.2 解決方法 20參考文獻(xiàn)參考文獻(xiàn) 21.附附 錄錄(關(guān)鍵部分程序清單關(guān)鍵部分程序清單)2

8、21。 路由文件 222. 用戶管理后臺文件 233。 問卷后臺管理文件 274。 問卷生成文件 415。 登錄界面 456。 注冊頁面 467. 問卷信息管理頁面 478. 題目信息管理頁面 509。 選項(xiàng)信息管理頁面 5310. 選擇題統(tǒng)計(jì)信息展示 5511。 簡答題統(tǒng)計(jì)信息展示 5812。 錯誤頁面 5913。 CSS 文件 6014. JAVASCRIPT文件 76.1 需求分析1。1 系統(tǒng)開發(fā)背景系統(tǒng)開發(fā)背景隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)的全球覆蓋,交互功能等特性給調(diào)查方法帶來新的變化,在線調(diào)查作為一種基于互聯(lián)網(wǎng)平臺上信息采集及處理方式,越來越受到許多評估研究機(jī)構(gòu)和媒介機(jī)構(gòu)的關(guān)注與

9、運(yùn)用。在校園、企事業(yè)單位里,由于各種調(diào)查研究的需要,經(jīng)常會有各種各樣的調(diào)查問卷,在傳統(tǒng)模式下,人們不但要花費(fèi)不少的費(fèi)用印刷問卷,而且還要消耗大量時(shí)間和精力對調(diào)查問卷進(jìn)行發(fā)放和回收,對調(diào)查問卷進(jìn)行統(tǒng)計(jì),并且人工操作調(diào)查問卷隨意性較大,容易產(chǎn)生遺漏等問題.本系統(tǒng)建立在信息技術(shù)基礎(chǔ)上,構(gòu)建一個在線的問卷設(shè)計(jì)、分發(fā)、調(diào)查、回收、統(tǒng)計(jì)的系統(tǒng),基本解決傳統(tǒng)問卷的上述老大難問題。借助互聯(lián)網(wǎng)這一現(xiàn)代化的信息溝通渠道,在線調(diào)查具有低成本、高速度、跨越空間局限、豐富的表現(xiàn)形式、智能化及互動性等優(yōu)點(diǎn)。因?yàn)槠浞奖阈?許多企業(yè)也在自己的網(wǎng)絡(luò)上進(jìn)行自主調(diào)研,使用調(diào)查的方式收集自己用戶的觀點(diǎn)等。不僅可以迅速了解社會不同層次

10、、不同行業(yè)的人員需求,客觀的收集需求信息,調(diào)整修正產(chǎn)品策略和營銷策略,滿足不同的需求。在線調(diào)查問卷系統(tǒng)是一個實(shí)用性很強(qiáng)的系統(tǒng).1.2 系統(tǒng)開發(fā)目的系統(tǒng)開發(fā)目的在線問卷調(diào)差的目的就是能夠提高調(diào)查效率,節(jié)約調(diào)查經(jīng)費(fèi),使調(diào)查數(shù)據(jù)的分析更加的方便,應(yīng)具有以下的功能特點(diǎn):(1)向用戶提交交互式,個性化的問卷調(diào)查服務(wù)。(2)智能的后臺管理,可以在線生成調(diào)查問卷,可分析統(tǒng)計(jì)調(diào)查的結(jié)果。(3)使用簡單、方便,問卷生成,投放,結(jié)果分析簡單易用。(4)具有靈活性,能應(yīng)用不同的調(diào)查環(huán)境.1。3 系統(tǒng)開發(fā)意義系統(tǒng)開發(fā)意義調(diào)查問卷系統(tǒng)的目的是企業(yè)、組織或個人需要調(diào)查或掌握一些數(shù)據(jù)、信息或資料時(shí),為這樣的需求者提供適合的

11、網(wǎng)上問卷、回收、統(tǒng)計(jì)數(shù)據(jù)活動答案,為需求者掌握資料提供方便。(1)對調(diào)查問卷的統(tǒng)計(jì)結(jié)果進(jìn)行分析匯總,并使需求者能及時(shí)了解最新的調(diào)查結(jié)果。(2)可以根據(jù)不同的需求靈活設(shè)計(jì)問卷.(3)支持多種題型,如單選、多選、簡答等。.2 概要設(shè)計(jì)2。1 總體設(shè)計(jì)總體設(shè)計(jì)系統(tǒng)的總體設(shè)計(jì)可以分為以下幾個部分:(1)使用 PHP 的 Laravel 框架實(shí)現(xiàn)系統(tǒng)的后臺管理系統(tǒng),包括問卷管理和用戶管理。(2)使用 Mysql 作為數(shù)據(jù)庫系統(tǒng)。(3)使用 JavasScript,Ajax 和 CSS 構(gòu)建前端頁面和交互系統(tǒng).(4)使用 HighCharters 庫實(shí)現(xiàn)數(shù)據(jù)可視化,實(shí)現(xiàn)問卷統(tǒng)計(jì)信息的圖表展示.2。2 功能

12、設(shè)計(jì)功能設(shè)計(jì)2。2.1 用戶系統(tǒng)設(shè)計(jì)用戶系統(tǒng)設(shè)計(jì)用戶可分為注冊用戶和一般用戶,注冊用戶需注冊信息后方可使用系統(tǒng),而一般用戶可直接訪問系統(tǒng)。3 種用戶權(quán)限不同,具體如下:(1)系統(tǒng)管理員:管理系統(tǒng)和所有用戶的問卷。(2)注冊用戶:設(shè)計(jì)、編輯、發(fā)布問卷,查看問卷統(tǒng)計(jì)結(jié)果。(3)一般用戶:填寫問卷。2。2.2 問卷系統(tǒng)設(shè)計(jì)問卷系統(tǒng)設(shè)計(jì)注冊用戶可以訪問問卷系統(tǒng),并編輯問卷(增加,刪除,修改,查詢)與問卷對應(yīng)的題目、選項(xiàng)。(1)問卷屬性:問卷標(biāo)題,發(fā)布者,發(fā)布時(shí)間,有效時(shí)間,提交量,題目.(2)題目屬性:題號,題目,題目類型,選項(xiàng)。(3)選項(xiàng)屬性:選項(xiàng)號,選項(xiàng)值。(4)題目類型:單選題、多選題、簡答題。

13、(5)問卷只有在有效時(shí)間內(nèi)才可以參與答題,超出有效時(shí)間后不可進(jìn)行答題。.2。3 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫包含 5 個表,分別是:users(用戶表),questionnaires(問卷表),subjects(題目表),options(選項(xiàng)表),short_answers(簡答表)。所有表的數(shù)據(jù)字典以及 ER 圖如下.問卷問卷題目題目選項(xiàng)選項(xiàng)簡答簡答擁有擁有1n擁有擁有擁有擁有11nn創(chuàng)建創(chuàng)建n用戶用戶1用戶id用戶id用戶名用戶名用戶郵箱用戶郵箱用戶密碼用戶密碼創(chuàng)建時(shí)間創(chuàng)建時(shí)間更新時(shí)間更新時(shí)間創(chuàng)建者創(chuàng)建者問卷id問卷id問卷標(biāo)題問卷標(biāo)題更新時(shí)間更新時(shí)間提交量提交量有效時(shí)間有效時(shí)間刪除標(biāo)識刪除

14、標(biāo)識創(chuàng)建時(shí)間創(chuàng)建時(shí)間題目id題目id問卷id問卷id創(chuàng)建者創(chuàng)建者題號題號題目內(nèi)容題目內(nèi)容題目類型題目類型選項(xiàng)數(shù)選項(xiàng)數(shù)刪除標(biāo)識刪除標(biāo)識創(chuàng)建時(shí)間創(chuàng)建時(shí)間更新時(shí)間更新時(shí)間題目id題目id選項(xiàng)id選項(xiàng)id創(chuàng)建者創(chuàng)建者創(chuàng)建時(shí)間創(chuàng)建時(shí)間選項(xiàng)號選項(xiàng)號選項(xiàng)內(nèi)容選項(xiàng)內(nèi)容提交數(shù)提交數(shù)刪除標(biāo)識刪除標(biāo)識更新時(shí)間更新時(shí)間創(chuàng)建時(shí)間創(chuàng)建時(shí)間回答id回答id題目id題目id回答內(nèi)容回答內(nèi)容刪除標(biāo)識刪除標(biāo)識更新時(shí)間更新時(shí)間用戶組用戶組圖圖 2.1 ER 圖圖.表表 2.12.1 用戶表用戶表users字段名稱字段名稱字段類型字段類型注釋注釋idint(10)用戶標(biāo)識,唯一,主鍵,自增namevarchar(255)用戶名,唯一

15、emailvarchar(255)用戶郵箱passwordvarchar(60)用戶密碼groupint(11)用戶組(管理員、注冊用戶)created_attimestamp創(chuàng)建時(shí)間updated_attimestamp更新時(shí)間表表 2.22.2 問卷表問卷表questionnaires字段名稱字段名稱字段類型字段類型注釋注釋idint(10)問卷標(biāo)識,唯一,主鍵,自增user_namevarchar(255)創(chuàng)建者titletext問卷標(biāo)題countsint(11)問卷提交量active_timeint(11)有效時(shí)間delete_tokenint(11)刪除標(biāo)識(0:未刪除,1:已刪除)

16、created_attimestamp創(chuàng)建時(shí)間updated_attimestamp更新時(shí)間表表 2 2。3 3 題目表題目表subjects字段名稱字段名稱字段類型字段類型注釋注釋idint(10)題目標(biāo)識,唯一,主鍵,自增questionnaire_idint(11)題目對應(yīng)的問卷標(biāo)識(外鍵)user_namevarchar(255)創(chuàng)建者numberint(11)題號titletext題目內(nèi)容typevarchar(255)題目類型(單選、多選、簡答)option_countint(11)題目對應(yīng)的選項(xiàng)數(shù)delete_tokenint(11)刪除標(biāo)識(0:未刪除,1:已刪除)create

17、d_attimestamp創(chuàng)建時(shí)間updated_attimestamp更新時(shí)間.表表 2.42.4 選項(xiàng)表選項(xiàng)表options字段名稱字段名稱字段類型字段類型注釋注釋idint(10)選項(xiàng)標(biāo)識,唯一,主鍵,自增subject_idint(11)選項(xiàng)對應(yīng)的題目標(biāo)識(外鍵)user_namevarchar(255)創(chuàng)建者numbervarchar(255)選項(xiàng)號titletext選項(xiàng)內(nèi)容select_countint(11)選項(xiàng)被選擇的次數(shù)delete_tokenint(11)刪除標(biāo)識(0:未刪除,1:已刪除)created_attimestamp創(chuàng)建時(shí)間updated_attimestamp更

18、新時(shí)間表表 2 2。5 5 簡答表簡答表short_answers字段名稱字段名稱字段類型字段類型注釋注釋idint(10)回答標(biāo)識,唯一,主鍵,自增subject_idint(11)回答對應(yīng)的題目標(biāo)識(外鍵)answervarchar(255)回答內(nèi)容delete_tokenint(11)刪除標(biāo)識(0:未刪除,1:已刪除)created_attimestamp創(chuàng)建時(shí)間updated_attimestamp更新時(shí)間2。3 交互設(shè)計(jì)交互設(shè)計(jì)使用 JavaScript,Ajax 等實(shí)現(xiàn)系統(tǒng)交互,實(shí)現(xiàn)對話框設(shè)計(jì)以及 UI 動畫交互,使用 HighCharters 庫實(shí)現(xiàn)數(shù)據(jù)可視化系統(tǒng),對問卷統(tǒng)計(jì)結(jié)果

19、進(jìn)行圖表展示.3 詳細(xì)設(shè)計(jì)3.1 用戶管理系統(tǒng)用戶管理系統(tǒng)3.1。1 用戶注冊用戶注冊本模塊用于實(shí)現(xiàn)新用戶的信息注冊,在注冊頁面檢查用戶輸入是否合法:(1)郵箱格式是否正確,是否已被注冊。(2)用戶名是否和已注冊用戶重復(fù)。(3)兩次密碼輸入是否一致。若用戶輸入合法,允許注冊,并跳轉(zhuǎn)至用戶界面;否則,給出錯誤提示。此頁面 URL 為:http:/localhost/auth/register(localhost 為系統(tǒng)域名,同下)。用戶注冊頁面 UI 與流程圖如圖 3.1 和圖 3。2 所示.圖圖 3。1 用戶注冊頁面用戶注冊頁面.開始開始郵箱地址合法郵箱地址合法用戶名不重復(fù)用戶名不重復(fù)兩次密碼

20、輸入一致兩次密碼輸入一致TT出錯出錯提交表單提交表單寫入數(shù)據(jù)庫,user表,寫Session寫入數(shù)據(jù)庫,user表,寫Session注冊頁面提交的表單信息不為空注冊頁面提交的表單信息不為空TFF結(jié)束結(jié)束圖圖 3。2 用戶注冊流程圖用戶注冊流程圖開始開始輸入正確輸入正確出錯出錯輸入用戶名和密碼輸入用戶名和密碼結(jié)束結(jié)束寫Session,進(jìn)入系統(tǒng)寫Session,進(jìn)入系統(tǒng)TF進(jìn)入問卷展示頁面進(jìn)入問卷展示頁面存在Session存在SessionFT圖圖 3。3 用戶登錄流程圖用戶登錄流程圖.3.1。2 用戶登錄用戶登錄本模塊用于實(shí)現(xiàn)用戶登錄,在用戶輸入正確的用戶名和密碼后,進(jìn)入系統(tǒng);否則,提示用戶錯誤

21、信息。此頁面 URL 為:http:/localhost,若存在 Session,跳轉(zhuǎn)至問卷展示頁面.用戶登錄流程圖與頁面 UI 如圖 3。3 和圖 3。4 所示。圖圖 3。4 用戶登錄界面用戶登錄界面3。2 問卷管理系統(tǒng)問卷管理系統(tǒng)3.2.1 問卷信息管理問卷信息管理本模塊用于實(shí)現(xiàn)用戶問卷信息的后臺管理.具體的操作有:問卷信息展示、創(chuàng)建新問卷、更新問卷、刪除問卷等操作。要展示的問卷信息有:(1)問卷 ID(系統(tǒng)內(nèi)唯一,在創(chuàng)建問卷時(shí)由系統(tǒng)自動生成)。(2)問卷標(biāo)題。(3)問卷創(chuàng)建者的用戶名。.(4)問卷的創(chuàng)建時(shí)間和有效時(shí)間(在有效時(shí)間內(nèi)問卷可以答題).(5)問卷的提交量。(6)查看問卷統(tǒng)計(jì)信息

22、的鏈接。(7)查看問卷地址的鏈接。(8)編輯問卷內(nèi)題目的鏈接.(9)問卷操作按鈕,包括問卷更新按鈕和問卷刪除按鈕。此頁面 URL 為:http:/localhost/userconsole/用戶名,內(nèi)為變量,是不同用戶進(jìn)入自己問卷管理頁面的條件。更新問卷的 post 地址為:http:/localhost/userconsole/用戶名/updatequestionnaire。刪除問卷的 post 地址為:http:/localhost/userconsole/用戶名/deletequestionnaire.問卷信息管理頁面 UI 與流程圖如圖 3.5 和圖 3。6 所示.圖圖 3.5 問卷信

23、息展示頁面問卷信息展示頁面除此之外,還有一個添加問卷按鈕。使用 JavaScript 捕獲按鈕點(diǎn)擊消息,生成建立新問卷對話框,用戶填寫問卷標(biāo)題與有效時(shí)間后可以創(chuàng)建新問卷。使用 Ajax與服務(wù)器交流將問卷信息寫入數(shù)據(jù)庫,做到平滑操作,改善用戶體驗(yàn).添加表單的post 地址為:http:/localhost/userconsole/用戶名/addquestionnaire創(chuàng)建新問卷流程圖與頁面 UI 如圖 3。7 和圖 3。8 所示.開始開始存在Session,且Session用戶名與URL中用戶名一致存在Session,且Session用戶名與URL中用戶名一致聯(lián)立users表與question

24、naires表,找出questionnaires表中此用戶創(chuàng)建的delete_token為0的問卷信息聯(lián)立users表與questionnaires表,找出questionnaires表中此用戶創(chuàng)建的delete_token為0的問卷信息T以問卷id降序的順序排列問卷信息以問卷id降序的順序排列問卷信息輸出信息輸出信息結(jié)束結(jié)束輸出錯誤信息輸出錯誤信息F圖圖 3。6 問卷信息展示流程圖問卷信息展示流程圖開始開始填寫信息不為空填寫信息不為空添加按鈕按下添加按鈕按下結(jié)束結(jié)束生成對話框生成對話框填寫問卷標(biāo)題和有效時(shí)間填寫問卷標(biāo)題和有效時(shí)間寫入數(shù)據(jù)庫寫入數(shù)據(jù)庫TF.圖圖 3.7 建立新問卷流程圖建立新問

25、卷流程圖圖圖 3。8 建立新問卷頁面建立新問卷頁面3.2。2 題目信息管理題目信息管理本模塊用于實(shí)現(xiàn)題目信息的后臺管理.具體的操作有:題目信息展示、創(chuàng)建新題目、更新題目、刪除題目等操作。要展示的題目信息有:(1)題號,用于展示問卷時(shí)的題目排序。(2)題目內(nèi)容。(3)題型(單選題、多選題、簡答題).(4)編輯題目對應(yīng)選項(xiàng)的鏈接(簡答題除外)。(5)題目操作按鈕,包括題目更新按鈕和題目刪除按鈕.此頁面 URL 為:http:/localhost/userconsole/用戶名/questionnaire/問卷 id。題目信息管理頁面 UI 與流程圖如圖 3.9 和圖 3。10 所示。.圖圖 3。9

26、 題目信息展示頁面題目信息展示頁面開始開始存在Session,且Session用戶名與URL中用戶名一致存在Session,且Session用戶名與URL中用戶名一致聯(lián)立questionnaires表與subjects表,找出subjects表中此問卷id的delete_token為0的問卷信息聯(lián)立questionnaires表與subjects表,找出subjects表中此問卷id的delete_token為0的問卷信息T以題目id降序的順序排列問卷信息以題目id降序的順序排列問卷信息輸出信息輸出信息結(jié)束結(jié)束輸出錯誤信息輸出錯誤信息問卷id是此用戶創(chuàng)建問卷id是此用戶創(chuàng)建TF圖圖 3.10

27、題目信息展示流程圖題目信息展示流程圖除此之外,還有一個添加題目按鈕.使用 JavaScript 捕獲按鈕點(diǎn)擊消息,生成建立新題目對話框,用戶通過下拉框選擇題號與題型,輸入題目后可以創(chuàng)建新題目,已有的題號不會出現(xiàn)在下拉框中,防止生成問卷的題號重復(fù).使用 Ajax 與服務(wù)器交流將問卷信息寫入數(shù)據(jù)庫,做到平滑操作,改善用戶體驗(yàn).添加新題目頁面 UI與流程圖如圖 3。11 和圖 3。12 所示.圖圖 3。11 建立新題目頁面建立新題目頁面 開始開始填寫信息不為空填寫信息不為空添加按鈕按下添加按鈕按下結(jié)束結(jié)束生成對話框生成對話框選擇題號、題型,填寫題目選擇題號、題型,填寫題目寫入數(shù)據(jù)庫寫入數(shù)據(jù)庫TF圖圖

28、 3。12 建立新題目流程圖建立新題目流程圖 3.2。3 選項(xiàng)信息管理選項(xiàng)信息管理本模塊用于實(shí)現(xiàn)選項(xiàng)信息的后臺管理。具體的操作有:選項(xiàng)信息展示、創(chuàng)建新選項(xiàng)、更新選項(xiàng)、刪除選項(xiàng)等操作。要展示的選項(xiàng)信息有:(1)選項(xiàng)號,用于展示題目時(shí)的選項(xiàng)排序。.(2)選項(xiàng)內(nèi)容。(3)選項(xiàng)操作按鈕,包括選項(xiàng)更新按鈕和選項(xiàng)刪除按鈕。此頁面 URL 為:http:/localhost/userconsole/用戶名/subject/題目 id.選項(xiàng)信息管理頁面 UI 與流程圖如圖 3。13 和圖 3.14 所示。圖圖 3.13 選項(xiàng)信息管理頁面選項(xiàng)信息管理頁面開始開始存在Session,且Session用戶名與URL

29、中用戶名一致存在Session,且Session用戶名與URL中用戶名一致聯(lián)立subjects表與options表,找出options表中此問卷id的delete_token為0的問卷信息聯(lián)立subjects表與options表,找出options表中此問卷id的delete_token為0的問卷信息T以選項(xiàng)id降序的順序排列問卷信息以選項(xiàng)id降序的順序排列問卷信息輸出信息輸出信息結(jié)束結(jié)束輸出錯誤信息輸出錯誤信息題目id是此用戶創(chuàng)建題目id是此用戶創(chuàng)建TF圖圖 3.14 選項(xiàng)信息管理流程圖選項(xiàng)信息管理流程圖.除此之外,還有一個添加選項(xiàng)按鈕。使用 JavaScript 捕獲按鈕點(diǎn)擊消息,生成建立

30、新選項(xiàng)對話框,用戶通過下拉框選擇選項(xiàng)號,輸入選項(xiàng)內(nèi)容后可以創(chuàng)建新選項(xiàng),已有的選項(xiàng)號不會出現(xiàn)在下拉框中,防止生成問卷的題號重復(fù)。使用 Ajax 與服務(wù)器交流將問卷信息寫入數(shù)據(jù)庫,做到平滑操作,改善用戶體驗(yàn)。添加新題目頁面UI 與流程圖如圖 3。15 和圖 3。16 所示.圖圖 3。15 建立新選項(xiàng)頁面建立新選項(xiàng)頁面 開始開始填寫信息不為空填寫信息不為空添加按鈕按下添加按鈕按下結(jié)束結(jié)束生成對話框生成對話框選擇選項(xiàng)號,填寫選項(xiàng)選擇選項(xiàng)號,填寫選項(xiàng)寫入數(shù)據(jù)庫寫入數(shù)據(jù)庫TF圖圖 3。16 建立新選項(xiàng)流程圖建立新選項(xiàng)流程圖.3。2.4 問卷結(jié)果統(tǒng)計(jì)問卷結(jié)果統(tǒng)計(jì)根據(jù)用戶填寫的問卷信息,統(tǒng)計(jì)選擇題每一道選項(xiàng)的

31、選項(xiàng)次數(shù)以及簡答題的答案。同一道題目不同選項(xiàng)選擇次數(shù)使用餅狀圖顯示百分比。使用 HighCharte 庫繪制餅狀圖。頁面 URL 為:http:/localhost/userconsole/用戶名/questionnaire/問卷 id/result。頁面 UI 如圖 3。17 與圖 3。18 所示。圖圖 3。17 問卷統(tǒng)計(jì)選擇題展示頁面問卷統(tǒng)計(jì)選擇題展示頁面.圖圖 3.18 問卷統(tǒng)計(jì)簡答題展示頁面問卷統(tǒng)計(jì)簡答題展示頁面 3.2。5 問卷生成問卷生成根據(jù)用戶創(chuàng)建的問卷、題目以及對應(yīng)的選項(xiàng)信息,生成一個完整的問卷頁面,頁面 URL 為:http:/localhost/questionnaire/

32、問卷 id。頁面 UI 如圖 3。19 所示。.圖圖 3。19 問卷頁面問卷頁面 3.2.6 問卷提交問卷提交在用戶填寫完問卷并提交之后,向用戶反饋此問卷的統(tǒng)計(jì)信息.頁面 UI 如圖3。20 所示.圖圖 3.20 反饋信息反饋信息 .4 測試4。1 出現(xiàn)的錯誤出現(xiàn)的錯誤1. 用戶權(quán)限問題,導(dǎo)致注冊用戶可以編輯其他用戶創(chuàng)建的題目以及選項(xiàng).2. 無法通過 Laravel 的 MVC 框架聯(lián)立不同的數(shù)據(jù)庫表格。3. 更新數(shù)據(jù)庫時(shí),導(dǎo)致多個行被錯誤修改。4。2 解決方法解決方法1. 在后臺頁面首先根據(jù) URL 的用戶名變量,判斷變量與 Session 用戶標(biāo)識是否一致,若一致,轉(zhuǎn)入編輯頁面;不一致,轉(zhuǎn)

33、到錯誤頁面。2. 外鍵與主鍵設(shè)置錯誤,修改即可.3. 錯誤使用 MVC 的 find 語句,修改成 where 語句即可.參考文獻(xiàn)1麥克勞克林。 PHP MySQL 實(shí)戰(zhàn)手冊第二版M。 中國電力出版社, 2014.2楊克李強(qiáng), 裴云, 黃向黨。 PHP 和 MySQL Web 開發(fā)從新手到高手M. 人民郵電出版社, 2013。3陳惠貞, 陳俊榮。 PHP MySQL 程序設(shè)計(jì)實(shí)例講座M. 清華大學(xué)出版社, 2010。4孔瀟。 PHP & MySQL 網(wǎng)站建設(shè)M. 國防工業(yè)出版社, 2001.5TimBoronczyk, MartinE.Psinas. PHP MySQL 范例精解:創(chuàng)建

34、、修改、重用M. 清華大學(xué)出版社, 2009。6萬川梅, 周建儒。 PHP WEB 程序設(shè)計(jì)M。 西南交通大學(xué)出版社, 2014.7陸凱. PHP 網(wǎng)站開發(fā)實(shí)用技術(shù)M。 人民郵電出版社, 2016。8傳智播客高教產(chǎn)品研發(fā)部. PHP 程序設(shè)計(jì)高級教程M。 中國鐵道出版社, 2015.附 錄(關(guān)鍵部分程序清單)1。 路由文件路由文件?phpRoute:get(/, AuthAuthControllerindex);/身份驗(yàn)證Route:group(prefix = auth, namespace = Auth, function()Route::post(loginCheck, AuthCont

35、rollerloginCheck);Route::get(register, AuthControllerregister);Route::post(registerCheck, AuthControllerregisterCheck);Route::post(registerEmailCheck, AuthControllerregisterEmailCheck);Route::post(registerNameCheck, AuthControllerregisterNameCheck););/問卷展示頁Route::group(prefix = questionnaire, namesp

36、ace = Questionnaire, function()Route:get(questionnaireid, QuestionnaireControllerindex);Route:post(questionnaireid/result, QuestionnaireControllerresult););/用戶后臺Route::group(prefix = userconsole, namespace = UserConsole, function()/展示用戶的問卷Route:get(username, UserConsoleControllerindex);/增加問卷Route::p

37、ost(username/addquestionnaire, UserConsoleControlleraddquestionnaire);/修改問卷Route:post(username/updatequestionnaire, UserConsoleControllerupdatequestionnaire);/刪除問卷Route:post(username/deletequestionnaire, UserConsoleControllerdeletequestionnaire);/展示問卷的題目Route:get(username/questionnaire/questionnaire

38、id, .UserConsoleControllerquestionnaire);/提交結(jié)果統(tǒng)計(jì)Route:get(username/questionnaire/questionnaireid/result, UserConsoleControllersubmitresult);Route:get(username/questionnaire/questionnaireid/result/subjectid, UserConsoleControlleranswerresult);/增加題目Route:post(username/questionnaire/questionnaireid/add

39、subject, UserConsoleControlleraddsubject);/修改題目Route:post(username/questionnaire/questionnaireid/updatesubject, UserConsoleControllerupdatesubject);/刪除題目Route::post(username/questionnaire/questionnaireid/deletesubject, UserConsoleControllerdeletesubject);/展示題目的選項(xiàng)Route::get(username/subject/subjectid

40、, UserConsoleControllersubject);/增加選項(xiàng)Route:post(username/subject/subjectid/addoption, UserConsoleControlleraddoption);/修改選項(xiàng)Route:post(username/subject/subjectid/updateoption, UserConsoleControllerupdateoption);/刪除選項(xiàng)Route::post(username/subject/subjectid/deleteoption, UserConsoleControllerdeleteoptio

41、n););2. 用戶管理后臺文件用戶管理后臺文件?php namespace AppHttpControllersAuth;use AppHttpControllersController;use IlluminateContractsAuthGuard;use IlluminateContractsAuthRegistrar;use IlluminateFoundationAuthAuthenticatesAndRegistersUsers;use AppUser;use Session;class AuthController extends Controller ./*|- Regist

42、ration & Login Controller-| This controller handles the registration of new users, as well as the authentication of existing users. By default, this controller uses a simple trait to add these behaviors。 Why dont you explore it?/use AuthenticatesAndRegistersUsers;/* Create a new authentication c

43、ontroller instance。 * * param IlluminateContractsAuthGuard auth param IlluminateContractsAuthRegistrar registrar return voidpublic function _construct(Guard auth, Registrar $registrar)thisauth = auth;$this-registrar = $registrar;thismiddleware(guest, except = getLogout); /* 登陸頁面展示 return Response */

44、public function index()return view(auth。login);/* 登錄驗(yàn)證 *. return Response /public function loginCheck()/ 處理表單:if ( (!empty(_POSTuser_nicename) (!empty(_POSTuser_pass) )user_nicename = htmlspecialchars(stripslashes(trim($_POSTuser_nicename));user_pass = htmlspecialchars(stripslashes(trim(_POSTuser_pa

45、ss);user_pass = md5(user_pass);/查找與用戶名對應(yīng)行user_info = User:where(name, user_nicename)first();/信息匹配if(user_info != NULL AND user_infopassword = user_pass)Session:put(auth_state, 1);Session::put(user_name, ”user_nicename”);return ”1”;/信息不匹配elsereturn 0”;elsereturn ”0”;/* 注冊界面 * * return Response /publi

46、c function register().return view(auth.register);/* * 注冊驗(yàn)證 return Response /public function registerCheck()/ 處理表單:if ( (!empty(_POSTuser_nicename) & (!empty(_POSTuser_pass) (!empty($_POSTuser_email)) )$user_nicename = htmlspecialchars(stripslashes(trim(_POSTuser_nicename));user_pass = htmlspecia

47、lchars(stripslashes(trim(_POSTuser_pass);user_pass = md5($user_pass);$user_email = htmlspecialchars(stripslashes(trim($_POSTuser_email);created_at = updated_at = date(Ymd H:i:s);userurl_id = User:insertGetId(array( name= user_nicename,email= user_email,password= $user_pass,created_at= created_at,upd

48、ated_at = updated_at);Session::put(auth_state, 1);Session::put(user_name, ”user_nicename”);/ * 注冊驗(yàn)證-郵箱 return Response /public function registerEmailCheck()./ 處理表單:if ( !empty(_POSTuser_email) )/查找與用戶名對應(yīng)行user_info = User:where(email, _POSTuser_email)first();/郵箱信息存在if(user_info != NULL)return ”1”;els

49、ereturn ”0”;/* 注冊驗(yàn)證用戶名 * return Response */public function registerNameCheck()/ 處理表單:if ( !empty(_POSTuser_name) )/查找與用戶名對應(yīng)行$user_info = User::where(name, _POSTuser_name)-first();/用戶信息存在if($user_info != NULL)return ”1”;elsereturn ”0;.3. 問卷后臺管理文件問卷后臺管理文件?php namespace AppHttpControllersUserConsole;us

50、e AppHttpRequests;use AppHttpControllersController;use AppUser;use AppQuestionnaire;use AppSubject;use AppOption;use AppShort_answer;use Session;use IlluminateHttpRequest;class UserConsoleController extends Controller /* 用戶控制臺 * * return Response */public function index(userName)/登陸用戶正確,顯示用戶控制臺if(Se

51、ssion::has(auth_state) & Session:get(user_name) = userName)/此用戶所創(chuàng)建的所有問卷表$user = User:where(name, userName)first();$QuestionnairesList = userhasManyQuestionnaire()-where(delete_token, 0)-orderBy(id,desc)get();return view(userconsole。index)with(QuestionnairesList,$QuestionnairesList);/顯示錯誤信息elsere

52、turn view(errors。authority);. /* 添加問卷 * * return Response /public function addquestionnaire(userName)/登陸用戶正確,顯示用戶控制臺if(Session::has(auth_state) Session:get(user_name) = userName)/處理添加新選項(xiàng)的表單if ( (!empty(_POSTNewQuestionnaireTitle) & (!empty($_POSTNewQuestionnaireTime) )$NewQuestionnaireTitle = _P

53、OSTNewQuestionnaireTitle;$NewQuestionnaireTime = _POSTNewQuestionnaireTime;/插入一行記錄$created_at = $updated_at = date(Ymd H:i:s);questionnaire = Questionnaire::insertGetId(array( user_name = userName,/問卷創(chuàng)建者title = NewQuestionnaireTitle, /問卷標(biāo)題active_time = NewQuestionnaireTime,/有效時(shí)間delete_token= 0,/刪除標(biāo)記

54、created_at= created_at,/創(chuàng)建時(shí)間updated_at = updated_at)/更新時(shí)間);return success;elsereturn ”inputnull;/顯示錯誤信息return view(errors。authority);. /* 修改問卷 return Response */public function updatequestionnaire($userName)/登陸用戶正確,顯示用戶控制臺if(Session::has(auth_state) & Session:get(user_name) = $userName)/處理添加新選項(xiàng)的

55、表單if ( (!empty($_POSTUpdateQuestionnaireTitle) (!empty(_POSTUpdateQuestionnaireTime) & (!empty($_POSTQuestionnaireId) )$UpdateQuestionnaireTitle = _POSTUpdateQuestionnaireTitle;UpdateQuestionnaireTime = _POSTUpdateQuestionnaireTime;QuestionnaireId = $_POSTQuestionnaireId;/更新一行記錄$created_at = $up

56、dated_at = date(Ym-d H:i:s);$questionnaire = Questionnaire:where(id, QuestionnaireId)update(array( title = UpdateQuestionnaireTitle, /問卷標(biāo)題active_time = $UpdateQuestionnaireTime)/有效時(shí)間);return ”success”;elsereturn inputnull”;/顯示錯誤信息return view(errors。authority); / 刪除問卷 * return Response /public functi

57、on deletequestionnaire(userName)./登陸用戶正確,顯示用戶控制臺if(Session::has(auth_state) Session:get(user_name) = userName)/處理添加新選項(xiàng)的表單if ( !empty(_POSTQuestionnaireId) )QuestionnaireId = _POSTQuestionnaireId;/更新一行記錄created_at = $updated_at = date(Ym-d H:i:s);questionnaire = Questionnaire:where(id, QuestionnaireI

58、d)update(array(delete_token= 1/刪除標(biāo)記);return ”success;elsereturn ”inputnull”;/顯示錯誤信息return view(errors.authority);/* 問卷編輯 * * return Response /public function questionnaire(userName, $questionnaireId)/登陸用戶正確,顯示用戶控制臺if(Session:has(auth_state) & Session::get(user_name) = userName)/此問卷表所包含的所有題目$Ques

59、tionnaire = Questionnaire:where(id, questionnaireId)first();./此問卷表創(chuàng)建者與登錄用戶一致if(Questionnaire-user_name = userName)$SubjectsList = QuestionnairehasManySubject()where(delete_token, 0)orderBy(number)get();$AllNumber = array();for($i=1; i100; i+)array_push(AllNumber,i);SubjectNumbers = array();foreach(S

60、ubjectsList as Subject)array_push(SubjectNumbers,Subjectnumber);otherSubjectNumber = array_diff(AllNumber,$SubjectNumbers);return view(userconsole.questionnaire)with(”SubjectsList, $SubjectsList)/題目列表with(QuestionnaireId, questionnaireId)/問卷 IDwith(”QuestionnaireTitle”,Questionnairetitle)/問卷標(biāo)題-with(SubjectNumbers”, $otherSubjectNumber);/可

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論