劉偉冉
(合肥工業(yè)大學(xué)計算機科學(xué)與技術(shù)專業(yè),安徽 合肥230009)
本次開發(fā)的網(wǎng)上在線選課系統(tǒng)使用了B/S 架構(gòu),通過JAVA語言作為程序設(shè)計語言,采納MySQL 數(shù)據(jù)庫保存系統(tǒng)相干數(shù)據(jù)。本文首先描述了網(wǎng)上在線選課系統(tǒng)的現(xiàn)狀,同時給出了本次系統(tǒng)開發(fā)所需的技術(shù),然后對該系統(tǒng)做具體的需求分析,重點去研究網(wǎng)上在線選課系統(tǒng)的設(shè)計方案,具體包含以下幾個功能:添加課程、查看課程、修改課程、課程審核、查詢學(xué)生信息等功能模塊。
本次設(shè)計的系統(tǒng),有優(yōu)點但也有不足的地方。基于Java 語言的網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)觸及諸多方面的理論、方法和技術(shù),本系統(tǒng)還有許多未知和新的問題需要解決,需要我們在實際應(yīng)用中不斷地累積和完善,其次頁面不是很精美,沒有做足夠的優(yōu)化,后期可以細致頁面樣式,增強可閱讀性與舒適感。系統(tǒng)只考慮了一些簡單情況,網(wǎng)上選課信息的基本組成,并未在設(shè)計課程等方面進行深入研究與考慮。如何應(yīng)付復(fù)雜的選課信息還值得加強。隨著技術(shù)的發(fā)展,其應(yīng)用也將越來越廣,會使我們對該系統(tǒng)的要求越來越多,這就需要我們不斷地去探索新的需求,發(fā)展與時俱進地新的技術(shù),與時俱進。
科技給人們帶來便利,提升效率,不僅在生活,還有工作方面等。隨著現(xiàn)代計算機和其技術(shù)的快速發(fā)展,人們?yōu)榱死糜嬎銠C實現(xiàn)學(xué)校教學(xué)或企業(yè)人事管理能提升效率,使得計算機在各個方面中應(yīng)用十分的普及。
對于現(xiàn)今的中型與大規(guī)模企業(yè)來說,采用計算機來作為高效率完成企業(yè)勞動人事管理功能的應(yīng)用,是可以滿足現(xiàn)代企業(yè)制度要求、使得企業(yè)勞動人事管理走向效率化、科學(xué)化、規(guī)范化的重要組成部分。
計算機管理所帶來的無法比擬的優(yōu)點,其中有檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高生活或工作中管理事情的效率, 也是企業(yè)的科學(xué)化、規(guī)范化管理,與世界接軌的重要條件。
大街上隨處可見的電子設(shè)備,電子信息。每個商戶所經(jīng)營的如此便捷,不再像古時候那樣,記賬只能手寫,算盤算。而現(xiàn)如今都是由一個個代碼編程實現(xiàn)。既提升了工作效率,同時又能保證準(zhǔn)確性。所謂科技帶動人類發(fā)展,種種案例都能證明這句話不假。但是相對的,計算機技術(shù)所帶的有利有弊,所以我們用它來研究好的方面,做好的事情,促進科技的發(fā)展,而不是做無意義的事。
由于科技的不斷進步與發(fā)展,其衍生出來的應(yīng)用給人們的生活帶來了許多好處。對學(xué)校的教學(xué)管理亦是如此。以往只能手動的統(tǒng)計學(xué)生所選擇的課程。但是由于計算機應(yīng)用技術(shù),現(xiàn)在越來越多的學(xué)校都在實行網(wǎng)上教學(xué)或安排課程或查詢課程與成績等功能。本論文所介紹的便是一個網(wǎng)上在線選課系統(tǒng),方便其在教師設(shè)計和管理課程的同時,學(xué)生選課上的一些操作。
Java 被認(rèn)為是高級的面向?qū)ο蟮某绦蛟O(shè)計語言之一,擁有了C++語言各種優(yōu)點的基礎(chǔ)上,還去除了C++里難以理解的多重繼承、以及C/C++中那些允許訪問系統(tǒng)底層數(shù)據(jù)的能力(指針)等概念,因此Java 語言具有來年各個相對較強大的特點分別為簡單易用和功能強大。
Java 語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,很好地實現(xiàn)了面向?qū)ο罄碚?,使得?fù)雜的編程能被程序員以簡單優(yōu)雅的思維方式實現(xiàn)。
由于Java 語言具備簡單性、分布式、安全性、多線程、面向?qū)ο?、健壯性、平臺獨立與可移植性、動態(tài)性等特點。所以可以編寫Web 應(yīng)用程序、桌面或手機應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等等。
MySQL 是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典一個公司開發(fā)。MySQL 是目前最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在WEB 應(yīng)用方面,MySQL 是相比較之下比較適合的 RDBMS(Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件。
MySQL 是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng),關(guān)系數(shù)據(jù)庫中不同的表存儲了不同卻又有聯(lián)系的數(shù)據(jù),而不是統(tǒng)一將所有數(shù)據(jù)都放在一個地方,這樣并不方便管理,所以使用MySQL 增加了訪問數(shù)據(jù)地速度并且提高了數(shù)據(jù)使用地靈活性,數(shù)據(jù)便于管理。
MySQL 所使用的SQL 語言是最常用標(biāo)準(zhǔn)化語言,用于訪問數(shù)據(jù)庫的。該軟件采用了雙授權(quán)政策,分為商業(yè)版本和社區(qū)版本,由于其體積小、速度快、總體使用成本低,而且它開放源碼,一般中小型網(wǎng)站的系統(tǒng)的數(shù)據(jù)庫開發(fā)都選擇MySQL 作為網(wǎng)站數(shù)據(jù)庫。
本論文主要介紹的是學(xué)校使用的網(wǎng)上選課系統(tǒng)的設(shè)計。該系統(tǒng)適用于學(xué)校教師及學(xué)生們,其功能模塊主要分為三個部分:管理員功能模塊;教師功能模塊;學(xué)生功能模塊;該系統(tǒng)致力于易于使用,具有較高的操作性、開發(fā)性和可維護性。
為了可使用性與嚴(yán)謹(jǐn)性,整個系統(tǒng)的開發(fā)過程嚴(yán)格遵守軟件工程的要求,模塊化分析、模塊化設(shè)計和模塊化代碼編寫。
第一章介紹開發(fā)環(huán)境的背景介紹,第二章介紹系統(tǒng)的設(shè)計流程,第三章介紹總體項目的詳細設(shè)計過程,第四章介紹運行的系統(tǒng)測試過程與結(jié)果,第五章對該系統(tǒng)的總結(jié)與感悟等結(jié)束語。
隨著現(xiàn)代化教育模式的逐步推進,各大高校的規(guī)模不斷擴大,如何快速有效地做好管理平臺的工作便成了迫切關(guān)注的問題。目前,在我國不管是普通高校還是具有知名度的高校,都開設(shè)了自己的網(wǎng)上在線選課系統(tǒng)。早在二十世紀(jì)七十年代末,美國就開始了在網(wǎng)上進行課題申報等課題的開發(fā),而目前國外許多國家更是在網(wǎng)絡(luò)教學(xué)方面投入大量的資源,在網(wǎng)上給學(xué)生提供網(wǎng)上選課、在線學(xué)習(xí)等各種教學(xué)服務(wù)。
但是,通過對大部分高校的網(wǎng)上在線選課系統(tǒng)的研究發(fā)現(xiàn),這些網(wǎng)站都存在一個共同的問題,那就是以管理員為最高權(quán)限的管理方式,所有信息的取舍全部都依賴于管理員,教師不能獨立發(fā)布課程。這時網(wǎng)站之間的差異性就體現(xiàn)在網(wǎng)站是否能提供教師獨立發(fā)布課程的功能,管理員做審核,發(fā)布的課程能及時有效地展示在學(xué)生用戶的界面上供學(xué)生選課,本次開發(fā)的系統(tǒng)針對這一現(xiàn)象做了具體的處理。
根據(jù)需求分析,將前臺后臺按功能劃分為若干的功能模塊。這樣劃分功能模塊,不僅能提升系統(tǒng)的可維護性,也能提高開發(fā)效率。網(wǎng)站應(yīng)包含如下的功能:
本系統(tǒng)中用戶分為管理員用戶、教師用戶、學(xué)生用戶。根據(jù)以上用戶劃分,每個用戶具有以下操作權(quán)限:
2.2.1 管理員用戶
a.能夠【用戶添加】包括管理員用戶、教師用戶及學(xué)生用戶的用戶名、密碼、真實姓名及用戶類型等。
b.能夠在【用戶管理】里查看所有用戶的個人基本信息并有刪除權(quán)限的操作功能。
c.能夠編輯【學(xué)生管理】中的學(xué)生是否已經(jīng)畢業(yè),或者在讀,同樣有刪除權(quán)限的操作功能。
d.能夠修改或刪除【課程審核管理】中的課程,并且能夠?qū)徍怂械恼n程是否通過。
e.能夠查看【課程管理】的信息,并且可以查看所有審核通過或者審核不通過的課程。
f.能夠在【選課申請管理】中審核學(xué)生選修的課程,可根據(jù)實際情況判斷是否給予通過。
2.2.2 教師用戶
a.能夠在【課程添加】中發(fā)布自己的課程,包括課程名稱、學(xué)時、學(xué)分、時間、地點等信息。
b.能夠在【我的課程管理】中查看所發(fā)布課程的信息,同時教師用戶也有權(quán)限給添加的課程修改和刪除操作。
其中,EPS是指普通股每股利潤,ΔEPS是指普通股每股利潤變動額,EBIT是指息稅前利潤額,ΔEBIT是指息稅前利潤變動額。
c.能夠查看所有選修該教師課程的學(xué)生,并在【成績錄入】中為學(xué)生用戶添加分?jǐn)?shù)。
2.2.3 學(xué)生用戶
a.能夠在【我的選修課】中查看所有已經(jīng)審核通過或者審核不通過的課程的相關(guān)信息,包括上課程名稱、學(xué)時、學(xué)分、地點等,同時學(xué)生用戶也具有放棄選修經(jīng)管理員用戶審核過的課程的權(quán)限。
b.能夠在【教師評分列表】里給所選課程的對應(yīng)的教師進行評分,同時也能查看自己的分?jǐn)?shù)。
c.能夠在【課程申請】中查看到所有教師用戶發(fā)布成功的課程,根據(jù)自身需求申請所需要選修的課程。
2.3.1 技術(shù)可行性
本系統(tǒng)采用了Eclipse 面向?qū)ο蟮能浖_發(fā)工具和MySQL數(shù)據(jù)庫進行相關(guān)的開發(fā)。在系統(tǒng)開發(fā)中可以使用JDBC 對數(shù)據(jù)庫進行連接,也可以使用Hibernate 框架對數(shù)據(jù)庫進行連接,本系統(tǒng)采用了后者。MySQL 具有靈活、安全和易用等優(yōu)點,是一個非常簡單實用的SQL 數(shù)據(jù)庫,易于開發(fā)者學(xué)習(xí)使用與開發(fā)。
主要采用的語言為Java 語言,因為現(xiàn)在對于應(yīng)用來說,它是一種比較常見被應(yīng)用的語言。計算機系學(xué)生一般都會學(xué)習(xí)過的語言。網(wǎng)上的視頻教學(xué)與文檔也很多。不懂得可以詢問同學(xué)與老師或者百度搜索相應(yīng)的知識。
2.3.2 經(jīng)濟可行性
本系統(tǒng)采用的是B/S 結(jié)構(gòu),所以無需開發(fā)客服端,并且所使用的技術(shù)也是開源的,在電腦安裝相應(yīng)的軟件便能運行本系統(tǒng),大大的節(jié)省了開發(fā)的成本。在系統(tǒng)完成投入使用后,教師發(fā)布課程是非常方便的,同時管理者也可以節(jié)省大量的時間,學(xué)生也只需選擇自己的課程,不需要經(jīng)濟上的消費。因此經(jīng)濟可行性上是絕對行得通的,成本較低。
2.3.3 操作可行性
本系統(tǒng)在進行設(shè)計的時候,考慮到用戶的體驗,因此經(jīng)過了多次的整改,將易于操作上手的模式,作為本次系統(tǒng)設(shè)計的重中之重。因此操作簡單且方便,如果在操作過程中因操作失誤產(chǎn)生的錯誤,都會有相應(yīng)的頁面或彈框提示。
頁面上的功能也便于理解,點擊頁面上的按鈕功能也會隨之顯示出展示或可操作的頁面。所以在操作上可行性上也是行得通的。
2.3.4 分析結(jié)果
結(jié)合以上種種分析得出結(jié)論,該網(wǎng)上選課系統(tǒng)初步是可執(zhí)行且成本較低的系統(tǒng)。為保障開發(fā)的本系統(tǒng)是穩(wěn)定可行的,且避免引起后期不必要的弊端,上述一系列對系統(tǒng)開發(fā)進行總體的可行性分析是十分必要的。該系統(tǒng)無論是在技術(shù)、經(jīng)濟、操作等上都具有可行性,因此本系統(tǒng)的開發(fā)是十分可行的。
Eclipse 軟 件、MySql 數(shù) 據(jù) 庫、JSP 技 術(shù) 和Tomcat 服 務(wù) 器、JDK8.0、B/S 模式、SSH 框架。
運行平臺:Windows7/Windows10、Internet Explorer 瀏覽器、火狐瀏覽器、MySql 數(shù)據(jù)庫、Eclipse。
3.1.1 系統(tǒng)流程圖
圖1 系統(tǒng)流程圖
3.1.2 模塊結(jié)構(gòu)圖
圖2 管理員用戶功能模塊圖
圖3 教師用戶模塊圖
圖4 學(xué)生用戶模塊圖
3.1.3 數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫在整個系統(tǒng)中的角色是非常重要的,能夠直接影響系統(tǒng)是否能正常運行。設(shè)計一個合理的數(shù)據(jù)庫結(jié)構(gòu),不僅僅能使數(shù)據(jù)存儲的效率得到提高,而且數(shù)據(jù)的完整性和一致性也能得到保障,使用效率提升。否則可能會冗余大量的數(shù)據(jù)使系統(tǒng)運行緩慢導(dǎo)致頁面等崩潰。
因此,在設(shè)計一個合理的數(shù)據(jù)庫時必須仔細思考,設(shè)計合理。在本系統(tǒng)中使用了MySQL 開源數(shù)據(jù)庫,該數(shù)據(jù)庫與其它數(shù)據(jù)庫相比具有操作簡單、高性能的優(yōu)點,并且提供了多種形式的API及多種數(shù)據(jù)類型,且支持多種平臺、支持定長變長等功能。
本網(wǎng)站使用MySQL 實現(xiàn)關(guān)系型數(shù)據(jù)庫。對系統(tǒng)的進行了需求分析和功能設(shè)計后,根據(jù)數(shù)據(jù)流程圖中的數(shù)據(jù)得到數(shù)據(jù)實體以及關(guān)系,得到數(shù)據(jù)庫E-R 模型。
圖5 學(xué)生和課程E-R 圖
依據(jù)上述需求分析,本系統(tǒng)建立了3 張數(shù)據(jù)表。
(1)admins 表:該表記錄了管理員的基本信息,即用戶名、密碼、用戶類型、真實姓名、年齡、狀態(tài)、電話等。該表可以用來判斷用戶登錄時,該用戶作為何種身份進入該系統(tǒng)。如表1 所示。
表1 管理員表(admins)
(2)courses 表:記錄了所開放的課程信息,即課程編號、課程名、上課時間、上課地點、課程名字、學(xué)時、學(xué)分等。如表2 所示。
表2 課程表(course)
(3)courseschoice 表:記錄課程選擇信息,即課程編號、課程名、上課時間、上課地點、學(xué)時、學(xué)分、狀態(tài)、學(xué)生名字、學(xué)生分?jǐn)?shù)、評分、開始時間。如表3 所示。
表3 課程選擇表(coursechoice)
本系統(tǒng)主要實現(xiàn)兩大管理模塊:前臺的選課管理和后臺的信息管理。前臺的選課管理主要用于通過Internet 向登錄的用戶提供選課的一些基本信息,而后臺主要是實現(xiàn)用戶的管理以及對選課信息的管理。
3.2.1 前臺功能模塊
用戶通過瀏覽器訪問選課系統(tǒng),跳出登錄界面,有三種登錄選擇:
a.登錄管理員賬號,可以進行對用戶的權(quán)限的管理,以及查看用戶的信息,以及修改用戶信息。
b.登錄教師賬號,可以進行課程添加、課程管理和學(xué)生成績錄入,查看學(xué)生選課信息操作。
c.登錄學(xué)生賬號,可以查看選修課信息,還有我的選修課、進行課程申請、給教師評分。
3.2.2 后臺功能模塊
后臺管理模塊的功能最為強大,后臺模塊中主要由用戶信息管理、選課系統(tǒng)信息管和管理員的自我信息管理三個模塊組成,其中用戶信息管理包括添加、刪除用戶和修改用戶信息;添加用戶即添加一些信息到數(shù)據(jù)庫中可以選擇不同的角色,用戶列表可以對所有用戶進行控制,也可以刪除或修改某些用戶和退出系統(tǒng)等,如修改用戶的操作權(quán)限。
語言邏輯關(guān)系還有編程,一般都在后臺體現(xiàn)的最為明顯。后臺處理了該系統(tǒng)在操作運行中會遇到的所有邏輯關(guān)系。而且后臺是一個系統(tǒng)比較重要的地方。如果后臺數(shù)據(jù)或邏輯關(guān)系錯誤,會導(dǎo)致前臺界面的信息錯誤或是根本進不去用戶操作頁面,導(dǎo)致網(wǎng)頁出現(xiàn)很多bug。所以編寫后臺時,要十分得嚴(yán)謹(jǐn)。不過我們對待每個系統(tǒng)都應(yīng)如此。
該系統(tǒng)后臺可根據(jù)用戶的三種狀態(tài)分成三個主體模塊來開發(fā)。
3.3.1 管理員界面
系統(tǒng)的登錄基于角色來控制,不同的角色登錄時對應(yīng)著不同的口令。該系統(tǒng)賬號主要分成三個角色:學(xué)生、教師、管理員,賬號的總體控制由管理員來操作。
使用查詢語句查詢數(shù)據(jù)庫中用戶名的信息,用戶可以通過輸入正確的用戶名和密碼進入系統(tǒng),如果用戶輸錯用戶名和密碼或是沒有輸入,則不能進入系統(tǒng),不能進行操作。當(dāng)用戶正確輸入用戶名、密碼后,單擊登錄按鈕時,系統(tǒng)會把用戶名、密碼與數(shù)據(jù)庫中的數(shù)據(jù)進行比對,當(dāng)用戶名、密碼與后臺數(shù)據(jù)庫中的數(shù)據(jù)一致是,登錄才能成功否則登錄失敗。
在地址欄中輸入:http://localhost:8081/studentchoice 訪客可以進入前端網(wǎng)上選課系統(tǒng)登錄頁面。其中登錄狀態(tài)分為三種:為管理員,老師和學(xué)生。每個用戶進去的頁面都不一樣。管理權(quán)限也不一樣??刹僮鞯墓δ芤彩遣灰粯拥摹O到y(tǒng)如圖6 所示。
圖6 用戶登錄界面
用戶界面部分功能代碼:
圖7 輸入賬號或密碼錯誤界面
用戶登錄失敗或成功部分實現(xiàn)代碼:
圖8 管理員的用戶添加界面
圖9 管理員的用戶信息界面
管理員修改與添加、刪除管理員信息界面部分功能代碼:
圖10 管理員刪除用戶界面
圖11 管理員的用戶信息界面
圖12 管理員的課程信息審核界面
管理員審核課程信息部分功能代碼:
3.3.2 非管理員模塊
教師用戶登錄成功后可以進行課程添加、課程管理和學(xué)生成績錄入。
學(xué)生用戶登錄成功后可以進行課程申請、查看選修課和對所選課程的教師進行評分。
如圖所示。
圖13 教師的課程添加界面
教師添加課程部分代碼:
圖14 教師的分?jǐn)?shù)添加界面
圖15 教師的已錄入成績界面
圖16 學(xué)生的課程申請界面
選修某門課程的學(xué)生信息:
圖17 學(xué)生的教師測評分?jǐn)?shù)界面
圖18 學(xué)生的已評分界面
圖19 學(xué)生的教師評分修改界面
查詢課程信息部分功能代碼:
在各個應(yīng)用軟件系統(tǒng)的開發(fā)過程中,尤其是在大型軟件系統(tǒng)的開發(fā)中,每個編程人員都不能避免地會產(chǎn)生錯誤。所以為了盡可能地發(fā)現(xiàn)并改正系統(tǒng)設(shè)計與開發(fā)中的錯誤,降低錯誤造成的損失,確保系統(tǒng)開發(fā)的質(zhì)量,需要進行多次系統(tǒng)的測試。
其中系統(tǒng)測試主要分為以下幾個部分。
該系統(tǒng)的各個基本功能和要求,測試完成后出現(xiàn)的頁面和提醒,功能等是否能正常使用。表4 為測試多次的結(jié)果。
本系統(tǒng)利用JavaEE 開發(fā)的Maven下的web 工程項目,將Tomcat 服務(wù)器結(jié)構(gòu)與Web 密切結(jié)合,完成前后端兩者的集成輸出功能,使得Web 站點的開發(fā)更方便,實現(xiàn)的功能更強大,利用MySql 技術(shù)來集成Web 數(shù)據(jù)庫信息。這樣的整體設(shè)計與開發(fā)過程,使得網(wǎng)上教學(xué)互動答疑系統(tǒng)本身就有一定的穩(wěn)定性。
對該系統(tǒng)進行多次,且以不同身份登錄時,數(shù)據(jù)庫或服務(wù)器是否會不正常。應(yīng)確保每次操作,系統(tǒng)都是穩(wěn)定的。以確保用戶的使用體驗。測試中,并未出現(xiàn)過什么不穩(wěn)定的地方。
網(wǎng)上在線選課系統(tǒng)是基于B/S 結(jié)構(gòu)(Browser/Server),即瀏覽器/服務(wù)器結(jié)構(gòu)開發(fā)的。從目前的技術(shù)看,局域網(wǎng)建立B/S 結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,并通過Internet/Intranet 模式下數(shù)據(jù)庫應(yīng)用,相對易于把握、成本也是較低的。安全性既也要保證用戶數(shù)據(jù)是否安全,保密性高。該系統(tǒng)不會被別的網(wǎng)站等非法竊取數(shù)據(jù)。數(shù)據(jù)庫也要具有安全性。
由于這個系統(tǒng)是一次性開發(fā)到位的,它能有效地保護學(xué)校數(shù)據(jù)平臺和管理員管理訪問權(quán)限,服務(wù)器數(shù)據(jù)庫也很安全。
表4
另一方面,作為一個網(wǎng)上選課系統(tǒng),登錄管理員賬號后,可以在后臺添加用戶信息(包括管理員、教師和學(xué)生),可以添加多個管理員信息,由這些管理員設(shè)置教師和學(xué)生的登錄賬號和密碼,這樣就省去了每個人想要登錄系統(tǒng)都需要注冊的過程,提高了安全性同時也為教師和學(xué)生帶來了方便,節(jié)省了時間。