版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、-. z航空航天大學(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é)論說明:結(jié)論優(yōu)秀、良好、中等、及格、不及格優(yōu)秀、良好、中等、及格、不及格作為相關(guān)教環(huán)節(jié)考核必要依作為相關(guān)教環(huán)節(jié)考核必要依據(jù);格式不符合要求;數(shù)據(jù)不實(shí)據(jù);格式不符合要求;數(shù)據(jù)不實(shí), ,不予通過。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)不予通過。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)的關(guān)鍵依據(jù)。的關(guān)鍵依據(jù)。-. z學(xué)術(shù)誠信聲明本人
2、聲明本人聲明:所呈交的報(bào)告含電子版及數(shù)據(jù)文件是我個(gè)人在導(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è)有不實(shí)之處,本人愿意承受本教學(xué)環(huán)節(jié)不及格和重修或重做的評分結(jié)論并承當(dāng)相關(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é)生班級*題目名稱基于 web 的在線問卷調(diào)查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)起止日期20212
3、021年1212月1919日起至20212021年1 1月1313日止-. z課設(shè)容和要求:在校園、企事業(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ù)根底上,構(gòu)建一個(gè)在線的問卷設(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)展增加,修改,刪除,查詢等操
4、作。3. 實(shí)現(xiàn)數(shù)據(jù)可視化,對問卷統(tǒng)計(jì)結(jié)果通過圖表進(jìn)展展示。4. 界面美觀,用戶交互、體驗(yàn)良好。參考資料:麥克勞克林. PHP & MySQL 實(shí)戰(zhàn)手冊-第二版M. 中國電力, 2021.克強(qiáng), 裴云, 黃向黨. PHP 和 MySQL Web 開發(fā)從新手到高手M. 人民郵電, 2021.教教研研室室審審核核意意見見: 教教研研室室主主任任簽簽字字:指導(dǎo)教師指導(dǎo)教師簽名簽名20212021年1212月1616日學(xué)學(xué) 生生簽名簽名20212021年1212月1919日-. z課程設(shè)計(jì)總結(jié):課程設(shè)計(jì)總結(jié):本次課程設(shè)計(jì)的主要任務(wù)是在線問卷系統(tǒng)。此實(shí)現(xiàn)了問卷創(chuàng)立,編輯,用戶管理,問卷信息統(tǒng)計(jì)等功
5、能,使用 PHP 語言的 laravel 框架,Mysql 數(shù)據(jù)庫。在這次課程設(shè)計(jì)中,使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有知識是遠(yuǎn)不夠的,只有把所學(xué)理論知與實(shí)踐相結(jié)合起來從中得出識是遠(yuǎn)不夠的, 只有把所學(xué)理論知與實(shí)踐相結(jié)合起來從中得出才能真正為社會效勞,從而提高自己的實(shí)際動手力和獨(dú)立思考。 才能真正為社會效勞,從而提高自己的實(shí)際動手力和獨(dú)立思考。才能真正為社會效勞,從而提高自己的實(shí)際動手力和獨(dú)立思考。才能真正為社會效勞,從而提高自己的實(shí)際動手力和獨(dú)立思考。系統(tǒng)中存在的一些缺乏和設(shè)計(jì)上存在的缺憾,說明自己這些方面還有很多缺乏之處有待自己進(jìn)一步學(xué)習(xí)、提高。在這次課程設(shè)計(jì)中,我學(xué)到很多東西真正
6、達(dá)與用合,增強(qiáng)了對數(shù)據(jù)庫方面應(yīng)用的理解自己今后參與開發(fā)系統(tǒng)積累不少經(jīng)歷,在課程設(shè)計(jì)過中從建立數(shù)據(jù)開場對庫理念及思想上有更高的認(rèn)識。從書本上知運(yùn)用到實(shí)際動手操作來,收獲頗多我真正學(xué)了計(jì)算機(jī)教科書上所沒有或者真正用到了課本的知識。這樣,既穩(wěn)固舊又掌握了新知識。不僅提高自己的動手能力,更體會到軟件開發(fā)樂趣加深入的了解數(shù)據(jù)庫實(shí)際應(yīng)用,為我們將來踐打下良好的根底。在課設(shè)期間,與同學(xué)之間的相互探討對我有很大的啟發(fā)。讓我對有關(guān)知識有了更加深入的理解,也增強(qiáng)了我解決困難,克制困難的勇氣和決心。這次課設(shè)的感悟?qū)ξ胰蘸蟮膶W(xué)習(xí)和工作有了很大的促進(jìn)作用。-. z目目 錄錄1 需求分析 11.1 系統(tǒng)開發(fā)背景 11.2
7、 系統(tǒng)開發(fā)目的 11.3 系統(tǒng)開發(fā)意義 22 2 概要設(shè)計(jì)概要設(shè)計(jì) 3 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 3 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 7 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 4 測試測試 20204.1 出現(xiàn)的錯(cuò)誤 204.2 解決方法 20參考文獻(xiàn)參考文獻(xiàn)
8、2121-. z附附 錄錄關(guān)鍵局部程序清單關(guān)鍵局部程序清單22221. 路由文件 222. 用戶管理后臺文件 233. 問卷后臺管理文件 274. 問卷生成文件 415. 登錄界面 456. 注冊頁面 467. 問卷信息管理頁面 478. 題目信息管理頁面 509. 選項(xiàng)信息管理頁面 5310. 選擇題統(tǒng)計(jì)信息展示 5511. 簡答題統(tǒng)計(jì)信息展示 5812. 錯(cuò)誤頁面 5913. CSS 文件 6014. JAVASCRIPT文件 76-. z1 需求分析1.11.1 系統(tǒng)開發(fā)背景系統(tǒng)開發(fā)背景隨著互聯(lián)網(wǎng)技術(shù)的飛速開展,互聯(lián)網(wǎng)的全球覆蓋,交互功能等特性給調(diào)查方法帶來新的變化,在線調(diào)查作為一種基于
9、互聯(lián)網(wǎng)平臺上信息采集及處理方式,越來越受到許多評估研究機(jī)構(gòu)和媒介機(jī)構(gòu)的關(guān)注與運(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ù)根底上,構(gòu)建一個(gè)在線的問卷設(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)
10、展自主調(diào)研,使用調(diào)查的方式收集自己用戶的觀點(diǎn)等。不僅可以迅速了解社會不同層次、不同行業(yè)的人員需求,客觀的收集需求信息,調(diào)整修正產(chǎn)品策略和營銷策略,滿足不同的需求。在線調(diào)查問卷系統(tǒng)是一個(gè)實(shí)用性很強(qiáng)的系統(tǒng)。1.21.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向用戶提交交互式,個(gè)性化的問卷調(diào)查效勞。2智能的后臺管理,可以在線生成調(diào)查問卷,可分析統(tǒng)計(jì)調(diào)查的結(jié)果。3使用簡單、方便,問卷生成,投放,結(jié)果分析簡單易用。4具有靈活性,能應(yīng)用不同的調(diào)查環(huán)境。-. z1.31.3 系統(tǒng)開發(fā)意義系統(tǒng)開發(fā)意義調(diào)查問卷系統(tǒng)的目的
11、是企業(yè)、組織或個(gè)人需要調(diào)查或掌握一些數(shù)據(jù)、信息或資料時(shí),為這樣的需求者提供適合的網(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支持多種題型,如單項(xiàng)選擇、多項(xiàng)選擇、簡答等。-. z2 概要設(shè)計(jì)2.12.1 總體設(shè)計(jì)總體設(shè)計(jì)系統(tǒng)的總體設(shè)計(jì)可以分為以下幾個(gè)局部:(1)使用 PHP 的 Laravel 框架實(shí)現(xiàn)系統(tǒng)的后臺管理系統(tǒng),包括問卷管理和用戶管理。(2)使用 Mysql 作為數(shù)據(jù)庫系統(tǒng)。(3)使用 JavasScript,Aja*和 CSS 構(gòu)建前端頁面和交互系統(tǒng)。(4)使用
12、 HighCharters 庫實(shí)現(xiàn)數(shù)據(jù)可視化,實(shí)現(xiàn)問卷統(tǒng)計(jì)信息的圖表展示。2.22.2 功能設(shè)計(jì)功能設(shè)計(jì).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 問卷系統(tǒng)設(shè)計(jì)問卷系統(tǒng)設(shè)計(jì)注冊用戶可以問卷系統(tǒng),并編輯問卷增加,刪除,修改,查詢與問卷對應(yīng)的題目、選項(xiàng)。(1)問卷屬性:問卷標(biāo)題,發(fā)布者,發(fā)布時(shí)間,有效時(shí)間,提交量,題目。(2)題目屬性:
13、題號,題目,題目類型,選項(xiàng)。(3)選項(xiàng)屬性:選項(xiàng)號,選項(xiàng)值。(4)題目類型:單項(xiàng)選擇題、多項(xiàng)選擇題、簡答題。-. z(5)問卷只有在有效時(shí)間才可以參與答題,超出有效時(shí)間后不可進(jìn)展答題。2.32.3 數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫包含 5 個(gè)表,分別是:users用戶表,questionnaires問卷表,subjects題目表,options選項(xiàng)表,short_answers簡答表。所有表的數(shù)據(jù)字典以及 E-R 圖如下。問卷問卷題目題目選項(xiàng)選項(xiàng)簡答簡答擁有擁有1n擁有擁有擁有擁有11nn創(chuàng)建創(chuàng)建n用戶用戶1用戶id用戶id用戶名用戶名用戶郵箱用戶郵箱用戶密碼用戶密碼創(chuàng)建時(shí)間創(chuàng)建時(shí)間更新時(shí)間更新時(shí)間
14、創(chuàng)建者創(chuàng)建者問卷id問卷id問卷標(biāo)題問卷標(biāo)題更新時(shí)間更新時(shí)間提交量提交量有效時(shí)間有效時(shí)間刪除標(biāo)識刪除標(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.12.1 E-RE-R 圖圖表表 2.12.1 用戶表用戶表usersusers-.
15、z字段名稱字段名稱字段類型字段類型注釋注釋idint(10)用戶標(biāo)識,唯一,主鍵,自增namevarchar(255)用戶名,唯一emailvarchar(255)用戶passwordvarchar(60)用戶密碼groupint(11)用戶組管理員、注冊用戶created_attimestamp創(chuàng)立時(shí)間updated_attimestamp更新時(shí)間表表 2.22.2 問卷表問卷表questionnairesquestionnaires字段名稱字段名稱字段類型字段類型注釋注釋idint(10)問卷標(biāo)識,唯一,主鍵,自增user_namevarchar(255)創(chuàng)立者titlete*t問卷標(biāo)題c
16、ountsint(11)問卷提交量active_timeint(11)有效時(shí)間delete_tokenint(11)刪除標(biāo)識0:未刪除,1:已刪除created_attimestamp創(chuàng)立時(shí)間updated_attimestamp更新時(shí)間表表 2.32.3 題目表題目表subjectssubjects字段名稱字段名稱字段類型字段類型注釋注釋idint(10)題目標(biāo)識,唯一,主鍵,自增questionnaire_idint(11)題目對應(yīng)的問卷標(biāo)識外鍵user_namevarchar(255)創(chuàng)立者numberint(11)題號titlete*t題目容typevarchar(255)題目類型單項(xiàng)
17、選擇、多項(xiàng)選擇、簡答option_countint(11)題目對應(yīng)的選項(xiàng)數(shù)delete_tokenint(11)刪除標(biāo)識0:未刪除,1:已刪除created_attimestamp創(chuàng)立時(shí)間updated_attimestamp更新時(shí)間表表 2.42.4 選項(xiàng)表選項(xiàng)表-. zoptionsoptions字段名稱字段名稱字段類型字段類型注釋注釋idint(10)選項(xiàng)標(biāo)識,唯一,主鍵,自增subject_idint(11)選項(xiàng)對應(yīng)的題目標(biāo)識外鍵user_namevarchar(255)創(chuàng)立者numbervarchar(255)選項(xiàng)號titlete*t選項(xiàng)容select_countint(11)選項(xiàng)被
18、選擇的次數(shù)delete_tokenint(11)刪除標(biāo)識0:未刪除,1:已刪除created_attimestamp創(chuàng)立時(shí)間updated_attimestamp更新時(shí)間表表 2.52.5 簡答表簡答表short_answersshort_answers字段名稱字段名稱字段類型字段類型注釋注釋idint(10)答復(fù)標(biāo)識,唯一,主鍵,自增subject_idint(11)答復(fù)對應(yīng)的題目標(biāo)識外鍵answervarchar(255)答復(fù)容delete_tokenint(11)刪除標(biāo)識0:未刪除,1:已刪除created_attimestamp創(chuàng)立時(shí)間updated_attimestamp更新時(shí)間2.
19、32.3 交互設(shè)計(jì)交互設(shè)計(jì)使用 JavaScript,Aja*等實(shí)現(xiàn)系統(tǒng)交互,實(shí)現(xiàn)對話框設(shè)計(jì)以及 UI 動畫交互,使用 HighCharters 庫實(shí)現(xiàn)數(shù)據(jù)可視化系統(tǒng),對問卷統(tǒng)計(jì)結(jié)果進(jìn)展圖表展示。-. z3 詳細(xì)設(shè)計(jì)3.13.1 用戶管理系統(tǒng)用戶管理系統(tǒng).1 用戶注冊用戶注冊本模塊用于實(shí)現(xiàn)新用戶的信息注冊,在注冊頁面檢查用戶輸入是否合法:(1)格式是否正確,是否已被注冊。(2)用戶名是否和已注冊用戶重復(fù)。(3)兩次密碼輸入是否一致。假設(shè)用戶輸入合法,允許注冊,并跳轉(zhuǎn)至用戶界面;否則,給出錯(cuò)誤提示。此頁面 URL 為:localhost/auth/registerlocalhos
20、t 為系統(tǒng)域名,同下。用戶注冊頁面 UI 與流程圖如圖 3.1 和圖 3.2 所示。圖圖 3.13.1 用戶注冊頁面用戶注冊頁面圖圖 3.23.2 用戶注冊流程圖用戶注冊流程圖圖圖 3.33.3 用戶登錄流程圖用戶登錄流程圖.2 用戶登錄用戶登錄本模塊用于實(shí)現(xiàn)用戶登錄,在用戶輸入正確的用戶名和密碼后,進(jìn)入系統(tǒng);否則,提示用戶錯(cuò)誤信息。此頁面 URL 為:localhost,假設(shè)存在 Session,跳轉(zhuǎn)至問卷展示頁面。用戶登錄流程圖與頁面 UI 如圖 3.3 和圖 3.4 所示。圖圖 3.43.4 用戶登錄界面用戶登錄界面3.23.2 問卷管理系統(tǒng)問卷管理系統(tǒng).
21、1 問卷信息管理問卷信息管理本模塊用于實(shí)現(xiàn)用戶問卷信息的后臺管理。具體的操作有:問卷信息展示、創(chuàng)立新問卷、更新問卷、刪除問卷等操作。-. z要展示的問卷信息有:(1)問卷 ID系統(tǒng)唯一,在創(chuàng)立問卷時(shí)由系統(tǒng)自動生成。(2)問卷標(biāo)題。(3)問卷創(chuàng)立者的用戶名。(4)問卷的創(chuàng)立時(shí)間和有效時(shí)間在有效時(shí)間問卷可以答題。(5)問卷的提交量。(6)查看問卷統(tǒng)計(jì)信息的。(7)查看問卷地址的。(8)編輯問卷題目的。(9)問卷操作按鈕,包括問卷更新按鈕和問卷刪除按鈕。此頁面 URL 為:localhost/userconsole/用戶名,為變量,是不同用戶進(jìn)入自己問卷管理頁面的條件。更新問卷的 post 地址為:
22、localhost/userconsole/用戶名/updatequestionnaire。刪除問卷的 post 地址為:localhost/userconsole/用戶名/deletequestionnaire。問卷信息管理頁面 UI 與流程圖如圖 3.5 和圖 3.6 所示。圖圖 3.53.5 問卷信息展示頁面問卷信息展示頁面除此之外,還有一個(gè)添加問卷按鈕。使用 JavaScript 捕獲按鈕點(diǎn)擊消息,生成建立新問卷對話框,用戶填寫問卷標(biāo)題與有效時(shí)間后可以創(chuàng)立新問卷。使用Aja*與效勞器交流將問卷信息寫入數(shù)據(jù)庫,做到平滑操作,改善用戶體驗(yàn)。添加表單的 post 地址為:localhost/
23、userconsole/用戶名/addquestionnaire創(chuàng)立新問卷流程圖與頁面 UI 如圖 3.7 和圖 3.8 所示。圖圖 3.63.6 問卷信息展示流程圖問卷信息展示流程圖圖圖 3.73.7 建立新問卷流程圖建立新問卷流程圖圖圖 3.83.8 建立新問卷頁面建立新問卷頁面-. z.2 題目信息管理題目信息管理本模塊用于實(shí)現(xiàn)題目信息的后臺管理。具體的操作有:題目信息展示、創(chuàng)立新題目、更新題目、刪除題目等操作。要展示的題目信息有:(1)題號,用于展示問卷時(shí)的題目排序。(2)題目容。(3)題型單項(xiàng)選擇題、多項(xiàng)選擇題、簡答題。(4)編輯題目對應(yīng)選項(xiàng)的簡答題除外。(5)題目操
24、作按鈕,包括題目更新按鈕和題目刪除按鈕。此頁面 URL 為:localhost/userconsole/用戶名/questionnaire/問卷 id。題目信息管理頁面 UI 與流程圖如圖 3.9 和圖 3.10 所示。圖圖 3.93.9 題目信息展示頁面題目信息展示頁面圖圖 3.103.10 題目信息展示流程圖題目信息展示流程圖除此之外,還有一個(gè)添加題目按鈕。使用 JavaScript 捕獲按鈕點(diǎn)擊消息,生成建立新題目對話框,用戶通過下拉框選擇題號與題型,輸入題目后可以創(chuàng)立新題目,已有的題號不會出現(xiàn)在下拉框中,防止生成問卷的題號重復(fù)。使用 Aja*與效勞器交流將問卷信息寫入數(shù)據(jù)庫,做到平滑操
25、作,改善用戶體驗(yàn)。添加新題目頁面 UI 與流程圖如圖 3.11 和圖 3.12 所示。圖圖 3.113.11 建立新題目頁面建立新題目頁面 圖圖 3.123.12 建立新題目流程圖建立新題目流程圖 .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)容。-. z(3)選項(xiàng)操作按鈕,包括選項(xiàng)更新按鈕和選項(xiàng)刪除按鈕。此頁面 URL 為:localhost/userconsole/用戶名/subject/題目 id。選項(xiàng)信息管理頁面 UI
26、 與流程圖如圖 3.13 和圖 3.14 所示。圖圖 3.133.13 選項(xiàng)信息管理頁面選項(xiàng)信息管理頁面圖圖 3.143.14 選項(xiàng)信息管理流程圖選項(xiàng)信息管理流程圖除此之外,還有一個(gè)添加選項(xiàng)按鈕。使用 JavaScript 捕獲按鈕點(diǎn)擊消息,生成建立新選項(xiàng)對話框,用戶通過下拉框選擇選項(xiàng)號,輸入選項(xiàng)容后可以創(chuàng)立新選項(xiàng),已有的選項(xiàng)號不會出現(xiàn)在下拉框中,防止生成問卷的題號重復(fù)。使用 Aja*與效勞器交流將問卷信息寫入數(shù)據(jù)庫,做到平滑操作,改善用戶體驗(yàn)。添加新題目頁面 UI 與流程圖如圖 3.15 和圖 3.16 所示。圖圖 3.153.15 建立新選項(xiàng)頁面建立新選項(xiàng)頁面 圖圖 3.163.16 建立
27、新選項(xiàng)流程圖建立新選項(xiàng)流程圖.4 問卷結(jié)果統(tǒng)計(jì)問卷結(jié)果統(tǒng)計(jì)根據(jù)用戶填寫的問卷信息,統(tǒng)計(jì)選擇題每一道選項(xiàng)的選項(xiàng)次數(shù)以及簡答題的答案。同一道題目不同選項(xiàng)選擇次數(shù)使用餅狀圖顯示百分比。使用 HighCharte庫繪制餅狀圖。頁面 URL 為:localhost/userconsole/用戶名/questionnaire/問卷 id/result。頁面 UI 如圖 3.17 與圖 3.18 所示。圖圖 3.173.17 問卷統(tǒng)計(jì)選擇題展示頁面問卷統(tǒng)計(jì)選擇題展示頁面圖圖 3.183.18 問卷統(tǒng)計(jì)簡答題展示頁面問卷統(tǒng)計(jì)簡答題展示頁面 .5 問卷生成問卷生成根據(jù)用戶創(chuàng)立的問
28、卷、題目以及對應(yīng)的選項(xiàng)信息,生成一個(gè)完整的問卷頁面,頁面 URL 為:localhost/questionnaire/問卷 id。頁面 UI 如圖 3.19 所示。圖圖 3.193.19 問卷頁面問卷頁面 .6 問卷提交問卷提交在用戶填寫完問卷并提交之后,向用戶反應(yīng)此問卷的統(tǒng)計(jì)信息。頁面 UI 如-. z圖 3.20 所示圖圖 3.203.20 反應(yīng)信息反應(yīng)信息 -. z4 測試4.14.1 出現(xiàn)的錯(cuò)誤出現(xiàn)的錯(cuò)誤1. 用戶權(quán)限問題,導(dǎo)致注冊用戶可以編輯其他用戶創(chuàng)立的題目以及選項(xiàng)。2. 無法通過 Laravel 的 MVC 框架聯(lián)立不同的數(shù)據(jù)庫表格。3. 更新數(shù)據(jù)庫時(shí),導(dǎo)致多個(gè)行
29、被錯(cuò)誤修改。4.24.2 解決方法解決方法1. 在后臺頁面首先根據(jù) URL 的用戶名變量,判斷變量與 Session 用戶標(biāo)識是否一致,假設(shè)一致,轉(zhuǎn)入編輯頁面;不一致,轉(zhuǎn)到錯(cuò)誤頁面。2. 外鍵與主鍵設(shè)置錯(cuò)誤,修改即可。3. 錯(cuò)誤使用 MVC 的 find 語句,修改成 where 語句即可。-. z參考文獻(xiàn)1麥克勞克林. PHP & MySQL 實(shí)戰(zhàn)手冊-第二版M. 中國電力, 2021.2克強(qiáng), 裴云, 黃向黨. PHP 和 MySQL Web 開發(fā)從新手到高手M. 人民郵電, 2021.3惠貞, 俊榮. PHP & MySQL 程序設(shè)計(jì)實(shí)例講座M. 清華大學(xué), 2021.4
30、孔瀟. PHP & MySQL 建立M. 國防工業(yè), 2001.5TimBoronczyk, MartinE.Psinas. PHP & MySQL 例精解:創(chuàng)立、修改、重用M. 清華大學(xué), 2021.6萬川梅, 周建儒. PHP WEB 程序設(shè)計(jì)M. 西南交通大學(xué), 2021.7陸凱. PHP 開發(fā)實(shí)用技術(shù)M. 人民郵電, 2021.8傳智播客高教產(chǎn)品研發(fā)部. PHP 程序設(shè)計(jì)高級教程M. 中國鐵道, 2021 .-. z附 錄關(guān)鍵局部程序清單1.1. 路由文件路由文件 auth, namespace = Auth, function()Route:post(loginChe
31、ck, AuthControllerloginCheck);Route:get(register, AuthControllerregister);Route:post(registerCheck, AuthControllerregisterCheck);Route:post(registerEmailCheck, AuthControllerregisterEmailCheck);Route:post(registerNameCheck, AuthControllerregisterNameCheck););/問卷展示頁Route:group(prefi* = questionnaire,
32、 namespace = Questionnaire, function()Route:get(questionnaireid, QuestionnaireControllerinde*);Route:post(questionnaireid/result, QuestionnaireControllerresult););/用戶后臺Route:group(prefi* = userconsole, namespace = UserConsole, function()/展示用戶的問卷Route:get(username, UserConsoleControllerinde*);/增加問卷Ro
33、ute:post(username/addquestionnaire, UserConsoleControlleraddquestionnaire);/修改問卷Route:post(username/updatequestionnaire, UserConsoleControllerupdatequestionnaire);/刪除問卷Route:post(username/deletequestionnaire, UserConsoleControllerdeletequestionnaire);/展示問卷的題目Route:get(username/questionnaire/question
34、naireid, UserConsoleControllerquestionnaire);/提交結(jié)果統(tǒng)計(jì)-. zRoute:get(username/questionnaire/questionnaireid/result, UserConsoleControllersubmitresult);Route:get(username/questionnaire/questionnaireid/result/subjectid, UserConsoleControlleranswerresult);/增加題目Route:post(username/questionnaire/questionnai
35、reid/addsubject, UserConsoleControlleraddsubject);/修改題目Route:post(username/questionnaire/questionnaireid/updatesubject, UserConsoleControllerupdatesubject);/刪除題目Route:post(username/questionnaire/questionnaireid/deletesubject, UserConsoleControllerdeletesubject);/展示題目的選項(xiàng)Route:get(username/subject/sub
36、jectid, 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, UserConsoleControllerdelete
37、option););2.2. 用戶管理后臺文件用戶管理后臺文件auth = $auth;$this-registrar = $registrar;$this-middleware(guest, e*cept = getLogout); */* * 登陸頁面展示 * * return Response */public function inde*()return view(auth.login);/* * 登錄驗(yàn)證 * * return Response */public function loginCheck()/ 處理表單:if ( (!empty($_POSTuser_nicename)
38、 & (!empty($_POSTuser_pass) )$user_nicename = htmlspecialchars(stripslashes(trim($_POSTuser_nicename);$user_pass = htmlspecialchars(stripslashes(trim($_POSTuser_pass);$user_pass = md5($user_pass);/查找與用戶名對應(yīng)行$user_info = User:where(name, $user_nicename)-first();/信息匹配-. zif($user_info != NULL AND $
39、user_info-password = $user_pass)Session:put(auth_state, 1);Session:put(user_name, $user_nicename);return 1;/信息不匹配elsereturn 0;elsereturn 0;/* * 注冊界面 * * return Response */public function register()return view(auth.register);/* * 注冊驗(yàn)證 * * return Response */public function registerCheck()/ 處理表單:if ( (
40、!empty($_POSTuser_nicename) & (!empty($_POSTuser_pass) & (!empty($_POSTuser_email) )$user_nicename = htmlspecialchars(stripslashes(trim($_POSTuser_nicename);$user_pass = htmlspecialchars(stripslashes(trim($_POSTuser_pass);$user_pass = md5($user_pass);$user_email = -. zhtmlspecialchars(strips
41、lashes(trim($_POSTuser_email);$created_at = $updated_at = date(Y-m-d H:i:s);$userurl_id = User:insertGetId(array( name= $user_nicename,email= $user_email,password= $user_pass,created_at= $created_at,updated_at= $updated_at);Session:put(auth_state, 1);Session:put(user_name, $user_nicename);/* * 注冊驗(yàn)證-
42、 * * 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;elsereturn 0;/* * 注冊驗(yàn)證-用戶名 * * return Response */public function registerNameCheck()-. z/ 處理表單:if (
43、!empty($_POSTuser_name) )/查找與用戶名對應(yīng)行$user_info = User:where(name, $_POSTuser_name)-first();/用戶信息存在if($user_info != NULL)return 1;elsereturn 0;3.3. 問卷后臺管理文件問卷后臺管理文件first();-. z$QuestionnairesList = $user-hasManyQuestionnaire()-where(delete_token, 0)-orderBy(id,desc)-get();return view(userconsole.inde*
44、)-with(QuestionnairesList,$QuestionnairesList);/顯示錯(cuò)誤信息elsereturn view(errors.authority); /* 添加問卷 * * return Response */public function addquestionnaire($userName)/登陸用戶正確,顯示用戶控制臺if(Session:has(auth_state) & Session:get(user_name) = $userName)/處理添加新選項(xiàng)的表單if ( (!empty($_POSTNewQuestionnaireTitle) &a
45、mp; (!empty($_POSTNewQuestionnaireTime) )$NewQuestionnaireTitle = $_POSTNewQuestionnaireTitle;$NewQuestionnaireTime = $_POSTNewQuestionnaireTime;/插入一行記錄$created_at = $updated_at = date(Y-m-d H:i:s);$questionnaire = Questionnaire:insertGetId(array( user_name = $userName,/問卷創(chuàng)立者title = $NewQuestionnair
46、eTitle,/問卷標(biāo)題active_time= $NewQuestionnaireTime,/有效時(shí)間delete_token= 0,/刪除標(biāo)記created_at= $created_at,/創(chuàng)立時(shí)間updated_at = $updated_at)/更新時(shí)間);return success;-. zelsereturn inputnull;/顯示錯(cuò)誤信息return view(errors.authority); /* 修改問卷 * * return Response */public function updatequestionnaire($userName)/登陸用戶正確,顯示用戶
47、控制臺if(Session:has(auth_state) & Session:get(user_name) = $userName)/處理添加新選項(xiàng)的表單if ( (!empty($_POSTUpdateQuestionnaireTitle) & (!empty($_POSTUpdateQuestionnaireTime) & (!empty($_POSTQuestionnaireId) )$UpdateQuestionnaireTitle = $_POSTUpdateQuestionnaireTitle;$UpdateQuestionnaireTime = $_PO
48、STUpdateQuestionnaireTime;$QuestionnaireId = $_POSTQuestionnaireId;/更新一行記錄$created_at = $updated_at = date(Y-m-d H:i:s);$questionnaire = Questionnaire:where(id, $QuestionnaireId)-update(array( title = $UpdateQuestionnaireTitle, /問卷標(biāo)題active_time = $UpdateQuestionnaireTime)/有效時(shí)間);return success;elsere
49、turn inputnull;/顯示錯(cuò)誤信息return view(errors.authority);-. z /* 刪除問卷 * * return Response */public function deletequestionnaire($userName)/登陸用戶正確,顯示用戶控制臺if(Session:has(auth_state) & Session:get(user_name) = $userName)/處理添加新選項(xiàng)的表單if ( !empty($_POSTQuestionnaireId) )$QuestionnaireId = $_POSTQuestionnair
50、eId;/更新一行記錄$created_at = $updated_at = date(Y-m-d H:i:s);$questionnaire = Questionnaire:where(id, $QuestionnaireId)-update(array(delete_token= 1/刪除標(biāo)記);return success;elsereturn inputnull;/顯示錯(cuò)誤信息return view(errors.authority);/* * 問卷編輯 * * return Response */public function questionnaire($userName, $qu
51、estionnaireId)/登陸用戶正確,顯示用戶控制臺if(Session:has(auth_state) & Session:get(user_name) = $userName)-. z/此問卷表所包含的所有題目$Questionnaire = Questionnaire:where(id, $questionnaireId)-first();/此問卷表創(chuàng)立者與登錄用戶一致if($Questionnaire-user_name = $userName)$SubjectsList = $Questionnaire-hasManySubject()-where(delete_tok
52、en, 0)-orderBy(number)-get();$AllNumber = array();for($i=1; $inumber);$otherSubjectNumber = array_diff($AllNumber,$SubjectNumbers);return view(userconsole.questionnaire)-with(SubjectsList, $SubjectsList)/題目列表-with(QuestionnaireId, $questionnaireId)/問卷 ID-with(QuestionnaireTitle,$Questionnaire-title)
53、/問卷標(biāo)題-with(SubjectNumbers, $otherSubjectNumber);/可用選項(xiàng)/顯示錯(cuò)誤信息return view(errors.authority); /* 給指定問卷添加新題目 * * return Response */public function addsubject($userName, $questionnaireId) / 登陸用戶正確,顯示用戶控制臺if(Session:has(auth_state) & Session:get(user_name) = $userName)/此問卷表所包含的所有題目$Questionnaire = Que
54、stionnaire:where(id, $questionnaireId)-first();-. z/此題目創(chuàng)立者與登錄用戶一致if($Questionnaire-user_name = $userName)/處理添加新選項(xiàng)的表單if ( (!empty($_POSTNewSubjectNumber) & (!empty($_POSTNewSubjectType) & (!empty($_POSTNewSubjectTitle) )$NewSubjectNumber = $_POSTNewSubjectNumber;$NewSubjectType = $_POSTNewSub
55、jectType;$NewSubjectTitle = $_POSTNewSubjectTitle;/插入一行記錄$created_at = $updated_at = date(Y-m-d H:i:s);$subject_id = Subject:insertGetId(array( questionnaire_id= $questionnaireId,/問卷iduser_name = $userName,/問卷創(chuàng)立者number = $NewSubjectNumber,/題號title = $NewSubjectTitle,/題目type = $NewSubjectType,/題目類型(單
56、項(xiàng)選擇,多項(xiàng)選擇,簡答)delete_token = 0,/刪除標(biāo)記created_at = $created_at,/創(chuàng)立時(shí)間updated_at = $updated_at)/更新時(shí)間);return success;elsereturn inputnull;/顯示錯(cuò)誤信息return view(errors.authority); /* 修改指定題目的值 * * return Response */-. zpublic function updatesubject($userName, $questionnaireId) / 登陸用戶正確,顯示用戶控制臺if(Session:has(au
57、th_state) & Session:get(user_name) = $userName)/此問卷表所包含的所有題目$Questionnaire = Questionnaire:where(id, $questionnaireId)-first();/此問卷表創(chuàng)立者與登錄用戶一致if($Questionnaire-user_name = $userName)/處理添加新題目的表單if ( (!empty($_POSTUpdateSubjectNumber) & (!empty($_POSTUpdateSubjectTitle) & (!empty($_POSTSub
58、jectId) )$SubjectId = $_POSTSubjectId;$UpdateSubjectNumber = $_POSTUpdateSubjectNumber;$UpdateSubjectTitle = $_POSTUpdateSubjectTitle;/更新一行記錄$subject_id = Subject:where(id, $SubjectId)-update(array( number= $UpdateSubjectNumber,/題號title = $UpdateSubjectTitle/題目);return success;elsereturn inputnull;/
59、顯示錯(cuò)誤信息return view(errors.authority); /* 刪除指定題目的值 * * return Response */public function deletesubject($userName, $subjectId) / 登陸用戶正確,顯示用戶控制臺-. zif(Session:has(auth_state) & Session:get(user_name) = $userName)/此問卷表所包含的所有題目$Questionnaire = Questionnaire:where(id, $subjectId)-first();/此問卷表創(chuàng)立者與登錄用戶一
60、致if($Questionnaire-user_name = $userName)/處理刪除題目的表單if ( (!empty($_POSTSubjectId) )$SubjectId = $_POSTSubjectId;/更新一行記錄,將刪除標(biāo)記置 1$subject_id = Subject:where(id, $SubjectId)-update(array( delete_token= 1/刪除標(biāo)記);return success;elsereturn inputnull;/顯示錯(cuò)誤信息return view(errors.authority);/* * 題目編輯 * * return Response */public function subject($userName, $subjectId) / 登陸用戶正確,顯示用戶控制臺if(Session:has(auth
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年民辦學(xué)?;瘜W(xué)教師實(shí)驗(yàn)指導(dǎo)聘用合同3篇
- 二零二四年牛奶制品包裝設(shè)計(jì)及印刷服務(wù)合同3篇
- 二零二五年度打印機(jī)銷售與品牌建設(shè)合同4篇
- 二零二四年度幼兒園入園兒童膳食營養(yǎng)及衛(wèi)生安全合同下載2篇
- 二零二五年度水利工程合同追加條款樣本2篇
- 二零二五年度節(jié)能廚具安裝及節(jié)能補(bǔ)貼合同3篇
- 二零二五年度石油儲罐安裝與泄漏監(jiān)測合同4篇
- 二零二五年度跨境數(shù)據(jù)安全保護(hù)合同3篇
- 二零二五年度網(wǎng)絡(luò)安全應(yīng)急響應(yīng)安全電子交易SET服務(wù)合同3篇
- 二零二五年度能源消耗監(jiān)測與節(jié)能合同規(guī)定2篇
- 液化氣站其他危險(xiǎn)和有害因素辨識及分析
- 建筑工程施工安全管理思路及措施
- 高中語文教學(xué)課例《勸學(xué)》課程思政核心素養(yǎng)教學(xué)設(shè)計(jì)及總結(jié)反思
- 中國農(nóng)業(yè)銀行小微企業(yè)信貸業(yè)務(wù)貸后管理辦法規(guī)定
- 領(lǐng)導(dǎo)干部的情緒管理教學(xué)課件
- 初中英語-Unit2 My dream job(writing)教學(xué)課件設(shè)計(jì)
- 市政道路建設(shè)工程竣工驗(yàn)收質(zhì)量自評報(bào)告
- 優(yōu)秀支行行長推薦材料
- 中國版梅尼埃病診斷指南解讀
- 暨南大學(xué)《經(jīng)濟(jì)學(xué)》考博歷年真題詳解(宏觀經(jīng)濟(jì)學(xué)部分)
- 藥店員工教育培訓(xùn)資料
評論
0/150
提交評論