專注于大學生項目實戰開發,講解,畢業答疑輔導,歡迎高校老師/同行前輩交流合作?。
技術范圍:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。
主要內容:免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論文降重、長期答辯答疑輔導、騰訊會議一對一專業講解輔導答辯、模擬答辯演練、和理解代碼邏輯思路。
🍅文末獲取源碼聯系🍅
在畢設選題,項目以及論文編寫等相關問題都可以給我留言咨詢,希望幫助更多的人
摘 ?要
由于APP軟件在開發以及運營上面所需成本較高,而用戶手機需要安裝各種APP軟件,因此占用用戶過多的手機存儲空間,導致用戶手機運行緩慢,體驗度比較差,進而導致用戶會卸載非必要的APP,倒逼管理者必須改變運營策略。隨著微信小程序的出現,解決了用戶非獨立APP不可訪問內容的痛點,所以很多APP軟件都轉向微信小程序。本次課題就運用了微信小程序技術開發一個基于微信小程序的移動學習平臺。
基于微信小程序的移動學習平臺借助微信開發者工具開發用戶前端,使用SSM框架和Java語言開發管理員后臺,使用Mysql創建數據表保存本系統產生的數據。系統可以提供信息顯示和相應服務,其管理員對教師,課程分類,班級,課程,學生信息進行管理,審核學生作業,管理課程資源。教師查看課程,班級,學生,審核學生作業,管理課程資源。學生新增作業,查看作業審核信息,收藏或評論課程資源,查看班級和課程。
總之,基于微信小程序的移動學習平臺使得學生通過小程序就能學習課程,上交作業,教師通過小程序也能審核作業,管理課程資源。
關鍵詞:基于微信小程序的移動學習平臺;微信開發者工具;SSM框架
第1章?緒論
1.1?課題背景
隨著移動互聯形式的不斷發展,各行各業都在摸索移動互聯對本行業的改變,不斷的嘗試開發出適合于本行業或者本公司的APP。但是這樣一來用戶的手機上就需要安裝各種軟件,但是APP作為一個只為某個公司服務的一個軟件,是一種閉環的生態,從用戶獲取和保持用戶的粘性都變成了一個難題,并且在維護上面也需要考慮成本,慢慢的變成了不開發APP跟不上潮流,開發APP則運營上面步履維艱。如何獲取一個新的客戶來源通道以及轉換通道,變成了管理者都需要面對的一個問題。如何讓一個用戶從已經習慣的應用里跳轉到希望用戶訪問的應用里,這是一個問題,而微信小程序就解決了這樣的難題。微信擁有龐大的用戶基礎,可以不用更換APP直接在微信上就可以訪問用戶想要訪問的資源。因此微信小程序相對于APP來講更受歡迎,本次課題就運用了微信小程序技術開發一個基于微信小程序的移動學習平臺。
1.2 課題意義?
背靠微信龐大用戶群體的微信小程序,變成了當前解決用戶訪問應用程序入口方案的一種選擇,用戶的手機里面只要有微信,不需要安裝新的軟件,就可以直接訪問指定目標,獲取指定內容,解決了管理者的痛點,并且微信作為一個聊天工具,在微信里有支持的各種各樣的生活服務,也為微信的用戶提供了粘性,微信小程序不管是針對用戶或者管理者都是一個雙贏的存在。目前,傳統電商及零售行業因為小程序的出現而獲得了新生。本次課題針對學生學習課程知識,方便管理員與教師管理課程相關知識,借助于微信小程序這樣的平臺,設計一個基于微信小程序的移動學習平臺。使得學生通過小程序就能學習課程,上交作業,教師通過小程序也能審核作業,管理課程資源。
1.3 研究內容
對基于微信小程序的移動學習平臺設計制作,不僅需要技術支撐,也需要大量的理論研究。本文在對基于微信小程序的移動學習平臺進行介紹時,將按照如下內容進行。
第一部分:介紹基于微信小程序的移動學習平臺研究的背景意義,便于用戶了解系統;
第二部分:介紹開發基于微信小程序的移動學習平臺需要搭建的環境,包括技術和工具;
第三部分:介紹用戶對基于微信小程序的移動學習平臺的功能要求,以及對基于微信小程序的移動學習平臺的性能要求等;
第四部分:介紹數據庫的設計方案,以及根據功能要求設計的功能結構;
第五部分:介紹通過編碼最終實現的系統功能運行效果;
第六部分:介紹系統的功能測試,對系統進行綜合檢測,并及時解決系統出現的問題,直至系統運行正常。
第2章?開發環境與技術
基于微信小程序的移動學習平臺的編碼實現需要搭建一定的環境和使用相應的技術,接下來的內容就是對基于微信小程序的移動學習平臺用到的技術和工具進行介紹。
2.1 MYSQL數據庫
本課題所開發的應用程序在數據操作方面是不可預知的,是經常變動的,沒有辦法直接把數據寫在文檔里,這樣不僅僅不安全,也不能實現應用程序的功能。如果要能實現應用程序所需要的數據存儲功能,就避免不了要進行專業數據庫存儲軟件的選擇。基本上應用程序實現的功能不算太復雜,市面上任何一個關系型數據庫軟件都可以實現。參考自己的學習進度和操作習慣來講,Oracle數據庫是適合的,但是所需要的的安裝軟件很大,并且有好多不需要的功能都是開啟的狀態,十分消耗電腦資源,所以沒有選擇Oracle數據庫,而SQL Server數據庫雖然學過,但是安裝的時候因為電腦上可能有其他的軟件存在,經常性的出問題,而安裝問題不好解決就需要重新安裝操作系統,這樣對已經存在的軟件來講又是一種時間上的浪費。只有MySQL數據庫,安裝包小,安裝速度快,操作簡單,哪怕安裝出問題也好解決,不用重裝操作系統,也不影響電腦上運行的其他軟件,消耗資源也少,最重要的是在功能方面完全的符合設計需要,所以最后選擇了MySQL數據庫作為應用軟件開發需要的數據庫。
2.2?JSP技術??
在動態網站的興起之初,作為高級編程語言的Java自然不會放棄這個領域的蛋糕。Sun公司推出了Servlet作為輸出動態網站的一種技術標準,雖然不怎么受當時程序員的喜愛,但是當初也沒有太多的選擇,隨后幾個月PHP語言問世,不考慮性能和效率如何,起碼在書寫網頁所需要的動態代碼塊和靜態代碼塊方面進行了區分,讓書寫效率和可讀效率大大的提升,所以很多Java程序員以及剛入行的初級程序員都選擇了PHP語言作為自己職業的發展方向,Sun公司為了維護Java語言在高級編程語言上的江湖地位,防止PHP繼續搶走市場份額占有率,Sun公司聯合Apache基金會研發了一個關于Java動態網頁的一個新型的技術標準,這就是JSP技術。JSP吸取了PHP語言在頁面書寫上面的所有優點,但是又背靠Java EE的龐大后臺,又能實現很多通過Java組件就能實現的功能,在JSP頁面上可以直接引用那些組件,讓JSP更加的強壯豐富。保證了Java技術縱向的可持續發展,并且在動態網站開發領域終于站穩了腳跟,其他PHP開發人員可以很快的轉移到JSP進行開發,不考慮一些特殊組件或者功能的開發,只從動態頁面的開發上來講,完全實現了PHP程序和JSP程序的幾乎無成本的轉換,JSP技術就這樣的發展了起來。
2.3 SSM框架
SSM框架不是一個框架的名稱,而是三個框架的首字母縮寫,分別是Spring框架、SpringMVC框架、MyBatis框架。是目前Java開發者中學習的首選框架。
Spring框架繼承了JavaEE和EJB框架的優點,在依賴注入方面去掉了臃腫的配置,在面向切面方面也簡化了代碼數量,提高了代碼品質。依賴注解進行配置,讓所有的依賴都可以通過程序的自動配置和尋找,減少了代碼寫作數量,提高了代碼閱讀性。
SpringMVC框架與Spring只是一個公司的,在底層代碼結構上可以復用,但是最主要的功能是對數據提交請求進行過濾,并且對數據的返回進行過濾,不限于頁面是JSP技術,也可以是其他的技術,更容易大型開發的集合技術。
MyBatis框架摒棄了Hibernate框架的配置臃腫方面,有時候Hibernate框架業務比較復雜的時候,代碼量反而增加,性能下降,無法對底層的數據庫語句優化,而MyBatis框架則有效的解決了這個方面,可以通過Java語句,對數據庫操作語句進行優化,代碼更簡潔,執行效率更高,并且可以生產一些模塊化代碼,解決了開發過程中容易出現的實體映射方面的操作。
2.4?微信開發者工具
微信web開發者工具是國內騰訊公司開發的專門用來開發微信小程序的一個工具。開發過程中如果是項目團隊開發,可以設置多個開發和測試成員,管理員可以在小程序管理后臺添加成員并且設置所需的權限。微信web開發者工具可以開發小程序項目以及微信公眾號網頁項目,小程序項目如果不部署到服務器上只做開發測試的話,AppID可以點擊測試生成,否則需要在微信公眾平臺上申請微信公共號和微信小程序。用微信web開發者工具可以對程序與頁面,組件和API進行調用,發布之前可以生成好幾個小程序版本,并可以在后臺查看運營相關數據。微信開發者工具是微信小程序開發的必備利器!
第3章?系統分析
面對即將開發的系統,進行提前的分析是必要的。這也是開發流程中必須有的環節。通常分析系統期間,主要涉及的內容包括系統開發可行性問題,對系統功能和性能的分析等問題。
3.1?可行性分析
在正式對需要建設的項目進行投資前,有一個比較關鍵的步驟是不能缺少的,那就是可行性分析。它主要從當前技術,經濟等角度去評估系統的可行性,在投資決策中常常采用這種科學的方法來論證項目。
3.1.1 技術可行性
當前,系統開發的技術已經發展成熟,而且通過計算機網絡可以獲取開發工具的使用方法,以及規范化編寫的模塊化代碼,這些知識可以幫助開發者順利完成本系統的編碼工作。
3.1.2 經濟可行性
本系統開發期間需要配置的軟件環境,可以免費通過開發類官網下載安裝,需要配置的硬件設備也不需要具備很高的性能,通常網吧電腦,或學校計算機機房的電腦都符合要求。因此,從經濟方面考慮,基于微信小程序的移動學習平臺開發可行。
3.1.3 操作可行性
基于微信小程序的移動學習平臺根據用戶使用習慣進行開發,設計的界面具有統一性,并具備優秀的導航功能。所以,操作人員可以無壓力操作基于微信小程序的移動學習平臺。
總之,從上述的論證來看,本系統可以開發。
3.2 系統流程
流程圖這樣的工具可以直觀反映出系統內部的操作邏輯,可以幫助用戶更好的理解系統。
3.2.1 操作流程
進入本系統需要訪問者提供驗證信息。驗證合格的訪問者才能獲取訪問資格。其具體的操作流程見下圖。訪問者根據登錄界面設置的信息項如實填寫,待信息通過驗證后,訪問者可以進入指定的頁面享受本系統提供的服務和閱讀本系統的相關信息。
圖3.1?操作流程圖
3.2.2 登錄流程
本系統的登錄模塊,其內部的流程見下圖。主要對訪問本系統的人員提供的驗證信息進行逐個判斷,系統面對錄入錯誤的信息會給出提示,比如,提示賬號不對,或提示密碼不匹配等提示信息。總之,在登錄頁面填寫的所有信息都符合要求,訪問者就登錄成功了。
圖3.2 登錄流程圖
3.2.3 刪除信息流程
本系統在經常性的使用后,會產生很多失去價值的信息,因此就需要及時清理數據,騰出系統的空間。對這些數據進行清理時,其對應的流程見下圖。先選中要清理的數據,通過反復確認需要清理的數據,避免操作人員誤刪。已經刪除的數據就不會出現在系統里面。
圖3.3?刪除信息流程圖
3.2.4 添加信息流程
本系統主要用于顯示信息,提供服務,其中,數據添加功能就是其中的服務之一,具體流程見下圖。讓操作者在信息添加的頁面錄入數據,待這些數據被提交檢驗合格后,就會在系統指定頁面顯示出來。
圖3.4?添加信息流程圖
3.3 性能需求
進行需求分析,包括了根據用戶實際需求制定功能,也涵蓋了對即將設計的系統進行性能上的需求分析。所以一般分析系統時,一方面要分析系統功能,另一方面也要分析系統的性能。畢竟設計開發出一個好性能的系統可以確保系統的質量可靠。
接下來分析系統的性能,還要從界面友好性,系統的時間特性,系統的可靠性等方面來分析說明。
(1)時間特性要求:系統處理數據都有時間要求,這也是系統的時間特性。通常都會把數據處理的時間進行分析,也會設置用戶請求的響應時間,還有系統在滿負荷運行時可以偏離的范圍數值等都需要提前分析確定。
(2)界面友好性:除了功能上需要考慮用戶需求外,在人機交互界面的設計上,也需要考慮用戶的使用習慣,包括界面的布局,界面基調選擇以及顏色搭配等。盡量做到用戶在接受簡單的培訓之后,可以對系統進行獨立操作。
(3)系統可靠性:對于初學者而言,很容易出現一個問題,就是設計開發的系統,因為人為的誤操作出現崩潰。這樣的現象也說明這種容錯能力低下的系統是不可靠的。完全不能作為生活中處理信息的系統。當下,系統開發要保證可靠性,設計時,把模塊化和結構化的設計理念也考慮進來。
3.4?功能需求
不同的系統提供的服務也不相同,其對應的功能也不相同,所以,系統開工前,需要明確其用途,確定其功能。由此,才可以進行各個任務的開展。
基于微信小程序的移動學習平臺經過分析,確定了其需要設置管理員的角色,其操作的功能通過用例圖展示(見下圖)。管理員對教師,課程分類,班級,課程,學生信息進行管理,審核學生作業,管理課程資源。
圖3.5 管理員用例圖
基于微信小程序的移動學習平臺經過分析,確定了其需要設置教師的角色,其操作的功能通過用例圖展示(見下圖)。教師查看課程,班級,學生,審核學生作業,管理課程資源。
圖3.6 教師用例圖
基于微信小程序的移動學習平臺經過分析,確定了其需要設置學生的角色,其操作的功能通過用例圖展示(見下圖)。學生新增作業,查看作業審核信息,收藏或評論課程資源,查看班級和課程。
圖3.7 學生用例圖
第4章?系統設計
一個成功設計的系統在內容上必定是豐富的,在系統外觀或系統功能上必定是對用戶友好的。所以為了提升系統的價值,吸引更多的訪問者訪問系統,以及讓來訪用戶可以花費更多時間停留在系統上,則表明該系統設計得比較專業。
4.1?設計原則
本系統在設計過程中需要依照一定的設計原則進行,目的就是為了讓開發的系統具備高質量,齊全完備的功能,方便簡單的操作,如此才可以最大限度的滿足使用者的要求。系統設計原則除了基本的易操作原則外,還有安全性原則,準確性原則。
第一個設計原則:易操作原則,針對本系統設計的功能要完備齊全,編碼時,設計的各個接口要具備友好性,使用者一旦使用本系統時,要能夠輕松上手,操作本系統處理數據時,要具備便利性。此外,也需要設計一些必要提示,引導使用者操作系統。
第二個設計原則:安全性原則,本系統在登錄模塊要對各個訪問者進行身份驗證,系統會通過訪問者輸入的信息進行判斷,使用提前編寫的安全驗證代碼進行數據比對,引導匹配成功的訪問者進入指定的操作界面。這樣可以避免無關性訪問者竊取系統的數據。
第三個設計原則:準確性原則,為了保證使用者登記的數據是正確的,需要提前設計數據糾錯機制,讓使用者可以通過系統的報錯提示,仔細檢查登記的錯誤信息,并及時糾正錯誤,填寫規范正確的信息。比如設置密碼時,要求密碼的長度不能低于6個字符,且數據類型要求不能全部是數字等都能進行規范。
4.2?功能結構設計
在前面分析的管理員功能的基礎上,進行接下來的設計工作,最終展示設計的管理員結構圖(見下圖)。管理員對教師,課程分類,班級,課程,學生信息進行管理,審核學生作業,管理課程資源。
圖4.1 管理員功能結構圖
在前面分析的教師功能的基礎上,進行接下來的設計工作,最終展示設計的教師結構圖(見下圖)。教師查看課程,班級,學生,審核學生作業,管理課程資源。
圖4.2 教師功能結構圖
在前面分析的學生功能的基礎上,進行接下來的設計工作,最終展示設計的學生結構圖(見下圖)。學生新增作業,查看作業審核信息,收藏或評論課程資源,查看班級和課程。
圖4.3 學生功能結構圖
4.3?數據庫設計
開發一個系統也需要提前設計數據庫。這里的數據庫是相關數據的集合,存儲在一起的這些數據也是按照一定的組織方式進行的。目前,數據庫能夠服務于多種應用程序,則是源于它存儲方式最佳,具備數據冗余率低的優勢。雖然數據庫為程序提供信息存儲服務,但它與程序之間也可以保持較高的獨立性。總而言之,數據庫經歷了很長一段時間的發展,從最初的不為人知,到現在的人盡皆知,其相關技術也越發成熟,同時也擁有著堅實的理論基礎。
4.3.1?數據庫概念設計
這部分內容需要借助數據庫關系圖來完成,也需要使用專門繪制數據庫關系圖的工具,比如Visio工具就可以設計E-R圖(數據庫關系圖)。設計數據庫,也需要按照設計的流程進行,首先還是要根據需求完成實體的確定,分析實體具有的特征,還有對實體間的關聯關系進行確定。最后才是使用E-R模型的表示方法,繪制本系統的E-R圖。不管是使用億圖軟件,還是Visio工具,對于E-R模型的表示符號都一樣,通常矩形代表實體,實體間存在的關系用菱形符號表示,實體的屬性也就是實體的特征用符號橢圓表示。最后使用直線將矩形,菱形和橢圓等符號連接起來。接下來就開始對本系統的E-R圖進行繪制。
(1)下圖是課程資源實體和其具備的屬性。
圖4.4?課程資源實體屬性圖
(2)下圖是教師實體和其具備的屬性。
圖4.5?教師實體屬性圖
(3)下圖是作業實體和其具備的屬性。
圖4.6 作業實體屬性圖
- 下圖是學生實體和其具備的屬性。
圖4.7 學生實體屬性圖
- 下圖為上述各實體間相互之間的關系。
圖4.8 實體間關系E-R圖
4.3.2 數據庫物理設計
本數據庫是關系型數據庫,因此對二維表的結構設計也比較關鍵。畢竟二維表格模型就是關系型數據庫中的關系模型。而一些常用的關系模型中的概念也需要了解,才可以對關系模型進行設計。下面就簡單介紹關系,元組,屬性,域,關鍵字等常用概念的含義。
關系:關系就是數據庫中的一張數據表,每張數據表都有命名,也就是每個關系也有名字,那就是數據表名;
元組:元組就是數據表中的一行記錄;
屬性:屬性就是數據表中的字段,也就是數據表中的一列;
域:域就是對數據表中屬性的取值進行限定;
關鍵字:關鍵字就是數據表中的主鍵;
在了解了表結構設計的常用概念后,接下來就需要使用前面繪制的E-R模型完成表結構的設計工作,并在數據庫中創建數據表,并為各個數據表進行命名。以下就對設計的結果通過表格形式進行展示。
表4.1 班級信息表
字段 | 類型 | 空 | 默認 | 注釋 |
id | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
banjimingcheng | varchar(200) | 是 | NULL | 班級名稱 |
banjirenshu | int(11) | 是 | NULL | 班級人數 |
banjidaoshi | varchar(200) | 是 | NULL | 班級導師 |
lianxifangshi | varchar(200) | 是 | NULL | 聯系方式 |
表4.2 教師信息表
字段 | 類型 | 空 | 默認 | 注釋 |
id | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
gonghao | varchar(200) | 否 | 工號 | |
mima | varchar(200) | 否 | 密碼 | |
jiaoshi | varchar(200) | 否 | 教師 | |
zhicheng | varchar(200) | 是 | NULL | 職稱 |
xingbie | varchar(200) | 是 | NULL | 性別 |
nianling | int(11) | 是 | NULL | 年齡 |
shouji | varchar(200) | 是 | NULL | 手機 |
youxiang | varchar(200) | 是 | NULL | 郵箱 |
touxiang | varchar(200) | 是 | NULL | 頭像 |
表4.3 課程信息表
字段 | 類型 | 空 | 默認 | 注釋 |
id | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
biaoti | varchar(200) | 是 | NULL | 標題 |
banji | varchar(200) | 是 | NULL | 班級 |
xingqi | varchar(200) | 是 | NULL | 星期 |
kejie | varchar(200) | 是 | NULL | 課節 |
kecheng | varchar(200) | 是 | NULL | 課程 |
gonghao | varchar(200) | 是 | NULL | 工號 |
jiaoshi | varchar(200) | 是 | NULL | 教師 |
表4.4 課程資源信息表
字段 | 類型 | 空 | 默認 | 注釋 |
id | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
biaoti | varchar(200) | 是 | NULL | 標題 |
gonghao | varchar(200) | 是 | NULL | 工號 |
jiaoshi | varchar(200) | 是 | NULL | 教師 |
kecheng | varchar(200) | 是 | NULL | 課程 |
peitu | varchar(200) | 是 | NULL | 配圖 |
ziyuan | longtext | 是 | NULL | 資源 |
thumbsupnum | int(11) | 是 | 0 | 贊 |
crazilynum | int(11) | 是 | 0 | 踩 |
userid | bigint(20) | 否 | 用戶id |
表4.4?管理員信息表
字段 | 類型 | 空 | 默認 | 注釋 |
id | bigint(20) | 否 | 主鍵 | |
username | varchar(100) | 否 | 用戶名 | |
password | varchar(100) | 否 | 密碼 | |
role | varchar(100) | 是 | 管理員 | 角色 |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 新增時間 |
表4.5?學生信息表
字段 | 類型 | 空 | 默認 | 注釋 |
id | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
xuehao | varchar(200) | 否 | 學號 | |
mima | varchar(200) | 否 | 密碼 | |
xuesheng | varchar(200) | 否 | 學生 | |
banji | varchar(200) | 是 | NULL | 班級 |
xingbie | varchar(200) | 是 | NULL | 性別 |
nianling | int(11) | 是 | NULL | 年齡 |
shouji | varchar(200) | 是 | NULL | 手機 |
youxiang | varchar(200) | 是 | NULL | 郵箱 |
touxiang | varchar(200) | 是 | NULL | 頭像 |
表4.6 作業信息表
字段 | 類型 | 空 | 默認 | 注釋 |
id | bigint(20) | 否 | 主鍵 | |
addtime | timestamp | 否 | CURRENT_TIMESTAMP | 創建時間 |
biaoti | varchar(200) | 是 | NULL | 標題 |
xuehao | varchar(200) | 是 | NULL | 學號 |
xuesheng | varchar(200) | 是 | NULL | 學生 |
touxiang | varchar(200) | 是 | NULL | 頭像 |
banji | varchar(200) | 是 | NULL | 班級 |
zuoye | longtext | 是 | NULL | 作業 |
tijiaoshijian | datetime | 是 | NULL | 提交時間 |
sfsh | varchar(200) | 是 | 否 | 是否審核 |
shhf | longtext | 是 | NULL | 審核回復 |
userid | bigint(20) | 否 | 用戶id |
開題指導、源碼獲取、程序定做、畢設幫助,聯系方式見文末。
系統實現效果
大家點贊、收藏、關注、評論啦 、查看👇🏻獲取聯系方式👇🏻