国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Java的選課管理系統(tǒng)的設(shè)計與實現(xiàn)

2020-04-24 14:50:40連瑞梅
電腦知識與技術(shù) 2020年5期
關(guān)鍵詞:S結(jié)構(gòu)

摘要:針對學(xué)校選課存在的漏選、錯選及擁塞的問題,設(shè)計并實現(xiàn)一種基于Java語言的選課管理系統(tǒng)。該系統(tǒng)采用B/S結(jié)構(gòu),前端使用bootstrap框架,后端則由Spring.MyBatis、Maven等多種技術(shù)結(jié)合來完成,使用mysql來對選課系統(tǒng)中數(shù)據(jù)進行處理。通過對系統(tǒng)的不斷測試和改進,實踐證明,該系統(tǒng)能夠很好地適應(yīng)學(xué)校選課系統(tǒng)的特殊需求,為提高選課的準(zhǔn)確率、降低擁塞性提供了很好的技術(shù)支持。

關(guān)鍵詞:選課系統(tǒng);MVC;MyBatis;Java;B/S結(jié)構(gòu)

中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2020)05-0067-05

開放科學(xué)(資源服務(wù))標(biāo)識碼cOSID):

1 背景

我校是由三個院校合并建成后進而升級為本科院校的,前幾年又將濰坊藝校合并進來,因此學(xué)生層次呈階梯式,培養(yǎng)模式也呈現(xiàn)多樣化,因此作為高校教育教學(xué)工作的核心工作之一的選課與排課的工作量必然會呈級數(shù)增長。顯然,傳統(tǒng)的選課排課方式已經(jīng)不能適應(yīng)目前我校特殊的教育狀況。迫切需要設(shè)計一款校園選課管理系統(tǒng)[1]來提高其工作效率。我校目前有22個教學(xué)單位,68個本科專業(yè),全日制在校學(xué)生近兩萬三千余人。校園選課管理系統(tǒng)充分將CRMc2]的技術(shù)和理念融入校園信息系統(tǒng),讓全體師生能乘載校園管理系統(tǒng)之便利用于科研工作及學(xué)習(xí),很好地解決了以前學(xué)生選課難、老師工作量大等問題。相比于傳統(tǒng)的選課方式而言,基于Java的選課管理系統(tǒng)以計算機代替人力,將學(xué)校的管理者、教師、學(xué)生緊密相連,做到了信息的高效互通。有了這款選課系統(tǒng),學(xué)校的教務(wù)管理人員能夠做到使教學(xué)資源可以快速合理地分配使用,以盡量減少資源浪費;教師和選課管理人員可以極大地提高了工作效率,使得他們有更多的時間和精力專注于本職工作;學(xué)生在進行網(wǎng)上選課時保證做到及時性和準(zhǔn)確性,避免了選課時候因重復(fù)和擁塞等不確定因素造成選課的失敗和延遲。它充分體現(xiàn)了在這個信息化時代,實行系統(tǒng)化管理的優(yōu)點。

2 系統(tǒng)架構(gòu)及相關(guān)技術(shù)

2.1 JSP和JavaEE

JSP[3]不像html只能傳輸靜態(tài)數(shù)據(jù),JSP技術(shù)實現(xiàn)了html語法中的Java擴展,能夠通過<%java代碼%>的標(biāo)記將很多需要動態(tài)實現(xiàn)的代碼直接寫入前端顯示頁面中。這種全新的頁面解析方式,能夠?qū)崿F(xiàn)一次編寫,多處運行,很好地實現(xiàn)了代碼重復(fù)利用這一原則。這樣對于后期的維護和更新也將變得十分方便。

JavaEE[4]是Java三大分支中的企業(yè)級Java技術(shù)標(biāo)準(zhǔn)。它能夠跨平臺使用,沒有C++煩瑣的指針概念、擁有異常機制和gc機制,安全性非常好。與JavaSE和JavaME相比較而言,JavaEE更適合用于網(wǎng)站、各類系統(tǒng)的設(shè)計和制作。

2.2 Mysql和MyBatis

Mysql數(shù)據(jù)庫中的數(shù)據(jù)根據(jù)不同的關(guān)系存儲在不同的表中,極大地提高了數(shù)據(jù)處理的效率和靈活性。它對于數(shù)據(jù)的存收稿日期:2019-12-15儲和管理充分體現(xiàn)了其關(guān)聯(lián)的特點。此外,Msql還有很多吸引人的地方。例如使用簡單、安全性好、支持多語言查詢、可移植等。

持久層框架MyBatis的使用充分簡化了開發(fā)難度,它不用再像JDBC那樣在連接和使用數(shù)據(jù)庫的時候總要書寫大量的JDBC代碼。因為sql語句與Java代碼的分離,使之能夠自動將sql語句映射到Java實體類,實現(xiàn)了其半自動化管理的特性。

2.3 SpringlVWC和Maven管理

SpringMVC[5]是一個靈活實用的web層框架,其本質(zhì)是將MVCc6]設(shè)計模式基于Java代碼在web中實現(xiàn),不僅從很大程度上簡化了web開發(fā)的流程,還使web層的事務(wù)處理得到解耦。解決了多視圖依賴一個業(yè)務(wù),視圖敏感度過高等一系列問題。

Maven簡單來說就是一個基于項目實例模型合理分配和管理項目間各種依賴關(guān)系的項目管理工具。使用Maven來管理項目,項目中所需要的各種依賴包就不用再去手動導(dǎo)入和添加依賴了,直接在pom.xml文件中配置包名及相應(yīng)的版本號即可,Maven會幫你自動進行處理。

2.4 bootstrap框架

bootstrap是基于HTML、css、JavaScript開發(fā)的前端開發(fā)框架,是一個快速開發(fā)Web App和站點的工具包,其相比自己手寫樣式而言方便了許多。作者將前端開發(fā)中常用的css、各種插件和組件進行了整合和歸類展示,加上鏈接的定位功能,開發(fā)者使用起來快捷和方便,深受前端開發(fā)者的喜愛。

3 系統(tǒng)分析與設(shè)計

3.1 系統(tǒng)需求分析

3.1.1系統(tǒng)的業(yè)務(wù)流程分析

基于Java的校園選課管理系統(tǒng),主要面向全體在校師生的,用戶的角色主要分為三類:第一類是系統(tǒng)管理員,主要負(fù)責(zé)維護協(xié)同管理系統(tǒng)的正常運行。第二類是屬于普通用戶的教師,可以完成課程的增加刪除與學(xué)生成績的登錄管理及在線答疑等工作。第三類用戶主要是學(xué)生,他們只能進行選課與查詢課程。對于這些用戶,他們通過自己的賬號和密碼能夠正常登錄選課系統(tǒng),并且根據(jù)用戶角色的不同顯示各自所需的數(shù)據(jù)和相關(guān)操作按鈕。系統(tǒng)的管理員能夠?qū)φ麄€系統(tǒng)進行管理和維護;老師能夠使用選課系統(tǒng)進行開設(shè)新課程和給所選的課程進行評分;同學(xué)們能夠在選課系統(tǒng)上進行課程的選擇。具體的業(yè)務(wù)流程見圖1所示。

3.1.2 數(shù)據(jù)流程分析

設(shè)計和開發(fā)選課系統(tǒng)[7]必定會涉及很多數(shù)據(jù)。因為我們開發(fā)選修系統(tǒng)的最終目標(biāo)是實現(xiàn)數(shù)據(jù)無紙化管理。在開發(fā)前對數(shù)據(jù)流程進行分析,不僅能夠使開發(fā)的業(yè)務(wù)邏輯更加明朗,還能避免因數(shù)據(jù)混亂造成開發(fā)失敗。此次選課系統(tǒng)數(shù)據(jù)流程的分析主要是根據(jù)用戶和選課系統(tǒng)的交互及其交互過程中產(chǎn)生的數(shù)據(jù)信息的走向、流動和存儲來進行的,由此設(shè)計出合理的數(shù)據(jù)邏輯,保證選課系統(tǒng)運行過程中數(shù)據(jù)的流通,同時也確保了業(yè)務(wù)邏輯的正常開發(fā)。同學(xué)們選課的數(shù)據(jù)[8],老師開設(shè)課程的數(shù)據(jù)能夠確保存人數(shù)據(jù)庫。在老師打分和學(xué)生選課的時候數(shù)據(jù)庫又能夠向相關(guān)的用戶提供他們所需要的信息。具體的數(shù)據(jù)流程如圖2所示。

3.2 系統(tǒng)設(shè)計

3.2.1 系統(tǒng)架構(gòu)設(shè)計

為了讓同學(xué)們和其他用戶方便訪問選課系統(tǒng),此次設(shè)計在B/S結(jié)構(gòu)[9]的基礎(chǔ)上進行開發(fā)。具體結(jié)構(gòu)如圖3所示。

1)表示層。由前端框架bootstrap和JSP技術(shù)設(shè)計而成,主要用于前端界面登錄窗口、管理員窗口、教師窗口和學(xué)生選課窗口的展示和操作,它是用戶與課程管理系統(tǒng)交互的界面??蛻魴C通過瀏覽器訪問選課系統(tǒng)可以直接進行選課程、開設(shè)課程、維護管理等一系列操作。

2)中間功能層。該層是選課系統(tǒng)業(yè)務(wù)處理的核心層,主要負(fù)責(zé)前端用戶的請求與處理,后端數(shù)據(jù)層的數(shù)據(jù)調(diào)用和判斷等。其主要功能是用戶存儲數(shù)據(jù)、調(diào)用數(shù)據(jù)和對各種業(yè)務(wù)邏輯進行處理。

3)數(shù)據(jù)服務(wù)層。主要負(fù)責(zé)學(xué)生數(shù)據(jù)、教師數(shù)據(jù)、課程數(shù)據(jù)等與選課系統(tǒng)相關(guān)數(shù)據(jù)的存儲和訪問,是選課系統(tǒng)數(shù)據(jù)的大本營。

3.2.2 系統(tǒng)模塊設(shè)計

系統(tǒng)模塊主要由管理員模塊、教師模塊、學(xué)生模塊及退出系統(tǒng)四大部分組成。其中管理員模塊由管理課程、管理用戶(包括教師、學(xué)生及其他用戶)兩個模塊。同時每個模塊相應(yīng)的子模塊還有對應(yīng)的數(shù)據(jù)展示列表。其具體的系統(tǒng)模塊設(shè)計圖如圖4所示。

4 系統(tǒng)數(shù)據(jù)庫設(shè)計

4.1 概念結(jié)構(gòu)及表字段分析

從用戶的需求人手,選課系統(tǒng)應(yīng)該有教師類、學(xué)生類、課程類、用戶管理類等多個實體類。各個實體類之間存在著相應(yīng)的關(guān)系,通過數(shù)據(jù)表主(外)鍵或者實體類之間的實體關(guān)聯(lián)產(chǎn)生相應(yīng)且符合邏輯的數(shù)據(jù)流動。各種類的具體屬性設(shè)計如下。

4.1.1 教師類與學(xué)生類的設(shè)計

1)教師類如圖5所示,主要是描述老師的信息。具體包含教工卡號、姓名、職稱/職務(wù)、講授課程及性別等屬性。

2)學(xué)生類見圖6,主要描述學(xué)生的相關(guān)信息。有學(xué)籍卡號、姓名、出生日期、入學(xué)時間、所屬系部及性別等屬性。

4.1.2 課程類與用戶類的設(shè)計

1)課程類設(shè)計如圖7所示,主要是描述課程的相關(guān)信息。具體包含課程代碼、課程名稱、開課學(xué)期、上課地點、學(xué)分等屬性。

2)用戶管理類設(shè)計如圖8所示,主要描述用戶的相關(guān)信息。具體包含用戶ID、用戶昵稱、用戶密碼、角色等屬性。

4.2 數(shù)據(jù)庫中數(shù)據(jù)表的設(shè)計

由于篇幅關(guān)系,在此只列出已經(jīng)設(shè)計的數(shù)據(jù)表中的Course表(見表1)、Student表(見表2)和Teacher表(見表3),余表略。

11 Course表即課程信息表。主要用于課程信息的存儲。具體信息如表1所示。

21 Student表即學(xué)生信息表。主要用于存放學(xué)生的信息。具體信息如表2所示。

3) Teacher表。主要用于存儲老師的信息數(shù)據(jù)。具體信息如表3所示。

5 系統(tǒng)實現(xiàn)與測試

5.1系統(tǒng)的實現(xiàn)途徑

5.1.1 Intellij IDEA中Maven工程的創(chuàng)建

使用Java開發(fā)工具Intellij在Maven管理的環(huán)境下創(chuàng)建名為Examination System的web工程,并在工程中建po、mapper、service等后期存放文件必須用到的一些包。

5.1.2 Spring框架的搭建及相關(guān)參數(shù)的配置

對于Spring而言,它的事務(wù)處理能力十分強大。相比于之前所用的JDBC連接池來說,在jar包的處理上它更加簡潔方便。我們只需要在pom.xml文件中對開發(fā)所需的一些jar包導(dǎo)入即可直接使用。然后再對wbe.xml、pom.xml、spring.xml等配置文件進行配置,搭建起Spring框架,對后面選課系統(tǒng)的進一步開發(fā)會有事半功倍的效果。

5.1.3數(shù)據(jù)庫的搭建及相關(guān)數(shù)據(jù)表的建立 利用開發(fā)工具建立數(shù)據(jù)庫,并完成選課系統(tǒng)所需相關(guān)表的建立。

5.1.4 MyBatis連接數(shù)據(jù)庫,并測試數(shù)據(jù)的連接狀態(tài)

利用MYBatis相關(guān)插件根據(jù)數(shù)據(jù)庫中的表逆向生產(chǎn)實體類、接口等文件,為后面的選課系統(tǒng)開發(fā)打下堅實的基礎(chǔ)。

5.2 登錄模塊的實現(xiàn)

5.2.1 前端登錄界面的實現(xiàn)

利用bootstrap前端框架提供的相關(guān)登錄界面樣式和表單控件,結(jié)合JSP動態(tài)網(wǎng)頁開發(fā)技術(shù)來開發(fā)和實現(xiàn)登錄界面login.JSP。用戶的登錄除了核對用戶賬號和密碼之外,還要對其身份進行核對,三者只要其中一項不符合要求都不允許正常登錄。

5.2.2 后臺登錄校驗的實現(xiàn)。

后臺接收到前端頁面?zhèn)鱽淼挠脩鬒D和密碼后,會在后臺執(zhí)行相應(yīng)的邏輯判斷。經(jīng)過做邏輯判斷,看看是不是和mysql中的信息一致。如果都符合要求,再對用戶的角色進行判斷,不同的角色登錄到不同的JSP顯示頁面中。若是不符合要求就跳轉(zhuǎn)到相應(yīng)的錯誤顯示頁面。其核心校驗代碼見圖9。

5.3 系統(tǒng)各個模塊的實現(xiàn)

5.3.1管理員模塊的實現(xiàn)

管理員通過校驗后登錄選課系統(tǒng)。并實現(xiàn)前后端數(shù)據(jù)的傳遞、接收和判斷。登錄系統(tǒng)之后,你就能看到管理員的顯示窗口了。顯示窗口包括左導(dǎo)航欄列表顯示區(qū),主頁顯示區(qū)的數(shù)據(jù)展示列表。其效果圖如圖10所示。

前端發(fā)出請求后,后臺在控制器中調(diào)用相應(yīng)的方法進行邏輯事物的處理,主要包含課程、教師、學(xué)生信息的查詢方法的執(zhí)行和響應(yīng)。其中,每個方法在執(zhí)行的過程中又會去調(diào)用其相應(yīng)的接口和方法。最后完成與數(shù)據(jù)庫的交互。當(dāng)然,各類方法在執(zhí)行的過程中還會進行很多數(shù)據(jù)格式的處理,非空邏輯判斷等,這里就不再加以說明了。

5.3.2 教師模塊的實現(xiàn)

教師模塊前端界面的設(shè)計與實現(xiàn)。老師填寫正確的登錄信息之后能夠進入到教師模塊的顯示頁面。頂部的標(biāo)題欄負(fù)責(zé)大標(biāo)題的顯示和搜索框的顯示。導(dǎo)航欄設(shè)置超鏈接,編輯區(qū)顯示對應(yīng)的列表信息,在列表的操作框中可以通過事件按鈕的單擊。查看到詳細(xì)的選課人員信息。在學(xué)生名單頁面可以通過打分按鈕給學(xué)生進行打分。實現(xiàn)效果圖在此只列出教師模塊圖,如圖11所示。

5.3.3 學(xué)生模塊的實現(xiàn)

學(xué)生模塊的實現(xiàn)主要包括學(xué)生選課程的實現(xiàn),查詢和所選課程完成情況的實現(xiàn),密碼重置和注銷的實現(xiàn)。學(xué)生登錄后默認(rèn)在所有課程頁面,頁面分頁展示,學(xué)生可以通過點擊頁碼對課程進行查看和瀏覽,也可以通過搜索框輸入課程名稱進行精準(zhǔn)的定位。找到要選擇的課程后,單擊課程按鈕選擇課程。若是課程已經(jīng)選擇過,則不能進行重復(fù)選擇,單擊后會跳轉(zhuǎn)到提示頁面。完成課程后,學(xué)生可以在所選課程頁面上查看選擇的課程。除此之外,同學(xué)們還能在修完課程之后查看所選的課程合格了沒有。如果選課后想要對選課進行更換,可在已選課程頁面中進行退選該門課程的操作。

具體實現(xiàn)的學(xué)生選課列表實現(xiàn)見圖12與圖13所示。

5.4 系統(tǒng)的測試

5.4.1 軟件測試的目的

在選課系統(tǒng)還沒有正式應(yīng)用之前,通過測試我們能夠發(fā)現(xiàn)一些系統(tǒng)存在的潛在問題和缺陷,并對其進行進一步的修復(fù)和改進,能很好地提升系統(tǒng)的性能和優(yōu)化程度。對系統(tǒng)以后投入使用保證正常運行是一個很好的保障。若是不對其進行測試就直接投入使用,不僅不能保證使用過程中的正常運行,還會大大增加維護的成本和影響用戶的體驗。所以說,使用前的軟件測試是非常有意義和必要性的。

5.4.2 測試結(jié)果

經(jīng)過對選課系統(tǒng)登錄、顯示、查詢、刪除等各個模塊的多次測試和改進,系統(tǒng)運行正常,可以投入使用。部分測試用例如表4所示。

部分具體測試結(jié)果顯示圖展示如下:

1)成功登錄測試結(jié)果見圖14所示。不同的用戶角色分別進入不同的管理頁面,所得到的數(shù)據(jù)展示也不同。

2)登錄失敗測試結(jié)果見圖15所示。不同的失敗原因系統(tǒng)會反饋不同的提醒信息頁面。

3)選課按鈕測試結(jié)果見圖16所示。正常情況下,選擇有效的課程信息是會自動跳轉(zhuǎn)到相關(guān)顯示頁面顯示。如果選的是無效的信息,會出現(xiàn)相應(yīng)的錯誤展示信息。 6 結(jié)束語

本文基于Java語言對選課系統(tǒng)進行開發(fā),采用B/S結(jié)構(gòu),前端使用bootstrap框架,后端則由Spring、MyBatis、Maven等多種技術(shù)結(jié)合來完成,使用mysql來對選課系統(tǒng)中數(shù)據(jù)進行處理。為適應(yīng)選課系統(tǒng)的功能需求來設(shè)計系統(tǒng)的結(jié)構(gòu)并實現(xiàn)各個模塊如登錄、教師開設(shè)課程、學(xué)生選課及管理員等模塊的功能。通過對系統(tǒng)的不斷測試和改進,實踐證明,該系統(tǒng)能夠很好地適應(yīng)學(xué)校選課系統(tǒng)的特殊需求,為提高選課的準(zhǔn)確率、降低擁塞性提供了很好的技術(shù)支持。

參考文獻(xiàn):

[1]張俊.高校教務(wù)管理系統(tǒng)選課算法研究綜述[Jl.攀枝花學(xué)院學(xué)報,2017(2):49-52.

[2]蔡呈凱.客戶關(guān)系管理系統(tǒng)的設(shè)計與實現(xiàn)[Jl,科技致富向?qū)В?015(11):42-43.

[3]石義良,鄧娟.JSP數(shù)據(jù)庫訪問技術(shù)研究[J].科技資訊,本欄目責(zé)任編輯:謝媛媛2009(2):14.

[4]楊開振.Java EE互聯(lián)網(wǎng)輕量級框架整合開發(fā)[M].北京:電子工業(yè)出版社,2017.

[5] Craig Walls.Spring實戰(zhàn)[M].4版.北京:人民郵電出版社,2016.

[6]鈕永莉,鄒長忠.基于MVC框架的高校學(xué)生選課系統(tǒng)的設(shè)計與實現(xiàn)[J].北京印刷學(xué)院學(xué)報,2018,26(3):2-8.

[7]徐富新,王洲,陳芳,等.手機短信在實驗選課系統(tǒng)的應(yīng)用 [Jl.計算機技術(shù)與發(fā)展,2013(11).

[8]白偉麗.學(xué)生選課系統(tǒng)的設(shè)計與實現(xiàn)[Jl.電腦與電信,2018(10):38-40.

[9]王鑫.基于Web的學(xué)生選課系統(tǒng)研究[J].無線互聯(lián)科技,2018,15(6):63-64,72.

[10]羅麗.基于B/S模式的高校學(xué)生選課系統(tǒng)設(shè)計與實現(xiàn)[Dl.長沙:湖南大學(xué),2014.

【通聯(lián)編輯:謝媛媛】

基金項目:山東省本科高校教學(xué)改革研究項目(項目編號:C2016M048);教育部產(chǎn)學(xué)合作協(xié)同育人項目(項目編號:201802027013)

作者簡介:連瑞梅(1968-),女,山東濰坊人,副教授,碩士,主要研究方向為Java程序設(shè)計、Python編程與數(shù)據(jù)可視化、PHP程序設(shè)計。

猜你喜歡
S結(jié)構(gòu)
基于PHP的發(fā)印管理系統(tǒng)的實現(xiàn)
基于Java的網(wǎng)上商城開發(fā)
基于B/S結(jié)構(gòu)的通信部隊訓(xùn)練管理系統(tǒng)的設(shè)計研究
万源市| 安溪县| 宜丰县| 乐陵市| 奉贤区| 湟源县| 上饶市| 北海市| 富平县| 阜城县| 杭州市| 吉安市| 会东县| 大理市| 木里| 城市| 庆城县| 台北市| 延边| 米泉市| 夏河县| 台南市| 封丘县| 山阴县| 隆安县| 永康市| 邢台市| 平南县| 三河市| 厦门市| 资中县| 方山县| 长岛县| 临夏县| 侯马市| 双城市| 宜章县| 常熟市| 达拉特旗| 林口县| 抚顺市|