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

?

基于JAVA平臺(tái)的網(wǎng)上成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2010-10-18 07:53:20劉永立白地動(dòng)
中國(guó)教育信息化 2010年1期
關(guān)鍵詞:課表數(shù)據(jù)表任課教師

劉永立,白地動(dòng)

(1.北京財(cái)貿(mào)職業(yè)學(xué)院 信息物流系,北京101101;2.北京財(cái)貿(mào)職業(yè)學(xué)院 教務(wù)處,北京 101101)

基于JAVA平臺(tái)的網(wǎng)上成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

劉永立1,白地動(dòng)2

(1.北京財(cái)貿(mào)職業(yè)學(xué)院 信息物流系,北京101101;2.北京財(cái)貿(mào)職業(yè)學(xué)院 教務(wù)處,北京 101101)

將成績(jī)管理由單機(jī)操作轉(zhuǎn)變?yōu)榫W(wǎng)絡(luò)操作在目前跨校區(qū)辦公情形下尤為必要。本文以一個(gè)實(shí)際項(xiàng)目為藍(lán)本,論述了構(gòu)建基于JAVA平臺(tái)的網(wǎng)上成績(jī)管理系統(tǒng)的設(shè)計(jì)方法與實(shí)現(xiàn)手段;為保證系統(tǒng)的穩(wěn)定運(yùn)行,給出了基于NETBEANS6.1開(kāi)發(fā)環(huán)境下數(shù)據(jù)庫(kù)連接池的配置方法。

NETBEANS JSF RichFaces框架 成績(jī)管理 數(shù)據(jù)庫(kù)連接池

一、開(kāi)發(fā)背景

目前,很多學(xué)校已實(shí)現(xiàn)跨校區(qū)辦公。借助網(wǎng)絡(luò)雖然可以迅速傳遞數(shù)據(jù),但是如何很好地保證數(shù)據(jù)的一致、及時(shí)更新和數(shù)據(jù)的充分共享,仍然是令教學(xué)管理人員很頭疼的一件事。在眾多教學(xué)數(shù)據(jù)中,學(xué)生的成績(jī)對(duì)于學(xué)生和教師都很重要。傳統(tǒng)的辦公環(huán)境下,任課教師提交成績(jī)單,成績(jī)管理員核對(duì)成績(jī)并進(jìn)行數(shù)據(jù)的整理和發(fā)布。這一方式帶來(lái)的主要問(wèn)題是:(1)成績(jī)管理員的壓力大、時(shí)間緊,容易出錯(cuò),成績(jī)發(fā)布也不及時(shí)。(2)各個(gè)校區(qū)間數(shù)據(jù)的格式不一致,在數(shù)據(jù)共享時(shí)還需要再次進(jìn)行數(shù)據(jù)的重新整理,無(wú)形中增加了工作量和出錯(cuò)的機(jī)率。因此,若能構(gòu)建基于B/S結(jié)構(gòu)的網(wǎng)上成績(jī)管理系統(tǒng),將傳統(tǒng)單機(jī)管理轉(zhuǎn)變?yōu)榫W(wǎng)絡(luò)管理,必將大大提高辦公效率,也能有效提升數(shù)據(jù)的準(zhǔn)確性、一致性。

本文以JAVA平臺(tái)為基礎(chǔ),以NETBEAN6.1為開(kāi)發(fā)工具,討論了網(wǎng)上成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方法。

二、系統(tǒng)需求分析

系統(tǒng)的用戶分類(lèi)如下:數(shù)據(jù)庫(kù)管理員,課表管理員,考務(wù)管理員,成績(jī)管理員,任課教師,學(xué)生。用戶的權(quán)限和職責(zé)如下:

1.數(shù)據(jù)庫(kù)管理員:(1)數(shù)據(jù)庫(kù)的初始化,主要包括:系部數(shù)據(jù)、學(xué)期數(shù)據(jù)、教師數(shù)據(jù)、班級(jí)數(shù)據(jù)、學(xué)生數(shù)據(jù)的初始化;(2)管理用戶的權(quán)限。

2.課表管理員:將指定學(xué)期的排課結(jié)果導(dǎo)入數(shù)據(jù)庫(kù)。排課的原始數(shù)據(jù)一般是Excel表,為了能夠進(jìn)行微調(diào),該類(lèi)人員還要具備查詢(xún)和修改排課數(shù)據(jù)的權(quán)限,以便及時(shí)反映排課的變動(dòng)情況。

3.考務(wù)及成績(jī)管理員:設(shè)定指定班級(jí)、指定課程的考試時(shí)間;設(shè)定成績(jī)錄入的最晚日期;設(shè)定考生的考試狀態(tài)(正式考試、補(bǔ)考、緩考、曠考);將任課教師提交的成績(jī)單鎖定和解鎖;將成績(jī)數(shù)據(jù)導(dǎo)出為指定的Excel格式。

將成績(jī)單鎖定的目的是為了避免任課教師無(wú)休止地修改成績(jī);解鎖的目的是一旦發(fā)現(xiàn)錄入錯(cuò)誤(盡管此類(lèi)錯(cuò)誤發(fā)生的可能性很?。┍阌谌握n教師修改個(gè)別學(xué)生的成績(jī)。

4.任課教師:查看自己每個(gè)學(xué)期的任課班級(jí)和課程情況;設(shè)定自己所授課程的成績(jī)分值權(quán)值(平時(shí)成績(jī)、期末成績(jī)所占比重);錄入和修改學(xué)生成績(jī);查看學(xué)生成績(jī),生成成績(jī)分析報(bào)告;將指定班級(jí)、指定課程的成績(jī)單數(shù)據(jù)導(dǎo)出為Excel格式。

5.學(xué)生:查看自己所有課程的成績(jī)。

三、功能模塊設(shè)計(jì)

通過(guò)分析系統(tǒng)的需求,可知網(wǎng)上成績(jī)管理系統(tǒng)涉及的功能主要是:數(shù)據(jù)的導(dǎo)入/導(dǎo)出;數(shù)據(jù)的查詢(xún);數(shù)據(jù)的管理。具體來(lái)說(shuō),數(shù)據(jù)導(dǎo)入包括:教師數(shù)據(jù)導(dǎo)入,班級(jí)數(shù)據(jù)導(dǎo)入,學(xué)生數(shù)據(jù)導(dǎo)入,課表數(shù)據(jù)導(dǎo)入,成績(jī)數(shù)據(jù)導(dǎo)入;數(shù)據(jù)導(dǎo)出包括:成績(jī)數(shù)據(jù)導(dǎo)出;數(shù)據(jù)管理包括:課表數(shù)據(jù)管理、考務(wù)綜合管理、個(gè)人數(shù)據(jù)管理、成績(jī)權(quán)值分配、成績(jī)數(shù)據(jù)錄入;數(shù)據(jù)查詢(xún)包括:課表數(shù)據(jù)查詢(xún)、教師數(shù)據(jù)查詢(xún)、學(xué)生數(shù)據(jù)查詢(xún)、成績(jī)數(shù)據(jù)查詢(xún)。系統(tǒng)的主要功能模塊如圖1所示。

學(xué)期數(shù)據(jù)、系部數(shù)據(jù)相對(duì)固定且數(shù)據(jù)量很小,可以由數(shù)據(jù)庫(kù)管理員手動(dòng)輸入;班級(jí)數(shù)據(jù)、學(xué)生數(shù)據(jù)、教師數(shù)據(jù)、課表數(shù)據(jù)、成績(jī)數(shù)據(jù)等數(shù)據(jù)量大,因此系統(tǒng)提供了導(dǎo)入功能;為了便于用戶修改密碼,在數(shù)據(jù)管理模塊中提供“個(gè)人數(shù)據(jù)管理”功能;為便于學(xué)生和教師查詢(xún)數(shù)據(jù),系統(tǒng)提供主要數(shù)據(jù)的查詢(xún)功能;為便于教務(wù)人員和教師保存和分析數(shù)據(jù),系統(tǒng)提供成績(jī)數(shù)據(jù)的導(dǎo)出功能。

圖1中涉及的功能模塊是系統(tǒng)能夠提供給所有用戶的全部功能,所有功能以菜單的方式呈現(xiàn)給用戶,不同類(lèi)別的用戶登錄系統(tǒng)后,見(jiàn)到的功能菜單不同,能夠?qū)崿F(xiàn)的操作也不同。比如:任課教師登錄系統(tǒng)后,具備“數(shù)據(jù)查詢(xún)”、“成績(jī)數(shù)據(jù)導(dǎo)出”操作權(quán)限,也具備“成績(jī)權(quán)值分配”、“成績(jī)數(shù)據(jù)錄入”、“個(gè)人數(shù)據(jù)管理”、“成績(jī)數(shù)據(jù)導(dǎo)入”操作權(quán)限,但不具備其他操作權(quán)限。不同教師用戶只能針對(duì)自己所任的課程進(jìn)行成績(jī)數(shù)據(jù)錄入和成績(jī)權(quán)值分配操作。

四、數(shù)據(jù)庫(kù)設(shè)計(jì)

本系統(tǒng)采用MySQL Server5.0數(shù)據(jù)庫(kù)軟件。數(shù)據(jù)庫(kù)名字為“score”,所有數(shù)據(jù)表及其字段在數(shù)據(jù)庫(kù)中定義時(shí)均采用英文。系統(tǒng)涉及的數(shù)據(jù)庫(kù)表及其字段如下:系部(ID,名稱(chēng)),教師(ID,姓名,性別,所在系部,角色),班級(jí)(ID,名稱(chēng),所在系部,班主任),學(xué)生(學(xué)號(hào),姓名,性別,班級(jí),角色),角色(ID,名稱(chēng)),學(xué)期(ID,學(xué)期名稱(chēng)),課程(ID,課程名稱(chēng)),課表(ID,學(xué)期,班級(jí),課程,教師,平時(shí)成績(jī)比重,實(shí)踐成績(jī)比重,期末成績(jī)比重),成績(jī)(ID,學(xué)期,學(xué)號(hào),課程,平時(shí)成績(jī),實(shí)踐成績(jī),期末成績(jī),總評(píng)成績(jī),狀態(tài)開(kāi)關(guān),開(kāi)考時(shí)間,最晚提交時(shí)間),成績(jī)分析(ID,學(xué)期,班級(jí),課程,不及格人數(shù),60-69人數(shù),70-84人數(shù),85-100人數(shù),參加考試人數(shù),及格率,良好率,平均成績(jī))。

數(shù)據(jù)表在數(shù)據(jù)庫(kù)“score”中的定義如表1所示。

表1 數(shù)據(jù)庫(kù)s c o r e中的數(shù)據(jù)表及其字段

score表中的switch字段是控制開(kāi)關(guān),用來(lái)設(shè)定是否可以錄入成績(jī)。表1中加下劃線的字段為主鍵。

各個(gè)數(shù)據(jù)表間有一定的關(guān)聯(lián)關(guān)系,比如:課表數(shù)據(jù)表timetable與其他數(shù)據(jù)表之間的關(guān)系如圖2所示。成績(jī)數(shù)據(jù)表定義如下(包括外鍵約束和索引定義):

限于篇幅,其他數(shù)據(jù)表的定義以及外鍵約束和索引的定義不再論述。

五、系統(tǒng)實(shí)現(xiàn)

1.開(kāi)發(fā)工具的選擇

本系統(tǒng)開(kāi)發(fā)基于JAVA平臺(tái),需要按次序安裝以下軟件:jdk1.6,netbeans6.1,GlassFishV2,MySQL Server5.0。Netbeans6.1作為Web程序的開(kāi)發(fā)環(huán)境,不但內(nèi)嵌了GlassFish Web服務(wù)器,而且利用該IDE可以非常方便地連接MySQL Server數(shù)據(jù)庫(kù)。為了便于操作數(shù)據(jù)庫(kù),可以在安裝完MySQL Server5.0后,安裝Navicat8軟件,該軟件是一款不錯(cuò)的MySQL Server的客戶端工具軟件。

2.框架和庫(kù)文件

JSF是一個(gè)新的基于MVC模型的Web應(yīng)用框架技術(shù)。在概念和特征方面,尤其是組件方面,超過(guò)了著名的Struts框架。RichFaces是JBOSS公司開(kāi)發(fā)的Web應(yīng)用程序框架,它進(jìn)一步豐富了JSF框架,它為構(gòu)建 RIA(Rich Internet Applications)和支持 Ajax的 Web應(yīng)用程序提供了大量的JSF組件。

本系統(tǒng)基于RichFaces框架進(jìn)行開(kāi)發(fā),故此需要在netbeans6.1中添加RichFaces框架所需的相關(guān)jar文件。另外,由于在數(shù)據(jù)導(dǎo)入和導(dǎo)出過(guò)程中需要操作EXCEL文件,所以還需要jxl開(kāi)源組件。

系統(tǒng)所需的主要JAR文件如表2所示(所有文件都可從網(wǎng)上下載)。

表2 系統(tǒng)所需J A R文件列表

3.開(kāi)發(fā)環(huán)境的部署

(1)配置 web.xml和 faces-config.xml文件

由于系統(tǒng)基于JSF框架開(kāi)發(fā),故此需要配置web.xml文件faces-config.xml文件。在web.xml文件中主要進(jìn)行RichFaces過(guò)濾器和Faces Servlet的注冊(cè);在faces-config.xml文件中主要進(jìn)行JAVA BEAN的注冊(cè)。

以下是web.xml文件中RichFaces過(guò)濾器的注冊(cè)方法:(2)數(shù)據(jù)庫(kù)連接池

通過(guò)大量的實(shí)驗(yàn)測(cè)試后發(fā)現(xiàn):在系統(tǒng)訪問(wèn)人數(shù)增多以及進(jìn)行大量數(shù)據(jù)的導(dǎo)入/導(dǎo)出過(guò)程中,會(huì)占用較多的數(shù)據(jù)庫(kù)連接,若出現(xiàn)連接耗盡的情況,系統(tǒng)就會(huì)癱瘓。為有效避免此種情況的出現(xiàn),應(yīng)采用數(shù)據(jù)庫(kù)連接池(關(guān)于連接池在GLASSFISH服務(wù)器中的的定義方法請(qǐng)參閱相關(guān)文檔)。首先將數(shù)據(jù)庫(kù)連接池命名為:jdbc/mySqlDb,并在Web服務(wù)器中定義;然后在系統(tǒng)配置文件web.xml中添加如下內(nèi)容:

最后在JAVA BEAN中按照如下方法建立數(shù)據(jù)庫(kù)連接,連接池便可以使用了。

4.創(chuàng)建JSP

JSP(Java Server Page)頁(yè)面是用戶與系統(tǒng)交互的窗口。基本上,每個(gè)JSP頁(yè)面完成一個(gè)或幾個(gè)相關(guān)的功能模塊。比如,前面介紹的“成績(jī)數(shù)據(jù)導(dǎo)入”功能模塊、“成績(jī)數(shù)據(jù)錄入”功能模塊就可以分別由不同的JSP文件實(shí)現(xiàn),當(dāng)然還需要后臺(tái)BEAN的支持。下面就以“成績(jī)數(shù)據(jù)錄入”功能模塊的實(shí)現(xiàn)(editScore.jsp)為例,介紹JSP文件的創(chuàng)建方法,該JSP頁(yè)面的運(yùn)行效果如圖3所示。

(1)為了使頁(yè)面支持中文,以及使用RICH FACES和JSF框架中的標(biāo)簽,需要在JSP頁(yè)面頭部添加如下代碼:

(2)接著將UI控件添加在<a4j:form>標(biāo)簽內(nèi)部。本頁(yè)面要用到的 UI控件有:<h:commandButton>、<h:outputText>、<h:inputText>、<rich:dataTable>、<rich:column>、<a4j:support>,它們分別代表JSF命令按鈕、JSF文本輸出框、JSF文本輸入框、RICH FACES數(shù)據(jù)表格、RICH FACES表格列、ajax功能控件,其中 <a4j:support>標(biāo)簽的作用是給父標(biāo)簽添加ajax輔助功能。

比如,editScore.jsp頁(yè)面中“提交成績(jī)”按鈕可以按如下方式進(jìn)行定義:<h:commandButton tabindex="4"value="提交成績(jī)"onclick="if(!confirm('確認(rèn)提交么?'))return false" rendered="#{manageScore.editFlag}" action="#{manageScore.saveChanged}"/>。其中manageScore是用來(lái)進(jìn)行成績(jī)管理的后臺(tái)JAVA BEAN。

<rich:dataTable>是RICH FACES框架中功能強(qiáng)大的標(biāo)簽,用來(lái)顯示數(shù)據(jù)庫(kù)中的數(shù)據(jù),該標(biāo)簽內(nèi)部可以嵌入<h:outputText>、<h:inputText>、<rich:column>等 標(biāo) 簽 。editScore.jsp頁(yè)面中成績(jī)記錄的顯示就用到了該標(biāo)簽。在使用<rich:dataTable>標(biāo)簽顯示數(shù)據(jù)時(shí),要注意設(shè)定好兩個(gè)重要屬性:binding、value。binding屬性的值是JAVA BEAN中UIDataTable類(lèi)型的變量;value屬性的值一般是JAVA BEAN 中 ArrayList(或 List)類(lèi)型的變量。

5.編寫(xiě) JAVA BEAN

雖然JSP頁(yè)面提供了交互的途徑,但是一切后臺(tái)操作最終都要由JAVA BEAN來(lái)完成。本系統(tǒng)中最主要的BEAN是數(shù)據(jù)庫(kù)操作BEAN(DbBean.java)和數(shù)據(jù)導(dǎo)入/導(dǎo)出 BEAN(ReadAndWrite.java)。 DbBean.java主要完成數(shù)據(jù)庫(kù)連接的創(chuàng)建,數(shù)據(jù)的查詢(xún)、插入、更新、刪除等常規(guī)數(shù)據(jù)庫(kù)操作;ReadAndWrite.java主要負(fù)責(zé)將EXCEL數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù),并將數(shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)出為EXCEL格式的文件。同時(shí),系統(tǒng)還需要實(shí)體BEAN(每個(gè)數(shù)據(jù)庫(kù)表對(duì)應(yīng)一個(gè)實(shí)體BEAN)和其他輔助 BEAN(如用于成績(jī)管理的BEAN:ManageScore.java)的支持。 ManageScore.java 中的saveChanged方法與圖3中的“提交成績(jī)”按鈕對(duì)應(yīng),其代碼如下(有刪節(jié)):

6.系統(tǒng)發(fā)布

系統(tǒng)開(kāi)發(fā)完畢后,可以在NETBEANS6.1中右鍵單擊項(xiàng)目,將其打包生成.war文件,該war文件一般在項(xiàng)目所在路徑的dist子文件夾中。

隨后,啟動(dòng) MySQL Server5.0和 GlassFish,通過(guò)GlassFish管理員控制臺(tái),將生成的war文件部署到Web服務(wù)器即可,如圖4所示。

[1]David Geary,Cay Horstmann.Core Java-Server Faces[M].New Jersey USA:Addison Wesley publisher2004.

[2]http://www.netbeans.org.

[3]http://www.javaeye.com/.

[4]JBoss rich faces tutorial[DB/OL],http://www.mastertheboss.com/en/web-interfaces/124-jboss-RichFaces-tutorial.html.

[5]Andrei Cioroianu.Upload Files with JSF and MyFaces.http://www.onjava.com/pub/a/onjava/2005/07/13/jsfupload.html,2005.

[6]The Java EE5 Tutorial[DB/OL],http://java.sun.com/javaee/5/docs/tutorial/doc/index.html.

(編輯:楊馥紅)

G250.73

B

1673-8454(2010)01-0048-05

猜你喜歡
課表數(shù)據(jù)表任課教師
學(xué)生出招解決”日課牌“問(wèn)題
如果我是校長(zhǎng)
湖北省新冠肺炎疫情數(shù)據(jù)表
黨員生活(2020年2期)2020-04-17 09:56:30
基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
運(yùn)用VBA自動(dòng)生成子課程表
班主任與任課教師合作發(fā)展的實(shí)踐與思考
江蘇教育(2018年55期)2018-01-28 21:38:20
論高職班主任與任課教師的協(xié)作與溝通
要善于樹(shù)立任課教師的威信
任課教師在班級(jí)管理中發(fā)揮的作用
新課程(2016年2期)2016-03-02 05:50:26
各地區(qū)學(xué)生課表
留學(xué)生(2015年6期)2015-07-02 02:36:20
庆云县| 宜黄县| 封丘县| 白玉县| 贺州市| 静乐县| 从江县| 广宗县| 遂平县| 额济纳旗| 临澧县| 辽阳县| 张掖市| 土默特左旗| 祥云县| 日土县| 佛教| 张家口市| 泽州县| 顺平县| 乌兰察布市| 南漳县| 太仓市| 青海省| 姚安县| 黄山市| 乌审旗| 甘谷县| 周宁县| 肃宁县| 桂阳县| 河间市| 宜君县| 石楼县| 琼海市| 柯坪县| 宁波市| 永兴县| 界首市| 闸北区| 江源县|