閔 慧,李 鵬
(1.湖南信息職業(yè)技術(shù)學(xué)院軟件學(xué)院,湖南 長沙 410200;2.湖南中醫(yī)藥大學(xué)信息科學(xué)與工程學(xué)院)
一直以來,學(xué)校教務(wù)系統(tǒng)的排課都頗為復(fù)雜,每到排課時間,都是教務(wù)處排課教師一大頭疼的問題。目前大部分學(xué)校的排課都是排課教師人工操作,排課教師需要核算授課教師的基本工作量,然后根據(jù)工作量把授課教師分配到指定的班級。這樣操作需要耗費大量的時間和精力。本小程序旨在改變傳統(tǒng)的人工排課繁瑣的步驟,排課教師只要在初次使用時按照模板錄入好一些相關(guān)信息,以后只需少量錄入,就能實現(xiàn)一鍵排課,大大節(jié)約了排課教師的排課成本,提高了其工作效率。
我的排課表小程序旨在為教務(wù)處教師排憂解難,其主體功能為一鍵排課。由學(xué)校教務(wù)處、各二級學(xué)院的排課教師把本學(xué)院的所有教師信息錄入進本系統(tǒng)中,教師通過自己的手機號碼登錄,查看當(dāng)前學(xué)期本人的授課情況,也可以查看本校其他教師的授課情況。
排課教師在第一次使用系統(tǒng)時,下載本系統(tǒng)指定的Excel 模板,填寫好相關(guān)信息后上傳Excel 模板,即可完成一鍵排課。后續(xù)的學(xué)期,只需要修改少量信息,即可快速完成排課,無需再單獨指定某個教師什么時段授課何班級及何課程。
系統(tǒng)具體的功能如圖1所示。
圖1 我的排課表微信小程序功能結(jié)構(gòu)
我的排課小程序使用前后端分離的開發(fā)方式進行開發(fā)。前端使用原生小程序布局方式,采用Lin UI、WeUI 組件庫進行界面優(yōu)化,使用微信小程序原生API 進行功能的實現(xiàn)。后端使用SpringBoot 框架、MyBatis 框架搭建服務(wù)。Excel 操作使用的Apache 組織提供的XSSFWorkbook工具類。
傳統(tǒng)的Web 開發(fā),前端開發(fā)人員負責(zé)設(shè)計靜態(tài)的前端頁面,而不需要考慮具體的業(yè)務(wù)邏輯,后端開發(fā)人員在靜態(tài)頁面的基礎(chǔ)上,使用模板引擎,完成前后端的集成工作[1-2]。隨著前端框架技術(shù)的應(yīng)用,前后端分離的開發(fā)模式越來越普及,前后端的分工變得清晰,前端開發(fā)人員專注于UI 交互和展示邏輯的設(shè)計,后端開發(fā)人員專注于業(yè)務(wù)邏輯和數(shù)據(jù)存儲等,前后端通過接口進行數(shù)據(jù)的交換,從而大大減輕了開發(fā)人員負擔(dān),極大的提高了開發(fā)的效率[3]。
微信小程序是一種無需下載即可使用的應(yīng)用,它依托于微信,開發(fā)成本低,操作簡單[4-5]。用戶不需要額外下載App,即可使用應(yīng)用的功能。
SpringBoot 是由Pivotal 團隊提供的全新框架,它繼承了Spring 框架原有的優(yōu)秀特性,用來簡化新Spring 應(yīng)用的初始搭建和開發(fā)過程,并且使得項目的配置過程、部署過程和監(jiān)控過程變得簡潔、高效[6-7]。
本小程序使用免費開源的MySQL 數(shù)據(jù)庫進行開發(fā)。共設(shè)計了包括教師表、學(xué)院表、班級表、課程表等在內(nèi)的13張表。以班級表為例,表結(jié)構(gòu)如表1所示。
表1 班級表
系統(tǒng)角色分為授課教師和排課管理員兩種角色。每一種角色的功能如圖1所示。
考慮到安全性,本小程序并沒有使用微信小程序自帶的用戶管理,而是新建用戶權(quán)限進行用戶管理。不管是授課教師還是排課管理員,要進行功能操作,都需要先登錄。用戶進入到登錄頁,選擇相應(yīng)的角色,填寫手機號即可進行登錄。登錄功能界面效果圖如圖2所示。
圖2 登錄功能界面效果圖
授課教師登錄系統(tǒng)后,便進入到系統(tǒng)首頁,首頁可以查看自己的課表。課表時間段是上午、下午和晚上三個時段。課表上方顯示第幾周的課表,用戶默認進入到當(dāng)前學(xué)期當(dāng)前周的課表。用戶可以單擊第幾周來切換周數(shù),課表格內(nèi)的課表也會發(fā)生變化。查詢課表界面具體顯示如圖3(a)所示。此外,用戶還能查詢其他教師的課表,當(dāng)用戶單擊圖3(a)導(dǎo)航欄中的搜索按鈕時,可以進入圖3(b)所示的搜索頁。在輸入框中輸入教師的手機號,點擊右邊按鈕進行查詢,查詢成功就會跳轉(zhuǎn)到所查詢教師的課表頁面。查詢課表功能是通過獲取用戶輸入的手機號碼與后臺進行驗證,如果能查到則返回一個課程表,查不到則會彈窗提示“手機號沒有注冊,請先讓學(xué)校管理員錄入信息”,重新輸入。
圖3 查看課表功能界面效果圖
單擊圖3(a)最右側(cè)導(dǎo)航欄圖標(biāo),可以進入到教師信息頁,頁面效果如圖4 所示。該頁會顯示教師的默認頭像、手機號、工號和所授課程。單擊相應(yīng)的區(qū)域可以修改相應(yīng)的信息。其中。教師修改授課科目后,系統(tǒng)便會分配教師教授該門課程。
圖4 修改個人信息功能界面效果圖
管理員下載模板是指,管理員在初次使用此小程序時,需先錄入本校的相關(guān)信息,以便后續(xù)的一鍵排課功能的實現(xiàn),界面顯示如圖5所示。
圖5 管理員界面效果圖
點擊圖5 中“下載”按鈕后,界面將彈出“下載中”彈窗來提示用戶。管理員下載功能使用的是XSSFWorkbook工具類來實現(xiàn),文件下載成功后將返回一個臨時路徑,同時將文件保存到本地。利用本地的路徑即可打開此Excel文件。
將上面下載完成的Excel 根據(jù)每個工作表中的字段如實填寫信息(注意:填寫模板的時候嚴格按照格式要求填寫,教師手機號不能重復(fù)),填寫完成后點擊上傳按鈕進行上傳,此時排課所需要的教師信息、教室信息、學(xué)校信息、課程信息、教學(xué)樓信息等都保存到了數(shù)據(jù)庫中。Excel錄入的信息如圖6所示。
圖6 Excel錄入信息匯總圖
管理員一鍵排課功能是系統(tǒng)的核心功能。一鍵排課功能在點擊圖5所示“排課”按鈕以后系統(tǒng)就根據(jù)Excel 表里的數(shù)據(jù)進行課表排序,生成課表,并且返回課表數(shù)據(jù)給前端。前端拿到數(shù)據(jù)后進行頁面的交互、數(shù)據(jù)的渲染。此時,老師登錄后便可以查看到自己的課程表了。
當(dāng)前臺向后臺發(fā)送開始排課請求,后臺會先對學(xué)校課程進行編排。編排時利用平均分配算法合理利用教師資源,做出合理的分配,形成初始資源后存儲到數(shù)據(jù)庫。隨后利用遺傳算法產(chǎn)生初始基因,通過這一系列操作后保留適應(yīng)度高的個體。
本文設(shè)計并實現(xiàn)了一款基于微信小程序的教務(wù)排課系統(tǒng)。排課管理員只需少量的信息錄入,即可實現(xiàn)高效地一鍵排課,解決了以往排課費時費力的問題。由于小程序使用的是遺傳算法,能滿足一定規(guī)模的排課。隨著排課任務(wù)的加劇,算法的效率還有待進一步優(yōu)化。