


摘要:針對學校選課存在的漏選、錯選及擁塞的問題,設計并實現一種基于Java語言的選課管理系統。該系統采用B/S結構,前端使用bootstrap框架,后端則由Spring.MyBatis、Maven等多種技術結合來完成,使用mysql來對選課系統中數據進行處理。通過對系統的不斷測試和改進,實踐證明,該系統能夠很好地適應學校選課系統的特殊需求,為提高選課的準確率、降低擁塞性提供了很好的技術支持。
關鍵詞:選課系統;MVC;MyBatis;Java;B/S結構
中圖分類號:TP311.52 文獻標識碼:A
文章編號:1009-3044(2020)05-0067-05
開放科學(資源服務)標識碼cOSID):
1 背景
我校是由三個院校合并建成后進而升級為本科院校的,前幾年又將濰坊藝校合并進來,因此學生層次呈階梯式,培養模式也呈現多樣化,因此作為高校教育教學工作的核心工作之一的選課與排課的工作量必然會呈級數增長。顯然,傳統的選課排課方式已經不能適應目前我校特殊的教育狀況。迫切需要設計一款校園選課管理系統[1]來提高其工作效率。我校目前有22個教學單位,68個本科專業,全日制在校學生近兩萬三千余人。校園選課管理系統充分將CRMc2]的技術和理念融入校園信息系統,讓全體師生能乘載校園管理系統之便利用于科研工作及學習,很好地解決了以前學生選課難、老師工作量大等問題。相比于傳統的選課方式而言,基于Java的選課管理系統以計算機代替人力,將學校的管理者、教師、學生緊密相連,做到了信息的高效互通。有了這款選課系統,學校的教務管理人員能夠做到使教學資源可以快速合理地分配使用,以盡量減少資源浪費;教師和選課管理人員可以極大地提高了工作效率,使得他們有更多的時間和精力專注于本職工作;學生在進行網上選課時保證做到及時性和準確性,避免了選課時候因重復和擁塞等不確定因素造成選課的失敗和延遲。它充分體現了在這個信息化時代,實行系統化管理的優點。
2 系統架構及相關技術
2.1 JSP和JavaEE
JSP[3]不像html只能傳輸靜態數據,JSP技術實現了html語法中的Java擴展,能夠通過<%java代碼%>的標記將很多需要動態實現的代碼直接寫入前端顯示頁面中。這種全新的頁面解析方式,能夠實現一次編寫,多處運行,很好地實現了代碼重復利用這一原則。這樣對于后期的維護和更新也將變得十分方便。
JavaEE[4]是Java三大分支中的企業級Java技術標準。它能夠跨平臺使用,沒有C++煩瑣的指針概念、擁有異常機制和gc機制,安全性非常好。與JavaSE和JavaME相比較而言,JavaEE更適合用于網站、各類系統的設計和制作。
2.2 Mysql和MyBatis
Mysql數據庫中的數據根據不同的關系存儲在不同的表中,極大地提高了數據處理的效率和靈活性。它對于數據的存收稿日期:2019-12-15儲和管理充分體現了其關聯的特點。此外,Msql還有很多吸引人的地方。例如使用簡單、安全性好、支持多語言查詢、可移植等。
持久層框架MyBatis的使用充分簡化了開發難度,它不用再像JDBC那樣在連接和使用數據庫的時候總要書寫大量的JDBC代碼。因為sql語句與Java代碼的分離,使之能夠自動將sql語句映射到Java實體類,實現了其半自動化管理的特性。
2.3 SpringlVWC和Maven管理
SpringMVC[5]是一個靈活實用的web層框架,其本質是將MVCc6]設計模式基于Java代碼在web中實現,不僅從很大程度上簡化了web開發的流程,還使web層的事務處理得到解耦。解決了多視圖依賴一個業務,視圖敏感度過高等一系列問題。
Maven簡單來說就是一個基于項目實例模型合理分配和管理項目間各種依賴關系的項目管理工具。使用Maven來管理項目,項目中所需要的各種依賴包就不用再去手動導入和添加依賴了,直接在pom.xml文件中配置包名及相應的版本號即可,Maven會幫你自動進行處理。
2.4 bootstrap框架
bootstrap是基于HTML、css、JavaScript開發的前端開發框架,是一個快速開發Web App和站點的工具包,其相比自己手寫樣式而言方便了許多。作者將前端開發中常用的css、各種插件和組件進行了整合和歸類展示,加上鏈接的定位功能,開發者使用起來快捷和方便,深受前端開發者的喜愛。
3 系統分析與設計
3.1 系統需求分析
3.1.1系統的業務流程分析
基于Java的校園選課管理系統,主要面向全體在校師生的,用戶的角色主要分為三類:第一類是系統管理員,主要負責維護協同管理系統的正常運行。第二類是屬于普通用戶的教師,可以完成課程的增加刪除與學生成績的登錄管理及在線答疑等工作。第三類用戶主要是學生,他們只能進行選課與查詢課程。對于這些用戶,他們通過自己的賬號和密碼能夠正常登錄選課系統,并且根據用戶角色的不同顯示各自所需的數據和相關操作按鈕。系統的管理員能夠對整個系統進行管理和維護;老師能夠使用選課系統進行開設新課程和給所選的課程進行評分;同學們能夠在選課系統上進行課程的選擇。具體的業務流程見圖1所示。
3.1.2 數據流程分析
設計和開發選課系統[7]必定會涉及很多數據。因為我們開發選修系統的最終目標是實現數據無紙化管理。在開發前對數據流程進行分析,不僅能夠使開發的業務邏輯更加明朗,還能避免因數據混亂造成開發失敗。此次選課系統數據流程的分析主要是根據用戶和選課系統的交互及其交互過程中產生的數據信息的走向、流動和存儲來進行的,由此設計出合理的數據邏輯,保證選課系統運行過程中數據的流通,同時也確保了業務邏輯的正常開發。同學們選課的數據[8],老師開設課程的數據能夠確保存人數據庫。在老師打分和學生選課的時候數據庫又能夠向相關的用戶提供他們所需要的信息。具體的數據流程如圖2所示。
3.2 系統設計
3.2.1 系統架構設計
為了讓同學們和其他用戶方便訪問選課系統,此次設計在B/S結構[9]的基礎上進行開發。具體結構如圖3所示。
1)表示層。由前端框架bootstrap和JSP技術設計而成,主要用于前端界面登錄窗口、管理員窗口、教師窗口和學生選課窗口的展示和操作,它是用戶與課程管理系統交互的界面。客戶機通過瀏覽器訪問選課系統可以直接進行選課程、開設課程、維護管理等一系列操作。
2)中間功能層。該層是選課系統業務處理的核心層,主要負責前端用戶的請求與處理,后端數據層的數據調用和判斷等。其主要功能是用戶存儲數據、調用數據和對各種業務邏輯進行處理。
3)數據服務層。主要負責學生數據、教師數據、課程數據等與選課系統相關數據的存儲和訪問,是選課系統數據的大本營。
3.2.2 系統模塊設計
系統模塊主要由管理員模塊、教師模塊、學生模塊及退出系統四大部分組成。其中管理員模塊由管理課程、管理用戶(包括教師、學生及其他用戶)兩個模塊。同時每個模塊相應的子模塊還有對應的數據展示列表。其具體的系統模塊設計圖如圖4所示。
4 系統數據庫設計
4.1 概念結構及表字段分析
從用戶的需求人手,選課系統應該有教師類、學生類、課程類、用戶管理類等多個實體類。各個實體類之間存在著相應的關系,通過數據表主(外)鍵或者實體類之間的實體關聯產生相應且符合邏輯的數據流動。各種類的具體屬性設計如下。
4.1.1 教師類與學生類的設計
1)教師類如圖5所示,主要是描述老師的信息。具體包含教工卡號、姓名、職稱/職務、講授課程及性別等屬性。
2)學生類見圖6,主要描述學生的相關信息。有學籍卡號、姓名、出生日期、入學時間、所屬系部及性別等屬性。
4.1.2 課程類與用戶類的設計
1)課程類設計如圖7所示,主要是描述課程的相關信息。具體包含課程代碼、課程名稱、開課學期、上課地點、學分等屬性。
2)用戶管理類設計如圖8所示,主要描述用戶的相關信息。具體包含用戶ID、用戶昵稱、用戶密碼、角色等屬性。
4.2 數據庫中數據表的設計
由于篇幅關系,在此只列出已經設計的數據表中的Course表(見表1)、Student表(見表2)和Teacher表(見表3),余表略。
11 Course表即課程信息表。主要用于課程信息的存儲。具體信息如表1所示。
21 Student表即學生信息表。主要用于存放學生的信息。具體信息如表2所示。
3) Teacher表。主要用于存儲老師的信息數據。具體信息如表3所示。
5 系統實現與測試
5.1系統的實現途徑
5.1.1 Intellij IDEA中Maven工程的創建
使用Java開發工具Intellij在Maven管理的環境下創建名為Examination System的web工程,并在工程中建po、mapper、service等后期存放文件必須用到的一些包。
5.1.2 Spring框架的搭建及相關參數的配置
對于Spring而言,它的事務處理能力十分強大。相比于之前所用的JDBC連接池來說,在jar包的處理上它更加簡潔方便。我們只需要在pom.xml文件中對開發所需的一些jar包導入即可直接使用。然后再對wbe.xml、pom.xml、spring.xml等配置文件進行配置,搭建起Spring框架,對后面選課系統的進一步開發會有事半功倍的效果。
5.1.3數據庫的搭建及相關數據表的建立 利用開發工具建立數據庫,并完成選課系統所需相關表的建立。
5.1.4 MyBatis連接數據庫,并測試數據的連接狀態
利用MYBatis相關插件根據數據庫中的表逆向生產實體類、接口等文件,為后面的選課系統開發打下堅實的基礎。
5.2 登錄模塊的實現
5.2.1 前端登錄界面的實現
利用bootstrap前端框架提供的相關登錄界面樣式和表單控件,結合JSP動態網頁開發技術來開發和實現登錄界面login.JSP。用戶的登錄除了核對用戶賬號和密碼之外,還要對其身份進行核對,三者只要其中一項不符合要求都不允許正常登錄。
5.2.2 后臺登錄校驗的實現。
后臺接收到前端頁面傳來的用戶ID和密碼后,會在后臺執行相應的邏輯判斷。經過做邏輯判斷,看看是不是和mysql中的信息一致。如果都符合要求,再對用戶的角色進行判斷,不同的角色登錄到不同的JSP顯示頁面中。若是不符合要求就跳轉到相應的錯誤顯示頁面。其核心校驗代碼見圖9。
5.3 系統各個模塊的實現
5.3.1管理員模塊的實現
管理員通過校驗后登錄選課系統。并實現前后端數據的傳遞、接收和判斷。登錄系統之后,你就能看到管理員的顯示窗口了。顯示窗口包括左導航欄列表顯示區,主頁顯示區的數據展示列表。其效果圖如圖10所示。
前端發出請求后,后臺在控制器中調用相應的方法進行邏輯事物的處理,主要包含課程、教師、學生信息的查詢方法的執行和響應。其中,每個方法在執行的過程中又會去調用其相應的接口和方法。最后完成與數據庫的交互。當然,各類方法在執行的過程中還會進行很多數據格式的處理,非空邏輯判斷等,這里就不再加以說明了。
5.3.2 教師模塊的實現
教師模塊前端界面的設計與實現。老師填寫正確的登錄信息之后能夠進入到教師模塊的顯示頁面。頂部的標題欄負責大標題的顯示和搜索框的顯示。導航欄設置超鏈接,編輯區顯示對應的列表信息,在列表的操作框中可以通過事件按鈕的單擊。查看到詳細的選課人員信息。在學生名單頁面可以通過打分按鈕給學生進行打分。實現效果圖在此只列出教師模塊圖,如圖11所示。
5.3.3 學生模塊的實現
學生模塊的實現主要包括學生選課程的實現,查詢和所選課程完成情況的實現,密碼重置和注銷的實現。學生登錄后默認在所有課程頁面,頁面分頁展示,學生可以通過點擊頁碼對課程進行查看和瀏覽,也可以通過搜索框輸入課程名稱進行精準的定位。找到要選擇的課程后,單擊課程按鈕選擇課程。若是課程已經選擇過,則不能進行重復選擇,單擊后會跳轉到提示頁面。完成課程后,學生可以在所選課程頁面上查看選擇的課程。除此之外,同學們還能在修完課程之后查看所選的課程合格了沒有。如果選課后想要對選課進行更換,可在已選課程頁面中進行退選該門課程的操作。
具體實現的學生選課列表實現見圖12與圖13所示。
5.4 系統的測試
5.4.1 軟件測試的目的
在選課系統還沒有正式應用之前,通過測試我們能夠發現一些系統存在的潛在問題和缺陷,并對其進行進一步的修復和改進,能很好地提升系統的性能和優化程度。對系統以后投入使用保證正常運行是一個很好的保障。若是不對其進行測試就直接投入使用,不僅不能保證使用過程中的正常運行,還會大大增加維護的成本和影響用戶的體驗。所以說,使用前的軟件測試是非常有意義和必要性的。
5.4.2 測試結果
經過對選課系統登錄、顯示、查詢、刪除等各個模塊的多次測試和改進,系統運行正常,可以投入使用。部分測試用例如表4所示。
部分具體測試結果顯示圖展示如下:
1)成功登錄測試結果見圖14所示。不同的用戶角色分別進入不同的管理頁面,所得到的數據展示也不同。
2)登錄失敗測試結果見圖15所示。不同的失敗原因系統會反饋不同的提醒信息頁面。
3)選課按鈕測試結果見圖16所示。正常情況下,選擇有效的課程信息是會自動跳轉到相關顯示頁面顯示。如果選的是無效的信息,會出現相應的錯誤展示信息。 6 結束語
本文基于Java語言對選課系統進行開發,采用B/S結構,前端使用bootstrap框架,后端則由Spring、MyBatis、Maven等多種技術結合來完成,使用mysql來對選課系統中數據進行處理。為適應選課系統的功能需求來設計系統的結構并實現各個模塊如登錄、教師開設課程、學生選課及管理員等模塊的功能。通過對系統的不斷測試和改進,實踐證明,該系統能夠很好地適應學校選課系統的特殊需求,為提高選課的準確率、降低擁塞性提供了很好的技術支持。
參考文獻:
[1]張俊.高校教務管理系統選課算法研究綜述[Jl.攀枝花學院學報,2017(2):49-52.
[2]蔡呈凱.客戶關系管理系統的設計與實現[Jl,科技致富向導,2015(11):42-43.
[3]石義良,鄧娟.JSP數據庫訪問技術研究[J].科技資訊,本欄目責任編輯:謝媛媛2009(2):14.
[4]楊開振.Java EE互聯網輕量級框架整合開發[M].北京:電子工業出版社,2017.
[5] Craig Walls.Spring實戰[M].4版.北京:人民郵電出版社,2016.
[6]鈕永莉,鄒長忠.基于MVC框架的高校學生選課系統的設計與實現[J].北京印刷學院學報,2018,26(3):2-8.
[7]徐富新,王洲,陳芳,等.手機短信在實驗選課系統的應用 [Jl.計算機技術與發展,2013(11).
[8]白偉麗.學生選課系統的設計與實現[Jl.電腦與電信,2018(10):38-40.
[9]王鑫.基于Web的學生選課系統研究[J].無線互聯科技,2018,15(6):63-64,72.
[10]羅麗.基于B/S模式的高校學生選課系統設計與實現[Dl.長沙:湖南大學,2014.
【通聯編輯:謝媛媛】
基金項目:山東省本科高校教學改革研究項目(項目編號:C2016M048);教育部產學合作協同育人項目(項目編號:201802027013)
作者簡介:連瑞梅(1968-),女,山東濰坊人,副教授,碩士,主要研究方向為Java程序設計、Python編程與數據可視化、PHP程序設計。