雷文禮等
摘 要: 教務(wù)管理系統(tǒng)已經(jīng)完全替代了之前全手工和文件記載的方式進(jìn)行教務(wù)的管理,學(xué)生選課系統(tǒng)作為其一個(gè)不可或缺的子系統(tǒng),受到各大高校的青睞,已經(jīng)成為各高校的主流選課方式,淘汰了以往比較落后的全人工的方式。在此設(shè)計(jì)了一種基于Java的學(xué)生選課系統(tǒng),該系統(tǒng)采用Java的SSH三大框架、B/S架構(gòu)開(kāi)發(fā)而成,通過(guò)學(xué)生在線的瀏覽器操作,使得選課管理工作變得規(guī)范化、系統(tǒng)化,提高了信息處理的有效性和準(zhǔn)確性,同時(shí)大大提高了在學(xué)校日常工作中學(xué)生的參與性。
關(guān)鍵字: Java; 選課; B/S; 瀏覽器
中圖分類號(hào): TN915.4?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)05?0103?03
Design and implementation of student course selection system based on Java
LEI Wen?li, REN Xin?cheng, ZHANG Dong, GAO Ying
(College of Physic and Electronic Information, Yanan University, Yanan 716000, China)
Abstract: The educational administration system has completely replaced the previous hand and documented way of tea?ching management. The course selection system as an indispensable subsystem, which makes a favorable impression on many universities, has become the mainstream choice of universities. Meanwhile, the backward full manual mode was eliminated. A student course selection system based on Java is designed in this paper. It was developed by means of three frameworks in Java and B/S architecture. The system makes the course management work more standardized and systematic through the online browser operation of students. It improved the effectiveness and accuracy of information processing, at the same time, greatly stimulated the students with participation to school daily work.
Keywords: Java; course selection; B/S; browser
0 引 言
我國(guó)高校都實(shí)行了學(xué)分制,它的核心是允許學(xué)生自由選課,即把學(xué)習(xí)的自主權(quán)交給學(xué)生。在這里,學(xué)生選課時(shí)的制約因素比較復(fù)雜,工作量也很大,而且往往需要在較短的時(shí)間內(nèi)完成。運(yùn)用計(jì)算機(jī)輔助選課,既能實(shí)時(shí)地對(duì)大量選課數(shù)據(jù)進(jìn)行檢驗(yàn)和統(tǒng)計(jì),十分方便地輸出選課結(jié)果,同時(shí)也避免了人工處理時(shí)容易產(chǎn)生的錯(cuò)誤。在高等學(xué)校的教務(wù)管理工作中,課程表的編排是一項(xiàng)十分復(fù)雜、棘手的工作。在排課過(guò)程中,除了滿足大量的制約條件以外,還必須解決許多沖突與矛盾,例如:兩位教師不能同一時(shí)間在同一班級(jí)上課、一位教師不能在同一時(shí)間上兩門課等等。利用計(jì)算機(jī)輔助進(jìn)行課表編排工作,既提高了排課工作的科學(xué)性,又可大大減輕管理人員的工作強(qiáng)度,提高工作效率,從而使學(xué)校教務(wù)管理現(xiàn)代化邁上了一個(gè)新臺(tái)階[1]。
1 Java技術(shù)
Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語(yǔ)言和Java平臺(tái)的總稱。Java平臺(tái)由Java虛擬機(jī)(Java Virtual Machine)和Java 應(yīng)用編程接口(Application Programming Interface,API)構(gòu)成[2?3]。Java應(yīng)用編程接口為Java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)Java平臺(tái)之后,Java應(yīng)用程序即可運(yùn)行。
2 需求分析
根據(jù)前期的調(diào)研,結(jié)合目前延安大學(xué)的學(xué)生選課系統(tǒng)的現(xiàn)狀,確定了本系統(tǒng)的需求分析,具體情況如下:
(1) 按角色功能劃分為三個(gè)模塊:管理員模塊、教師模塊、學(xué)生模塊。
(2) 管理員模塊:系統(tǒng)管理員擁有管理員權(quán)限,可以進(jìn)行教師信息的增刪改查、學(xué)生信息的增刪改查、教師開(kāi)設(shè)課程的查看以及課程已選學(xué)生的查看。
(3) 教師模塊:教師擁有系統(tǒng)的教師權(quán)限,可以進(jìn)行課程的開(kāi)設(shè)和刪除、對(duì)已選學(xué)生的信息查看以及給學(xué)生打分和修改學(xué)生該門課程的成績(jī)。其所有的操作都是針對(duì)自己已開(kāi)設(shè)的課程,并且每個(gè)教師最多只能開(kāi)設(shè)兩門課。
(4) 學(xué)生模塊:學(xué)生擁有系統(tǒng)的最低的學(xué)生權(quán)限,可以進(jìn)行課程選擇和退選,已選課程的成績(jī)查詢以及已累積學(xué)分的查看。學(xué)生只能選擇人數(shù)未滿的課程、與已選課程時(shí)間不沖突的課程,每個(gè)學(xué)生最多只能選擇兩門課程。
(5) 所有角色提供密碼修改功能。
(6) 以上的操作所涉及的數(shù)據(jù)處理,均需要維護(hù)到數(shù)據(jù)庫(kù)表中。
(7) 有較好的可維護(hù)性、可靠性、可理解性和較高效率。易于用戶理解和操作。
3 設(shè)計(jì)實(shí)現(xiàn)
3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)設(shè)計(jì)的任務(wù)是確定系統(tǒng)所需的數(shù)據(jù)庫(kù)[4?5]。數(shù)據(jù)庫(kù)是表的集合,通常一個(gè)系統(tǒng)只需一個(gè)數(shù)據(jù)庫(kù)。本文使用MySql數(shù)據(jù)庫(kù)管理軟件。MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB公司開(kāi)發(fā),是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng)。關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,從而增加了速度并提高了靈活性。MySQL的SQL語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言[6?7]。本文建立了course數(shù)據(jù)庫(kù)以及admin、student、teacher、course、stuCourse五個(gè)表。
(1) 教師信息表
teacher 字段如下:
主鍵:編號(hào)id
包括教師的工號(hào)username、姓名name、所在學(xué)院academy、辦公室office、聯(lián)系電話phone、郵箱email、登錄密碼password。
(2) 課程信息表
course 字段如下:
主鍵:編號(hào)id
名稱name、上課星期day、上課時(shí)間time、起始周start_week、結(jié)束周end_week、上課地點(diǎn)cour_place、人數(shù)number、已選人數(shù):cour_alrealy、任課教師工號(hào)teacher、學(xué)分score。
(3) 學(xué)生信息表
student 字段如下:
主鍵:編號(hào)id
學(xué)號(hào)username、姓名name、所在學(xué)院academy、專業(yè)subject、所在班級(jí)class、登錄密碼password。
(4) 學(xué)生選課表
stuCourse 字段如下:
學(xué)號(hào)stu_id、課程編號(hào)cour_id、成績(jī)progress、學(xué)分score。
(5) 管理員信息表
Admin三個(gè)字段:
主鍵:編號(hào)id
管理員用戶名username、管理員密碼password。
其中,由于教師對(duì)課程是一對(duì)多的映射,課程對(duì)教師是多對(duì)一的映射,根據(jù)數(shù)據(jù)庫(kù)設(shè)計(jì)原則,將teaID存入課程信息表中。由于學(xué)生和課程是多對(duì)多的映射,根據(jù)數(shù)據(jù)看設(shè)計(jì)原則,建立新的選課表stuCourse。以上所有的主鍵在數(shù)據(jù)表中以u(píng)uid的形式進(jìn)行保存。powerDesiner中的設(shè)計(jì)圖如圖1所示。
3.2 模塊設(shè)計(jì)
按照系統(tǒng)需求分析進(jìn)行,按模塊進(jìn)行設(shè)計(jì),將系統(tǒng)分為3個(gè)模塊:管理員模塊、教師模塊和學(xué)生模塊。管理員模塊下劃分為4個(gè)功能模塊;教師模塊劃分為4個(gè)模塊;學(xué)生模塊劃分為3個(gè)功能模塊。模塊設(shè)計(jì)圖如圖2所示。
3.3 功能劃分
在模塊劃分完成之后,進(jìn)行如下的功能劃分:
(1) 學(xué)生通過(guò)身份驗(yàn)證后進(jìn)入主界面,在主界面為學(xué)生提供三個(gè)功能選擇,選擇課程,查看成績(jī)和修改個(gè)人密碼。在點(diǎn)擊已選課程的名稱鏈接后還可以查看該門課程的成績(jī),每個(gè)學(xué)生最多只能選擇兩門課程。
(2) 教師通過(guò)身份驗(yàn)證后進(jìn)入教師主頁(yè),提供開(kāi)課、修改課程信息、給學(xué)生課程打分及修改分?jǐn)?shù)、修改個(gè)人密碼功能。在點(diǎn)擊課程名稱的鏈接后可以查看當(dāng)前已選擇該門課程的學(xué)生。
(3) 管理員通過(guò)身份驗(yàn)證進(jìn)入管理員主頁(yè),提供添加學(xué)生、添加教師、學(xué)生及教師信息修改,瀏覽課程開(kāi)設(shè)及已選學(xué)生信息。
3.4 系統(tǒng)框架流程
系統(tǒng)所使用SSH三大框架技術(shù)[8],由用戶在客戶機(jī)的瀏覽器上進(jìn)行操作,發(fā)送請(qǐng)求到網(wǎng)絡(luò)服務(wù)器,網(wǎng)絡(luò)服務(wù)器根據(jù)客戶端的請(qǐng)求在網(wǎng)絡(luò)應(yīng)用中找到相應(yīng)的JSP頁(yè)面,并且創(chuàng)建Servlet和Javabean實(shí)例,Servlet實(shí)例調(diào)用Hibernate中的方法訪問(wèn)數(shù)據(jù)庫(kù),并且將數(shù)據(jù)庫(kù)操作結(jié)果返回到服務(wù)器,由服務(wù)器以JSP的形式返回給客戶,呈現(xiàn)在瀏覽器上。系統(tǒng)流程控制圖如圖3所示。
用戶操作后,發(fā)送請(qǐng)求到服務(wù)器,服務(wù)器根據(jù)web.xml中的fiter進(jìn)行攔截。通過(guò)與struts.xml中的Action名稱進(jìn)行匹配,找到applicationContext.xml的對(duì)應(yīng)的Action類,匹配到后在對(duì)應(yīng)的Action類中執(zhí)行對(duì)應(yīng)的方法,獲取返回值。通過(guò)返回值匹配并且控制頁(yè)面進(jìn)行跳轉(zhuǎn),中間的所有的信息儲(chǔ)存在session中,在頁(yè)面上對(duì)session中的信息進(jìn)行解析,并且列表顯示。
各角色用戶進(jìn)行登錄,登錄界面如圖4所示(系統(tǒng)登錄頁(yè)面login.jsp)。
用戶輸入用戶名和密碼以及驗(yàn)證碼后,點(diǎn)擊登錄按鈕,發(fā)送Login請(qǐng)求到服務(wù)器,調(diào)用LoginAction中的Login方法,進(jìn)行用戶名和密碼的驗(yàn)證,如果用戶名和密碼不正確,返回參數(shù)到頁(yè)面,提示用戶用戶名或密碼不正確;驗(yàn)證碼不正確,返回頁(yè)面提示驗(yàn)證碼不正確。如果用戶名、密碼和驗(yàn)證碼都正確,則根據(jù)權(quán)限進(jìn)入相關(guān)權(quán)限的主頁(yè)。
圖5中左側(cè)提供導(dǎo)航,查看已開(kāi)設(shè)課程和修改個(gè)人密碼。右側(cè)列表分為兩部分,上半部分列表展示所有教師的已開(kāi)設(shè)課程,下半部分列表展示該學(xué)生已選課程。已開(kāi)設(shè)課程提供選課功能,自動(dòng)過(guò)濾掉與已選課程上課時(shí)間沖突的課程和已選課程,每個(gè)學(xué)生只能選擇兩門課程,過(guò)度選擇提示選課已達(dá)上限,將已選課程維護(hù)到學(xué)生課程表中。已選課程提供退選功能,如果已獲得該門課程學(xué)分,則不能退選。在列表的最下邊提供學(xué)生的當(dāng)前已累積的學(xué)分。點(diǎn)擊已選課程名稱可以查看該門課程的得分情況和學(xué)分獲得情況。
4 系統(tǒng)測(cè)試
系統(tǒng)開(kāi)發(fā)完成后進(jìn)行系統(tǒng)的測(cè)試:
首先,搭建測(cè)試環(huán)境,測(cè)試環(huán)境如下:
(1) 硬件環(huán)境:Dell凌越N5110筆記本電腦,64位WIN7操作系統(tǒng),Core i3處理器,6 GB RAM。
(2) 軟件環(huán)境:火狐瀏覽器、MySQL數(shù)據(jù)庫(kù)、Myeclipse 6.0、tomcat 6服務(wù)器。Mozilla Firefox,非正式中文名稱火狐,是一個(gè)開(kāi)源網(wǎng)頁(yè)瀏覽器,使用Gecko引擎(即非IE內(nèi)核),由Mozilla基金會(huì)與數(shù)百個(gè)志愿者所開(kāi)發(fā)。原名“Phoenix”(鳳凰),之后改名“MozillaFirebird”(火鳥(niǎo)),再改為的名字Firefox,其完美支持W3C的特性受到了所有Web程序員的青睞。
(3) 測(cè)試過(guò)程及結(jié)果:
① 安裝好jdk并且配置好環(huán)境變量,在myeclipse中選中本次的項(xiàng)目,點(diǎn)擊右鍵,選擇export,選擇war file,選好路徑,點(diǎn)擊finish;
② 將導(dǎo)出來(lái)的war包復(fù)制到tomcat目錄下的webapp文件夾下;
③ 在tomcat目錄下的bin文件夾下找到startup.bat文件,雙擊啟動(dòng)tomcat服務(wù)器;
④ 打開(kāi)火狐瀏覽器,在地址欄輸入http://localhost:8080/cour,回車,出現(xiàn)登錄頁(yè)面;若輸入錯(cuò)誤的用戶名或密碼,結(jié)果如圖6所示。
測(cè)試結(jié)果表明該設(shè)計(jì)方案運(yùn)行良好,可以滿足現(xiàn)實(shí)學(xué)生選課的需求。
參考文獻(xiàn)
[1] 張劍平.學(xué)校管理信息系統(tǒng)[M].北京:中國(guó)鐵道出版社,1997.
[2] 肖杰,譚慶平.基于J2EE的Web構(gòu)件平臺(tái)的設(shè)計(jì)[J].長(zhǎng)沙大學(xué)學(xué)報(bào),2005,19(3):43?47.
[3] 趙增敏.ASP動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2003.
[4] 田小波,陳蜀宇.MVC設(shè)計(jì)模式在Java EE架構(gòu)下的研究與應(yīng)用[J].西華大學(xué)學(xué)報(bào),2007(2):33?35.
[5] 劉乃麗.精通Java EE項(xiàng)目案例[M].北京:人民郵電出版社,2008.
[6] 葉達(dá)峰.eclipse編程技術(shù)與實(shí)例[M].北京:人民郵電出版社,2006.
[7] 高振東.基于J2EE平臺(tái)的EJB技術(shù)研究與應(yīng)用[J].航空計(jì)算技術(shù),2003,33(1):28?32.
[8] 姜利群.Java網(wǎng)絡(luò)編程實(shí)例教程[M].北京:清華大學(xué)出版社,2003.