畢業(yè)設(shè)計(論文)-教育培訓(xùn)微信小程序的設(shè)計與實現(xiàn)ssm_第1頁
畢業(yè)設(shè)計(論文)-教育培訓(xùn)微信小程序的設(shè)計與實現(xiàn)ssm_第2頁
畢業(yè)設(shè)計(論文)-教育培訓(xùn)微信小程序的設(shè)計與實現(xiàn)ssm_第3頁
畢業(yè)設(shè)計(論文)-教育培訓(xùn)微信小程序的設(shè)計與實現(xiàn)ssm_第4頁
畢業(yè)設(shè)計(論文)-教育培訓(xùn)微信小程序的設(shè)計與實現(xiàn)ssm_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-1-第1章緒論1.1課題背景目前隨著智能手機(jī)的不斷普及,基本上可以達(dá)到人均一臺智能手機(jī)的地步,在這樣的背景下,各行各業(yè)如何把自己的服務(wù)提供到手機(jī)終端上,是一個問題。智能手機(jī)的好處就是有各種各樣的軟件,并且交互性很好,用戶使用起來方便,在智能手機(jī)剛開始的前幾年,有很多行業(yè)已經(jīng)開始提前布局移動終端,占領(lǐng)了相當(dāng)大的市場,不僅提高了客戶滿意度,也提高了市場知名度,但是隨著時代的發(fā)展,如果還一直開發(fā)移動終端的軟件,會導(dǎo)致用戶手機(jī)里面需要安裝各種各樣的軟件,用戶已經(jīng)從剛開始的新奇,變成了現(xiàn)在的厭煩,手機(jī)內(nèi)存太小,安裝太多東西,或者非強(qiáng)制性的軟件,用戶都不想安裝了。面對如今的用戶需求情況,依然開發(fā)APP軟件已經(jīng)是一種戰(zhàn)略性失敗。在國內(nèi)目前市場上所有的智能手機(jī)里面肯定安裝得有微信,微信已經(jīng)變成了智能手機(jī)通訊的代名詞,而微信推出了微信小程序,不需要用戶注冊賬號,也不需要用戶安裝多余的軟件,只需要通過微信軟件就可以訪問小程序,對用戶極其友善,所以很多企業(yè)都瞄準(zhǔn)了微信小程序。本課題就是在這樣的大環(huán)境下研究和實現(xiàn)一款教育培訓(xùn)微信小程序。1.2課題意義首先用戶可以不需要安裝各種各樣的APP,只需要一個微信就可以各種訪問程序,用戶不需要注冊各種信息,微信提供了用戶一鍵訪問,并且可以在微信里面對小程序進(jìn)行刪除,定位,搜索,以及收藏,微信小程序是目前最火的一個開發(fā)方向。很多商家只需要開發(fā)出微信小程序,自己部署服務(wù)端,然后有任何需要推廣的只需要讓用戶點擊微信小程序訪問即可,不僅僅給商家提供了一個十多億用戶的平臺,也給用戶減輕了安裝各種APP的負(fù)擔(dān),并且微信所在的騰訊公司也能獲得利潤,微信小程序是一款多贏的選擇。本課題研究的教育培訓(xùn)微信小程序前后臺分離,讓網(wǎng)課信息,觀看進(jìn)度信息,試卷信息等相關(guān)信息集中在后臺讓管理員管理,讓學(xué)生在小程序端對試卷答題,觀看網(wǎng)課視頻,下載網(wǎng)課文件以及查看測試記錄信息等。該系統(tǒng)讓信息管理變得高效,也讓學(xué)生學(xué)習(xí)網(wǎng)課,在線考試變得越來越方便。1.3研究內(nèi)容本文對教育培訓(xùn)微信小程序的設(shè)計與實現(xiàn)分成六個章節(jié)來說明。第1章:研究教育培訓(xùn)微信小程序的背景,以及開發(fā)教育培訓(xùn)微信小程序的意義。第2章:對開發(fā)教育培訓(xùn)微信小程序的環(huán)境還有技術(shù)進(jìn)行說明。第3章:分析教育培訓(xùn)微信小程序的可行性,性能,流程以及功能。第4章:設(shè)計教育培訓(xùn)微信小程序的功能結(jié)構(gòu),設(shè)計數(shù)據(jù)庫E-R圖以及對數(shù)據(jù)表的存儲結(jié)構(gòu)進(jìn)行設(shè)計。第5章:實現(xiàn)教育培訓(xùn)微信小程序的功能并進(jìn)行功能界面展示。第6章:對系統(tǒng)測試進(jìn)行闡述,以及對本系統(tǒng)部分功能進(jìn)行檢測。

第2章開發(fā)環(huán)境與技術(shù)本章節(jié)對開發(fā)教育培訓(xùn)微信小程序需要搭建的開發(fā)環(huán)境,還有教育培訓(xùn)微信小程序開發(fā)中使用的編程技術(shù)等進(jìn)行闡述。2.1Java語言Java語言是當(dāng)今為止依然在編程語言行業(yè)具有生命力的常青樹之一。Java語言最原始的誕生,不僅僅是創(chuàng)造者感覺C語言在編程上面很麻煩,如果只是專注于業(yè)務(wù)邏輯的處理,會導(dǎo)致忽略了各種指針以及垃圾回收這些操作,導(dǎo)致出現(xiàn)問題需要解決的時間往往大于正常編程處理業(yè)務(wù)邏輯的時間,這些是非常浪費時間的。Java語言的創(chuàng)造者就考慮到如何避免這個問題,把指針處理和垃圾處理全部自動化,雖然這會損失一些性能,但是計算機(jī)硬件在性能上的發(fā)展速度是很快的,這些性能是可以忽略考慮的。并且C語言是針對硬件開發(fā)的語言,雖然執(zhí)行效率高,但是隨著硬件的變化或者操作系統(tǒng)的變更,就需要重新編寫程序,造成重復(fù)勞動,只有解決重復(fù)性勞動的語言才算符合生存規(guī)律的語言。Java語言的創(chuàng)造者就針對C語言的缺點專門開發(fā)了Java語言。讓Java語言不管是在什么樣的環(huán)境里都是可以運行,因為在Java語言運行外面套了一個殼,也就是虛擬機(jī),只要是Java虛擬機(jī)能安裝的電腦都可以運行Java的程序。2.2MYSQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫是一種數(shù)據(jù)存放方面的專業(yè)軟件,也是傳統(tǒng)的行式數(shù)據(jù)模式,獲取一些數(shù)據(jù)是先一行一行的獲取,然后一行一行的顯示,與列式數(shù)據(jù)庫不同。行式數(shù)據(jù)庫主要是處理最重要的數(shù)據(jù)邏輯部分,并且必須是有效數(shù)據(jù),這樣每一處的數(shù)據(jù)關(guān)聯(lián)都是不可損壞,對數(shù)據(jù)安全要求比較嚴(yán)格還是用MySQL數(shù)據(jù)庫比較好。列式數(shù)據(jù)庫的發(fā)明僅僅是因為讀取效率高,但是也就僅僅如此罷了。MySQL雖然比起Oracle或者SQLServer來講,安裝包只是幾十兆甚至幾百兆,有點小,但是功能并不會弱到哪里,嚴(yán)格遵循SQL標(biāo)準(zhǔn)語法。MySQL的數(shù)據(jù)存放形式從大向小的說是數(shù)據(jù)庫最大,然后是表,每個表里面存放數(shù)據(jù)是有一定的規(guī)則的,數(shù)據(jù)存放是表格形式的,也就是說有橫也有豎,橫著的為行,一般表示一條數(shù)據(jù),表與表之間還可以進(jìn)行關(guān)聯(lián),進(jìn)行分表操作,如果一條數(shù)據(jù)相關(guān)項目屬性太多,那么可以把有效的相關(guān)聯(lián)系做成關(guān)聯(lián),可以設(shè)定是否唯一。2.3SSM框架開發(fā)一個業(yè)務(wù)邏輯比較簡單的應(yīng)用,采用這幾年最廣為流傳的SSM框架是很合適的。SSM框架就是SpringMVC框架和Spring框架,以及持久層常用的MyBatis框架。三個框架有三個不同的作用。普通用戶一般都是操作瀏覽器進(jìn)行瀏覽自己喜歡的內(nèi)容,而顯示或者提交,都會被SpringMVC框架進(jìn)行攔截和處理,進(jìn)入到更深的一個層次就是控制層,它會智能的匹配提交的路徑,對不同的來源匹配不同的處理邏輯,讓不同的代碼進(jìn)行執(zhí)行,如果只是判斷用戶輸入信息格式的問題是不用傳入到后臺就可以被前端框架處理的,如果需要與數(shù)據(jù)庫內(nèi)容進(jìn)行交互,就會從Java的POJO對象通過MyBatis自動轉(zhuǎn)換數(shù)據(jù)庫對應(yīng)字段的數(shù)據(jù)類型,具體是該增刪改查還是其他操作,都會通過MyBatis進(jìn)行處理,處理結(jié)果是反饋給控制層,然后通過控制層再提交給視圖層,反饋到用戶希望看到的結(jié)果。2.4微信開發(fā)者工具微信開發(fā)者工具并不是用來開發(fā)微信的一款軟件,而是專門用來開發(fā)依附于微信的微信小程序和微信公眾號的?,F(xiàn)如今國內(nèi)人口差不多14個億,僅僅微信用戶就12個億之多,基本上覆蓋了國內(nèi)能使用智能手機(jī)的所有人群。微信功能相當(dāng)豐富,可以聊天,視頻,移動支付,甚至可以繳各種費用,依靠微信的龐大用戶群體,不管是政府機(jī)關(guān)還是商業(yè)公司,都希望借助于微信使用者的龐大用戶群體,簡化各種支付或者信息推送渠道,讓使用微信的人群不用太麻煩就可以完成正常生活的所有操作,極大的方便了人民群眾。微信開發(fā)者工具就是在聆聽到這樣的呼喚聲而誕生的,為了滿足人們的需求,騰訊專門開發(fā)出來這個開發(fā)工具讓其他公司進(jìn)行使用,并且開放了很多接口以及使用方法,微信開發(fā)者工具變得越來越強(qiáng)大。

第3章系統(tǒng)分析本文作者在確定了研究的課題之后,從各大數(shù)字圖書館下載文獻(xiàn)來閱讀,并了解同類型的網(wǎng)站具備的大致功能,然后具體事務(wù)具體分析,得出本系統(tǒng)要研究的具體功能與性能。雖然分析系統(tǒng)這一階段性工作主要是確定功能,但它卻影響著后面系統(tǒng)開發(fā)環(huán)節(jié)的進(jìn)展,系統(tǒng)分析這個環(huán)節(jié)是不能少的。3.1可行性分析從三個不同的角度來分析,確保開發(fā)成功的前提是有可行性分析,只有進(jìn)行提前分析,符合程序開發(fā)流程才不至于開發(fā)過程的中斷。3.1.1技術(shù)可行性在技術(shù)實現(xiàn)層次,分析了好幾種技術(shù)實現(xiàn)方法,并且都有對應(yīng)的成功案例,也有很多開源模塊可以進(jìn)行參考,所以從技術(shù)可行性分析來講,實現(xiàn)教育培訓(xùn)微信小程序是沒有問題的。3.1.2經(jīng)濟(jì)可行性對于身為學(xué)生的開發(fā)者而言,在經(jīng)濟(jì)資源上面可用者很少,為了開發(fā)教育培訓(xùn)微信小程序,通過開發(fā)軟件對硬件的要求,發(fā)現(xiàn)自己的電腦是完全能用來開發(fā)的,并且學(xué)校機(jī)房的配置也可以達(dá)到要求。最重要的是選擇的技術(shù)都可以在網(wǎng)上找到不花錢的教程以及資料,因為不花錢,所以經(jīng)濟(jì)方面是具有可行性的。3.1.3操作可行性教育培訓(xùn)微信小程序的具體實現(xiàn),本身參考人類的正常操作邏輯,把常用的操作習(xí)慣當(dāng)做主要的導(dǎo)航實現(xiàn),可以讓使用者更快速的理解并且上手操作,實現(xiàn)符合邏輯的操作流程是操作可行性的具體體現(xiàn)。以上就是從不同的角度來分析,確保了教育培訓(xùn)微信小程序的正常開展。3.2系統(tǒng)流程教育培訓(xùn)微信小程序投入使用后,使用者如果能看到相應(yīng)的流程操作圖會提高程序的理解能力。3.2.1操作流程使用者在操作教育培訓(xùn)微信小程序中,應(yīng)該按照本系統(tǒng)提供的操作流程(圖3.1即為本系統(tǒng)的操作流程圖)進(jìn)行操作,可以減少操作失誤,從而節(jié)省進(jìn)入教育培訓(xùn)微信小程序的時間。圖3.1系統(tǒng)操作流程3.2.2登錄流程教育培訓(xùn)微信小程序通過登錄功能(圖3.2即為其登錄的流程)引導(dǎo)使用者進(jìn)入指定的功能操作區(qū),也避免非本系統(tǒng)的用戶享受本系統(tǒng)提供的服務(wù)以及查看本系統(tǒng)提供的信息,進(jìn)而保證用戶安全。圖3.2登錄流程3.2.3刪除信息流程教育培訓(xùn)微信小程序在經(jīng)過長期使用后,會產(chǎn)生很多的數(shù)據(jù)信息。為了騰出存儲空間存放更多的數(shù)據(jù),本系統(tǒng)數(shù)據(jù)庫中存儲的數(shù)據(jù),一些沒有參考價值的數(shù)據(jù)需要進(jìn)行刪除(圖3.3即為刪除信息的流程),刪除數(shù)據(jù)過程中,為避免誤刪,使用者要根據(jù)系統(tǒng)的提示來決定是否刪除數(shù)據(jù)。圖3.3刪除信息流程3.2.4添加信息流程教育培訓(xùn)微信小程序提供可視化的功能操作區(qū),非常方便使用者進(jìn)行數(shù)據(jù)操作,當(dāng)使用者往系統(tǒng)中錄入數(shù)據(jù)時(圖3.4即為添加信息的流程),本系統(tǒng)也會進(jìn)行數(shù)據(jù)合法性的判斷,符合要求的數(shù)據(jù)才能夠在數(shù)據(jù)庫指定表中進(jìn)行登記。圖3.4添加信息流程3.3性能需求需求分析少不了對項目用到的硬件設(shè)備進(jìn)行分析,這樣才符合正常的分析流程。只談功能需求不談性能需求,是一件很嚴(yán)重的事情,可能會導(dǎo)致一些不可控的問題出現(xiàn)。以下從這幾個角度來分析系統(tǒng)性能。(1)系統(tǒng)數(shù)據(jù)的容量:從數(shù)據(jù)角度來分析,每個表和每個數(shù)據(jù)庫,達(dá)到的數(shù)據(jù)量到一定的程度,是否需要分表或者是分庫,超過了數(shù)據(jù)的設(shè)定限度,可能會導(dǎo)致數(shù)據(jù)反映遲鈍,容錯量增加。(2)數(shù)據(jù)精度的要求:需要對需求分析里面數(shù)據(jù)設(shè)定環(huán)節(jié),考慮相應(yīng)的數(shù)據(jù)精度問題,需要發(fā)現(xiàn)數(shù)據(jù)是常用的精度還是非常用的精度,進(jìn)而設(shè)定不同的數(shù)值。(3)時間響應(yīng)要求:從用戶提交操作,到頁面反映,中間有個數(shù)據(jù)處理的問題,需要考慮預(yù)測數(shù)據(jù)量的大小,提前預(yù)案分庫分表的設(shè)計,數(shù)據(jù)量再大就要考慮增加列式數(shù)據(jù)庫的問題,這些都不是一拍腦門就能決定的,都需要經(jīng)驗和同行業(yè)的數(shù)據(jù)分析研判,才能符合用戶的要求,畢竟響應(yīng)時間太久操作起來也不舒服。(4)普適性問題:用戶使用應(yīng)該不需要感知服務(wù)端的數(shù)據(jù)量問題或者響應(yīng)問題,只需要任意一臺電腦,不需要更多的操作,打開瀏覽器就能用,太多的設(shè)置以及操作,不符合普適性操作。(5)頁面設(shè)計問題:功能符合要求之后,肯定是要豐富頁面的。頁面設(shè)計才是用戶長時間面對的問題,首先考慮數(shù)據(jù)的整潔性,讓頁面看起來更加的清爽。顏色與數(shù)據(jù)方面,該不同顏色就不同顏色,降低用戶長時間使用出現(xiàn)的視覺疲勞,讓用戶使用起來心情不至于太差。(6)系統(tǒng)的穩(wěn)定性:正常用戶操作系統(tǒng)頁面,必須是該提交提交,正常輸入符合邏輯,不能隨隨便便的就出各種問題,導(dǎo)致用戶操作疲憊,并且輸入的數(shù)據(jù)和回顯的數(shù)據(jù)符合用戶的要求。如果正常操作都會出現(xiàn)問題,那設(shè)計就是不穩(wěn)定的,這一點肯定不行。只要是與數(shù)據(jù)進(jìn)行交互的系統(tǒng),都必須穩(wěn)定。系統(tǒng)穩(wěn)定從開發(fā)部署角度上來分析,可以考慮數(shù)據(jù)的冗余備份功能,自動值守功能,機(jī)房數(shù)據(jù)同步,機(jī)房分開的功能,這些都可以讓系統(tǒng)的穩(wěn)定性得到提升。系統(tǒng)的性能需求需要對業(yè)務(wù)很熟練的情況下判斷然后分析,再從系統(tǒng)性能需求來逐條實現(xiàn),可以讓設(shè)計的系統(tǒng)有使用價值。3.4功能需求教育培訓(xùn)微信小程序根據(jù)使用權(quán)限的角度進(jìn)行功能分析,并運用用例圖來展示各個權(quán)限需要操作的功能。圖3.5即為管理員用例圖,管理員權(quán)限操作的功能包括增刪改查網(wǎng)課信息,教師信息,學(xué)生信息,試卷,試題信息等,管理論壇帖子,管理觀看進(jìn)度信息,管理學(xué)生測試信息等。圖3.5管理員用例圖圖3.6即為教師用例圖,教師權(quán)限操作的功能包括查看學(xué)生對于網(wǎng)課信息的觀看進(jìn)度信息,管理網(wǎng)課信息,管理論壇帖子,管理學(xué)生測試試卷和試題,對學(xué)生的測試記錄和錯題信息進(jìn)行管理等。圖3.6教師用例圖圖3.7即為學(xué)生用例圖,學(xué)生權(quán)限操作的功能包括選擇試卷在線答題,查看測試記錄和錯題信息,播放網(wǎng)課視頻,下載網(wǎng)課文件,通過論壇模塊進(jìn)行主題討論交流。圖3.7學(xué)生用例圖

第4章系統(tǒng)設(shè)計用戶對著瀏覽器操作,肯定會出現(xiàn)某些不可預(yù)料的問題,但是不代表著系統(tǒng)對于用戶在瀏覽器上的操作不進(jìn)行處理,所以說,要提前考慮可能會出現(xiàn)的問題。4.1功能結(jié)構(gòu)設(shè)計圖4.1即為設(shè)計的管理員功能結(jié)構(gòu),管理員權(quán)限操作的功能包括增刪改查網(wǎng)課信息,教師信息,學(xué)生信息,試卷,試題信息等,管理論壇帖子,管理觀看進(jìn)度信息,管理學(xué)生測試信息等。圖4.1管理員功能結(jié)構(gòu)圖4.2即為設(shè)計的教師功能結(jié)構(gòu),教師權(quán)限操作的功能包括查看學(xué)生對于網(wǎng)課信息的觀看進(jìn)度信息,管理網(wǎng)課信息,管理論壇帖子,管理學(xué)生測試試卷和試題,對學(xué)生的測試記錄和錯題信息進(jìn)行管理等。圖4.2教師功能結(jié)構(gòu)圖4.3即為設(shè)計的學(xué)生功能結(jié)構(gòu),學(xué)生權(quán)限操作的功能包括選擇試卷在線答題,查看測試記錄和錯題信息,播放網(wǎng)課視頻,下載網(wǎng)課文件,通過論壇模塊進(jìn)行主題討論交流。圖4.3學(xué)生功能結(jié)構(gòu)4.2數(shù)據(jù)庫設(shè)計教育培訓(xùn)微信小程序運行中產(chǎn)生的數(shù)據(jù)需要按照提前設(shè)置的存儲規(guī)則進(jìn)行保存,設(shè)計出一個符合項目的最優(yōu)數(shù)據(jù)存儲格式,因為它能減少用戶的等待時間,還可以對系統(tǒng)的請求在最短時間內(nèi)進(jìn)行響應(yīng)。所以,對數(shù)據(jù)庫設(shè)計時,需要對功能需求進(jìn)行詳細(xì)的拆分,以及對業(yè)務(wù)狀態(tài)的細(xì)分,然后設(shè)計具體的存儲規(guī)則,保證數(shù)據(jù)庫能正常運作,縮短數(shù)據(jù)處理時間,并在一定程度上降低數(shù)據(jù)冗余,節(jié)省存儲空間。4.2.1數(shù)據(jù)庫概念設(shè)計實體-聯(lián)系圖還有一個名稱即E-R圖,是EntityRelationshipDiagram各英文單詞首字母的縮寫,它這種概念模型通常用于對現(xiàn)實世界進(jìn)行描述。同時它還是一種能夠直觀表達(dá)數(shù)據(jù)中實體,聯(lián)系,屬性的有效手段。繪制E-R圖能夠選擇的工具也有很多,但是OfficeVisio

這款軟件在E-R圖的繪制上一般都是作為首選工具,因為它是基于可視化處理,使用它創(chuàng)建E-R圖非常簡單。使用基本的E-R圖構(gòu)成元素,比如橢圓,菱形,矩形,還有實線段來表達(dá)對應(yīng)的信息,橢圓代表屬性,即實體的特征,矩形代表實體,即數(shù)據(jù)庫中的一個具體數(shù)據(jù)表,菱形代表實體中相互關(guān)系,實線段主要是完成橢圓,矩形,菱形的連接。(1)圖4.4即為教師這個實體所擁有的屬性值。圖4.4教師實體屬性圖(2)圖4.5即為網(wǎng)課這個實體所擁有的屬性值。圖4.5網(wǎng)課實體屬性圖(3)圖4.6即為學(xué)生這個實體所擁有的屬性值。圖4.6學(xué)生實體屬性圖圖4.7即為試題這個實體所擁有的屬性值。圖4.7試題實體屬性圖圖4.8即為上面介紹的實體中存在的聯(lián)系。圖4.8實體間關(guān)系E-R圖4.2.2數(shù)據(jù)庫物理設(shè)計本小節(jié)主要任務(wù)即是根據(jù)上述內(nèi)容進(jìn)行數(shù)據(jù)存儲結(jié)構(gòu)的設(shè)計,實體的屬性就用來表示字段名稱,不同的字段表示的數(shù)據(jù)類型以及取值都不相同,以及該表各個字段是否能夠保持空等進(jìn)行說明,設(shè)計完成一張數(shù)據(jù)表的結(jié)構(gòu)之后,在保存時同樣要命名,盡量選擇英文名稱進(jìn)行命名并保存,還不容易導(dǎo)致系統(tǒng)出錯。接下來就對設(shè)計的表進(jìn)行簡單說明。表4.1課后習(xí)題測試表字段注釋類型空id

(主鍵)主鍵int(11)否yonghu_id提問用戶int(11)是chat_issue問題varchar(200)是issue_time問題時間timestamp是chat_reply回復(fù)varchar(200)是reply_time回復(fù)時間timestamp是zhuangtai_types狀態(tài)int(255)是chat_types數(shù)據(jù)類型int(11)是insert_time創(chuàng)建時間timestamp是表4.2試卷表字段注釋類型空id

(主鍵)主鍵int(20)否exampaper_name試卷名稱varchar(200)否exampaper_date測試時長(分鐘)int(11)否exampaper_myscore試卷總分int(11)否jiaoshi_id教師int(11)是exampaper_types試卷狀態(tài)int(11)否create_time創(chuàng)建時間timestamp否表4.3試題表字段注釋類型空id

(主鍵)主鍵int(20)否exampaper_id所屬試卷id(外鍵)int(20)否examquestion_name試題名稱varchar(200)否examquestion_options選項longtext是examquestion_score分值int(20)是examquestion_types試題類型int(20)是examquestion_sequence試題排序,值越大排越前面int(20)是create_time創(chuàng)建時間timestamp否表4.4測試記錄表字段注釋類型空id

(主鍵)主鍵int(20)否examrecord_uuid_number測試編號varchar(200)是yonghu_id測試用戶int(20)否exampaper_id所屬試卷id(外鍵)int(20)否total_score所得總分int(200)是insert_time測試時間timestamp否create_time創(chuàng)建時間timestamp否表4.5答題詳情表字段注釋類型空id

(主鍵)主鍵int(20)否examredetails_uuid_number試卷編號varchar(200)是yonghu_id用戶idint(20)否examquestion_id試題id(外鍵)int(20)否examredetails_myanswer學(xué)生答案varchar(200)是examredetails_myscore試題得分int(20)是examination_name審核教師varchar(200)是examredetails_types審核結(jié)果int(20)是create_time創(chuàng)建時間timestamp否表4.6錯題表字段注釋類型空id

(主鍵)主鍵int(20)否yonghu_id用戶idint(20)否exampaper_id試卷(外鍵)int(20)否examquestion_id試題id(外鍵)int(20)否examredetails_myanswer學(xué)生作答varchar(200)是insert_time記錄時間timestamp否create_time創(chuàng)建時間timestamp否表4.7論壇表字段注釋類型空id

(主鍵)主鍵int(11)否forum_name帖子標(biāo)題varchar(200)是yonghu_id用戶int(11)是jiaoshi_id教師int(11)是users_id管理員int(11)是forum_content發(fā)布內(nèi)容text是super_ids父idint(11)是forum_state_types帖子狀態(tài)int(11)是insert_time發(fā)帖時間timestamp是update_time修改時間timestamp是create_time創(chuàng)建時間timestamp是表4.8觀看進(jìn)度表字段注釋類型空id

(主鍵)主鍵int(11)否kecheng_id網(wǎng)課int(11)是yonghu_id學(xué)生int(11)是insert_time觀看時間timestamp是create_time創(chuàng)建時間timestamp是表4.9教師表字段注釋類型空id

(主鍵)主鍵int(11)否username賬戶varchar(200)是password密碼varchar(200)是jiaoshi_name教師姓名varchar(200)是jiaoshi_photo頭像varchar(200)是jiaoshi_phone手機(jī)號varchar(200)是jiaoshi_email電子郵箱varchar(200)是sex_types性別int(11)是jiaoshi_delete假刪int(11)是create_time創(chuàng)建時間timestamp是表4.10網(wǎng)課信息表字段注釋類型空id

(主鍵)主鍵int(11)否kecheng_name網(wǎng)課標(biāo)題varchar(200)是kecheng_types網(wǎng)課類型int(11)是jiaoshi_id教師int(11)是kecheng_photo網(wǎng)課封面varchar(200)是kecheng_video網(wǎng)課視頻varchar(200)是kecheng_file網(wǎng)課文件varchar(200)是kecheng_content通知詳情text是insert_time添加時間timestamp是create_time創(chuàng)建時間timestamp是表4.11公告信息表字段注釋類型空id

(主鍵)主鍵int(11)否news_name公告標(biāo)題varchar(200)是news_types公告類型int(11)是news_photo公告圖片varchar(200)是insert_time添加時間timestamp是news_content公告詳情text是create_time創(chuàng)建時間timestamp是表4.12管理員表字段注釋類型空id

(主鍵)主鍵bigint(20)否username用戶名varchar(100)否password密碼varchar(100)否role角色varchar(100)是addtime新增時間timestamp否表4.13學(xué)生表字段注釋類型空id

(主鍵)主鍵int(11)否username賬戶varchar(200)是password密碼varchar(200)是yonghu_name學(xué)生姓名varchar(200)是yonghu_photo頭像varchar(200)是yonghu_phone手機(jī)號varchar(200)是yonghu_email電子郵箱varchar(200)是sex_types性別int(11)是banji_types班級int(11)是yonghu_delete假刪int(11)是create_time創(chuàng)建時間timestamp是

第5章系統(tǒng)實現(xiàn)編程人員在搭建的開發(fā)環(huán)境中,會讓各種編程技術(shù)一起呈現(xiàn)出最終效果。本節(jié)就展示關(guān)鍵部分的頁面效果。5.1管理員功能實現(xiàn)5.1.1教師管理圖5.1即為編碼實現(xiàn)的教師管理界面,教師信息包括手機(jī)號,教師姓名,教師性別等信息,管理員可以使用修改功能對有錯誤信息的教師信息進(jìn)行更正,需要刪除的教師信息也能使用刪除功能及時刪除。圖5.1教師管理界面刪除教師:@RequestMapping("/delete")publicRdelete(@RequestBodyInteger[]ids){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());ArrayList<JiaoshiEntity>list=newArrayList<>();for(Integerid:ids){JiaoshiEntityjiaoshiEntity=newJiaoshiEntity();jiaoshiEntity.setId(id);jiaoshiEntity.setJiaoshiDelete(2);list.add(jiaoshiEntity);}if(list!=null&&list.size()>0){jiaoshiService.updateBatchById(list);}returnR.ok();}5.1.2網(wǎng)課信息管理圖5.2即為編碼實現(xiàn)的網(wǎng)課信息管理界面,網(wǎng)課信息包括網(wǎng)課視頻,網(wǎng)課文件,網(wǎng)課標(biāo)題,網(wǎng)課封面等信息,管理不僅需要上傳網(wǎng)課文件,上傳網(wǎng)課視頻,還可以修改網(wǎng)課信息,可以對需要刪除的網(wǎng)課信息進(jìn)行刪除。圖5.2網(wǎng)課信息管理界面刪除網(wǎng)課:@RequestMapping("/delete")publicRdelete(@RequestBodyInteger[]ids){logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());kechengService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.1.3學(xué)生管理圖5.3即為編碼實現(xiàn)的學(xué)生管理界面,學(xué)生信息包括性別,班級,手機(jī)號等信息,學(xué)生信息存在登記錯誤的情況,管理員則可以使用修改功能及時更正,需要刪除的學(xué)生信息,管理員也能及時刪除。圖5.3學(xué)生管理界面刪除學(xué)生:@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){usersService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.2教師功能實現(xiàn)5.2.1觀看進(jìn)度查看圖5.4即為編碼實現(xiàn)的觀看進(jìn)度查看界面,教師可以查看學(xué)生對于網(wǎng)課信息的查看進(jìn)度情況,可以通過學(xué)生姓名查詢學(xué)生對于網(wǎng)課信息的觀看進(jìn)度信息。圖5.4觀看進(jìn)度查看界面查看詳情:@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Longid,HttpServletRequestrequest){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);GuankanjiluEntityguankanjilu=guankanjiluService.selectById(id);if(guankanjilu!=null){//entity轉(zhuǎn)viewGuankanjiluViewview=newGuankanjiluView();BeanUtils.copyProperties(guankanjilu,view);//把實體數(shù)據(jù)重構(gòu)到view中//級聯(lián)表KechengEntitykecheng=kechengService.selectById(guankanjilu.getKechengId());if(kecheng!=null){BeanUtils.copyProperties(kecheng,view,newString[]{"id","createTime","insertTime","updateTime"});//把級聯(lián)的數(shù)據(jù)添加到view中,并排除id和創(chuàng)建時間字段view.setKechengId(kecheng.getId());}//級聯(lián)表YonghuEntityyonghu=yonghuService.selectById(guankanjilu.getYonghuId());if(yonghu!=null){BeanUtils.copyProperties(yonghu,view,newString[]{"id","createTime","insertTime","updateTime"});//把級聯(lián)的數(shù)據(jù)添加到view中,并排除id和創(chuàng)建時間字段view.setYonghuId(yonghu.getId());}//修改對應(yīng)字典表字段dictionaryService.dictionaryConvert(view,request);returnR.ok().put("data",view);}else{returnR.error(511,"查不到數(shù)據(jù)");}}5.2.2試卷管理圖5.5即為編碼實現(xiàn)的試卷管理界面,教師可以設(shè)置試卷狀態(tài)為啟用或禁用試卷狀態(tài),可以修改試卷考試時長信息,以及修改試卷總分信息等,教師也能新增試卷,對之前新增的已經(jīng)無效的試卷信息及時刪除。圖5.5試卷管理界面添加試卷:@RequestMapping("/save")publicRsave(@RequestBodyExampaperEntityexampaper,HttpServletRequestrequest){logger.debug("save方法:,,Controller:{},,exampaper:{}",this.getClass().getName(),exampaper.toString());Stringrole=String.valueOf(request.getSession().getAttribute("role"));if(false)returnR.error(511,"永遠(yuǎn)不會進(jìn)入");elseif("教師".equals(role))exampaper.setJiaoshiId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));Wrapper<ExampaperEntity>queryWrapper=newEntityWrapper<ExampaperEntity>().eq("exampaper_name",exampaper.getExampaperName()).eq("exampaper_date",exampaper.getExampaperDate()).eq("exampaper_myscore",exampaper.getExampaperMyscore()).eq("jiaoshi_id",exampaper.getJiaoshiId()).eq("exampaper_types",exampaper.getExampaperTypes());("sql語句:"+queryWrapper.getSqlSegment());ExampaperEntityexampaperEntity=exampaperService.selectOne(queryWrapper);if(exampaperEntity==null){exampaper.setCreateTime(newDate());exampaperService.insert(exampaper);returnR.ok();}else{returnR.error(511,"表中有相同數(shù)據(jù)");}}5.2.3試題管理圖5.6即為編碼實現(xiàn)的試題管理界面,所有試卷都是由許多試題組成的,因此教師在組裝試卷之前,先要對試題進(jìn)行添加,以及及時更正登記有錯誤信息的試題信息,對于不需要的試題信息進(jìn)行及時刪除。圖5.6試題管理界面添加試題:@RequestMapping("/save")publicRsave(@RequestBodyExamquestionEntityexamquestion,HttpServletRequestrequest){logger.debug("save方法:,,Controller:{},,examquestion:{}",this.getClass().getName(),examquestion.toString());Stringrole=String.valueOf(request.getSession().getAttribute("role"));if(false)returnR.error(511,"永遠(yuǎn)不會進(jìn)入");Wrapper<ExamquestionEntity>queryWrapper=newEntityWrapper<ExamquestionEntity>().eq("exampaper_id",examquestion.getExampaperId()).eq("examquestion_name",examquestion.getExamquestionName()).eq("examquestion_options",examquestion.getExamquestionOptions()).eq("examquestion_score",examquestion.getExamquestionScore()).eq("examquestion_types",examquestion.getExamquestionTypes()).eq("examquestion_sequence",examquestion.getExamquestionSequence());("sql語句:"+queryWrapper.getSqlSegment());ExamquestionEntityexamquestionEntity=examquestionService.selectOne(queryWrapper);if(examquestionEntity==null){examquestion.setCreateTime(newDate());examquestionService.insert(examquestion);returnR.ok();}else{returnR.error(511,"表中有相同數(shù)據(jù)");}}5.3學(xué)生功能實現(xiàn)5.3.1在線答題圖5.7即為編碼實現(xiàn)的在線答題界面,學(xué)生在試卷模塊對需要答題的試卷進(jìn)行答題,答題過程中不僅需要回答試題問題,還需要在試卷規(guī)定時間內(nèi)提交答卷。圖5.7在線答題界面5.3.2網(wǎng)課信息圖5.8即為編碼實現(xiàn)的網(wǎng)課信息界面,學(xué)生在網(wǎng)課信息界面中可以通過播放網(wǎng)課視頻的方式進(jìn)行學(xué)習(xí),同時,該網(wǎng)課信息界面也展示了網(wǎng)課文件,學(xué)生可以下載網(wǎng)課文件。圖5.8網(wǎng)課信息界面5.3.3我的發(fā)帖圖5.9即為編碼實現(xiàn)的我的發(fā)帖界面,學(xué)生在我的發(fā)帖界面中可以發(fā)布帖子,該界面展示的帖子都是學(xué)生自己發(fā)布的帖子,因此支持學(xué)生對帖子進(jìn)行更改,刪除。同時學(xué)生也能跟蹤已發(fā)布的帖子,比如查看帖子的評論,學(xué)生也能回復(fù)帖子等。圖5.9我的發(fā)帖界面發(fā)帖:@RequestMapping("/add")publicRadd(@RequestBodyForumEntityforum,HttpServletRequestrequest){logger.debug("add方法:,,Controller:{},,forum:{}",this.getClass().getName(),forum.toString());Wrapper<ForumEntity>queryWrapper=newEntityWrapper<ForumEntity>().eq("forum_name",forum.getForumName()).eq("yonghu_id",forum.getYonghuId()).eq("jiaoshi_id",forum.getJiaoshiId()).eq("users_id",forum.getUsersId()).eq("super_ids",forum.getSuperIds()).eq("forum_state_types",forum.getForumStateTypes());("sql語句:"+queryWrapper.getSqlSegment());ForumEntityforumEntity=forumService.selectOne(queryWrapper);if(forumEntity==null){forum.setInsertTime(newDate());forum.setCreateTime(newDate());forumService.insert(forum);returnR.ok();}else{returnR.error(511,"表中有相同數(shù)據(jù)");}}5.3.4測試記錄圖5.10即為編碼實現(xiàn)的測試記錄界面,測試記錄界面展示的信息都是學(xué)生對試卷答題產(chǎn)生的信息,學(xué)生不僅可以查看試卷答題的詳細(xì)信息,包括試卷每道題的得分信息,以及學(xué)生對試題提交的答案信息等,除此以外,學(xué)生也能查看試卷的總體得分信息。圖5.10測試記錄界面

第6章系統(tǒng)測試當(dāng)系統(tǒng)測試環(huán)節(jié)開始的時候,也就說明對于系統(tǒng)的編碼已經(jīng)弄得大致通順了,剩下來需要對一些模塊和功能進(jìn)行測試,這個環(huán)節(jié)就叫系統(tǒng)測試。在程序開發(fā)過程中,系統(tǒng)測試是整個開發(fā)過程不能缺少的。原因很簡單,系統(tǒng)開發(fā)人員在面對各種需求需要對各個模塊進(jìn)行編碼,開發(fā)人員編寫過程中,對于程序的理解全部都在編碼里面,一人計短,當(dāng)一個人去做一些事情的時候,把自己的理解變成成果,有可能理解錯誤,這個在程序開發(fā)過程中很常見。程序開發(fā)人員在面對復(fù)雜的邏輯,沒有想象中的多么清晰,開發(fā)過程就是面對著一堆代碼,不斷的變換數(shù)據(jù)類型,這些很容易實現(xiàn)程序開發(fā)人員的想法,但是如果是比較復(fù)雜的邏輯,很可能會出現(xiàn)各種問題,這是無法避免的。所以說,需要額外的人員進(jìn)行系統(tǒng)測試編寫,要站在用戶使用的角度去發(fā)現(xiàn)問題,這樣開發(fā)與測試的分離,有助于系統(tǒng)開發(fā)的強(qiáng)壯,讓程序表達(dá)的更完美一些。之所以把系統(tǒng)測試安排到程序開發(fā)過程中的原因在于,當(dāng)測試過程中發(fā)現(xiàn)的問題可以最快速度的反饋到程序開發(fā)人員手里,可以以最快的時間解決問題。所以必須在系統(tǒng)測試環(huán)節(jié)做好應(yīng)該做好的事情,讓程序開發(fā)從開始到結(jié)束都有一個完美的流程。6.1功能測試本節(jié)主要選擇一些功能進(jìn)行具體測試描述,在相應(yīng)的功能里面,根據(jù)不同的輸入看看能否達(dá)到理想中的效果。以下會描述部分功能的測試過程和結(jié)果。6.1.1登錄功能測試登錄是一個常規(guī)功能,雖然是常規(guī)功能,但是用處很大,可以拒絕非法用戶訪問,只有合法用戶才可以訪問對應(yīng)的功能,這樣能保證程序設(shè)定的功能符合安全性要求。表6.1管理員登錄功能測試表管理員賬號管理員密碼結(jié)果uuuuuu成功登錄系統(tǒng)yyyuuu登錄失敗uuuyyy登錄失敗只有正確的賬號密碼才會進(jìn)行跳轉(zhuǎn)到對應(yīng)的功能區(qū),如果輸入的賬號密碼不對的話,肯定會有相關(guān)提示,用來提示操作人員注意輸入正確的賬號密碼,這樣有助于提高用戶體驗。這里以使用者提交錯誤的賬號為“yyy”,正確的密碼為“uuu”為例進(jìn)行測試,具體反饋結(jié)果看下面。圖6.1登錄失敗提示6.1.2修改密碼功能測試任何用戶角色都有安全性要求,那么對應(yīng)的密碼最好是經(jīng)常更改,只有經(jīng)常更改才會降低壞人的有機(jī)可乘幾率,達(dá)到密碼保護(hù)的最低要求,當(dāng)然,如果用戶登錄人離開了,為了防止其他人乘機(jī)篡改密碼,那么也會設(shè)定舊密碼要求,只有輸入正確的舊密碼才可以進(jìn)行密碼的修改。下面就是測試過程。表6.2修改密碼功能測試表之前的舊密碼設(shè)置的新密碼結(jié)果uuuyyy成功修改密碼hhhyyy修改密碼失敗uuu修改密碼失敗不管是舊密碼錯誤還是新密碼不合規(guī),都會提示相應(yīng)的要求,下面就是關(guān)于舊密碼輸入錯誤的提示。圖6.2錯誤的舊密碼反饋提示6.2系統(tǒng)測試結(jié)果對教育培訓(xùn)微信小程序進(jìn)行了各種檢測,包含功能檢測和性能檢測,操作性檢測,兼容性檢測,通過各方面檢測結(jié)果來判定系統(tǒng)是符合設(shè)計目標(biāo),并且在擴(kuò)展性或者是穩(wěn)定性上面,也有很好的表現(xiàn),能完全的滿足用戶需求。

結(jié)論由于本人學(xué)習(xí)的是計算機(jī)方面的專業(yè),學(xué)習(xí)了一定的開發(fā)知識,因此,對于開發(fā)一款已經(jīng)確定了課題的教育培訓(xùn)微信小程序,從功能需求,功能模塊劃分,數(shù)據(jù)庫的選擇與設(shè)計,編程語言的確定,系統(tǒng)界面的布局和設(shè)計等知識,我都有個大致的思路。我運用已經(jīng)具備的理論知識,加上后期從網(wǎng)絡(luò)渠道獲取的相關(guān)技術(shù)知識,能夠在系統(tǒng)完成開發(fā)后期,編寫相應(yīng)的系統(tǒng)文檔。教育培訓(xùn)微信小程序制作期間,我也遇到過一些難題,模塊拆分不夠精細(xì),以及數(shù)據(jù)表需要設(shè)計幾張表,還有對于開發(fā)技術(shù)的深度理論學(xué)習(xí)還不充分等,不過我能夠通過網(wǎng)絡(luò)或者通過學(xué)院提供的圖書館尋求解決辦法。比如在不知道具體功能的情況下,我從網(wǎng)上下載了很多的與教育培訓(xùn)微信小程序相關(guān)的程序,分析了它們的功能之后,我再結(jié)合即將開發(fā)的教育培訓(xùn)微信小程序進(jìn)行綜合分析,選取了適合教育培訓(xùn)微信小程序的功能部分,再具體模塊具體分析,設(shè)計專屬項目功能。對于數(shù)據(jù)表的設(shè)計,先在圖書館學(xué)習(xí),然后查看相似系統(tǒng)對于數(shù)據(jù)表的結(jié)構(gòu)設(shè)計等知識,然后在本系統(tǒng)功能確定的情況下,結(jié)合本系統(tǒng)設(shè)計了配套的數(shù)據(jù)表,對于難度最大的開發(fā)技術(shù)部分,這是需要大量時間調(diào)試的,一般都是對基礎(chǔ)數(shù)據(jù)的增加,更新,查詢或修改方面的代碼,然后把本系統(tǒng)能夠運用的代碼部分在簡單更改后進(jìn)行使用,又經(jīng)過了簡單的測試工作,最終呈現(xiàn)出一個完整的能夠解決用戶實際問題的教育培訓(xùn)微信小程序。該系統(tǒng)唯一不足的就是代碼方面還有很多重復(fù)的部分,不夠精簡,還有用戶操作本系統(tǒng),對于用戶的誤操作行為,本系統(tǒng)還不能及時反饋,這也是一大缺點。教育培訓(xùn)微信小程序完成了,其相應(yīng)的配套文檔也需要進(jìn)行編寫,該文檔主要描述教育培訓(xùn)微信小程序是如何進(jìn)行分析,設(shè)計以及實現(xiàn)的,讓其他閱讀本文檔的人增加對該系統(tǒng)的了解,編寫文檔過程中,由于自己平時對于辦公軟件的操作不是很頻繁,根據(jù)學(xué)院要求的文檔排版格式進(jìn)行編輯也花了很多時間,

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論