中圖分類號: TP319
本 科 生 畢 業(yè) 論 文(或設(shè)計)
(申請學(xué)士學(xué)位)
論文題目 基于
MVC架構(gòu)的網(wǎng)上選課
系統(tǒng)的設(shè)計與實現(xiàn)
作者姓名 張 楠 所學(xué)專業(yè)名稱 計算機科學(xué)與技術(shù) 指導(dǎo)教師 劉士喜
2009年6月10日
滁州學(xué)院本科畢業(yè)論文
學(xué) 號:**********
論文答辯日期: 2009年5月30日
指 導(dǎo) 教 師: (簽字)
滁州學(xué)院本科畢業(yè)論文
滁州學(xué)院本科畢業(yè)設(shè)計(論文)原創(chuàng)性聲明
本人鄭重聲明:所呈交的設(shè)計(論文)是本人在導(dǎo)師的指導(dǎo)下進行研究所取得的研究成果。除了文中特別加以標注引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果。本人完全意識到本聲明的法律后果由本人承擔。
作者簽名:
注:本頁放在學(xué)位論文封面后,目錄前面。
年 月 日
滁州學(xué)院本科畢業(yè)論文
目 錄
摘要 .............................................................................1 Abstract ..........................................................................1 1. 緒論 .........................................................................2
1.1 系統(tǒng)的研究現(xiàn)狀 ...........................................................2 1.2 系統(tǒng)的研究目標 ...........................................................2 1.3 MVC概述 ................................................................3
1.3.1 MVC簡介 ..........................................................3 1.3.2 MVC的優(yōu)點 ........................................................3 1.3.3 JSP+Servlet+JavaBean技術(shù)簡介 .........................................3
2. 系統(tǒng)規(guī)劃 .....................................................................4
2.1 需求分析 .................................................................4
2.1.1 系統(tǒng)功能概述 .......................................................4 2.1.2 需求分析的方法簡介 .................................................5 2.1.3 用例圖描述 .........................................................5 2.1.4 系統(tǒng)活動描述 .......................................................9 2.1.5 非功能性需求 ......................................................10 2.2 可行性分析 ..............................................................11
2.2.1 開發(fā)的必要性 ......................................................11 2.2.2 開發(fā)的可能性 ......................................................11
3. 系統(tǒng)分析 ....................................................................11
3.1業(yè)務(wù)流程分析 .............................................................11 3.2 數(shù)據(jù)流程分析 ............................................................12 4. 系統(tǒng)設(shè)計 ....................................................................13
4.1 系統(tǒng)結(jié)構(gòu)設(shè)計 ............................................................13 4.2 數(shù)據(jù)庫設(shè)計 ..............................................................15 5. 系統(tǒng)主要功能的實現(xiàn) ..........................................................20
5.1 登錄的實現(xiàn) ..............................................................20 5.2 管理員功能頁面的實現(xiàn) ....................................................26 5.3 學(xué)生功能頁面的實現(xiàn) ......................................................26 5.4 教師功能頁面的實現(xiàn) ......................................................28
滁州學(xué)院本科畢業(yè)論文
結(jié)論 ............................................................................33 參考文獻 ........................................................................33 致謝 ............................................................................34
滁州學(xué)院本科畢業(yè)論文
基于MVC架構(gòu)的網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)
摘要:近年來,由于高校在校人數(shù)的增多以及對學(xué)生信息統(tǒng)一管理的需要,學(xué)生選課管理面臨著巨
大的工作量。學(xué)校每學(xué)期的學(xué)生選課都需要進行綜合統(tǒng)計,但是每次的選課工作都是人工收集和統(tǒng)計選票,這樣既花費大量的時間,還容易出現(xiàn)誤差。為解決這些問題,本文設(shè)計了一個基于MVC架構(gòu)的網(wǎng)上選課系統(tǒng),不僅使學(xué)生選課處理效率高,而且能夠避免出錯。對MVC進行了簡要的描述,說明了使用MVC的優(yōu)越之處。通過用例圖和活動圖對系統(tǒng)進行需求分析,并闡述了本系統(tǒng)實施的可行性。在分析本系統(tǒng)業(yè)務(wù)流程的基礎(chǔ)上,進行系統(tǒng)設(shè)計。提出了本系統(tǒng)的總體結(jié)構(gòu)和后臺數(shù)據(jù)庫,詳細描述了系統(tǒng)的各功能模塊的實現(xiàn)細節(jié)。最后給出本系統(tǒng)的優(yōu)點和不足。
關(guān)鍵詞: MVC;網(wǎng)上選課;用例圖;活動圖
The design and realization for on-line course selection management
based on MVC structure
Abstract:In recent years, with the increasing of students in university and the demand of Unified
management of students’ information, selecting course for students is facing giant work load. Every semester selecting for students needs to carry on the synthesis statistic in university, however, collecting and counting voting through manual work which not only spends much time, but also many errors occur easily. In order to solve these problems, the author designs an on-line course selcection management which based on MVC. It not only has high processing efficiency for students to select course, but also many mistakes can be avoided. This paper describes MVC briefly, and shows the advantage of using MVC. This system demand with the Use Case Diagram and Activity Diagram is analyzed, and the feasibility of this system’s implementation is explained. In the base of analysis of this system’s business processes , the system designis is given, and the gross structure and Database of this system is presented, and the realization of every function module of this system is described in details. Finally, the strengths and weaknesses of this system is presented.
Key words: MVC;on-line course selection;Use Case Diagram ;Activity Diagram
1
滁州學(xué)院本科畢業(yè)論文
1 緒論
1.1 系統(tǒng)的研究現(xiàn)狀
目前對于網(wǎng)上選課系統(tǒng)的研究已經(jīng)越來越深入,也越來越成熟,主要是基于B/S模式,采用JAVA、ASP等編程語言和ORACLE、SQL Server、ACCESS等數(shù)據(jù)庫相結(jié)合進行設(shè)計和實現(xiàn)。
基于JAVA平臺和ORACLE9i技術(shù)的網(wǎng)上選課系統(tǒng),分析了基于WEB選課系統(tǒng)的需求,對系統(tǒng)進行了全面分析,并采用JAVA+ORACLE9i技術(shù)的具體設(shè)計方案,提出了設(shè)計過程中問題的解決辦法。系統(tǒng)以Apache+Tomcat為應(yīng)用服務(wù)器,Oracle9i為后臺數(shù)據(jù)庫,DreamweaverMx和Jbuilder9為開發(fā)工具[1]。
隨著高校教育教學(xué)改革的不斷深入,眾多院校采用選課制。本文采用統(tǒng)一建模語言(UML)完成了該系統(tǒng)的分析和設(shè)計,提出了分布式3層體系結(jié)構(gòu)的設(shè)計方案,并簡要介紹了該系統(tǒng)的設(shè)計思想和功能模塊[2]。
為了全面推進素質(zhì)教育,越來越多的中等職業(yè)學(xué)校都采用了學(xué)分制教學(xué)管理制度。這種制度需要面對的一個重要問題就是學(xué)生的選課操作問題,如果采用人工的方法既費時又費力,因而需要選用一種新的選課方式解決這個問題。本系統(tǒng)是在學(xué)校校園網(wǎng)平臺的基礎(chǔ)上使用ASP.NET及數(shù)據(jù)庫技術(shù)開發(fā)出的、適合于中等職業(yè)學(xué)校使用的網(wǎng)上選課系統(tǒng),可以比較好地解決此問題[3]。
隨著通訊技術(shù)和計算機網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,高校教學(xué)管理網(wǎng)絡(luò)化已成為一個發(fā)展趨勢。針對高校教務(wù)管理改革中的一個重點問題——學(xué)生選課設(shè)計了一個切實可行的系統(tǒng),并對基于ASP的網(wǎng)上選課系統(tǒng)開發(fā)的基本原理和系統(tǒng)結(jié)構(gòu)作了闡述,討論了如何利用ASP實現(xiàn)對數(shù)據(jù)庫的動態(tài)操作,并介紹該在線選課系統(tǒng)的幾個主要功能模塊的設(shè)計過程并實現(xiàn)了該選課系統(tǒng),選課效果良好[4]。
基于ASP.NET和SQL Server2005的網(wǎng)上選課系統(tǒng)的系統(tǒng)模塊、邏輯體系結(jié)構(gòu)、系統(tǒng)優(yōu)化及實現(xiàn)的關(guān)鍵技術(shù)。在WindowsServer2003+IIS6.0+.net的平臺上,以SQLServer2005為后臺數(shù)據(jù)庫,采用ASP.NET為基本開發(fā)工具,充分考慮了系統(tǒng)的安全性,實現(xiàn)了教師和所教課程的添加、修改、刪除,還實現(xiàn)了學(xué)生注冊、確認和分班的綜合管理[5]。
基于MVC架構(gòu)采用JSP+Servlet+JavaBean和SQL Server2000相結(jié)合的網(wǎng)上選課系統(tǒng),能較安全,快捷的實現(xiàn)網(wǎng)上選課功能并且較易開發(fā)、復(fù)用度高、代碼耦合度低,易維護。
1.2 系統(tǒng)的研究目標
開發(fā)高校學(xué)生網(wǎng)上選課系統(tǒng)的目標是為了方便學(xué)生的選課操作、教師的評選操作,提高選課的效率和靈活性,實現(xiàn)對選課數(shù)據(jù)進行統(tǒng)一的管理,較易維護。
2
滁州學(xué)院本科畢業(yè)論文
1.3 MVC概述
1.3.1 MVC簡介
為了能有效的控制開發(fā), MVC模式成為分析和設(shè)計Web應(yīng)用程序最常用的模式, 它為軟件的分層及實現(xiàn)提供了一種穩(wěn)定而成熟的結(jié)構(gòu)方案和開發(fā)方法。
MVC是英文Model、View、Controller的縮寫,它不是一種技術(shù),而是一種系統(tǒng)框架。 MVC包含:
⑴ 模型(Model)代表企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則,用來控制訪問和數(shù)據(jù)更新。
⑵ 視圖(View)代表模型的內(nèi)容,它通過模型訪問企業(yè)數(shù)據(jù)并指定這些數(shù)據(jù)的顯示。視圖負責模型狀態(tài)改變后呈現(xiàn)給用戶的數(shù)據(jù)也相應(yīng)改變。 ⑶ 控制(Controller)把與視圖交互轉(zhuǎn)化成模型執(zhí)行的動作。
1.3.2 MVC的優(yōu)點
MVC架構(gòu)有如下優(yōu)點:
⑴ 多視圖使用同一模型。模型與視圖分離允許多視圖使用同一企業(yè)模型。
⑵ 容易支持新類型的客戶端。支持一個新類型的客戶端,只需寫一個視圖和控制,然后把它連接到現(xiàn)存的企業(yè)模型中。
⑶ 有利于開發(fā)中的分工。在MVC模式中,由于按層把系統(tǒng)開,那么就能更好的實現(xiàn)開發(fā)中的分工。網(wǎng)頁設(shè)計人員可以進行開發(fā)視圖層中的JSP,對業(yè)務(wù)熟悉的開發(fā)人員可開發(fā)業(yè)務(wù)層JavaBean,而其它開發(fā)人員可開發(fā)控制層Servlet。
⑷ 有利于組件的重用。分層后更有利于組件的重用。如控制層可成一個能用的組件,視圖層也可做成通用的操作界面。
1.3.3 JSP+Servlet+JavaBean技術(shù)簡介
JSP是一種實現(xiàn)普通靜態(tài)HTML和動態(tài)HTML混合編碼的技術(shù)。JSP設(shè)計的目的在于簡化表示層的表示。在JSP中編寫靜態(tài)的HTML更加方便,不必再用Println語句來輸出每一行HTML代碼。更重要的是借助內(nèi)容和外觀的分離,頁面制作中不同性質(zhì)的任務(wù)可以方便地分開[6]。
Servlet是一種于操作系統(tǒng)平臺和網(wǎng)絡(luò)傳輸協(xié)議的服務(wù)器端的Java應(yīng)用程序,它用來擴展服務(wù)器的功能,可以生成動態(tài)的Web頁面。Servlet與傳統(tǒng)Java應(yīng)用程序最大的不同在于:它不是從命令行啟動的,而是由包含Java虛擬機的Web服務(wù)器進行加載。它最大的用途是通過動態(tài)響應(yīng)客戶機請求來擴展服務(wù)器功能。其基本的工作流程如下:
⑴ 客戶機將請求發(fā)送到服務(wù)器。
⑵ 服務(wù)器上的Web容器實例化(裝入)Servlet,并為Servlet進程創(chuàng)建線程。
JavaBean組件是一些可移植、可重用,并可以組裝到應(yīng)用程序中的Java類??梢酝ㄟ^在 JavaBean中封裝事務(wù)邏輯、數(shù)據(jù)庫操作等,然后將JavaBean與JSP語言元素一起使用,可
3
滁州學(xué)院本科畢業(yè)論文
以很好地實現(xiàn)后臺業(yè)務(wù)邏輯和前臺邏輯的分離,使得JSP頁面更加可讀、易維護。
2 系統(tǒng)規(guī)劃
2.1 需求分析
2.1.1 系統(tǒng)功能概述
基于項目的總體規(guī)劃,可以將本系統(tǒng)劃分為以下4個模塊:
⑴ 用戶登陸模塊:負責驗證系統(tǒng)中各級別用戶的登錄信息,并根據(jù)登陸用戶的不同級別轉(zhuǎn)向不同的頁面。
⑵ 學(xué)生功能模塊:負責學(xué)生的選課、查看課程成績、課程簡介、教學(xué)進度表以及更改學(xué)生信息的操作。
⑶ 教師功能模塊:負責審批學(xué)生選課、公布學(xué)生成績、編輯課程簡介和教學(xué)進度表以及更改學(xué)生信息的操作。
⑷ 管理員功能模塊:負責課程、班級和學(xué)生信息的添加、修改和刪除等操作。
其中,用戶登陸模塊中涉及到用戶身份級別的處理:不同身份的用戶對系統(tǒng)的使用權(quán)限有所不同。系統(tǒng)管理員登錄后可以對學(xué)生、教師、課程、班級等系統(tǒng)信息進行管理和維護,教師登陸后可以查看學(xué)生選課情況并給出所帶學(xué)生課程成績,學(xué)生登錄后可以進行選課并查看自己某門課程的成績。在功能實現(xiàn)方面,基于MVC的思想,用JSP實現(xiàn)系統(tǒng)的首頁,提供用戶登錄信息輸入接口;Servlet實現(xiàn)驗證用戶登陸信息(若正確則根據(jù)用戶級別轉(zhuǎn)向不同的頁面);JavaBean實現(xiàn)整個系統(tǒng)與數(shù)據(jù)庫的連接和關(guān)閉操作。
學(xué)生登錄模塊功能分析:學(xué)生登錄以后,可以選報課程:系統(tǒng)會根據(jù)學(xué)生所在系及課程的先修課列出滿足該生選報條件的課程;可以查看自己的成績,包括該生每門課程的名稱、學(xué)分以及總學(xué)分。如果教師還未給出成績,則系統(tǒng)會有相關(guān)提示;可以查看該課程的課程簡介、教學(xué)進度表的相關(guān)信息;可以更改自己的個人信息,包括密碼、電話號碼,其中要求密碼不能為空。在功能實現(xiàn)方面,基于MVC的思想,用JSP實現(xiàn)學(xué)生登陸成功后顯示的功能頁面以及相關(guān)信息查詢、更新學(xué)生注冊信息頁面;Servlet實現(xiàn)學(xué)生選課和查看成績等操作;JavaBean實現(xiàn)學(xué)生選擇課程。
教師登錄模塊功能分析:教師登陸以后,可以對學(xué)生選課申請進行審核,以及給自己所帶的學(xué)生進行打分。教師可以查看有哪些學(xué)生選擇了自己所教授的課程,其中系統(tǒng)列出了該教師所帶課程的班級以及選報了該課程的所有學(xué)生信息,當該課程結(jié)束時教師可以給出所有選擇該課程學(xué)生的成績。當教師給出了學(xué)生某門課程的成績之后,系統(tǒng)會根據(jù)成績來判斷該生是否通過了該課程,如果該成績大于或等于60分,則在該生的學(xué)分上加上該課程的學(xué)分。在功能實現(xiàn)方面,基于MVC的思想,用JSP實現(xiàn)教師登陸成功后顯示的功能頁面以及查看相關(guān)信息、給學(xué)生打分的頁面;Servlet實現(xiàn)執(zhí)行批準學(xué)生選課和給學(xué)生打分等操作;JavaBean實現(xiàn)批準學(xué)生選課和打分等邏輯方法。
管理員模塊功能分析:管理員在本系統(tǒng)中擁有最高權(quán)限,可以對學(xué)生、教師、課程、班級等信
4
滁州學(xué)院本科畢業(yè)論文
息進行管理和維護。在班級管理系統(tǒng)中“新增班級”是該模塊的關(guān)鍵環(huán)節(jié),其中班級號不能為空且輸入的班級號未曾注冊,同時還要保證同一教師不能在同一時間上兩門課程,否則系統(tǒng)提示相關(guān)錯誤信息。在功能實現(xiàn)方面,基于MVC的思想,用JSP實現(xiàn)管理員成功登陸后的功能頁面、以及添加、查看、更新相關(guān)信息的頁面;Servlet實現(xiàn)執(zhí)行添加、刪除、修改學(xué)生信息、教師信息、課程信息、班級信息等操作;JavaBean實現(xiàn)封裝關(guān)于學(xué)生信息、教師信息、課程信息、班級信息的業(yè)務(wù)邏輯方法。
2.1.2 需求分析的方法簡介
本系統(tǒng)采用例驅(qū)動的分析方法進行需求分析。下面簡要介紹一下此方法:UML(統(tǒng)一建模語言,Unified Modeling Language)是一種定義良好、易于表達、功能強大且普遍適用的可視化建模語言。它融入了軟件工程領(lǐng)域的新思想、新方法和新技術(shù)。它的作用域不限于支持面向?qū)ο蟮姆治雠c設(shè)計,還支持從需求分析開始的軟件開發(fā)的全過程。用例建模是UML建模的一部分,也是UML里最基礎(chǔ)的部分。用例建模的最主要功能就是用來表達系統(tǒng)的功能性需求或行為。用例建模可分為用例圖和用例描述。用例圖由參與者(Actor)、用例(Use Case)、系統(tǒng)邊界、箭頭組成,用畫圖的方法來完成。用例描述用來詳細描述用例圖中每個用例,用文本文檔來完成?;顒訄D是UML的另一個組成部分,活動圖描述了滿足用例要求所要進行的活動以及活動間的約束關(guān)系,活動圖有利于識別并發(fā)活動。在進行用例建模的同時可以輔以活動圖進行詳細說明系統(tǒng)所進行的并發(fā)活動。當用例圖和活動圖結(jié)合起來時,系統(tǒng)的功能性需求就能夠被完整地表達出來,并且簡單明了[7]。
2.1.3 用例圖描述
采用用例驅(qū)動方法分析需求,首先識別出系統(tǒng)的參與者主要有系統(tǒng)管理員、教師和學(xué)生,每一種參與者都有不同的權(quán)限,其中系統(tǒng)管理員權(quán)限最大,負責整個系統(tǒng)的維護。下面就對整個系統(tǒng)建立用例模型來表達需求:
5
滁州學(xué)院本科畢業(yè)論文
⒈ 系統(tǒng)管理員:主要負責對教師、學(xué)生、課程、班級的信息進行維護等。
圖2-1 用例圖—系統(tǒng)管理員
對圖2-1用例圖中的用例進一步描述如下:
⑴ 添加學(xué)生:錄入學(xué)生的基本信息,并設(shè)置初始密碼。
⑵ 刪除學(xué)生:對于已畢業(yè)或其他情況不屬于本學(xué)校的學(xué)生信息進行刪除操作。 ⑶ 修改學(xué)生:對學(xué)生的信息有誤之處進行修改并錄入數(shù)據(jù)庫。 ⑷ 添加教師:錄入教師的基本信息,并設(shè)置初始密碼。
⑸ 刪除教師:對于已退休或其他情況不屬于本學(xué)校的教師信息進行刪除操作。 ⑹ 修改教師:對教師的信息有誤之處進行修改并錄入數(shù)據(jù)庫。 ⑺ 添加課程:錄入課程的基本信息。
⑻ 刪除課程:對于已不開設(shè)的課程信息進行刪除操作。
6
滁州學(xué)院本科畢業(yè)論文
⑼ 修改課程:對課程的信息有誤之處進行修改并錄入數(shù)據(jù)庫。 ⑽ 添加班級:錄入班級的基本信息。
⑾ 刪除班級:對于已不開設(shè)的班級信息進行刪除操作。 ⑿ 修改班級:對班級的信息有誤之處進行修改并錄入數(shù)據(jù)庫。
⒉ 學(xué)生:從系統(tǒng)管理員處獲得密碼進入系統(tǒng),主要完成選修課程、查看學(xué)分、更改信息等操作。其用例圖如圖2-2:
圖2-2 用例圖—學(xué)生
對圖2-2用例圖中的用例進一步描述如下:
⑴ 選修課程:學(xué)生登錄系統(tǒng)之后可以選修自己的喜歡的課程。
⑵ 查看學(xué)分:系統(tǒng)根據(jù)學(xué)生信息列出該生的所有課程所獲學(xué)分及總學(xué)分。 ⑶ 更改信息:學(xué)生進入該功能頁面后,可以修改密碼及其他個人信息。
7
滁州學(xué)院本科畢業(yè)論文
⒊ 教師:主要完成挑選學(xué)生及公布成績等功能。其用例圖如下:
圖2-3 用例圖—教師
對圖2-3用例圖中的用例進一步描述如下:
⑴ 挑選學(xué)生:登陸系統(tǒng)后,進入挑選學(xué)生的功能頁面,審批學(xué)生選課同時可以進行編輯課程簡介和教學(xué)進度表信息。
⑵ 公布成績:對于選修該課程的學(xué)生給出成績。
⑶ 更改信息:教師進入該功能頁面后,可以修改密碼及其他個人信息。
8
滁州學(xué)院本科畢業(yè)論文
2.1.4 系統(tǒng)活動描述
⒈ 學(xué)生選課的活動描述
圖2-4 活動圖—學(xué)生選課
學(xué)生登陸以后,可以選報課程,系統(tǒng)會根據(jù)學(xué)生所在系及課程的先修課等信息來判斷學(xué)生是否具備條件,如果具備條件,學(xué)生可以注冊課程進行選報;教師根據(jù)提交的選報該課程的學(xué)生信息進行審核及挑選,最后在該課程結(jié)束時給出所有學(xué)生的成績。
⒉ 管理員對各種信息進行維護的活動描述
管理員登陸以后,可以對學(xué)生、教師信息進行添加、修改和刪除等操作,并將結(jié)果錄入到數(shù)據(jù)庫中。
9
滁州學(xué)院本科畢業(yè)論文
a)
b)
圖2-5 活動圖—信息維護
以管理員身份登錄后,管理員負責對學(xué)生、教師、課程、班級的信息進行管理及維護,管理員對于畢業(yè)或其他原因不屬于本校的學(xué)生信息進行刪除,對于錄入有誤的學(xué)生信息進行更新,同時對于新增的學(xué)生進行信息添加;對于退休或其他原因不屬于本校的教師信息進行刪除,對于錄入有誤的教師信息進行更新,同時對于新增的教師進行信息添加。
2.1.5 非功能性需求
學(xué)生網(wǎng)上選課系統(tǒng)的非功能性需求如下:
1. 使用簡單。用戶使用單一的Browser軟件(如微軟公司的Internet Explorer 簡稱IE 和網(wǎng)景公
司的Net scape Navigator) ,通過鼠標即可訪問數(shù)據(jù)信息。
10
滁州學(xué)院本科畢業(yè)論文
2. 易于維護。用戶端無需專用軟件, 系統(tǒng)的維護工作簡單。 3. 信息共享度高。實現(xiàn)系統(tǒng)內(nèi)的信息傳遞,加快運轉(zhuǎn)速度。
4. 擴展性好??芍苯咏尤隝ntranet 和Internet , 具有良好的擴展性。 5. 可在局域網(wǎng)或廣域網(wǎng)上運行。
2.2 可行性分析
在網(wǎng)上選課系統(tǒng)的目標及需求確定之后,就可以對這個系統(tǒng)的可行性進行分析,從該系統(tǒng)開發(fā)的必要性和可能性兩個方面進行討論。
2.2.1 開發(fā)的必要性
隨著計算機應(yīng)用的不斷深入,信息產(chǎn)業(yè)的興起,互聯(lián)網(wǎng)的發(fā)展及應(yīng)用,網(wǎng)上辦公的作用日益明顯。各行各業(yè)幾乎都與計算機有著密切的聯(lián)系,都實現(xiàn)了不同程度的自動化操作。網(wǎng)上選課系統(tǒng)對學(xué)生選修課程進行了規(guī)范、科學(xué)的設(shè)計,快捷有效地實現(xiàn)了學(xué)生對課程的選修。同時,該系統(tǒng)也錄入了學(xué)生、教師、課程、班級等的基本信息,可以為學(xué)校的管理帶來方便。
2.2.2 開發(fā)的可能性
1. 技術(shù)可行性:使用現(xiàn)如今已經(jīng)成熟的MVC架構(gòu),系統(tǒng)數(shù)據(jù)庫選擇SQL Server2000 ,在系
統(tǒng)中的核心部分使用Servlet+JavaBean技術(shù),實現(xiàn)JSP+Servlet+JavaBean和SQL Server 2000的有機集合。
2. 經(jīng)濟可行性:開發(fā)高校學(xué)生的網(wǎng)上選課系統(tǒng)屬于高校的信息化建設(shè),開發(fā)過程所需要的經(jīng)濟
費用是極其少的,在使用過程中也只需要瀏覽器的支持,其他環(huán)節(jié)并不涉及到經(jīng)濟問題,所以其在經(jīng)濟上是非常可行的,可以使整個選課的管理更高效快捷。
3. 社會可行性:學(xué)校的各級人員都對學(xué)校的信息化建設(shè)持支持的態(tài)度,并積極地為信息化建設(shè)
的開展而做自己能做的事;學(xué)校的組織管理制度已經(jīng)非常成熟,暫時不會有大的變動;學(xué)校的工作人員文化水平都相對較高,這對信息化建設(shè)是非常有利的。
3 系統(tǒng)分析
3.1業(yè)務(wù)流程分析
通過調(diào)查,以滁州學(xué)院計算機系為例,可以分析學(xué)生網(wǎng)上選課的整個過程,得到如圖3-1的業(yè)務(wù)流程圖:
11
滁州學(xué)院本科畢業(yè)論文
圖3-1 網(wǎng)上選課系統(tǒng)的業(yè)務(wù)流程圖
⑴ 系統(tǒng)管理員對學(xué)生、教師、課程、班級信息進行管理和維護并錄入系統(tǒng)數(shù)據(jù)庫。 ⑵ 學(xué)生對選修的課程進行注冊、修改個人信息并將相關(guān)信息錄入數(shù)據(jù)庫,同時學(xué)生可以查看可選報課程的課程簡介和教學(xué)進度表的相關(guān)信息以及自己所有課程的學(xué)分情況,這些信息當被查看時自動以列表形式顯示給學(xué)生。
⑶ 教師在系統(tǒng)中對選報其所帶課程的學(xué)生進行審核并對修完所帶課程的學(xué)生進行打分,系統(tǒng)自動根據(jù)該教師所帶班級及課程信息列出選報并需審核的學(xué)生信息,在公布成績時,系統(tǒng)自動根據(jù)該教師所帶班級及課程信息列出需打分的學(xué)生信息;同時教師可以對該課程的課程簡介和教學(xué)進度表進行編輯。
⑷ 系統(tǒng)根據(jù)教師給學(xué)生的成績自動在該生的原始學(xué)分上加分并計算出其總學(xué)分,同時將結(jié)果錄入系統(tǒng)數(shù)據(jù)庫,從而避免了大量的手工輸入以及由此可能產(chǎn)生的失誤。
3.2 數(shù)據(jù)流程分析
由圖3-1中的業(yè)務(wù)流程圖,可以得到本網(wǎng)上選課系統(tǒng)的數(shù)據(jù)流程圖,如圖3-2所示:
12
滁州學(xué)院本科畢業(yè)論文
圖3-2 網(wǎng)上選課系統(tǒng)的數(shù)據(jù)流程圖
4 系統(tǒng)設(shè)計
4.1 系統(tǒng)結(jié)構(gòu)設(shè)計
通過對業(yè)務(wù)流程的分析,結(jié)合現(xiàn)實情況,可以設(shè)計出整個學(xué)生網(wǎng)上選課系統(tǒng)的總體結(jié)構(gòu)。由于本系統(tǒng)存在三種不同權(quán)限的用戶,每種權(quán)限的用戶進入系統(tǒng)后是其權(quán)限對應(yīng)的不同頁面,所以在進行系統(tǒng)結(jié)構(gòu)設(shè)計時要分別考慮。
13
滁州學(xué)院本科畢業(yè)論文
1. 系統(tǒng)管理員的頁面結(jié)構(gòu)設(shè)計
圖4-1 系統(tǒng)管理員頁面的結(jié)構(gòu)圖
系統(tǒng)管理員有四個模塊可以操作,分別是學(xué)生信息管理模塊、教師信息管理模塊、課程信息管理模塊和班級信息管理模塊。學(xué)生信息管理模塊的下層模塊分別是添加學(xué)生信息模塊、刪除學(xué)生信息模塊、更新學(xué)生信息模塊;教師信息管理模塊所包含的模塊分別是添加教師信息模塊、刪除教師信息模塊、更新教師信息模塊;課程信息管理模塊所包含的模塊分別是添加課程信息模塊、刪除課程信息模塊、更新課程信息模塊;班級信息管理模塊所包含的模塊分別是添加班級信息模塊、刪除班級信息模塊、更新班級信息模塊。
2. 學(xué)生功能頁面結(jié)構(gòu)設(shè)計
圖4-2學(xué)生功能頁面的結(jié)構(gòu)圖
14
滁州學(xué)院本科畢業(yè)論文
學(xué)生功能頁面有三個模塊可以操作,分別是選修課程模塊、修改信息模塊和查看學(xué)分管理模塊。
以學(xué)生身份登錄后進入選修課程功能頁面:系統(tǒng)根據(jù)學(xué)生信息情況給出該生可以選報的課程;修改信息功能頁面:修改個人密碼和編輯個人資料;查看學(xué)分:可以查看自己所有課程的學(xué)分情況及總學(xué)分。
3. 教師功能的頁面結(jié)構(gòu)設(shè)計
圖4-3 教師功能頁面的結(jié)構(gòu)圖
教師功能頁面有三個模塊可以操作,分別是挑選學(xué)生模塊、公布成績模塊、更改信息模塊。
挑選學(xué)生管理模塊完成教師對申請該課程學(xué)生的審核及批準操作;公布成績模塊完成給學(xué)生打分的操作;更改信息模塊完成修改密碼及編輯個人材料的操作。
4.2 數(shù)據(jù)庫設(shè)計
根據(jù)以上的分析可以設(shè)計出本系統(tǒng)的數(shù)據(jù)庫,所用到的數(shù)據(jù)庫表說明如下:
表4-1管理人員表admin
序主鍵 備注 號 字段說明 字段名 字段類型 長度 1 管理人員ID id varchar 50 是 2 姓名 name varchar 50 3 密碼 password varchar 50 4 聯(lián)系電話 tel varchar 50 5 電子郵箱 e_mail varchar 50
15
滁州學(xué)院本科畢業(yè)論文
表4-2學(xué)生基本信息表student
序號 字段說明 1 學(xué)號 2 姓名 3 密碼 4 籍貫 5 所屬專業(yè) 6 性別 7 學(xué)分 8 聯(lián)系電話 9 電子郵箱 主鍵 字段名 id name password jiguan department sex mark tel e_mail 字段類型 varchar varchar varchar varchar varchar varchar int varchar varchar
表4-3教師信息表teacher
備注 長度 50 50 10 100 100 100 4 50 50 是 序號 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 主鍵 字段說明 教師號 姓名 職稱 密碼 聯(lián)系電話 電子郵箱 最高學(xué)位 最高學(xué)歷 畢業(yè)院校 所學(xué)專業(yè) 政治面貌 民族 研究方向 出生年月 性別 字段名 id name title password tel e_mail zgxw zgxl byyx sxzy zzmm mz yjfx csny xb
備注 字段類型 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 長度 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 是
16
滁州學(xué)院本科畢業(yè)論文
表4-4課程信息表course
序號 字段說明 1 2 3 4 5 6 7
課程號 課程名稱 課程學(xué)分 課程先修課 課程性質(zhì) 考察方式 字段名 id name mark prepare character examode 字段類型 varchar varchar varchar varchar varchar varchar varchar 長度 50 50 50 50 50 50 50 主鍵 是 備注 課程所屬專業(yè) dep 表4-5班級信息表classes
序號 字段說明 1 2 3 4 5
班級號 教師號 課程號 教室號 課程時間 字段名 id tea_id cour_id room_id cour_time 字段類型 varchar varchar varchar varchar varchar 長度 50 50 50 50 50 主鍵 是 是 備注 表4-6選課信息表enrol
序號 1 2 3 4 5 6 7 主鍵 字段說明 選課的學(xué)生ID號 選課學(xué)生所屬班級ID號 選課成功標識位 總評成績 平時成績 實驗成績 期末成績 字段名 id class_id accept score pingshi shiyan qimo 字段類型 varchar varchar bit varchar varchar varchar varchar
備注 長度 是 50 是 50 1 50 50 50 50
17
滁州學(xué)院本科畢業(yè)論文
表4-7課程簡介kcjj
序號 1 2 3 4 5 6 7 8 9 10 11 12 13 字段說明 班級號 課程名稱 課程類 課程負責人 聯(lián)系電話 e_mail 教師隊 開課學(xué)期 內(nèi)容簡介 課程說明 教材 教學(xué)參考書 字段名 id name kcl kcfzr lxdh e_mail jsd kkxq nrjj kcsm jc jxcks 字段類型 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar
表4-8教學(xué)進度表jxjd
長度 50 50 50 50 50 50 50 50 50 50 50 50 50 主鍵 是 是 備注 先修課程要求 xxkcyq 序號 字段說明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 職稱 授課專業(yè) 班級 課程名稱 教材名稱 出版社 學(xué)年 學(xué)期 周數(shù) 計劃學(xué)時 講課 實驗課 周次1 周學(xué)時1 講課1 實驗課1 教學(xué)內(nèi)容摘要1 字段名 zc skzy bj kcmc jcmc cbs xn xq zs jhxs jk syk zc1 zxs1 jk1 syk1 jxnrzy1 字段類型 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 18
長度 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 50 800 主鍵 是 是 備注 授課教師姓名 skjsxm 滁州學(xué)院本科畢業(yè)論文
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 周次2 周學(xué)時2 講課2 實驗課2 教學(xué)內(nèi)容摘要2 周次3 周學(xué)時3 講課3 實驗課3 教學(xué)內(nèi)容摘要3 周次4 周學(xué)時4 講課4 實驗課4 教學(xué)內(nèi)容摘要4 周次5 周學(xué)時5 講課5 實驗課5 教學(xué)內(nèi)容摘要5 周次6 周學(xué)時6 講課6 實驗課6 教學(xué)內(nèi)容摘要6 周次7 周學(xué)時7 講課7 實驗課7 教學(xué)內(nèi)容摘要7 周次8 周學(xué)時8 講課8 實驗課8 zc2 zxs2 jk2 syk2 jxnrzy2 zc3 zxs3 jk3 syk3 jxnrzy3 zc4 zxs4 jk4 syk4 jxnrzy4 zc5 zxs5 jk5 syk5 jxnrzy5 zc6 zxs6 jk6 syk6 jxnrzy6 zc7 zxs7 jk7 syk7 jxnrzy7 zc8 zxs8 jk8 syk8 varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 50 50 50 50 800 50 50 50 50 800 50 50 50 50 800 50 50 50 50 800 50 50 50 50 800 50 50 50 50 800 50 50 50 50 19
滁州學(xué)院本科畢業(yè)論文
53 教學(xué)內(nèi)容摘要8 jxnrzy8 varchar 800 5系統(tǒng)主要功能的實現(xiàn)
5. 1 登錄的實現(xiàn)
圖5-1 登錄界面
登錄的實現(xiàn)。用戶選擇用戶類型并輸入用戶名、密碼,系統(tǒng)通過調(diào)用login_confirm這個javabean類中的doPost(HttpSetvletRequest req,HttpServletResponse res)方法根據(jù)用戶選擇的類型到數(shù)據(jù)庫相對應(yīng)的表中將用戶輸入的用戶名和密碼與name,id字段進行驗證,只有各項信息正確才能夠進入系統(tǒng),如果信息出錯將提示出錯的原因。在進行信息驗證時系統(tǒng)將獲得該用戶的權(quán)限從而將對應(yīng)的系統(tǒng)功能開放給用戶。其關(guān)鍵代碼為:
public void doPost(HttpServletRequest req,HttpServletResponse res) throws ServletException,
IOException {
String message=null; String id=null;
//接收用戶的登錄名 id=req.getParameter(\"id\");
//創(chuàng)建session對象
HttpSession session=req.getSession(true);
//將用戶登錄名存入session中
20
滁州學(xué)院本科畢業(yè)論文
session.setAttribute(\"id\ String password=null;
//接收用戶登錄的密碼
password= req.getParameter(\"password\"); String kind =null;
//接收用戶級別
kind=req.getParameter(\"kind\");
//調(diào)用getPassword方法,獲取數(shù)據(jù)庫中查詢出來的密碼 String temp =getPassword(req,res,id,kind);
//對比查詢出的密碼和用戶輸入的密碼是否匹配 if( password.equals(temp))
//密碼輸入正確,調(diào)用goo方法 goo(req,res,kind); else {
//密碼輸入錯誤
message=\"用戶名或密碼有誤!\"; doError(req,res,message) ;
} }
//根據(jù)用戶的級別,分別轉(zhuǎn)向不同的頁面
public void goo(HttpServletRequest req, HttpServletResponse res,String kind)
throws ServletException,IOException{
//轉(zhuǎn)向?qū)W生功能頁面
if(kind.equals(\"student\")) {
RequestDispatcher rd = getServletContext().getRequestDispatcher(\"/student.jsp\");
rd.forward(req, res); }
//轉(zhuǎn)向教師功能頁面 if(kind.equals(\"teacher\")){
RequestDispatcher rd = getServletContext().getRequestDispatcher(\"/teacher.jsp\");
rd.forward(req,res); }
//轉(zhuǎn)向管理員功能頁面 if(kind.equals(\"admin\")){
RequestDispatcher rd = getServletContext().getRequestDispatcher(\"/admin.jsp\");
rd.forward(req, res); }
}
21
滁州學(xué)院本科畢業(yè)論文
//根據(jù)用戶的級別和輸入的用戶名,查詢對應(yīng)的密碼
public String getPassword(HttpServletRequest req, HttpServletResponse res,
String id,String kind)throws ServletException, IOException {
//聲明數(shù)據(jù)庫連接類sqlBean的實例
sqlBean db= new sqlBean();
String pw=\"\"; String sql=\"select password from \"+kind+\" where id='\"+id+\"'\";
try{
//進行數(shù)據(jù)庫查詢操作
ResultSet rs=db.executeQuery(sql); if(rs.next() ){
pw= rs.getString(\"password\");
} }catch(Exception e){ System.out.print(e.toString());} return pw;
}
5. 2 管理員功能頁面的實現(xiàn)
圖5-2 管理員功能頁面
以管理員的身份登錄系統(tǒng)后可以對學(xué)生、教師、課程、班級信息等進行管理、維護。
22
滁州學(xué)院本科畢業(yè)論文
圖5-3 學(xué)生信息管理界面
在學(xué)生信息管理模塊中可以查看所有學(xué)生的基本信息。這個時候,管理員用戶可以進行刪除、更新及添加學(xué)生信息等操作,在添加學(xué)生信息時,學(xué)號、姓名、密碼、和學(xué)分,各項均不能為空,否則會提示出錯信息。當點擊提交后,系統(tǒng)會將各項內(nèi)容錄入到student表中;當刪除學(xué)生時,系統(tǒng)會根據(jù)該生的學(xué)號到student表中找到該條記錄并刪除;當更新學(xué)生信息時,系統(tǒng)會根據(jù)該生的學(xué)號到student表中找到該條記錄并更新相應(yīng)的字段內(nèi)容。其關(guān)鍵代碼為: //如果請求中包含新增學(xué)生參數(shù) if (\"new\".equalsIgnoreCase(action)) { try{
if (!hasLogin(req,res,stu_id)) {
doError(req, res, \"對不起,該學(xué)生號已經(jīng)被注冊過了,請重新注冊!\");
}
else {doNew(req,res);
res.sendRedirect(\"http://localhost:8080/CourseManagement/getStudent.jsp\"); } catch(Exception e){}
}
// 如果請求中包含修改學(xué)生參數(shù) if (\"update\".equalsIgnoreCase(action)) { try{
// 調(diào)用修改學(xué)生信息方法 stu = doUpdate(req,res, stu_id);
23
滁州學(xué)院本科畢業(yè)論文
// 并將修改后的學(xué)生信息存儲在request上下文中,然后轉(zhuǎn)向getStudent.jsp頁面 sendBean(req,res,stu,\"/getStudent.jsp\"); } catch(SQLException e){} } // 如果請求中包含刪除學(xué)生參數(shù) if (\"delete\".equalsIgnoreCase(action)) { try{
//調(diào)用刪除學(xué)生方法 success = doDelete(stu_id); } catch(SQLException e){}
if (success != 1) {
doError(req, res, \"StudentSvlt: Delete unsuccessful. Rows affected: \" + success);
}
else {res.sendRedirect(\"http://localhost:8080/CourseManagement/getStudent.jsp\");}
}
圖5-4 教師信息管理界面
在教師信息管理模塊中查看所有教師的基本信息。這個時候,管理員用戶可以進行刪除、更新及添加教師信息等操作,在添加教師信息時,教師號、姓名和登錄密碼,各項均不能為空,否則會提示出錯信息。當點擊提交后,系統(tǒng)會將各項內(nèi)容錄入到teacher表中;當刪除教師信息時,系統(tǒng)會根據(jù)教師號到teacher表中找到該條記錄并刪除;當更新教師信息時,系統(tǒng)會根據(jù)教師號到teacher表中找到該條記錄并更新相應(yīng)的字段內(nèi)容。
24
滁州學(xué)院本科畢業(yè)論文
圖5-5 課程信息管理界面
在課程信息管理模塊中查看所有課程的基本信息。這個時候,管理員用戶可以進行刪除、更新及添加課程信息等操作,在添加課程信息時,課程號和課程名稱均不能為空,否則會提示出錯信息。當點擊提交后,系統(tǒng)會將各項內(nèi)容錄入到course表中;當刪除課程信息時,系統(tǒng)會根據(jù)課程號到course表中找到該條記錄并刪除;當更新課程信息時,系統(tǒng)會根據(jù)課程號到course表中找到該條記錄并更新相應(yīng)的字段內(nèi)容。
圖5-6 班級信息管理界面
在班級信息管理模塊中查看所有班級的基本信息。這個時候,管理員用戶可以進行刪除、更新及添加班級信息等操作,在添加教師信息時,班級號不能為空,否則會提示出錯信息。當點擊提交后,系統(tǒng)會將各項內(nèi)容錄入到classes表中;當刪除班級信息時,系統(tǒng)會根據(jù)班級號到classes表中找
25
滁州學(xué)院本科畢業(yè)論文
到該條記錄并刪除;當更新班級信息時,系統(tǒng)會根據(jù)班級號到classes表中找到該條記錄并更新相應(yīng)的字段內(nèi)容。
5. 3 學(xué)生功能頁面的實現(xiàn)
圖5-7 學(xué)生功能界面
以學(xué)生的身份登錄系統(tǒng)后可以進行選修課程、查看學(xué)分、更改信息等操作。
圖5-8 學(xué)生選修課程界面
查看可以選修的課程信息。圖5-8列出了所有滿足該生系別(該門課程所屬系別和該生所在系別相同,即course表的dep字段和student表中的department字段相同)并且該生還未選報的課程,和先修課為public公共課程或者已通過其先修課的課程。學(xué)生可以對這些課程進行注冊。當點擊注冊時,系統(tǒng)會將該生學(xué)號以及班級號錄入到enrol表中,并將注冊信息標志位accept置0。同時也可以查看該門課程的課程簡介及教學(xué)進度表。其關(guān)鍵代碼為:
26
滁州學(xué)院本科畢業(yè)論文
if(\"enrol\".equalsIgnoreCase(action)){
doEnrol(req,res,stu_id,cour_id,class_id,prepare); res.sendRedirect(\"DisplayCourse.jsp\");
}
public void doEnrol(HttpServletRequest req, HttpServletResponse res, String stu_id,String cour_id,String class_id,String prepare) throws ServletException, IOException {
int num=0;
//聲明JavaBean對象
checkEnrol check=new checkEnrol(); //如果預(yù)修課學(xué)分為0,則注冊
if(prepare.equals(\"0\") ) { num= check.enrol(class_id,stu_id); } else { //判斷預(yù)修課是否符合要求
if( check.hasPassPrepare(prepare)){num= check.enrol(class_id,stu_id);} else doError(req,res,\"請先完成預(yù)修課\");
}
if(num==0){doError(req,res,\"注冊課程失?。?!\");}
}
圖5-9 學(xué)生查看學(xué)分界面
查看自己所有課程的學(xué)分情況及所獲總學(xué)分。當點擊查看學(xué)分時,從StudentLoginSvlt中調(diào)用getScore(String stu_id)方法獲取enrol、course、classes表中的課程名稱、學(xué)分以及成績。圖5-9列出了該生所修課程的學(xué)分,以及現(xiàn)在所獲的總學(xué)分。
27
滁州學(xué)院本科畢業(yè)論文
圖5-10 學(xué)生更改信息界面
更改密碼、電話、E_mail等信息。圖5-10要求輸入新密碼以及對新密碼的確認、電話、E_mail等信息,在修改信息時,新密碼以及對新密碼的確認信息,均不能為空,否則會提示出錯信息,當點擊提交后,系統(tǒng)會根據(jù)該生學(xué)號到student表中找到該條記錄并更新相應(yīng)的字段內(nèi)容。
5. 4 教師功能頁面的實現(xiàn)
圖5-11 教師功能界面
以教師的身份登錄進入系統(tǒng)后可以進行挑選學(xué)生、公布成績等操作。查看申請所帶課程的學(xué)生信息以及班級信息。圖5-12列出了所帶的課程號及班級號。這個時候教師可以審批選報該課程的學(xué)生。
28
滁州學(xué)院本科畢業(yè)論文
圖5-12 挑選學(xué)生界面
查看所帶學(xué)生信息及班級信息。當點擊挑選學(xué)生時,系統(tǒng)通過MarkSvlt中doChoose(String tea_id)方法調(diào)用determine中的getClass(tea_id)方法獲取教師所帶的班級號、課程名稱等信息。當點擊課程簡介時,系統(tǒng)通過調(diào)用determine中的kcjj(String class_id,String cour_name)方法獲取該門課程的課程簡介信息并可對其進行編輯;當點擊教學(xué)進度表時,系統(tǒng)通過調(diào)用determine中的jxjd(String class_id,String cour_name)方法獲取該門課程的教學(xué)進度信息并可對其進行編輯;當點擊選擇時,系統(tǒng)通過MarkSvlt中doAccept(String class_id)方法調(diào)用determine中的getStudents(class_id)方法獲取選報該門課程的所有學(xué)生信息。其關(guān)鍵代碼為:
public determine doChoose(String tea_id){
determine deter =new determine();deter.getClass(tea_id);return deter;
}
public ResultSet getClass(String tea_id){
String sql=\"select course.id,course.name,classes.cla_id \"+\"from course,classes \"+\"where course.id=classes.cour_id \"+
\"and classes.tea_id='\"+tea_id+\"' \";
sqlBean sqlbean = new sqlBean(); ResultSet rs = sqlbean.executeQuery(sql); return rs; }
public ResultSet kcjj(String class_id,String cour_name){
String sql=\"select * from kcjj where id='\"+class_id+\"'
and name='\"+cour_name+\"'\";
sqlBean db= new sqlBean(); ResultSet rs = db.executeQuery(sql);
29
滁州學(xué)院本科畢業(yè)論文
return rs; }
public ResultSet jxjd(String class_id,String cour_name){
String sql=\"select * from jxjd where bj='\"+class_id+\"'
and kcmc='\"+cour_name+\"'\";
sqlBean db= new sqlBean(); ResultSet rs = db.executeQuery(sql);
return rs; }
public determine doAccept(String class_id){
determine deter = new determine(); deter.getStudents(class_id); return deter; }
public ResultSet getStudents(String class_id){
String sql=\"select student.id,name,department,sex,mark,e_mail,tel \"+
\"from student,enrol,classes \"+ \"where student.id=enrol.stu_id \"+ \"and enrol.accept='0' \"+
\"and classes.cla_id=enrol.class_id \"+ \"and classes.cla_id='\"+class_id+\"' \";
sqlBean sqlbean = new sqlBean(); ResultSet rs = sqlbean.executeQuery(sql); return rs; }
30
滁州學(xué)院本科畢業(yè)論文
圖5-13 公布學(xué)生成績界面
圖5-13列出了所帶的課程號及班級號。當點擊學(xué)生時,教師可以為所有選修該門課程的學(xué)生打分,系統(tǒng)通過MarkSvlt中doAccept2(tea_id)方法調(diào)用determine中的getStudent2(class_id)方法獲取所有選修該門課程還未給出成績的學(xué)生信息。當點擊score時,系統(tǒng)將進入打分(marking.jsp)頁面,分別給出總評成績、平時成績、實驗成績、期末成績等,并將各項內(nèi)容錄入到數(shù)據(jù)庫enrol表,同時,系統(tǒng)會根據(jù)成績來判斷該生是否通過了該課程,如果該成績大于或等于60分,則在該生的總學(xué)分上加上該課程的學(xué)分,以供學(xué)生進行查看學(xué)分等操作。其關(guān)鍵代碼為: public determine doAccept2(String class_id){
determine deter = new determine();deter.getStudents2(class_id);
return deter; }
public ResultSet getStudents2(String class_id){
String sql=\"select student.id,name ,department,sex,mark,e_mail,tel \"+
\"from student,enrol,classes \"+ \"where student.id=enrol.stu_id \"+ \"and enrol.accept='1' \"+ \"and enrol.score='0' \"+
\"and classes.cla_id=enrol.class_id \"+ \"and classes.cla_id='\"+class_id+\"' \";
sqlBean sqlbean = new sqlBean(); ResultSet rs = sqlbean.executeQuery(sql); return rs;
}
if (\"marking\".equalsIgnoreCase(action)) { class_id=req.getParameter(\"class_id\");
float p = Float.parseFloat(req.getParameter(\"p\"));
31
滁州學(xué)院本科畢業(yè)論文
float s = Float.parseFloat(req.getParameter(\"s\")); float q = Float.parseFloat(req.getParameter(\"q\"));
float pingshi = Float.parseFloat(req.getParameter(\"pingshi\")); float shiyan = Float.parseFloat(req.getParameter(\"shiyan\")); float qimo = Float.parseFloat(req.getParameter(\"qimo\")); float score=(pingshi*p+shiyan*s+qimo*q)/100; stu_id=req.getParameter(\"id\") ;
doMarking(req,res,stu_id,class_id,score,pingshi,shiyan,qimo);
res.sendRedirect(\"score.jsp\"); }
public void doMarking(HttpServletRequest req, HttpServletResponse res, String stu_id,String class_id,float score,float pingshi,float shiyan, float qimo)throws ServletException, IOException{ int num=0; float temp=0;
determine deter =new determine();
num=deter.marking(stu_id,class_id,score,pingshi,shiyan,qimo); if(num==0) doError(req,res,\"更新失??!\"); try{
temp=score;
} catch(NumberFormatException e){System.out.print(e.toString());
doError(req,res,\"格式不對,請重輸?。");
}
if(temp>=60)
num=deter.addMark(stu_id,class_id); if(num==0) doError(req,res,\"更新失??!\");
}
32
滁州學(xué)院本科畢業(yè)論文
結(jié) 論
本系統(tǒng)的開發(fā)基本完成了預(yù)期的目標,較為成功的實現(xiàn)了網(wǎng)上選課并對學(xué)生、教師、課程、班級信息進行管理的功能。同時深入了解了JSP+Servlet+JavaBean的相關(guān)知識,利用其優(yōu)點提高了該系統(tǒng)的運行效率并使該系統(tǒng)具有很好的交互性。本系統(tǒng)的開發(fā)可以實現(xiàn)一個學(xué)校的網(wǎng)上選課工作,從學(xué)生注冊課程到教師審核以及批準,最終完成學(xué)生選課操作,所有數(shù)據(jù)處理都是由計算機程序?qū)崿F(xiàn)。本系統(tǒng)具有如下特點:
⑴ 使用計算機統(tǒng)計處理數(shù)據(jù),既提高了效率,又保證不容易出錯。
⑵ 所有學(xué)生都使用的同一系統(tǒng),并且都要經(jīng)過教師的審核,這樣得到的結(jié)果公開、公平。 ⑶ 系統(tǒng)中使用了JSP+Servlet+JavaBean技術(shù),用戶的操作更加直觀方便。
⑷ 與以往的人工選課相比,使用該系統(tǒng)我們不需再使用專門的表格進行匯總統(tǒng)計,可以節(jié)約不少資源。
本系統(tǒng)還存在一些不足的地方,比如公平性方面,每個學(xué)生都有選報滿足條件的課程的權(quán)利,但每個教師所需學(xué)生有限,該系統(tǒng)在對于教師挑選學(xué)生的依據(jù)以及策略上還存在著一些不足,可能會降低選課的公平性。
參考文獻
[1] 黃龍軍,段隆振,魏遠旺.基于JAVA平臺和ORALCE的網(wǎng)上選課系統(tǒng)[D].南昌水專學(xué)報,
2004年 02期
[2] 劉志遠.基于UML網(wǎng)上選課系統(tǒng)的分析與設(shè)計[D].福建電腦,2006年 01期
[3] 田明,王新.中等職業(yè)學(xué)校網(wǎng)上選課系統(tǒng)的設(shè)計與開發(fā)[D].中國現(xiàn)代教育裝備, 2007年 03
期
[4] 王娟,譚樂婷,譚濤,賴思渝.基于數(shù)據(jù)挖掘的高校學(xué)生網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)[D].電
腦開發(fā)與應(yīng)用,2007年 07期
[5] 張四平,王梅,彭順生.基于ASP.net的網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)[D].大眾科學(xué)(科學(xué)研究
與實踐),2007年 23期
[6] 郝玉龍,姜韡.Java EE編程技術(shù)[M].北京:清華大學(xué)出版社,2008
[7] 孫家廣,劉強.軟件工程:理論方法與實踐[M].北京:高等教育出版社,2005 [8] 王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2006
[9] 孫更新,賓晟,呂婕.java畢業(yè)設(shè)計指南與項目實踐[M].北京:科技出版社,2008 [10] Bruce Eckel. Thinking in Java,Third Edition.美國: Prentice Hall PTR,2002
33
滁州學(xué)院本科畢業(yè)論文
[11] 朱福喜.Java語言程序設(shè)計[M].北京:清華大學(xué)出版社,2005
[12] 李旭東,程仁洪,涂菶生.基于Internet的網(wǎng)上選課系統(tǒng)設(shè)計與實現(xiàn)[D].電腦開發(fā)與應(yīng)用,
2000年 07期
[13] 辛后居,龐文濤.基于B/S模式的研究生網(wǎng)上選課系統(tǒng)的設(shè)計與實現(xiàn)[D].大眾科技,2006
年 01期
[14] 陳先宇,李彥.開放型實驗室網(wǎng)上選課系統(tǒng)設(shè)計構(gòu)想[D].重慶交通大學(xué)學(xué)報(社會科學(xué)版),
2008年 02期
[15] 劉錦萍.基于UML及B/S架構(gòu)網(wǎng)上選課系統(tǒng)的設(shè)計[D].電腦學(xué)習(xí),2008年 03期 [16] 王國輝,王易.JSP數(shù)據(jù)庫開發(fā)案例精選[M].北京:人民郵電出版社,2007
[17] CAY S. HORSTMANN,GARY CORNELL. Core Java,Volume I--Fundamentals (8th
Edition)[M].美國:Prentice Hall PTR,2007
34
滁州學(xué)院本科畢業(yè)論文
致 謝
通過本次的畢業(yè)設(shè)計我對高校學(xué)生網(wǎng)上選課的知識有了系統(tǒng)性的了解,學(xué)會了如何對一個課題進行查找資料并著手研究。深入了解了JSP、Servlet、JavaBean等技術(shù),并且自己經(jīng)歷了完整的從分析、設(shè)計到最后把學(xué)生網(wǎng)上選課系統(tǒng)實現(xiàn)的整個過程,為以后自己的學(xué)習(xí)及工作打下了基礎(chǔ),自己受益匪淺。
值此設(shè)計完成之際,衷心地向我的導(dǎo)師劉士喜老師表示崇高的敬意和衷心的感謝。這個學(xué)期以來,劉士喜老師嚴謹?shù)闹螌W(xué)態(tài)度和精益求精的工作態(tài)度、誨人不倦的師者風范給我留下了深刻的印象。劉士喜老師從一開始的選題,系統(tǒng)設(shè)計的理論研究到系統(tǒng)的分析與設(shè)計再到系統(tǒng)的實現(xiàn),甚至最后的論文排版裝訂的整個畢業(yè)設(shè)計的過程中,以及平時的學(xué)習(xí)生活中,都給予了我細致的關(guān)心指導(dǎo),使我各方面都有了很大的進步。在此獻上我最誠摯的感謝和祝福。
此外,還要感謝所有給予我論文幫助的老師和同學(xué),正是由于你們的建議才使我的論文更加完善。同時感謝學(xué)院里各位領(lǐng)導(dǎo)和老師在四年里對我學(xué)習(xí)和生活給予的巨大幫助,為我提供了良好的學(xué)習(xí)環(huán)境和實踐環(huán)境。同時,對這四年來所有給予我指導(dǎo)和幫助的老師和同學(xué)表示深深的謝意。
感謝我的家人,是他們的關(guān)心、支持和培養(yǎng),使我順利完成本科的學(xué)業(yè),衷心祝福我的家人身體健康!
由于本人水平有限,畢業(yè)設(shè)計中的缺點和錯誤在所難免,敬請各位老師和同學(xué)的批評、指正。
35
因篇幅問題不能全部顯示,請點此查看更多更全內(nèi)容
Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號-2
違法及侵權(quán)請聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市萬商天勤律師事務(wù)所王興未律師提供法律服務(wù)