国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案

這篇具有很好參考價(jià)值的文章主要介紹了基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

摘 ?要

基于微信的學(xué)生選課系統(tǒng)是利用微信中的小程序功能來實(shí)現(xiàn),自2011年微信誕生以來,微信的使用越來越普遍,尤其最近幾年微信旗下的微信小程序因其不占內(nèi)存,用完即走的特點(diǎn)吸引越來越多用戶,使用微信小程序設(shè)計(jì)的系統(tǒng)也越來越多。本課題利用了發(fā)展至今逐漸趨于成熟的小程序來滿足學(xué)生選課的需求,優(yōu)化了傳統(tǒng)人工選課的流程,使得用戶可以通過微信小程序進(jìn)行選課。

本文以實(shí)際運(yùn)用為開發(fā)背景,運(yùn)用軟件工程原理和開發(fā)方法,它主要是采用java語言技術(shù)、springboot框架和mysql 數(shù)據(jù)庫來完成對系統(tǒng)的設(shè)計(jì)。整個(gè)開發(fā)過程首先對微信小程序的學(xué)生選課系統(tǒng)進(jìn)行需求分析,得出微信小程序的學(xué)生選課系統(tǒng)主要功能。接著對微信小程序的學(xué)生選課系統(tǒng)進(jìn)行總體設(shè)計(jì)和詳細(xì)設(shè)計(jì),總體設(shè)計(jì)主要包括小程序功能設(shè)計(jì)、小程序總體結(jié)構(gòu)設(shè)計(jì)、小程序數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和小程序安全設(shè)計(jì)等;詳細(xì)設(shè)計(jì)主要包括微信小程序的學(xué)生選課系統(tǒng)數(shù)據(jù)庫訪問的實(shí)現(xiàn),主要功能模塊的具體實(shí)現(xiàn),模塊實(shí)現(xiàn)關(guān)鍵代碼等。最后對微信小程序的學(xué)生選課系統(tǒng)進(jìn)行了功能測試,并對測試結(jié)果進(jìn)行了分析總結(jié),得出微信小程序的學(xué)生選課系統(tǒng)存在的不足及需要改進(jìn)的地方,為以后的微信小程序的學(xué)生選課系統(tǒng)維護(hù)提供了方便,同時(shí)也為今后開發(fā)類似微信小程序的學(xué)生選課系統(tǒng)提供了借鑒和幫助。

微信小程序的學(xué)生選課系統(tǒng)開發(fā)使系統(tǒng)能夠更加方便快捷,同時(shí)也促使微信小程序的學(xué)生選課系統(tǒng)變的更加系統(tǒng)化、有序化。系統(tǒng)界面較友好,易于操作。

關(guān)鍵詞 :學(xué)生選課系統(tǒng);微信小程序;Mysql數(shù)據(jù)庫;Java語言?

Spring Boot Student Course Selection System Mini Program

Abstract

The student course selection system based on WeChat is implemented using the mini program function in WeChat. Since the birth of WeChat in 2011, the use of WeChat has become increasingly common, especially in recent years, the WeChat mini programs under WeChat have attracted more and more users due to their memory free and run out characteristics, and more and more systems are designed using WeChat mini programs. This project utilizes small programs that have gradually matured to meet students' needs for course selection, optimizing the traditional manual course selection process, allowing users to select courses through WeChat mini programs.

This article takes practical application as the development background, applies software engineering principles and development methods, and mainly uses Java language technology, Spring Boot framework, and MySQL database to complete the system design. The entire development process starts with a requirement analysis of the student course selection system of the WeChat mini program, and identifies the main functions of the student course selection system of the WeChat mini program. Next, the overall and detailed design of the student course selection system for WeChat mini programs will be carried out. The overall design mainly includes the functional design of the mini program, the overall structure design of the mini program, the data structure design of the mini program, and the security design of the mini program; The detailed design mainly includes the implementation of the WeChat mini program's student course selection system database access, the specific implementation of the main functional modules, and the key code for module implementation. Finally, a functional test was conducted on the student course selection system of the WeChat mini program, and the test results were analyzed and summarized. The shortcomings and areas for improvement of the student course selection system of the WeChat mini program were identified, providing convenience for the maintenance of the student course selection system of the WeChat mini program in the future, and also providing reference and assistance for the development of student course selection systems similar to WeChat mini programs in the future.

The development of the student course selection system for WeChat mini programs makes the system more convenient and efficient, while also promoting a more systematic and orderly student course selection system for WeChat mini programs. The system interface is relatively friendly and easy to operate.

Keywords:?student course selection system; WeChat mini program; MySQL database; Java language

目??錄

摘 ?要

Spring Boot Student Course Selection System Mini Program

Abstract

1 概述

1.1研究背景

1.2 研究現(xiàn)狀

1.3 本課題主要工作

2 系統(tǒng)開發(fā)環(huán)境

2.1開發(fā)技術(shù)

2.2?java技術(shù)

2.3?Mysql數(shù)據(jù)庫

2.4 小程序框架以及目錄結(jié)構(gòu)介紹

2.5 spring boot框架介紹

3 系統(tǒng)分析

3.1 可行性分析

3.1.1 技術(shù)可行性

3.1.2操作可行性

3.1.3 經(jīng)濟(jì)可行性

3.1.4 法律可行性

3.2系統(tǒng)流程分析

3.2.1系統(tǒng)開發(fā)流程

3.2.2 用戶登錄流程

3.2.3 系統(tǒng)操作流程

3.2.4 添加信息流程

3.2.5 修改信息流程

3.2.6 刪除信息流程

3.3用例分析

3.4系統(tǒng)流程分析

3.4.1添加信息流程

3.4.2操作流程

3.4.3刪除信息流程

4系統(tǒng)概述

4.1?系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

4.2數(shù)據(jù)庫設(shè)計(jì)

4.2.1 數(shù)據(jù)庫設(shè)計(jì)原則

4.2.2 數(shù)據(jù)庫實(shí)體

4.3?數(shù)據(jù)庫設(shè)計(jì)原則

4.3.1?數(shù)據(jù)庫表設(shè)計(jì)

表access_token (登陸訪問時(shí)長)

表article (文章:用于內(nèi)容管理系統(tǒng)的文章)

表article_type (文章分類)

表auth (用戶權(quán)限管理)

表collect (收藏)

表comment (評論)

表course_information (課程信息)

表course_selection_information (選課信息)

表course_type (課程類型)

表forum (論壇)

表forum_type (論壇分類)

表hits (用戶點(diǎn)擊)

表lecturer_user (講師用戶)

表notice (公告)

表praise (點(diǎn)贊)

表slides (輪播圖)

表student_users (學(xué)生用戶)

表upload (文件上傳)

表user (用戶賬戶:用于保存用戶登錄信息)

表user_group (用戶組:用于用戶前端身份和鑒權(quán))

5系統(tǒng)界面實(shí)現(xiàn)

5.1管理員功能模塊

系統(tǒng)用戶管理

資源管理

交流管理

5.2學(xué)生用戶端功能模塊

學(xué)生用戶注冊

基本信息

前臺首頁

課程信息頁面

5.3講師用戶功能模塊

6系統(tǒng)測試

6.1系統(tǒng)測試的意義

6.2 測試方法

6.3測試分析

結(jié) ???論

致 ???謝

參考文獻(xiàn)

1 概述

1.1研究背景

互聯(lián)網(wǎng)發(fā)展至今,已經(jīng)解決了很多我們解決不了的難題,使得我們工作更加便捷,提高了我們的工作效率。目前各行各業(yè)都在運(yùn)用網(wǎng)絡(luò)信息管理程序,不同的人群也都接觸到信息管理,特別是在各大高校廣泛的應(yīng)運(yùn)起來。通過對當(dāng)前網(wǎng)絡(luò)環(huán)境發(fā)展的分析與總結(jié),開發(fā)選課系統(tǒng)可以改變以往的學(xué)生選課方式,改變傳統(tǒng)學(xué)生選課的狀態(tài),由于人群的不斷增多,使用傳統(tǒng)的線下學(xué)生選課模式已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足于用戶需求了,而且越來越多的校園也在開通線上選課,所以開發(fā)一個(gè)選課系統(tǒng)小程序可以解決校園線下選課面臨的諸多問題,同時(shí)校園可以利用網(wǎng)絡(luò)對課程信息進(jìn)行管理,設(shè)計(jì)的網(wǎng)站保證信息的完整安全,這樣才能提高工作效率,保證系統(tǒng)安全正常的運(yùn)行。

1.2 研究現(xiàn)狀

在國外很多發(fā)達(dá)國家,軟件產(chǎn)業(yè)早已得到全面普及,但我國經(jīng)濟(jì)已不斷發(fā)展,不斷引進(jìn)國外信息化建設(shè),使國內(nèi)軟件行業(yè)得以不斷發(fā)展,在摸索中進(jìn)步,最終也得到一些成果,我國的軟件業(yè)迎來了高速的發(fā)展,使更多的軟件系統(tǒng)得以開發(fā)出來,從此逐漸地改變?nèi)藗兊纳罟ぷ鞣绞健5?,對于信息化的建設(shè),與很多發(fā)達(dá)國家相比,由于信息化程度的落后以及經(jīng)費(fèi)的不足,我國的微信小程序的學(xué)生選課系統(tǒng)開發(fā)方面還是相對落后的,因此,要不斷的努力探索,爭取開發(fā)出一個(gè)實(shí)用的信息化的微信小程序的學(xué)生選課系統(tǒng),來實(shí)現(xiàn)學(xué)生選課管理的信息化。因此本課題以學(xué)生選課為例,目的是開發(fā)一個(gè)實(shí)用的微信小程序的學(xué)生選課系統(tǒng)。

微信小程序的學(xué)生選課系統(tǒng)的開發(fā)運(yùn)用java技術(shù),MIS的總體思想,以及MYSQL等技術(shù)的支持下共同完成了該系統(tǒng)的開發(fā),實(shí)現(xiàn)了學(xué)生選課管理的信息化,使用戶體驗(yàn)到更優(yōu)秀的學(xué)生選課系統(tǒng),管理員管理操作將更加方便,實(shí)現(xiàn)目標(biāo)。

1.3 本課題主要工作

一開始,本文就對系統(tǒng)內(nèi)談到的基本知識,從整體上進(jìn)行了描述,并在此基礎(chǔ)上進(jìn)行了系統(tǒng)分析。為了能夠使本系統(tǒng)較好、較為完善的被設(shè)計(jì)實(shí)現(xiàn)出來,就必須先進(jìn)行分析調(diào)查?;谥跋嚓P(guān)的基礎(chǔ),在功能上,對新系統(tǒng)進(jìn)行了細(xì)致的分析。然后通過詳細(xì)的分析,進(jìn)行系統(tǒng)設(shè)計(jì),其次,系統(tǒng)在實(shí)施的可行性上,我選擇了微信小程序技術(shù)來進(jìn)行開發(fā)設(shè)計(jì),在數(shù)據(jù)存儲上,采用 Mysql數(shù)據(jù)庫來進(jìn)行設(shè)計(jì)。由于微信小程序和Mysql都已經(jīng)非常成熟,因此無論在各個(gè)方面,都非??煽堪踩珜?shí)用。最后對系統(tǒng)進(jìn)行測試完善并發(fā)布。

2 系統(tǒng)開發(fā)環(huán)境??

2.1開發(fā)技術(shù)

本系統(tǒng)前端部分基于MVVM模式進(jìn)行開發(fā),采用B/S模式,后端部分基于Java的ssm框架進(jìn)行開發(fā)。

前端部分:前端框架采用了比較流行的漸進(jìn)式JavaScript框架Vue.js。使用Vue-Router和Vuex實(shí)現(xiàn)動(dòng)態(tài)路由和全局狀態(tài)管理,Ajax實(shí)現(xiàn)前后端通信,Element UI組件庫使頁面快速成型,項(xiàng)目前端通過柵格布局實(shí)現(xiàn)響應(yīng)式,可適應(yīng)PC端、平板端、手機(jī)端等不同屏幕大小尺寸的完美布局展示。

后端部分:采用ssm作為開發(fā)框架,同時(shí)集成MyBatis、Redis等相關(guān)技術(shù)。

2.2?java技術(shù)

Java語言是在二十世紀(jì)末由Sun公司發(fā)布的,而且公開源代碼,這一優(yōu)點(diǎn)吸引了許多世界各地優(yōu)秀的編程愛好者,也使得他們開發(fā)出當(dāng)時(shí)一款又一款經(jīng)典好玩的小游戲。Java語言是純面向?qū)ο笳Z言之一,從發(fā)布初期到現(xiàn)今,可以說有將近20多年的歷史,已發(fā)展成為人類計(jì)算機(jī)編程語言發(fā)展史上的一個(gè)深遠(yuǎn)影響。

Java語言具有非常多種的特性:(1)跨平臺的無關(guān)性;(2)面向?qū)ο螅?(3)安全性得以保障;(4)支持多個(gè)任務(wù);(5)多種編寫方式,代碼編寫簡單。對比其他的低級語言、高級語言,Java語言具有明顯的顯著優(yōu)勢以及未來開闊的前景,可以廣泛的應(yīng)用在個(gè)人筆記本電腦、大數(shù)據(jù)、大型游戲等等。

首先,Java語言具有面向?qū)ο蟮奶匦?,并且易于理解。關(guān)于對象,其實(shí)可以理解成每一種事物都是一種對象,包括我們?nèi)祟愖陨矶际且环N對象。利用面向?qū)ο笳Z言的基本特征來解決軟件開發(fā)中的實(shí)際問題,為有效軟件開發(fā)提供了技術(shù)支持。

其次,Java 語言具有很好的跨平臺無關(guān)性。所編寫出來的應(yīng)用程序是Java語言編寫的,那么就無需再使用編譯器來修改程序代碼,可以直接在任何計(jì)算機(jī)系統(tǒng)中運(yùn)行,Windows系統(tǒng)可以運(yùn)行,在Linux系統(tǒng)中也可以,也就是經(jīng)過一次編譯,可以到處運(yùn)行,所以Java語言具有卓越的可移植性,可以很好的跨平臺實(shí)現(xiàn)。

2.3?Mysql數(shù)據(jù)庫

mysql 數(shù)據(jù)庫它有很多的優(yōu)點(diǎn),例如它在操作上能夠讓人通俗易懂、功能強(qiáng)大、信息儲存量高等優(yōu)點(diǎn)。所以被人們廣泛應(yīng)用,對于mysql數(shù)據(jù)庫來說它一般主要是對數(shù)據(jù)進(jìn)行編碼和查詢,而且在很多的設(shè)計(jì)當(dāng)中都應(yīng)用到了該數(shù)據(jù)庫,在此過程當(dāng)中我們可以對常規(guī)的數(shù)據(jù)進(jìn)行查詢和組合,所以我們在進(jìn)行使用mysql數(shù)據(jù)庫的時(shí)候只要對編寫一小段的數(shù)據(jù)就能實(shí)現(xiàn)相應(yīng)的功能。數(shù)據(jù)庫,就是數(shù)據(jù)存儲的儲藏室,只不過數(shù)據(jù)是存儲在計(jì)算機(jī)上的,而不是現(xiàn)實(shí)中的儲藏室,數(shù)據(jù)的存放是按固定格式,而不是無序的,則定義就是 :長期有固定格式,可以共享的存儲在計(jì)算機(jī)存儲器上。數(shù)據(jù)庫管理主要包括數(shù)據(jù)表的建立,數(shù)據(jù)存儲、修改和增加數(shù)據(jù),為了使數(shù)據(jù)庫系統(tǒng)能夠正常運(yùn)行,相關(guān)人員進(jìn)行的管理工作。數(shù)據(jù)表的建立,可以對數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行調(diào)整,數(shù)據(jù)的重新組合及重新構(gòu)造,保證數(shù)據(jù)的安全性。

2.4 小程序框架以及目錄結(jié)構(gòu)介紹

整個(gè)小程序框架系統(tǒng)分為兩部分:邏輯層和視圖層。小程序開發(fā)框架的目標(biāo)是通過盡可能簡單、高效的方式讓開發(fā)者可以在微信中開發(fā)具有原生小程序體驗(yàn)的服務(wù)。小程序在視圖層與邏輯層間提供了數(shù)據(jù)傳輸和事件系統(tǒng),提供了自己的視圖層以及邏輯層框架,讓開發(fā)者能夠?qū)W⒂跀?shù)據(jù)與邏輯。框架的核心是一個(gè)響應(yīng)的數(shù)據(jù)綁定系統(tǒng),可以讓數(shù)據(jù)與視圖非常簡單地保持同步。在邏輯層做數(shù)據(jù)修改,在視圖層就會(huì)做相應(yīng)的更新??蚣芴峁┝艘惶谆A(chǔ)的組件,這些組件自帶微信風(fēng)格的樣式以及特殊的邏輯,開發(fā)者可以通過組合基礎(chǔ)組件,創(chuàng)建出強(qiáng)大的微信小程序 。

2.5 spring boot框架介紹

Spring框架是Java平臺上的一種開源應(yīng)用框架,提供具有控制反轉(zhuǎn)特性的容器。盡管Spring框架自身對編程模型沒有限制,但其在Java應(yīng)用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補(bǔ)充,甚至是替補(bǔ)。Spring框架為開發(fā)提供了一系列的解決方案,比如利用控制反轉(zhuǎn)的核心特性,并通過依賴注入實(shí)現(xiàn)控制反轉(zhuǎn)來實(shí)現(xiàn)管理對象生命周期容器化,利用面向切面編程進(jìn)行聲明式的事務(wù)管理,整合多種持久化技術(shù)管理數(shù)據(jù)訪問,提供大量優(yōu)秀的Web框架方便開發(fā)等等。Spring框架具有控制反轉(zhuǎn)(IOC)特性,IOC旨在方便項(xiàng)目維護(hù)和測試,它提供了一種通過Java的反射機(jī)制對Java對象進(jìn)行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對象,開發(fā)者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時(shí)運(yùn)行時(shí)可配置;AOP框架主要針對模塊之間的交叉關(guān)注點(diǎn)進(jìn)行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務(wù)管理、遠(yuǎn)程訪問等功能均可以通過使用SpringAOP技術(shù)實(shí)現(xiàn)。Spring的事務(wù)管理框架為Java平臺帶來了一種抽象機(jī)制,使本地和全局事務(wù)以及嵌套事務(wù)能夠與保存點(diǎn)一起工作,并且?guī)缀蹩梢栽贘ava平臺的任何環(huán)境中工作。Spring集成多種事務(wù)模板,系統(tǒng)可以通過事務(wù)模板、XML或Java注解進(jìn)行事務(wù)配置,并且事務(wù)框架集成了消息傳遞和緩存等功能。Spring的數(shù)據(jù)訪問框架解決了開發(fā)人員在應(yīng)用程序中使用數(shù)據(jù)庫時(shí)遇到的常見困難。它不僅對Java:JDBC、iBATS/MyBATIs、Hibernate、Java數(shù)據(jù)對象(JDO)、ApacheOJB和ApacheCayne等所有流行的數(shù)據(jù)訪問框架中提供支持,同時(shí)還可以與Spring的事務(wù)管理一起使用,為數(shù)據(jù)訪問提供了靈活的抽象。Spring框架最初是沒有打算構(gòu)建一個(gè)自己的WebMVC框架,其開發(fā)人員在開發(fā)過程中認(rèn)為現(xiàn)有的StrutsWeb框架的呈現(xiàn)層和請求處理層之間以及請求處理層和模型之間的分離不夠,于是創(chuàng)建了SpringMVC。

3 系統(tǒng)分析

所謂系統(tǒng)分析就是,管理員通過與用戶客戶端的溝通,所獲取的信息,然后把這些信息通過需求說明書的方式展示給用戶和開發(fā)人員。在軟件功能發(fā)展的歷史長河中,很長時(shí)間,特別是最開始的時(shí)候,需求分析的重要性并不被人們所認(rèn)同,例如當(dāng)時(shí)美國IBM公司為英國電信公司開發(fā)一套信息管理系統(tǒng),在需求不明確的情況下開始開發(fā),最初的工期為一年,由于需求獲取不清晰導(dǎo)致工期推遲了半年多,造成巨大損失。我們很多軟件公司也存在這種情況,邊需求,邊開發(fā),甚至與客戶沒有溝通清楚的情況下,直接照搬同類型的項(xiàng)目進(jìn)行更改,導(dǎo)致到系統(tǒng)驗(yàn)收的時(shí)候,重新更改,造成了人力、物力的極大浪費(fèi)。而導(dǎo)致這一切后果的原因就是需求獲取不及時(shí)、不清楚、不全面。

3.1 可行性分析

微信小程序的學(xué)生選課系統(tǒng)主要目標(biāo)是實(shí)現(xiàn)學(xué)生在線選課、查看課程信息等相關(guān)信息管理服務(wù)。在確定了目標(biāo)后,我們從以下四方面對能否實(shí)現(xiàn)本系統(tǒng)目標(biāo)進(jìn)行可行性分析。

3.1.1 技術(shù)可行性

學(xué)生選課系統(tǒng)主要采用微信小程序技術(shù),java語言,Mysql數(shù)據(jù)庫,對于應(yīng)用程序的開發(fā)要求具備完整功能,使用簡單的特點(diǎn),并建立一個(gè)數(shù)據(jù)完整安全穩(wěn)定的數(shù)據(jù)庫。微信小程序的學(xué)生選課系統(tǒng)的開發(fā)技術(shù)具有很高可行性,且開發(fā)人員掌握了一定的開發(fā)技術(shù),所以系統(tǒng)的開發(fā)具有可行性。

3.1.2操作可行性

微信小程序的學(xué)生選課系統(tǒng)的登錄界面簡單易于操作,采用常見的界面窗口來登錄界面,通過電腦進(jìn)行訪問操作,用戶只要平時(shí)使用過電腦都能進(jìn)行訪問操作。此系統(tǒng)的開發(fā)采用微信小程序開發(fā),后臺結(jié)合java語言,這些開發(fā)環(huán)境使系統(tǒng)更加完善。本系統(tǒng)具有易操作、易管理、交互性好的特點(diǎn),在操作上是非常簡單的。因此本系統(tǒng)可以進(jìn)行開發(fā)。

3.1.3 經(jīng)濟(jì)可行性

微信小程序的學(xué)生選課系統(tǒng)是服務(wù)端基于B/S模式、java技術(shù),客戶端采用微信小程序、采用Mysql數(shù)據(jù)庫儲存數(shù)據(jù),所要求的硬件和軟件環(huán)境,市場上都很容易購買,程序開發(fā)主要是管理系統(tǒng)的開發(fā)和維護(hù)。所以程序在開發(fā)人力、財(cái)力上要求不高,而且此系統(tǒng)不是很復(fù)雜,開發(fā)周期短,在經(jīng)濟(jì)方面具有較高的可行性。

3.1.4 法律可行性

此微信小程序的學(xué)生選課系統(tǒng)是自己設(shè)計(jì)的管理系統(tǒng),具有很大的實(shí)際意義。因?yàn)闊o論是軟件還是數(shù)據(jù)庫,采用的都是開源代碼,因此這個(gè)系統(tǒng)的開發(fā)和設(shè)計(jì),并不存在侵權(quán)等問題,在法律上完全具有可行性。

綜上所述,微信小程序的學(xué)生選課系統(tǒng)在技術(shù)、經(jīng)濟(jì)、操作和法律上都具有很高的可行性,開發(fā)此程序是可行的。

3.2系統(tǒng)流程分析

3.2.1系統(tǒng)開發(fā)流程

微信小程序的學(xué)生選課系統(tǒng)開發(fā)時(shí),首先進(jìn)行需求分析,進(jìn)而對系統(tǒng)進(jìn)行總體的設(shè)計(jì)規(guī)劃,設(shè)計(jì)系統(tǒng)功能模塊,數(shù)據(jù)庫的選擇等,本系統(tǒng)的開發(fā)流程如圖3-1所示

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖3-1系統(tǒng)開發(fā)流程圖

3.2.2 用戶登錄流程

為了保證系統(tǒng)的安全性,要使用本系統(tǒng)對系統(tǒng)信息進(jìn)行管理,必須先登陸到系統(tǒng)中。如圖3-3所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖3-2 登錄流程圖

3.2.3 系統(tǒng)操作流程

用戶打開客戶端并進(jìn)入系統(tǒng)后,會(huì)先顯示登錄界面,輸入正確的用戶名和密碼,系統(tǒng)自動(dòng)檢測信息,若信息無誤,則用戶會(huì)進(jìn)入系統(tǒng)功能界面,進(jìn)行操作,否則會(huì)提示錯(cuò)誤無法登錄,操作流程如圖3-3所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖3-3 系統(tǒng)操作流程圖

3.2.4 添加信息流程

管理員可以對用戶信息等進(jìn)行信息的添加、刪除、修改,用戶也可以對自己權(quán)限內(nèi)的信息進(jìn)行添加刪除、修改等等操作,輸入信息后,系統(tǒng)會(huì)自行驗(yàn)證輸入的信息和數(shù)據(jù),若信息正確,會(huì)將其添加到數(shù)據(jù)庫內(nèi),若信息有誤,則會(huì)提示重新輸入信息,添加信息流程如圖3-4所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖3-4 添加信息流程圖

3.2.5 修改信息流程

管理員可以對選課信息、課程信息、新聞資訊等進(jìn)行信息的修改,用戶也可以對自己權(quán)限內(nèi)的信息進(jìn)行修改,首先進(jìn)入修改信息界面,輸入修改信息數(shù)據(jù),系統(tǒng)進(jìn)行數(shù)據(jù)的判斷驗(yàn)證,修改信息合法則修改成功,信息更新至數(shù)據(jù)庫,信息不合法則修改失敗,重新輸入。修改信息流程圖如圖3-5所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖3-5 修改信息流程圖

3.2.6 刪除信息流程

管理員可以對微信小程序的學(xué)生選課系統(tǒng)管理等進(jìn)行信息的刪除,對要?jiǎng)h除的信息進(jìn)行選中后,點(diǎn)擊刪除按鈕,系統(tǒng)會(huì)詢問是否確定,若點(diǎn)擊確定,則系統(tǒng)會(huì)刪除掉選中的信息,并在數(shù)據(jù)庫內(nèi)對信息進(jìn)行刪除,刪除信息流程圖如圖3-6所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖3-6 刪除信息流程圖

3.3用例分析

1.學(xué)生用戶主要使用系統(tǒng)的微信小程序的學(xué)生選課系統(tǒng)查看首頁、新聞資訊、交流論壇、課程信息、選課信息、網(wǎng)站公告、基本信息等,下圖所示為學(xué)生用戶的用例圖。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖3-1 學(xué)生用戶用例圖

2.講師用戶主要使用系統(tǒng)的微信小程序的學(xué)生選課系統(tǒng)查看首頁、新聞資訊、交流論壇、課程信息、選課信息、網(wǎng)站公告、基本信息等,下圖所示為講師用戶的用例圖。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖3-2?講師用戶用例圖

3.管理員主要負(fù)責(zé)首頁、輪播圖管理、系統(tǒng)公告管理、資源管理(新聞資訊、新聞分類)交流管理(交流論壇、論壇分類)系統(tǒng)用戶(管理員、學(xué)生用戶、講師用戶)模塊管理(課程類型、課程信息、選課信息)等功能模塊,下圖所示描述管理員的用例圖。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖3-3?管理員用例圖

3.4系統(tǒng)流程分析

3.4.1添加信息流程

添加信息,編號系統(tǒng)使用自動(dòng)編號模式,沒有用戶填寫,用戶添加信息輸入信息,系統(tǒng)將自動(dòng)確認(rèn)的信息和數(shù)據(jù),驗(yàn)證的成功是有效的信息添加到數(shù)據(jù)庫,信息無效,重新輸入信息。添加信息流程如圖3-3所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖3-3?添加信息流程圖

3.4.2操作流程

用戶想進(jìn)入系統(tǒng),首先進(jìn)入系統(tǒng)登錄界面,通過正確的用戶名、密碼,選擇登錄類型登錄,系統(tǒng)會(huì)檢查登錄信息,信息正確,然后輸入相應(yīng)的功能界面,提示信息錯(cuò)誤,登錄失敗。系統(tǒng)操作流程如圖3-4所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖3-4操作流程圖

3.4.3刪除信息流程

用戶選擇要?jiǎng)h除的信息并單擊Delete按鈕。系統(tǒng)提示是否刪除信息。如果用戶想要?jiǎng)h除信息,系統(tǒng)將刪除信息。系統(tǒng)數(shù)據(jù)庫刪除信息。刪除信息流程圖如圖3-5所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

3-5?刪除信息流程圖

4系統(tǒng)概述

進(jìn)過系統(tǒng)的分析后,就開始記性系統(tǒng)的設(shè)計(jì),系統(tǒng)設(shè)計(jì)包含總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)??傮w設(shè)計(jì)只是一個(gè)大體的設(shè)計(jì),經(jīng)過了總體設(shè)計(jì),我們能夠劃分出系統(tǒng)的一些東西,例如文件、文檔、數(shù)據(jù)等。而且我們通過總體設(shè)計(jì),大致可以劃分出了程序的模塊,以及功能。但是只是一個(gè)初步的分類,并沒有真正的實(shí)現(xiàn)。

整體設(shè)計(jì),只是一個(gè)初步設(shè)計(jì),而且,對于一個(gè)項(xiàng)目,我們可以進(jìn)行多個(gè)整體設(shè)計(jì),通過對比,包括性能的對比、成本的對比、效益的對比,來最終確定一個(gè)最優(yōu)的設(shè)計(jì)方案,選擇優(yōu)秀的整體設(shè)計(jì)可以降低開發(fā)成本,增加公司效益,從這一點(diǎn)來講,整體設(shè)計(jì)還是非常重要的。

微信小程序的學(xué)生選課系統(tǒng)工作原理圖如圖4-1所示:

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖4-1 系統(tǒng)工作原理圖

4.1?系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

系統(tǒng)架構(gòu)圖屬于系統(tǒng)設(shè)計(jì)階段,系統(tǒng)架構(gòu)圖只是這個(gè)階段一個(gè)產(chǎn)物,系統(tǒng)的總體架構(gòu)決定了整個(gè)系統(tǒng)的模式,是系統(tǒng)的基礎(chǔ)?;谖⑿判〕绦虻膶W(xué)生選課系統(tǒng)的整體結(jié)構(gòu)設(shè)計(jì)如圖4-2所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

4-2 系統(tǒng)結(jié)構(gòu)圖

4.2數(shù)據(jù)庫設(shè)計(jì)

數(shù)據(jù)庫是計(jì)算機(jī)信息系統(tǒng)的基礎(chǔ)。目前,電腦系統(tǒng)的關(guān)鍵與核心部分就是數(shù)據(jù)庫。數(shù)據(jù)庫開發(fā)的優(yōu)劣對整個(gè)系統(tǒng)的質(zhì)量和速度有著直接影響。

4.2.1 數(shù)據(jù)庫設(shè)計(jì)原則

概念模式它主要是建立在數(shù)據(jù)需求分析的基礎(chǔ)上,它通常是用概念數(shù)據(jù)模型來表示各個(gè)數(shù)據(jù)之間的聯(lián)系,并且對系統(tǒng)用戶進(jìn)行信息的處理和管理,同時(shí)建立起E-R圖來表示具體的實(shí)體、屬性和聯(lián)系的關(guān)系。

4.2.2 數(shù)據(jù)庫實(shí)體

4.3?數(shù)據(jù)庫設(shè)計(jì)原則

每個(gè)數(shù)據(jù)庫的應(yīng)用它們都是和區(qū)分開的,當(dāng)運(yùn)行到一定的程序當(dāng)中,它就會(huì)與自己相關(guān)的協(xié)議與客戶端進(jìn)行通訊。那么這個(gè)系統(tǒng)就會(huì)對使這些數(shù)據(jù)進(jìn)行連接。當(dāng)我們選擇哪個(gè)橋段的時(shí)候,接下來就會(huì)簡單的敘述這個(gè)數(shù)據(jù)庫是如何來創(chuàng)建的。當(dāng)點(diǎn)擊完成按鈕的時(shí)候就會(huì)自動(dòng)在對話框內(nèi)彈出數(shù)據(jù)源的名稱,在進(jìn)行點(diǎn)擊下一步即可,直接在輸入相對應(yīng)的身份驗(yàn)證和登錄密碼。?

微信小程序的學(xué)生選課系統(tǒng)的數(shù)據(jù)流程:

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖4-4??系統(tǒng)數(shù)據(jù)流程圖

微信小程序的學(xué)生選課系統(tǒng)實(shí)體E-R圖,如圖4.5所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖4.5實(shí)體E-R圖

4.3.1?數(shù)據(jù)庫表設(shè)計(jì)

數(shù)據(jù)庫的表信息屬于設(shè)計(jì)的一部分,下面介紹數(shù)據(jù)庫中的各個(gè)表的詳細(xì)信息。

表access_token (登陸訪問時(shí)長)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

token_id

int

10

0

N

Y

臨時(shí)訪問牌ID

2

token

varchar

64

0

Y

N

臨時(shí)訪問牌

3

info

text

65535

0

Y

N

4

maxage

int

10

0

N

N

2

最大壽命:默認(rèn)2小時(shí)

5

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

6

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

7

user_id

int

10

0

N

N

0

用戶編號:

表article (文章:用于內(nèi)容管理系統(tǒng)的文章)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

article_id

mediumint

8

0

N

Y

文章id:[0,8388607]

2

title

varchar

125

0

N

Y

標(biāo)題:[0,125]用于文章和html的title標(biāo)簽中

3

type

varchar

64

0

N

N

0

文章分類:[0,1000]用來搜索指定類型的文章

4

hits

int

10

0

N

N

0

點(diǎn)擊數(shù):[0,1000000000]訪問這篇文章的人次

5

praise_len

int

10

0

N

N

0

點(diǎn)贊數(shù)

6

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

7

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

8

source

varchar

255

0

Y

N

來源:[0,255]文章的出處

9

url

varchar

255

0

Y

N

來源地址:[0,255]用于跳轉(zhuǎn)到發(fā)布該文章的網(wǎng)站

10

tag

varchar

255

0

Y

N

標(biāo)簽:[0,255]用于標(biāo)注文章所屬相關(guān)內(nèi)容,多個(gè)標(biāo)簽用空格隔開

11

content

longtext

2147483647

0

Y

N

正文:文章的主體內(nèi)容

12

img

varchar

255

0

Y

N

封面圖

13

description

text

65535

0

Y

N

文章描述

表article_type (文章分類)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

type_id

smallint

5

0

N

Y

分類ID:[0,10000]

2

display

smallint

5

0

N

N

100

顯示順序:[0,1000]決定分類顯示的先后順序

3

name

varchar

16

0

N

N

分類名稱:[2,16]

4

father_id

smallint

5

0

N

N

0

上級分類ID:[0,32767]

5

description

varchar

255

0

Y

N

描述:[0,255]描述該分類的作用

6

icon

text

65535

0

Y

N

分類圖標(biāo):

7

url

varchar

255

0

Y

N

外鏈地址:[0,255]如果該分類是跳轉(zhuǎn)到其他網(wǎng)站的情況下,就在該URL上設(shè)置

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

表auth (用戶權(quán)限管理)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

auth_id

int

10

0

N

Y

授權(quán)ID:

2

user_group

varchar

64

0

Y

N

用戶組:

3

mod_name

varchar

64

0

Y

N

模塊名:

4

table_name

varchar

64

0

Y

N

表名:

5

page_title

varchar

255

0

Y

N

頁面標(biāo)題:

6

path

varchar

255

0

Y

N

路由路徑:

7

position

varchar

32

0

Y

N

位置:

8

mode

varchar

32

0

N

N

_blank

跳轉(zhuǎn)方式:

9

add

tinyint

3

0

N

N

1

是否可增加:

10

del

tinyint

3

0

N

N

1

是否可刪除:

11

set

tinyint

3

0

N

N

1

是否可修改:

12

get

tinyint

3

0

N

N

1

是否可查看:

13

field_add

text

65535

0

Y

N

添加字段:

14

field_set

text

65535

0

Y

N

修改字段:

15

field_get

text

65535

0

Y

N

查詢字段:

16

table_nav_name

varchar

500

0

Y

N

跨表導(dǎo)航名稱:

17

table_nav

varchar

500

0

Y

N

跨表導(dǎo)航:

18

option

text

65535

0

Y

N

配置:

19

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

20

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

表collect (收藏)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

collect_id

int

10

0

N

Y

收藏ID:

2

user_id

int

10

0

N

N

0

收藏人ID:

3

source_table

varchar

255

0

Y

N

來源表:

4

source_field

varchar

255

0

Y

N

來源字段:

5

source_id

int

10

0

N

N

0

來源ID:

6

title

varchar

255

0

Y

N

標(biāo)題:

7

img

varchar

255

0

Y

N

封面:

8

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

表comment (評論)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

comment_id

int

10

0

N

Y

評論ID:

2

user_id

int

10

0

N

N

0

評論人ID:

3

reply_to_id

int

10

0

N

N

0

回復(fù)評論ID:空為0

4

content

longtext

2147483647

0

Y

N

內(nèi)容:

5

nickname

varchar

255

0

Y

N

昵稱:

6

avatar

varchar

255

0

Y

N

頭像地址:[0,255]

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

9

source_table

varchar

255

0

Y

N

來源表:

10

source_field

varchar

255

0

Y

N

來源字段:

11

source_id

int

10

0

N

N

0

來源ID:

表course_information (課程信息)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

course_information_id

int

10

0

N

Y

課程信息ID

2

course_no

varchar

64

0

Y

N

課程編號

3

course_name

varchar

64

0

Y

N

課程名稱

4

cover

varchar

255

0

Y

N

封面

5

course_type

varchar

64

0

Y

N

課程類型

6

course_location

varchar

64

0

Y

N

開課地點(diǎn)

7

opening_time

varchar

64

0

Y

N

開課時(shí)間

8

lecturer_user

int

10

0

Y

N

0

講師用戶

9

lecturer_name

varchar

64

0

Y

N

講師姓名

10

course_details

text

65535

0

Y

N

課程詳情

11

hits

int

10

0

N

N

0

點(diǎn)擊數(shù)

12

recommend

int

10

0

N

N

0

智能推薦

13

timer_title

varchar

64

0

Y

N

計(jì)時(shí)器標(biāo)題

14

timing_start_time

datetime

19

0

Y

N

計(jì)時(shí)開始時(shí)間

15

timing_end_time

datetime

19

0

Y

N

計(jì)時(shí)結(jié)束時(shí)間

16

limit_times

int

10

0

N

N

0

限制次數(shù)

17

limit_type

tinyint

4

0

N

N

2

限制次數(shù)類型1-每天次,2-總計(jì)次

18

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間

19

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間

表course_selection_information (選課信息)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

course_selection_information_id

int

10

0

N

Y

選課信息ID

2

course_no

varchar

64

0

Y

N

課程編號

3

course_name

varchar

64

0

Y

N

課程名稱

4

cover

varchar

255

0

Y

N

封面

5

course_type

varchar

64

0

Y

N

課程類型

6

course_location

varchar

64

0

Y

N

開課地點(diǎn)

7

opening_time

varchar

64

0

Y

N

開課時(shí)間

8

lecturer_user

int

10

0

Y

N

0

講師用戶

9

lecturer_name

varchar

64

0

Y

N

講師姓名

10

student_users

int

10

0

Y

N

0

學(xué)生用戶

11

student_id

varchar

64

0

Y

N

學(xué)生學(xué)號

12

student_name

varchar

64

0

Y

N

學(xué)生姓名

13

recommend

int

10

0

N

N

0

智能推薦

14

user_id

int

10

0

N

N

0

用戶ID

15

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間

16

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間

表course_type (課程類型)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

course_type_id

int

10

0

N

Y

課程類型ID

2

course_type

varchar

64

0

Y

N

課程類型

3

recommend

int

10

0

N

N

0

智能推薦

4

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間

表forum (論壇)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

forum_id

mediumint

8

0

N

Y

論壇id

2

display

smallint

5

0

N

N

100

排序

3

user_id

mediumint

8

0

N

N

0

用戶ID

4

nickname

varchar

16

0

Y

N

昵稱:[0,16]

5

praise_len

int

10

0

Y

N

0

點(diǎn)贊數(shù)

6

hits

int

10

0

N

N

0

訪問數(shù)

7

title

varchar

125

0

N

N

標(biāo)題

8

keywords

varchar

125

0

Y

N

關(guān)鍵詞

9

description

varchar

255

0

Y

N

描述

10

url

varchar

255

0

Y

N

來源地址

11

tag

varchar

255

0

Y

N

標(biāo)簽

12

img

text

65535

0

Y

N

封面圖

13

content

longtext

2147483647

0

Y

N

正文

14

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

15

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

16

avatar

varchar

255

0

Y

N

發(fā)帖人頭像:

17

type

varchar

64

0

N

N

0

論壇分類:[0,1000]用來搜索指定類型的論壇帖

表forum_type (論壇分類)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

type_id

smallint

5

0

N

Y

分類ID:[0,10000]

2

name

varchar

16

0

N

N

分類名稱:[2,16]

3

description

varchar

255

0

Y

N

描述:[0,255]描述該分類的作用

4

url

varchar

255

0

Y

N

外鏈地址:[0,255]如果該分類是跳轉(zhuǎn)到其他網(wǎng)站的情況下,就在該URL上設(shè)置

5

father_id

smallint

5

0

N

N

0

上級分類ID:[0,32767]

6

icon

varchar

255

0

Y

N

分類圖標(biāo):

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

表hits (用戶點(diǎn)擊)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

hits_id

int

10

0

N

Y

點(diǎn)贊ID:

2

user_id

int

10

0

N

N

0

點(diǎn)贊人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

5

source_table

varchar

255

0

Y

N

來源表:

6

source_field

varchar

255

0

Y

N

來源字段:

7

source_id

int

10

0

N

N

0

來源ID:

表lecturer_user (講師用戶)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

lecturer_user_id

int

10

0

N

Y

講師用戶ID

2

lecturer_name

varchar

64

0

Y

N

講師姓名

3

lecturer_gender

varchar

64

0

Y

N

講師性別

4

examine_state

varchar

16

0

N

N

已通過

審核狀態(tài)

5

recommend

int

10

0

N

N

0

智能推薦

6

user_id

int

10

0

N

N

0

用戶ID

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間

表notice (公告)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

notice_id

mediumint

8

0

N

Y

公告id:

2

title

varchar

125

0

N

N

標(biāo)題:

3

content

longtext

2147483647

0

Y

N

正文:

4

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

5

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

表praise (點(diǎn)贊)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

praise_id

int

10

0

N

Y

點(diǎn)贊ID:

2

user_id

int

10

0

N

N

0

點(diǎn)贊人:

3

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

5

source_table

varchar

255

0

Y

N

來源表:

6

source_field

varchar

255

0

Y

N

來源字段:

7

source_id

int

10

0

N

N

0

來源ID:

8

status

bit

1

0

N

N

1

點(diǎn)贊狀態(tài):1為點(diǎn)贊,0已取消

表slides (輪播圖)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

slides_id

int

10

0

N

Y

輪播圖ID:

2

title

varchar

64

0

Y

N

標(biāo)題:

3

content

varchar

255

0

Y

N

內(nèi)容:

4

url

varchar

255

0

Y

N

鏈接:

5

img

varchar

255

0

Y

N

輪播圖:

6

hits

int

10

0

N

N

0

點(diǎn)擊量:

7

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

表student_users (學(xué)生用戶)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

student_users_id

int

10

0

N

Y

學(xué)生用戶ID

2

student_id

varchar

64

0

N

N

學(xué)生學(xué)號

3

student_name

varchar

64

0

Y

N

學(xué)生姓名

4

student_gender

varchar

64

0

Y

N

學(xué)生性別

5

examine_state

varchar

16

0

N

N

已通過

審核狀態(tài)

6

recommend

int

10

0

N

N

0

智能推薦

7

user_id

int

10

0

N

N

0

用戶ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間

表upload (文件上傳)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

upload_id

int

10

0

N

Y

上傳ID

2

name

varchar

64

0

Y

N

文件名

3

path

varchar

255

0

Y

N

訪問路徑

4

file

varchar

255

0

Y

N

文件路徑

5

display

varchar

255

0

Y

N

顯示順序

6

father_id

int

10

0

Y

N

0

父級ID

7

dir

varchar

255

0

Y

N

文件夾

8

type

varchar

32

0

Y

N

文件類型

表user (用戶賬戶:用于保存用戶登錄信息)

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

user_id

mediumint

8

0

N

Y

用戶ID:[0,8388607]用戶獲取其他與用戶相關(guān)的數(shù)據(jù)

2

state

smallint

5

0

N

N

1

賬戶狀態(tài):[0,10](1可用|2異常|3已凍結(jié)|4已注銷)

3

user_group

varchar

32

0

Y

N

所在用戶組:[0,32767]決定用戶身份和權(quán)限

4

login_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

上次登錄時(shí)間:

5

phone

varchar

11

0

Y

N

手機(jī)號碼:[0,11]用戶的手機(jī)號碼,用于找回密碼時(shí)或登錄時(shí)

6

phone_state

smallint

5

0

N

N

0

手機(jī)認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)

7

username

varchar

16

0

N

N

用戶名:[0,16]用戶登錄時(shí)所用的賬戶名稱

8

nickname

varchar

16

0

Y

N

昵稱:[0,16]

9

password

varchar

64

0

N

N

密碼:[0,32]用戶登錄所需的密碼,由6-16位數(shù)字或英文組成

10

email

varchar

64

0

Y

N

郵箱:[0,64]用戶的郵箱,用于找回密碼時(shí)或登錄時(shí)

11

email_state

smallint

5

0

N

N

0

郵箱認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)

12

avatar

varchar

255

0

Y

N

頭像地址:[0,255]

13

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

表user_group (用戶組:用于用戶前端身份和鑒權(quán))

編號

名稱

數(shù)據(jù)類型

長度

小數(shù)位

允許空值

主鍵

默認(rèn)值

說明

1

group_id

mediumint

8

0

N

Y

用戶組ID:[0,8388607]

2

display

smallint

5

0

N

N

100

顯示順序:[0,1000]

3

name

varchar

16

0

N

N

名稱:[0,16]

4

description

varchar

255

0

Y

N

描述:[0,255]描述該用戶組的特點(diǎn)或權(quán)限范圍

5

source_table

varchar

255

0

Y

N

來源表:

6

source_field

varchar

255

0

Y

N

來源字段:

7

source_id

int

10

0

N

N

0

來源ID:

8

register

smallint

5

0

Y

N

0

注冊位置:

9

create_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

創(chuàng)建時(shí)間:

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新時(shí)間:

5系統(tǒng)界面實(shí)現(xiàn)

5.1管理員功能模塊

管理員輸入個(gè)人的賬號、密碼登錄系統(tǒng),這時(shí)候系統(tǒng)的數(shù)據(jù)庫就會(huì)在進(jìn)行查找相關(guān)的信息,如果我們輸入的賬號、密碼不正確,數(shù)據(jù)庫就會(huì)提示出錯(cuò)誤的信息提示,同時(shí)會(huì)提示管理員重新輸入自己的賬號、密碼,直到賬號密碼輸入成功后,會(huì)提示登錄成功的信息。管理員登錄效果圖如圖5.1所示:

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.1登錄界面

登錄代碼如下:

/**

?????* 登錄

?????* @param data

?????* @param httpServletRequest

?????* @return

?????*/

????@PostMapping("login")

????public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

????????log.info("[執(zhí)行登錄接口]");

????????String username = data.get("username");

????????String email = data.get("email");

????????String phone = data.get("phone");

????????String password = data.get("password");

????????List resultList = null;

????????Map<String, String> map = new HashMap<>();

????????if(username != null && "".equals(username) == false){

????????????map.put("username", username);

????????????resultList = service.select(map, new HashMap<>()).getResultList();

????????}

????????else if(email != null && "".equals(email) == false){

????????????map.put("email", email);

????????????resultList = service.select(map, new HashMap<>()).getResultList();

????????}

????????else if(phone != null && "".equals(phone) == false){

????????????map.put("phone", phone);

????????????resultList = service.select(map, new HashMap<>()).getResultList();

????????}else{

????????????return error(30000, "賬號或密碼不能為空");

????????}

????????if (resultList == null || password == null) {

????????????return error(30000, "賬號或密碼不能為空");

????????}

????????//判斷是否有這個(gè)用戶

????????if (resultList.size()<=0){

????????????return error(30000,"用戶不存在");

????????}

????????User byUsername = (User) resultList.get(0);

????????Map<String, String> groupMap = new HashMap<>();

????????groupMap.put("name",byUsername.getUserGroup());

????????List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

????????if (groupList.size()<1){

????????????return error(30000,"用戶組不存在");

????????}

????????UserGroup userGroup = (UserGroup) groupList.get(0);

????????//查詢用戶審核狀態(tài)

????????if (!StringUtils.isEmpty(userGroup.getSourceTable())){

????????????String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

????????????String res = String.valueOf(service.runCountSql(sql).getSingleResult());

????????????if (res==null){

????????????????return error(30000,"用戶不存在");

????????????}

????????????if (!res.equals("已通過")){

????????????????return error(30000,"該用戶審核未通過");

????????????}

????????}

????????//查詢用戶狀態(tài)

????????if (byUsername.getState()!=1){

????????????return error(30000,"用戶非可用狀態(tài),不能登錄");

????????}

????????String md5password = service.encryption(password);

????????if (byUsername.getPassword().equals(md5password)) {

????????????// 存儲Token到數(shù)據(jù)庫

????????????AccessToken accessToken = new AccessToken();

????????????accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

????????????accessToken.setUser_id(byUsername.getUserId());

????????????tokenService.save(accessToken);

????????????// 返回用戶信息

????????????JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

????????????user.put("token", accessToken.getToken());

????????????JSONObject ret = new JSONObject();

????????????ret.put("obj",user);

????????????return success(ret);

????????} else {

????????????return error(30000, "賬號或密碼不正確");

????????}

}

管理員可以查看后臺服務(wù)端首頁、輪播圖管理、系統(tǒng)公告管理、資源管理(新聞資訊、新聞分類)交流管理(論壇列表、論壇分類)模塊管理(課程類型、課程信息、選課信息)等功能模塊,還可進(jìn)行相應(yīng)的操作。管理員服務(wù)端效果圖如圖5.2所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.2管理員服務(wù)端界面圖

管理員功能頁代碼如下:

???@RequestMapping("/get_obj")

????public Map<String, Object> obj(HttpServletRequest request) {

????????Query select = service.select(service.readQuery(request), service.readConfig(request));

????????List resultList = select.getResultList();

????????if (resultList.size() > 0) {

????????????JSONObject jsonObject = new JSONObject();

????????????jsonObject.put("obj",resultList.get(0));

????????????return success(jsonObject);

????????} else {

????????????return success(null);

????????}

}

?public Query select(Map<String,String> query,Map<String,String> config){

????????StringBuffer sql = new StringBuffer("select ");

????????sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

????????sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

????????if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

????????????sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

????????}

????????if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

????????????sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

????????}

????????if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

????????????int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

????????????int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

????????????sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

????????}

????????log.info("[{}] - 查詢操作,sql: {}",table,sql);

????????return runEntitySql(sql.toString());

????}

系統(tǒng)用戶管理

管理員對注冊用戶進(jìn)行審核等操作,并可進(jìn)行進(jìn)行刪除、修改、查看等操作。系統(tǒng)用戶管理效果圖如圖5.3所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.3系統(tǒng)用戶管理界面圖

用戶管理代碼如下:

???@RequestMapping("/get_list")

????public Map<String, Object> getList(HttpServletRequest request) {

????????Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

????????return success(map);

}

資源管理

管理員在此頁面可查看新聞資訊和新聞分類兩個(gè)子菜單,可對這兩個(gè)子菜單進(jìn)行添加、重置、查詢、刪除等操作。資源管理如圖5.4所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.4資源管理界面圖

資源管理代碼如下:

?@PostMapping("/upload")

????public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {

????????log.info("進(jìn)入方法");

????????if (file.isEmpty()) {

????????????return error(30000, "沒有選擇文件");

????????}

????????try {

????????????//判斷有沒路徑,沒有則創(chuàng)建

????????????String filePath = System.getProperty("user.dir") + "\\target\\classes\\static\\upload\\";

????????????File targetDir = new File(filePath);

????????????if (!targetDir.exists() && !targetDir.isDirectory()) {

????????????????if (targetDir.mkdirs()) {

????????????????????log.info("創(chuàng)建目錄成功");

????????????????} else {

????????????????????log.error("創(chuàng)建目錄失敗");

????????????????}

????????????}

????????????String fileName = file.getOriginalFilename();

????????????File dest = new File(filePath + fileName);

????????????log.info("文件路徑:{}", dest.getPath());

????????????log.info("文件名:{}", dest.getName());

????????????file.transferTo(dest);

????????????JSONObject jsonObject = new JSONObject();

????????????jsonObject.put("url", "/api/upload/" + fileName);

????????????return success(jsonObject);

????????} catch (IOException e) {

????????????log.info("上傳失?。簕}", e.getMessage());

????????}

????????return error(30000, "上傳失敗");

}

交流管理

管理員在此頁面可看到論壇列表和論壇分類兩個(gè)子菜單,可對這兩個(gè)子菜單進(jìn)行添加、重置、查詢、刪除等操作。交流管理如圖5.5所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.5交流管理界面圖

交流管理代碼如下:

?@PostMapping("/add")

????@Transactional

????public Map<String, Object> add(HttpServletRequest request) throws IOException {

????????service.insert(service.readBody(request.getReader()));

????????return success(1);

????}

????@Transactional

????public Map<String, Object> addMap(Map<String,Object> map){

????????service.insert(map);

????????return success(1);

}

????public Map<String,Object> readBody(BufferedReader reader){

????????BufferedReader br = null;

????????StringBuilder sb = new StringBuilder("");

????????try{

????????????br = reader;

????????????String str;

????????????while ((str = br.readLine()) != null){

????????????????sb.append(str);

????????????}

????????????br.close();

????????????String json = sb.toString();

????????????return JSONObject.parseObject(json, Map.class);

????????}catch (IOException e){

????????????e.printStackTrace();

????????}finally{

????????????if (null != br){

????????????????try{

????????????????????br.close();

????????????????}catch (IOException e){

????????????????????e.printStackTrace();

????????????????}

????????????}

????????}

????????return null;

}

????public void insert(Map<String,Object> body){

????????StringBuffer sql = new StringBuffer("INSERT INTO ");

????????sql.append("`").append(table).append("`").append(" (");

????????for (Map.Entry<String,Object> entry:body.entrySet()){

????????????sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

????????}

????????sql.deleteCharAt(sql.length()-1);

????????sql.append(") VALUES (");

????????for (Map.Entry<String,Object> entry:body.entrySet()){

????????????Object value = entry.getValue();

????????????if (value instanceof String){

????????????????sql.append("'").append(entry.getValue()).append("'").append(",");

????????????}else {

????????????????sql.append(entry.getValue()).append(",");

????????????}

????????}

????????sql.deleteCharAt(sql.length() - 1);

????????sql.append(")");

????????log.info("[{}] - 插入操作:{}",table,sql);

????????Query query = runCountSql(sql.toString());

????????query.executeUpdate();

????}

5.2學(xué)生用戶端功能模塊

學(xué)生用戶注冊

學(xué)生用戶注冊在登陸頁面填寫賬號、密碼、郵箱、昵稱、用戶姓名、手機(jī)號碼等信息,進(jìn)行注冊如圖5.7所示

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.7學(xué)生用戶注冊界面圖

注冊代碼如下:

/**

?????* 注冊

?????* @param user

?????* @return

?????*/

????@PostMapping("register")

????public Map<String, Object> signUp(@RequestBody User user) {

????????// 查詢用戶

????????Map<String, String> query = new HashMap<>();

????????query.put("username",user.getUsername());

????????List list = service.select(query, new HashMap<>()).getResultList();

????????if (list.size()>0){

????????????return error(30000, "用戶已存在");

????????}

????????user.setUserId(null);

????????user.setPassword(service.encryption(user.getPassword()));

????????service.save(user);

????????return success(1);

}

/**

?????* 用戶ID:[0,8388607]用戶獲取其他與用戶相關(guān)的數(shù)據(jù)

?????*/

????@Id

????@GeneratedValue(strategy = GenerationType.IDENTITY)

????@Column(name = "user_id")

????private Integer userId;

????/**

?????* 賬戶狀態(tài):[0,10](1可用|2異常|3已凍結(jié)|4已注銷)

?????*/

????@Basic

????@Column(name = "state")

????private Integer state;

????/**

?????* 所在用戶組:[0,32767]決定用戶身份和權(quán)限

?????*/

????@Basic

????@Column(name = "user_group")

????private String userGroup;

????/**

?????* 上次登錄時(shí)間:

?????*/

????@Basic

????@Column(name = "login_time")

????private Timestamp loginTime;

????/**

?????* 手機(jī)號碼:[0,11]用戶的手機(jī)號碼,用于找回密碼時(shí)或登錄時(shí)

?????*/

????@Basic

????@Column(name = "phone")

????private String phone;

????/**

?????* 手機(jī)認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)

?????*/

????@Basic

????@Column(name = "phone_state")

????private Integer phoneState;

????/**

?????* 用戶名:[0,16]用戶登錄時(shí)所用的賬戶名稱

?????*/

????@Basic

????@Column(name = "username")

????private String username;

????/**

?????* 昵稱:[0,16]

?????*/

????@Basic

????@Column(name = "nickname")

????private String nickname;

????/**

?????* 密碼:[0,32]用戶登錄所需的密碼,由6-16位數(shù)字或英文組成

?????*/

????@Basic

????@Column(name = "password")

????private String password;

????/**

?????* 郵箱:[0,64]用戶的郵箱,用于找回密碼時(shí)或登錄時(shí)

?????*/

????@Basic

????@Column(name = "email")

????private String email;

????/**

?????* 郵箱認(rèn)證:[0,1](0未認(rèn)證|1審核中|2已認(rèn)證)

?????*/

????@Basic

????@Column(name = "email_state")

????private Integer emailState;

????/**

?????* 頭像地址:[0,255]

?????*/

????@Basic

????@Column(name = "avatar")

????private String avatar;

????/**

?????* 創(chuàng)建時(shí)間:

?????*/

????@Basic

????@Column(name = "create_time")

????@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

????private Timestamp createTime;

????@Basic

????@Transient

????private String code;

}

基本信息

在基本信息頁面用戶可以進(jìn)行修改、查看、編輯用戶信息、等操作如圖5.8所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.8基本信息界面圖

前臺首頁

用戶對查看首頁詳情頁面,如圖5.9所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.9前臺首頁功能界面圖

課程信息頁面

學(xué)生用戶在課程信息頁面可通過搜索課程類型查看課程名稱、封面圖、課程類型、開課地點(diǎn)、開課時(shí)間、講師用戶、講師姓名、課程詳情、點(diǎn)擊次數(shù)詳細(xì)信息,可進(jìn)行收藏、評論、選課等操作,如圖5.10 5.10.1所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

5.10課程信息界面圖

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

5.10.1選課界面圖

系統(tǒng)公告

學(xué)生用戶在系統(tǒng)公告頁面可查看管理員發(fā)布的公告信息,如圖5.11所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.11系統(tǒng)公告界面圖

5.3講師用戶功能模塊

講師在登陸頁面填寫賬號、密碼等信息進(jìn)行登錄,登錄界面如圖5.14所示

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.14講師登錄界面圖

講師可以查看后臺服務(wù)端首頁、交流論壇、新聞資訊、課程信息、網(wǎng)站公告、選課信息、基本信息等功能模塊,還可進(jìn)行相應(yīng)的操作。講師服務(wù)端效果圖如圖5.15所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.15講師功能界面圖

課程信息

講師用戶在課程信息頁面可通過搜索課程名稱或類型查看課程名稱、封面圖、課程類型、開課地點(diǎn)、開課時(shí)間、講師用戶、講師姓名、點(diǎn)擊數(shù)等詳細(xì)信息,講師可對課程信息進(jìn)行添加、重置等操作,如圖5.16所示。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.16課程信息界面圖

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖5.16添加課程信息界面圖

6系統(tǒng)測試

系統(tǒng)開發(fā)的最后一個(gè)步驟就是系統(tǒng)測試,系統(tǒng)測試也是整個(gè)系統(tǒng)十分重要的一個(gè)環(huán)節(jié),測試的好壞關(guān)系到產(chǎn)品的發(fā)展??蛻魧浖馁|(zhì)量、性能和可靠性等需求就要通過測試來實(shí)現(xiàn)。測試過程要必須遵循嚴(yán)謹(jǐn)性、完善性、規(guī)范性的原則,測試的主要目的就是看看在系統(tǒng)運(yùn)行中,是否會(huì)出現(xiàn)bug,然后對出現(xiàn)的bug進(jìn)行調(diào)試,直到程序完美運(yùn)行。但是軟件的測試只能盡可能的減少bug,理論上來說是無法達(dá)到消除bug。但是bug越少,系統(tǒng)出錯(cuò)的幾率就越低,用戶使用起來也更方便、更安全。

近年來,軟件包含測試從現(xiàn)在的檢驗(yàn)當(dāng)中來看,系統(tǒng)接近預(yù)期目標(biāo)可能出現(xiàn)的問題,并對這些錯(cuò)誤做出相應(yīng)的修正,假如我們不進(jìn)行早期的測試錯(cuò)誤就會(huì)延續(xù)下去,最后所做出的成品就會(huì)有很大的困難。

我們要在這個(gè)測試的過程當(dāng)中找出錯(cuò)誤。測試成軟件開發(fā)的主要一部分,自從有了程序的設(shè)計(jì)那天開始,它就成為了重要的組成部分。經(jīng)過統(tǒng)計(jì)來看,軟件測試可以占據(jù)這個(gè)系統(tǒng)45%的工作量,而在軟件開發(fā)的成本當(dāng)中,對于測試成本來說它包含了很多的測試工作。每個(gè)程序測試時(shí)都會(huì)出現(xiàn)和遇到錯(cuò)誤。在整個(gè)程序的開發(fā)過程當(dāng)中,人為去查找錯(cuò)誤是非常復(fù)雜和困難的,所以我們一般都會(huì)找一些測試的工具來進(jìn)行測試

6.1系統(tǒng)測試的意義

隨著現(xiàn)代信息的快速發(fā)展,在社會(huì)各大領(lǐng)域中已經(jīng)都開始應(yīng)用網(wǎng)絡(luò)信息技術(shù),在應(yīng)用網(wǎng)絡(luò)技術(shù)的同時(shí)人們也開始把軟件的質(zhì)量問題作為了一個(gè)重要焦點(diǎn)來關(guān)注,因?yàn)橐粋€(gè)軟件的好與壞它決定著這個(gè)系統(tǒng)在市場上的生存,所以我們必須要把軟件質(zhì)量來做好,這樣才有一定的生存能力。對于用戶來說它們首先選用的都是保證這個(gè)系統(tǒng)軟件的質(zhì)量問題,因?yàn)橐粋€(gè)系統(tǒng)的軟件質(zhì)量決定著用戶在后期上成本經(jīng)濟(jì)的問題。圖6-1就是糾錯(cuò)測試流程。

基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案,spring boot,notepad++,java,php,servlet,爬蟲,mysql

圖6-1 測試與糾錯(cuò)信息流程

6.2?測試方法

具體測試方法包括:黑盒測試和白盒測試。

黑盒測試又被人們稱作為功能測試,通常是在程序的接口來做一些測試的方法,它一般包括對程序的功能和使用的方法來做出一些數(shù)據(jù)的接受和輸出,同時(shí)還可以做出正確的輸出信息,并保證與外部信息的完整性。

白盒測試通常被人們稱作為結(jié)構(gòu)測試,在整個(gè)程序的結(jié)構(gòu)和處理當(dāng)中它是由程序當(dāng)中的邏輯測試和檢驗(yàn)程序來完成一些正確的工作。

具體的功能測試它是包括:系統(tǒng)的適用性、準(zhǔn)確性、安全性等功能測試。

6.3測試分析

本微信小程序的學(xué)生選課系統(tǒng)滿足相關(guān)信息的管理需求,在設(shè)計(jì)時(shí)借鑒了國內(nèi)外優(yōu)秀網(wǎng)站的優(yōu)點(diǎn),從界面到系統(tǒng)設(shè)計(jì)都保證了管理員以及用戶能夠方便操作。系統(tǒng)的主要特點(diǎn)和優(yōu)點(diǎn)歸納如下:

(1)本系統(tǒng)用的移置性和針對性都比較高,因?yàn)獒槍π愿呖梢蕴峁└玫姆?wù)而移置性可以在多個(gè)系統(tǒng)上運(yùn)行,更給用戶帶來了極大的方便。

(2)該微信小程序的學(xué)生選課系統(tǒng)內(nèi)容全面,管理方便可以及時(shí)的全面的處理各種錯(cuò)誤,異常,這樣避免了很多因用戶的馬虎操作而出現(xiàn)的失誤,其操作方便,用戶界面友好,能夠上網(wǎng)的人都可以很好的進(jìn)行操作。

經(jīng)過對上述的測試結(jié)果分析,所有基本功能齊全,操作簡單,系統(tǒng)運(yùn)行性能良好,系統(tǒng)安全可靠,能促進(jìn)微信小程序的學(xué)生選課系統(tǒng)的發(fā)展,發(fā)展前景廣闊。

結(jié) ???論

本系統(tǒng)通過對微信小程序、java和Mysql數(shù)據(jù)庫的簡介,從硬件和軟件兩反面說明了微信小程序的學(xué)生選課系統(tǒng)的可行性,本文結(jié)論及研究成果如下:實(shí)現(xiàn)了微信小程序、java與Mysql相結(jié)合構(gòu)建的微信小程序的學(xué)生選課系統(tǒng),網(wǎng)站可以響應(yīng)式展示。通過本次微信小程序的學(xué)生選課系統(tǒng)的研究與實(shí)現(xiàn),我感到學(xué)海無涯,學(xué)習(xí)是沒有終點(diǎn)的,而且實(shí)踐出真知,只有多動(dòng)手才能盡快掌握它,經(jīng)驗(yàn)對系統(tǒng)的開發(fā)非常重要,經(jīng)驗(yàn)不足,就難免會(huì)有許多考慮不周之處。比如要有美觀的界面,更完善的功能,才能吸引更多的用戶。

由于在此之前對于Java知識沒有深入了解,所以從一開始就碰到許多困難,例如一開始的頁面顯示不規(guī)范、數(shù)據(jù)庫連接有問題已經(jīng)無法實(shí)現(xiàn)參數(shù)的傳遞等等,不過通過在網(wǎng)上尋找有關(guān)資料以及同學(xué)的幫助下最后都得到了解決,在此過程中,我不僅學(xué)到了很多知識,也提高了自己解決問題的能力,尤其是學(xué)會(huì)如何從大量的信息中篩選出所需有用的信息,同時(shí)我更加深刻的體會(huì)到了,雖然書本上的大部分知識都是有價(jià)值,正確的,但實(shí)際上每個(gè)人編程的思路和對數(shù)據(jù)處理的方法、思想都是不同的,這就要求我們一定要通過實(shí)踐才能找到解決問題的方案。在此次畢業(yè)設(shè)計(jì)活動(dòng)中,我不斷的提高了自己,也得到了寶貴的經(jīng)驗(yàn),我相信這些對我以后的發(fā)展都會(huì)有很大幫助。

通過這次微信小程序的學(xué)生選課系統(tǒng)的開發(fā),我參考了很多相關(guān)系統(tǒng)的例子,取長補(bǔ)短,吸取了其他系統(tǒng)的長處,逐步對該系統(tǒng)進(jìn)行了完善,但是該系統(tǒng)還是有很多的不足之處,有待以后進(jìn)一步學(xué)習(xí)。

實(shí)踐證明,微信小程序的學(xué)生選課系統(tǒng)有著非常好的發(fā)展前景,經(jīng)過測試運(yùn)行,系統(tǒng)各項(xiàng)功能都十分完善,界面漂亮,使用方便,操作容易,在技術(shù)理論上已經(jīng)成熟。

致 ???謝

大學(xué)的學(xué)習(xí)生活在這個(gè)季節(jié)將結(jié)束,但是在我的生命這僅僅只是一個(gè)逗號,我將面對另一個(gè)的開始。通過這次畢業(yè)設(shè)計(jì)的整個(gè)開發(fā)過程,從需求分析到具體功能實(shí)現(xiàn),再到最終測試和維護(hù)的理解有了很大的進(jìn)步,讓我對系統(tǒng)開發(fā)有了更深刻的認(rèn)識,對我個(gè)人的實(shí)踐能力和解決問題的能力,都有了很大的幫助。這是這次畢業(yè)設(shè)計(jì)最大的收獲。

首先要感謝我的指導(dǎo)老師,他在論文寫作上,給予了我各種無私的幫助,治學(xué)嚴(yán)謹(jǐn),嚴(yán)格要求,使我獲得了很大的收獲。老師深厚的理論知識和豐富的實(shí)踐經(jīng)驗(yàn),都深深的影響到我,在這方面,我謹(jǐn)表示衷心的感謝。

其次,我還要對所有的老師和同學(xué)表示感謝,他們在我學(xué)習(xí)的過程中,都積極的提供了很多幫助,無論是專業(yè)知識,還是實(shí)踐操作技能,也能夠讓我在論文寫作中,遇到的一些難題迎刃而解。

最后,對閱讀和評審本論文的各位老師表示衷心的感謝!

參考文獻(xiàn)?

[1]胡偉東.基于B/S結(jié)構(gòu)的學(xué)生選課系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦(理論版),2023,35(01):23-25.

[2]鄭戟明,董云朝,柳青.MySQL數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入導(dǎo)出方法的探討[J].電腦知識與技術(shù),2022,18(22):24-25.DOI:10.14004/j.cnki.ckt.2022.1517.

[3]王景.基于MySQL的數(shù)據(jù)庫查詢性能優(yōu)化技術(shù)研究[J].電腦與電信,2022(06):90-93.DOI:10.15966/j.cnki.dnydx.2022.06.007.

[4]聶鑫雨. 新媒體背景下科普小程序的開發(fā)與研究[D].山東師范大學(xué),2022.DOI:10.27280/d.cnki.gsdsu.2022.001619.

[5]趙曉俠,潘偉華,祝賀,寇衛(wèi)利.計(jì)算機(jī)課程思政有效路徑的探索——以MySQL數(shù)據(jù)庫課程為例[J].信息系統(tǒng)工程,2021(10):153-155.

[6]孫路玲. 微信小程序的場景應(yīng)用研究[D].湖南師范大學(xué),2021.DOI:10.27137/d.cnki.ghusu.2021.000383.

[7]Qu Xiaona. Application of Java Technology in Dynamic Web Database Technology[J]. Journal of Physics: Conference Series,2021,1744(4).

[8]楊博森,嚴(yán)張凌.微服務(wù)架構(gòu)下學(xué)生選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息與電腦(理論版),2020,32(20):84-86.

[9]Witsarut Sriratana,Vittaya Khagwian,Sutham Satthamsakul. Analysis of Electric Current by Using MySQL Database on Web Server for Machine Performance Evaluation: A Case Study of Air Conditioning System[J]. ????????? ?????? ???,2020.

[10]Tian Ming Huang. Design and Implementation of App System for Legal Consulting Based on JAVA Technology[J]. Procedia Computer Science,2020,166(C).

[11]余濤.計(jì)算機(jī)軟件開發(fā)中Java編程語言的應(yīng)用研究[J].信息記錄材料,2020,21(01):113-115.DOI:10.16009/j.cnki.cn13-1295/tq.2020.01.070.

[12]蔣舟,楊健葉,張紅偉.高校學(xué)生選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識與技術(shù),2019,15(12):60-61.DOI:10.14004/j.cnki.ckt.2019.1342.

[13]白偉麗.學(xué)生選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦與電信,2018(10):38-40.DOI:10.15966/j.cnki.dnydx.2018.10.012.

[14]尚渡新.簡析學(xué)生選課系統(tǒng)的研究與設(shè)計(jì)[J].中國新通信,2018,20(17):188.

[15]呂鳳花.學(xué)生選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2018(02):110-113.DOI:10.16184/j.cnki.comprg.2018.02.033.

[16]李帥,黃克敏,楊義,張?zhí)烊?王倩.高校學(xué)生選課系統(tǒng)的研究與設(shè)計(jì)[J].電腦知識與技術(shù),2017,13(09):99-100.DOI:10.14004/j.cnki.ckt.2017.0711.

[17]張妤. 學(xué)生選課系統(tǒng)的研究與分析[D].云南大學(xué),2016.

[18]邵強(qiáng). 高校學(xué)生選課系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué),2015.

[19]?zge Bal,?mer Kutlu. The study on the attitudes towards the student selection system for higher education in terms of student characteristics[J]. Procedia - Social and Behavioral Sciences,2011,15(C).

[20]. The educational reform and the university students selection system: its impact and challenges[J]. Estudios pedagógicos (Valdivia),1998,s/v(24).文章來源地址http://www.zghlxwxcb.cn/news/detail-804641.html

免費(fèi)領(lǐng)取項(xiàng)目源碼,請關(guān)注?點(diǎn)贊收藏并私信博主,謝謝-

到了這里,關(guān)于基于SpringBoot的學(xué)生選課系統(tǒng)小程序--59098(免費(fèi)領(lǐng)源碼、附論文)可做計(jì)算機(jī)畢業(yè)設(shè)計(jì)JAVA、PHP、爬蟲、APP、小程序、C#、C++、python、數(shù)據(jù)可視化、大數(shù)據(jù)、文案的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包