計(jì)算機(jī)畢業(yè)論文---教務(wù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  【摘 要】本系統(tǒng)運(yùn)用J2EE中的JSP MODEL2的MVC 模型與Eclipse3.1.8 + Tomcat5.0 + JDK5.0 + MSSQL 的組合開發(fā)平臺(tái)測(cè)試。在系統(tǒng)設(shè)計(jì)、實(shí)施上運(yùn)用軟件工程的思想,完全依照瀑布模型來(lái)編寫設(shè)計(jì)文檔。利用流程圖、UML圖等工具來(lái)設(shè)計(jì)程序,以避免邏輯上的錯(cuò)誤。運(yùn)用PowerDesigner工具進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)以及JUnit工具進(jìn)行編寫測(cè)試用例,進(jìn)行單元測(cè)試和集成測(cè)試。在界面上

2、運(yùn)用Ajax技術(shù)來(lái)實(shí)現(xiàn)XML文件存放數(shù)據(jù),并以人性化的控件完成復(fù)雜的業(yè)務(wù)流程。考慮到排課任務(wù)的繁重,設(shè)計(jì)了自動(dòng)排課算法,可以完成特定需求的排課。教務(wù)管理系統(tǒng)為學(xué)院機(jī)構(gòu),提供電子化解決方案。致力于構(gòu)建電子化領(lǐng)域中統(tǒng)一、規(guī)范、服務(wù)完善的技術(shù)平臺(tái)。</p><p>  【關(guān)鍵詞】J2EE,MODEL2,MVC,Ajax,自動(dòng)排課</p><p>  Design and Implementati

3、on of Education Manage System of College</p><p>  【Abstract】The System develops testing platform by JSP MODEL2 MVC of J2EE and Eclipse3.1.8+Tomcat5.0+JDK5.0+MSSQL.The design and application of system are b

4、ased on software engineering thoughts.The document is completely written and designed according to the Waterfall Model.It Designs the software program with flow chart,UML chart to avoid the logical error.At the basis of

5、 database designing and test case writing, which is based on the tool of powerdesigner and Junit,it tests the software progr</p><p>  【Keywords】J2EE, MODEL2, MVC, Ajax, Automatic Curriculum Arrangement </

6、p><p><b>  目 錄</b></p><p><b>  第一章 緒論1</b></p><p>  第二章 系統(tǒng)開發(fā)理論基礎(chǔ)2</p><p>  2.1 Eclipse簡(jiǎn)介2</p><p>  2.2 JDK簡(jiǎn)介2</p><p>

7、;  2.3 Jsp和Servlet區(qū)別3</p><p>  2.4 Tomcat簡(jiǎn)介4</p><p>  2.5 Ajax簡(jiǎn)介5</p><p>  2.6 MVC和Model2區(qū)別5</p><p>  2.7 MVC如何工作7</p><p>  2.8 Jstl簡(jiǎn)介8</p>&l

8、t;p>  第三章 系統(tǒng)需求分析9</p><p><b>  3.1 說(shuō)明9</b></p><p>  3.2 系統(tǒng)描述9</p><p>  3.3 功能需求列表9</p><p>  3.4 系統(tǒng)功能需求10</p><p>  3.5 用戶界面需求12</p>

9、;<p>  3.6 軟硬件環(huán)境需求13</p><p>  3.7 產(chǎn)品質(zhì)量需求13</p><p>  3.8系統(tǒng)開發(fā)技術(shù)14</p><p>  3.9 B/S體系結(jié)構(gòu)14</p><p>  第四章 系統(tǒng)概要設(shè)計(jì)15</p><p>  4.1 設(shè)計(jì)說(shuō)明和原則15</p>

10、<p>  4.2 總體設(shè)計(jì)結(jié)構(gòu)圖15</p><p>  4.3 文檔目錄編排16</p><p>  4.4 產(chǎn)品具體功能17</p><p>  第五章 系統(tǒng)設(shè)計(jì)19</p><p>  5.1 共用文件系19</p><p>  5.2 MVC的設(shè)計(jì)21</p><p

11、>  5.3 分頁(yè)的分析與設(shè)計(jì)23</p><p>  5.4 時(shí)間字符串簡(jiǎn)介24</p><p>  5.5 權(quán)限問(wèn)題的分析與設(shè)計(jì)24</p><p>  5.6 自動(dòng)排課分析與設(shè)計(jì)24</p><p><b>  5.7 總結(jié)25</b></p><p>  第六章 系統(tǒng)功能實(shí)

12、現(xiàn)26</p><p>  6.1 數(shù)據(jù)庫(kù)設(shè)計(jì)26</p><p>  6.2 數(shù)據(jù)庫(kù)的命名規(guī)則26</p><p>  6.3 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)27</p><p>  6.4 系統(tǒng)數(shù)據(jù)庫(kù)表匯總28</p><p>  6.5 界面說(shuō)明31</p><p>  6.6 登錄主頁(yè)面3

13、1</p><p>  6.7 學(xué)生模塊32</p><p>  6.8 老師模塊32</p><p>  6.9 權(quán)限模塊33</p><p>  6.10 教務(wù)管理員模塊33</p><p><b>  第七章 結(jié)論35</b></p><p><b&g

14、t;  后 記36</b></p><p><b>  參考文獻(xiàn):37</b></p><p><b>  附錄一:38</b></p><p><b>  第一章 緒論</b></p><p>  隨著學(xué)校規(guī)模的不斷擴(kuò)大,學(xué)生數(shù)量急劇增加,有關(guān)學(xué)生的各種信

15、息也成倍增長(zhǎng)。面對(duì)如此龐大的信息量,開發(fā)學(xué)生信息管理系統(tǒng)來(lái)提高學(xué)生管理工作的效率就成為必然。通過(guò)該系統(tǒng),可以做到信息的規(guī)范管理、科學(xué)統(tǒng)計(jì)和快速查詢,從而減少管理方面的工作量。</p><p>  本系統(tǒng)能夠滿足各級(jí)中小學(xué)校建立基礎(chǔ)數(shù)據(jù)庫(kù)、日常管理、向上級(jí)部門上報(bào)報(bào)表數(shù)據(jù)等;可以實(shí)現(xiàn)教委對(duì)學(xué)校的實(shí)時(shí)監(jiān)控,增加各個(gè)學(xué)校管理的透明度,利于教育部門對(duì)各個(gè)學(xué)校的管理;可以實(shí)現(xiàn)老師與領(lǐng)導(dǎo),老師與學(xué)生,學(xué)生與學(xué)校,學(xué)生家長(zhǎng)與老

16、師、學(xué)校之間的互動(dòng),有利對(duì)學(xué)生的教育管理;</p><p>  教務(wù)管理系統(tǒng)為學(xué)院機(jī)構(gòu),提供電子化解決方案。致力于構(gòu)建電子化領(lǐng)域中統(tǒng)一、規(guī)范、服務(wù)完善的技術(shù)平臺(tái)。在電子化教學(xué)中結(jié)合人力資源管理的理念,以人為本,由教學(xué)管理、考試管理、自動(dòng)排課,成績(jī)查詢,貫徹教學(xué)的整體流程。在電子化教學(xué)中將網(wǎng)絡(luò)技術(shù)與傳統(tǒng)教學(xué)相結(jié)合,為學(xué)院提供遠(yuǎn)程教育技術(shù)解決方案,將高質(zhì)量的教育服務(wù)延伸到社會(huì)的每一個(gè)角落。本系統(tǒng)正是為了實(shí)現(xiàn)教學(xué)管理電

17、子化這一需求而開發(fā)。系統(tǒng)開發(fā)中運(yùn)用到了Eclipse、tomcat、JDK等開發(fā)工具與運(yùn)行環(huán)境,Ajax,Web Model2 (MVC),Design pattern,Jstl 等技術(shù)和知識(shí)。</p><p>  第二章 系統(tǒng)開發(fā)理論基礎(chǔ)</p><p>  2.1 Eclipse簡(jiǎn)介</p><p>  Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)

18、展開發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。</p><p>  Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse 的軟件開發(fā)人員,因?yàn)樗试S他

19、們構(gòu)建與 Eclipse 環(huán)境無(wú)縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場(chǎng)所。</p><p>  這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclipse 是使用 Java 語(yǔ)言開發(fā)的,但它的用途并不限于 Java 語(yǔ)言;例如,支持諸如 C/C++、COBOL 和 Eiff

20、el 等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)會(huì)推出。Eclipse 框架還可用來(lái)作為與軟件開發(fā)無(wú)關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)。</p><p>  Eclipse 工作臺(tái)由幾個(gè)稱為 視圖(view) 的窗格組成,比如左上角的 Navigator 視圖。窗格的集合稱為 透視圖(perspective)。默認(rèn)的透視圖是 Resource 透視圖,它是一個(gè)基本的通用視圖集,用于管理項(xiàng)目以及查看和編輯項(xiàng)目中的文

21、件。</p><p><b>  2.2 JDK簡(jiǎn)介</b></p><p>  JDK(Java Development Kit,Java開發(fā)包,Java開發(fā)工具)是一個(gè)寫Java的applet和應(yīng)用程序的程序開發(fā)環(huán)境。它由一個(gè)處于操作系統(tǒng)層之上的運(yùn)行環(huán)境還有開發(fā)者編譯,調(diào)試和運(yùn)行用Java語(yǔ)言寫的applet和應(yīng)用程序所需的工具組成。</p><

22、;p>  JDK(Java Development Kit)是Sun Microsystems針對(duì)Java開發(fā)員的產(chǎn)品。自從Java推出以來(lái),JDK已經(jīng)成為使用最廣泛的Java SDK(Software development kit)。</p><p>  JDK包含的基本組件包括:</p><p>  1. javac–編譯器,將源程序轉(zhuǎn)成字節(jié)碼</p><p

23、>  2. jar–打包工具,將相關(guān)的類文件打包成一個(gè)文件 </p><p>  3. javadoc–文檔生成器,從源碼注釋中提取文檔 </p><p>  4. jdb–debugger,查錯(cuò)工具 </p><p>  JDK中還包括完整的JRE(Java Runtime Environment,Java運(yùn)行環(huán)境),也被稱為private runtime。

24、包括了用于產(chǎn)品環(huán)境的各種庫(kù)類,以及給開發(fā)員使用的補(bǔ)充庫(kù),如國(guó)際化的庫(kù)、IDL庫(kù)。 JDK中還包括各種例子程序,用以展示Java API中的各部分。 從初學(xué)者角度來(lái)看,采用JDK開發(fā)Java程序能夠很快理解程序中各部分代碼之間的關(guān)系,有利于理解Java面向?qū)ο蟮脑O(shè)計(jì)思想。JDK的另一個(gè)顯著特點(diǎn)是隨著Java (J2EE、J2SE以及J2ME)版本的升級(jí)而升級(jí)。但它的缺點(diǎn)也是非常明顯的就是從事大規(guī)模企業(yè)級(jí)Java應(yīng)用開發(fā)非常困難,不能進(jìn)行復(fù)

25、雜的Java軟件開發(fā),也不利于團(tuán)體協(xié)同開發(fā)。</p><p>  JDK一般有三種版本:</p><p>  SE(J2SE),standard edition,標(biāo)準(zhǔn)版,是我們通常用的一個(gè)版本</p><p>  EE(J2EE),enterpsise edtion,企業(yè)版,使用這種JDK開發(fā)J2EE應(yīng)用程序</p><p>  ME(J2M

26、E),micro edtion,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序</p><p>  2.3 Jsp和Servlet區(qū)別</p><p>  JSP(JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn),其網(wǎng)址為http://www.javasoft.com/products/jsp。在傳統(tǒng)的網(wǎng)頁(yè)HTML

27、文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(yè)(*.jsp)。Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送 email 等等,這就是建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對(duì)客戶瀏覽器的要求最低,可以實(shí)現(xiàn)無(wú)Pl

28、ugin,無(wú)ActiveX,無(wú)Java Applet,甚至無(wú)Frame。 </p><p>  Jsp(JavaServer Page)是在普通Html中嵌入了Java代碼的一個(gè)腳本,在這一點(diǎn)上,它與其它的腳本語(yǔ)言(如Php)一樣,但它與其它語(yǔ)言不同的是:其它腳本語(yǔ)言由服務(wù)器直接解釋這個(gè)腳本,而Jsp則由Jsp容器(如Tomcat)首先將其轉(zhuǎn)化為Servlet,然后再調(diào)用Javac將Servlet編譯為Class

29、文件。最終,服務(wù)器解釋的是Class文件。</p><p>  那么什么是Servlet呢?Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,可以生成動(dòng)態(tài)的Web頁(yè)面。 它擔(dān)當(dāng)客戶請(qǐng)求(Web瀏覽器或其他HTTP客戶程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器上的數(shù)據(jù)庫(kù)或應(yīng)用程序)的中間層。 Servlet是位于Web 服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序

30、不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。Servlet其實(shí)是一個(gè)特殊的Java類,Servlet類一般從HttpServlet類繼承而來(lái),在這個(gè)類中至少要實(shí)現(xiàn)doGet或者doPost函數(shù),在這兩個(gè)函數(shù)中處理來(lái)自客戶的請(qǐng)求,然后將結(jié)果返回。Servlet和Jsp是Sun公司J2EE架構(gòu)中重要的部分。由于基于Java語(yǔ)言,因此其可以方便的調(diào)用功能強(qiáng)大的Java AP(如JDBC

31、)。</p><p>  2.4 Tomcat簡(jiǎn)介</p><p>  Tomcat是一個(gè)免費(fèi)的開源的Serlvet容器,它是Apache基金會(huì)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache,Sun和其它一些公司及個(gè)人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和Jsp規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat被JavaWorld雜志的編輯選為2001年度最具創(chuàng)

32、新的java產(chǎn)品,可見其在業(yè)界的地位。 </p><p>  Tomcat 最新版本是4.0x。4.0x與3.x的架構(gòu)不同,而是重新設(shè)計(jì)的。Tomcat4.0x中采用了新的Servlet容器:Catalina,完整的實(shí)現(xiàn)了Servlet2.3和Jsp1.2規(guī)范。Tomcat提供了各種平臺(tái)的版本供下載,可以從http://jakarta.apache.org上下載其源代碼版或者二進(jìn)制版。由于Java的跨平臺(tái)特性,基

33、于Java的Tomcat也具有跨平臺(tái)性。 </p><p>  與傳統(tǒng)的桌面應(yīng)用程序不同,Tomcat中的應(yīng)用程序是一個(gè)WAR(Web Archive)文件。WAR是Sun提出的一種Web應(yīng)用程序格式,與JAR類似,也是許多文件的一個(gè)壓縮包。這個(gè)包中的文件按一定目錄結(jié)構(gòu)來(lái)組織:通常其根目錄下包含有Html和Jsp文件或者包含這兩種文件的目錄,另外還會(huì)有一個(gè)WEB-INF目錄,這個(gè)目錄很重要。通常在WEB-INF目

34、錄下有一個(gè)web.xml文件和一個(gè)classes目錄,web.xml是這個(gè)應(yīng)用的配置文件,而classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其它類(如JavaBean)。通常這些所依賴的類也可以打包成JAR放到WEB-INF下的lib目錄下,當(dāng)然也可以放到系統(tǒng)的CLASSPATH中,但那樣移植和管理起來(lái)不方便。 </p><p>  在Tomcat中,應(yīng)用程序的部署很簡(jiǎn)單,你只需

35、將你的WAR放到Tomcat的webapp目錄下,Tomcat會(huì)自動(dòng)檢測(cè)到這個(gè)文件,并將其解壓。你在瀏覽器中訪問(wèn)這個(gè)應(yīng)用的Jsp時(shí),通常第一次會(huì)很慢,因?yàn)門omcat要將Jsp轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問(wèn)將會(huì)很快。另外Tomcat也提供了一個(gè)應(yīng)用:manager,訪問(wèn)這個(gè)應(yīng)用需要用戶名和密碼,用戶名和密碼存儲(chǔ)在一個(gè)xml文件中。通過(guò)這個(gè)應(yīng)用,輔助于Ftp,你可以在遠(yuǎn)程通過(guò)Web部署和撤銷應(yīng)用。當(dāng)然本地也可以。 &l

36、t;/p><p>  Tomcat不僅僅是一個(gè)Servlet容器,它也具有傳統(tǒng)的Web服務(wù)器的功能:處理Html頁(yè)面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache。我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet。這種集成只需要修改一下Apache和Tomcat的配置文件即可。</p><p>  

37、2.5 Ajax簡(jiǎn)介</p><p>  國(guó)內(nèi)通常的讀音為“阿賈克斯”和阿賈克斯足球隊(duì)讀音一樣。Web應(yīng)用的交互如Flickr, Backpack和Google在這方面已經(jīng)有質(zhì)的飛躍。這個(gè)術(shù)語(yǔ)源自描述從基于網(wǎng)頁(yè)的Web應(yīng)用到基于數(shù)據(jù)的應(yīng)用的轉(zhuǎn)換。在基于數(shù)據(jù)的應(yīng)用中,用戶需求的數(shù)據(jù)如聯(lián)系人列表,可以從獨(dú)立于實(shí)際網(wǎng)頁(yè)的服務(wù)端取得并且可以被動(dòng)態(tài)地寫入網(wǎng)頁(yè)中,給緩慢的Web應(yīng)用體驗(yàn)著色使之像桌面應(yīng)用一樣。 雖然大部分開發(fā)

38、人員在過(guò)去使用過(guò)XMLHttp或者使用Iframe來(lái)加載數(shù)據(jù),但僅到現(xiàn)在我們才看到傳統(tǒng)的開發(fā)人員和公司開始采用這些技術(shù)。就像新的編程語(yǔ)言或模型伴隨著更多的痛苦,開發(fā)人員需要學(xué)習(xí)新的技巧及如何最好利用這些新技術(shù)。</p><p>  Ajax(Asynchronous JavaScript and XML)是結(jié)合了 Java 技術(shù)、XML 以及 JavaScript 等編程技術(shù),可以讓開發(fā)人員構(gòu)建基于 Java 技

39、術(shù)的 Web 應(yīng)用,并打破了使用頁(yè)面重載的慣例。Ajax是使用客戶端腳本與 Web 服務(wù)器交換數(shù)據(jù)的 Web 應(yīng)用開發(fā)方法。這樣,Web 頁(yè)面不用打斷交互流程進(jìn)行重新加裁,就可以動(dòng)態(tài)地更新。使用 Ajax,用戶可以創(chuàng)建接近本地桌面應(yīng)用的直接、高可用、更豐富、更動(dòng)態(tài)的 Web 用戶界面。</p><p>  2.6 MVC和Model2區(qū)別</p><p>  模型-視圖-控制器(MVC)是

40、Xerox PARC在八十年代為編程語(yǔ)言Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,至今已被廣泛使用。最近幾年被推薦為Sun公司J2EE平臺(tái)的設(shè)計(jì)模式,并且受到越來(lái)越多的使用 ColdFusion 和 PHP 的開發(fā)者的歡迎。模型-視圖-控制器模式是一個(gè)有用的工具箱,它有很多好處,但也有一些缺點(diǎn)。</p><p>  Model 2 被認(rèn)為區(qū)別于MVC 的一個(gè)原因是,觀察者/通知模式不能在web 環(huán)境內(nèi)工作的

41、很好。HTTP 是一個(gè)“拉”的協(xié)議: 客戶請(qǐng)求然后服務(wù)器響應(yīng)。沒有請(qǐng)求就沒有響應(yīng)。觀察者模式需要一種“推”協(xié)議來(lái)進(jìn)行通知,以便服務(wù)器能在模型改變時(shí)將信息推送到客戶端。雖然也有一些方法能模擬將數(shù)據(jù)推送到客戶端,但這和基本情況相悖,并且會(huì)視為是個(gè)權(quán)宜之計(jì)的修補(bǔ)。</p><p>  圖2-1 MVC關(guān)系圖</p><p>  人們認(rèn)為Model2不同于MVC的主要原因之一是:基于觀察者/通知模

42、式的經(jīng)典的MVC是難以在web環(huán)境下實(shí)現(xiàn)的。</p><p>  因?yàn)镠TTP協(xié)議是一個(gè)請(qǐng)求/響應(yīng)協(xié)議,客戶端有請(qǐng)求,服務(wù)器端才會(huì)有響應(yīng),沒有請(qǐng)求,就沒有響應(yīng)。而觀察者/通知模式要求在服務(wù)器端發(fā)生變化時(shí)能主動(dòng)給用戶端發(fā)消息更新。</p><p>  為了解決經(jīng)典MVC模式難于在web環(huán)境下實(shí)現(xiàn)的問(wèn)題,引入層模式將狀態(tài)改變和狀態(tài)查詢的職責(zé)加于控制器之上,并伴隨著改變通知。</p>

43、<p>  如圖1-2,分層的web 應(yīng)用使用一種比傳統(tǒng)MVC模式更加“扁平”的模式??刂破鞅粖A在表現(xiàn)層(View) 和 應(yīng)用邏輯 (Model)之間。</p><p>  圖2-2 web應(yīng)用的層模式</p><p>  每個(gè)組件的主要職責(zé)并沒有改變。流程有輕微改變,View不再與Model有直接的聯(lián)系,而它們之間的交互都通過(guò)Controller。即查詢狀態(tài)和改變通知都必須

44、通過(guò)控制器;當(dāng)視圖,或者表現(xiàn)層需要加工動(dòng)態(tài)頁(yè)面時(shí),它使用從控制器傳遞的數(shù)據(jù)而不是直接來(lái)自于模型層。這種改變?nèi)コ薞iew 和 Model的耦合,允許控制器選擇數(shù)據(jù)和顯示這些數(shù)據(jù)的視圖。</p><p>  2.7 MVC如何工作</p><p>  MVC是Model-View-Controller的簡(jiǎn)寫?!癕odel”是應(yīng)用的業(yè)務(wù)邏輯(通過(guò)JavaBean,EJB組件實(shí)現(xiàn)),“View”

45、是應(yīng)用的表示面(由JSP頁(yè)面產(chǎn)生),“Controller”是提供應(yīng)用的處理過(guò)程控制(一般是一個(gè)Servlet),通過(guò)這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過(guò)程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。從而彌補(bǔ)了Model 1的不足。   </p><p>  Model 2具有組件化的優(yōu)點(diǎn)從而更易于實(shí)現(xiàn)對(duì)大規(guī)模系統(tǒng)的開發(fā)和管理,但是開發(fā)MVC系統(tǒng)比簡(jiǎn)單的JSP開發(fā)要復(fù)雜許多,同時(shí)新東西的引入會(huì)帶

46、來(lái)新的問(wèn)題(這讓我想起來(lái)關(guān)于"自動(dòng)計(jì)算"的一篇文章,中間提到為了降低系統(tǒng)的復(fù)雜度,卻導(dǎo)致更高的復(fù)雜度)。必須基于MVC組件的方式重新思考和設(shè)計(jì)應(yīng)用結(jié)構(gòu)。原來(lái)通過(guò)建立一個(gè)簡(jiǎn)單的JSP頁(yè)面就能實(shí)現(xiàn)的應(yīng)用現(xiàn)在變成了多個(gè)步驟的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。</p><p>  MVC本身就是一個(gè)非常復(fù)雜的系統(tǒng),所以采用MVC實(shí)現(xiàn)Web應(yīng)用時(shí),最好選一個(gè)現(xiàn)成的MVC框架,在此之下進(jìn)行開發(fā),從而取得事半功倍的效果。MV

47、C是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。</p><p><b>  1. 視圖</b></p><p>  視圖是用戶看到并與之交互的界面。對(duì)老式的Web應(yīng)用程序來(lái)說(shuō),視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色

48、,但一些新的技術(shù)已層出不窮,它們包括Macromedia Flash和象XHTML,XML/XSL,WML等一些標(biāo)識(shí)語(yǔ)言和Web services.如何處理應(yīng)用程序的界面變得越來(lái)越有挑戰(zhàn)性。MVC一個(gè)大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實(shí)沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的還是一個(gè)雇員列表,作為視圖來(lái)講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。</p><p><b>

49、  2. 模型</b></p><p>  模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。例如它可能用象EJBs和ColdFusion Components這樣的構(gòu)件對(duì)象來(lái)處理數(shù)據(jù)庫(kù)。被模型返回的數(shù)據(jù)是中立的,就是說(shuō)模型與數(shù)據(jù)格式無(wú)關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。</p><

50、;p><b>  3. 控制器</b></p><p>  控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁(yè)面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后用確定用哪個(gè)視圖來(lái)顯示模型處理返回的數(shù)據(jù)。</p><p>  2.8 Jstl簡(jiǎn)介</p>

51、<p>  JSTL(JSP Standard Tag Library,JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù))是一個(gè)不斷完善的開放源代碼的JSP標(biāo)簽庫(kù),是由apache的jakarta小組來(lái)維護(hù)的。JSTL只能運(yùn)行在支持JSP1.2和Servlet2.3規(guī)范的容器上,如tomcat 4.x。在JSP 2.0中也是作為標(biāo)準(zhǔn)支持的。</p><p>  JSTL是Jsp Standard Tag Library的縮寫。這是一組

52、通用標(biāo)簽并將成為JSP 2.0的一部分。其中包含賦值<c:set>,分支<c:if>,循環(huán)<c:forEach>,查詢數(shù)據(jù)庫(kù)<sql:query>,更新數(shù)據(jù)庫(kù)<sql:update>等。目前你需要像添加自定義標(biāo)簽庫(kù)一樣來(lái)添加JSTL,但是可以預(yù)計(jì)JSP 2.0會(huì)將JSTL作為組成部分。標(biāo)簽庫(kù)可以在http://jakarta.apache.org下載。注意JSTL需要在支持JS

53、P1.2或更高版本的容器下運(yùn)行。</p><p>  第三章 系統(tǒng)需求分析</p><p><b>  3.1 說(shuō)明</b></p><p>  所謂“需求分析”,是指對(duì)要解決的問(wèn)題進(jìn)行詳細(xì)的分析,弄清楚問(wèn)題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應(yīng)輸出什么。可以說(shuō),“需求分析”就是確定要計(jì)算機(jī)“做什么”。</p>&l

54、t;p>  在軟件工程中,需求分析指的是在建立一個(gè)新的或改變一個(gè)現(xiàn)存的電腦系統(tǒng)時(shí)描寫新系統(tǒng)的目的、范圍、定義和功能時(shí)所要做的所有的工作。需求分析是軟件工程中的一個(gè)關(guān)鍵過(guò)程。在這個(gè)過(guò)程中,系統(tǒng)分析員和軟件工程師確定顧客的需要。只有在確定了這些需要后他們才能夠分析和尋求新系統(tǒng)的解決方法。需求分析旨在為項(xiàng)目的分析和開發(fā)提供參考。</p><p><b>  3.2 系統(tǒng)描述</b></

55、p><p>  本系統(tǒng)旨在用J2EE的B/S架構(gòu)為學(xué)院管理員、老師和學(xué)生開發(fā)WEB版的在線管理平臺(tái)。以減少他們的大量重復(fù)的繁瑣的工作。讓學(xué)生和老師有更多的時(shí)間專注于學(xué)習(xí)和工作。系統(tǒng)分為5個(gè)模塊。分別是權(quán)限模塊、教學(xué)模塊、學(xué)生模塊、老師模塊、考試模塊。各模塊又分為幾個(gè)子功能,模塊間耦合度較小。</p><p>  系統(tǒng)能夠滿足各級(jí)中小學(xué)校建立基礎(chǔ)數(shù)據(jù)庫(kù)、日常管理、向上級(jí)部門上報(bào)報(bào)表數(shù)據(jù)等;可以實(shí)

56、現(xiàn)教委對(duì)學(xué)校的實(shí)時(shí)監(jiān)控,增加各個(gè)學(xué)校管理的透明度,利于教育部門對(duì)各個(gè)學(xué)校的管理;可以實(shí)現(xiàn)老師與領(lǐng)導(dǎo),老師與學(xué)生,學(xué)生與學(xué)校,學(xué)生家長(zhǎng)與老師、學(xué)校之間的互動(dòng),有利對(duì)學(xué)生的教育管理。</p><p>  3.3 功能需求列表</p><p>  表3-1 系統(tǒng)功能列表</p><p>  3.4 系統(tǒng)功能需求</p><p>  3.4.1 學(xué)生

57、模塊</p><p>  學(xué)生登陸以后,可以選報(bào)課程。系統(tǒng)會(huì)根據(jù)學(xué)生所在系及課程的預(yù)修課判斷</p><p>  系統(tǒng)會(huì)列出所有滿足該生還未選報(bào)的課程,或者其預(yù)修課為公共課的課程。如果該生選報(bào)了未滿足預(yù)修課要求的課程,系統(tǒng)會(huì)有相關(guān)的錯(cuò)誤提示。例如:高等數(shù)學(xué)(二)的預(yù)修課為高等數(shù)學(xué)(一)。</p><p>  學(xué)生可以查看自己的成績(jī),包括該生已選課程的名稱,學(xué)分以及該

58、生的總分。如果教師還未給出成績(jī),則系統(tǒng)會(huì)有相關(guān)提示。</p><p>  3.該生可以更改自己的個(gè)人信息,包括密碼,電話號(hào)碼等,其中要求密碼不能為空。</p><p>  4.學(xué)生課表,有時(shí)間,地點(diǎn),課程名,老師名,如果老師還沒有選擇課程而此時(shí)學(xué)生又查詢課表,老師名可以為空。</p><p>  圖 3-1 學(xué)生選課局部E-R圖</p><p&g

59、t;<b>  3.4.2老師模塊</b></p><p>  教師可以修改自己的個(gè)人資料、查看學(xué)生、查看課表、進(jìn)行考試管理、更新考試試題等功能。教師在本系統(tǒng)中擁有是否接受學(xué)生所選課程,以及給學(xué)生打分的權(quán)力,只有先接受學(xué)生,才能給該生打分。 </p><p>  1. 系統(tǒng)要求教師選擇學(xué)生,然后系統(tǒng)會(huì)列出該教師所代課程的班級(jí),然后系統(tǒng)會(huì)列出選報(bào)了該課程的所有學(xué)生;可

60、以看到學(xué)生的一些詳細(xì)情況</p><p>  2. 學(xué)生考試完后,教師確認(rèn)學(xué)生成績(jī)之后,系統(tǒng)會(huì)根據(jù)總成績(jī)來(lái)判斷該生是否通過(guò)了考試。</p><p>  3. 總成績(jī)是由考試成績(jī)×80%+平時(shí)成績(jī)×20%;考試成績(jī)由學(xué)生考完試后系統(tǒng)自動(dòng)打分,平時(shí)成績(jī)老師給出;平時(shí)成績(jī)占老成績(jī)的百分比由老師給出。</p><p>  4. 考試成績(jī)和平時(shí)成績(jī)的分?jǐn)?shù)范

61、圍0-100,老師課表,有時(shí)間,地點(diǎn),課程名, 班級(jí)名。</p><p>  圖3-2教務(wù)管理系統(tǒng)基本E-R圖</p><p>  3.4.3 教學(xué)管理員模塊</p><p>  1. 管理員在本模塊中有著最高的權(quán)力,主要有學(xué)生管理、教師管理、班級(jí)管理等。包括新增,更改,刪除學(xué)生,教師,課程以及班級(jí)。</p><p>  2. 管理員負(fù)責(zé)排課

62、,要保證同一教師在同一時(shí)間不能上兩門課程等等約束。</p><p>  3.4.4 考試模塊</p><p>  1. 能從數(shù)據(jù)庫(kù)中隨機(jī)抽取所需專業(yè)的考試科目。</p><p>  2. 學(xué)生考完后由教師進(jìn)行評(píng)分。</p><p>  3.4.5 權(quán)根模塊</p><p>  1. 所有web頁(yè)面需要頁(yè)面權(quán)限驗(yàn)證,對(duì)不

63、同的模塊分配不同的訪問(wèn)權(quán)限。如:學(xué)生進(jìn)入學(xué)生模塊,而不能進(jìn)入管理員模塊;圖書管理員只能進(jìn)入圖書借閱模塊</p><p>  2. 系統(tǒng)管理員可增刪改查其他管理員(教學(xué)管理員;BBS管理員;圖書管理員)</p><p>  3. 系統(tǒng)管理員的用戶名和密碼可以預(yù)先在數(shù)據(jù)庫(kù)中設(shè)定。</p><p>  3.5 用戶界面需求</p><p>  表3

64、-2 用戶界面需求表</p><p>  3.6 軟硬件環(huán)境需求</p><p>  表3-3 軟硬件環(huán)境需求表</p><p>  3.7 產(chǎn)品質(zhì)量需求</p><p>  表3-4 產(chǎn)品質(zhì)量需求表</p><p><b>  硬件配置:</b></p><p>  CP

65、U:2.26GHZ;</p><p><b>  內(nèi)存:256M;</b></p><p><b>  硬盤:80G;</b></p><p><b>  軟件配置:</b></p><p>  操作系統(tǒng):Windows XP/Windows 2000;</p>

66、<p>  數(shù)據(jù)庫(kù):mySQL;</p><p>  JSP服務(wù)器:Tomcat;</p><p><b>  3.8系統(tǒng)開發(fā)技術(shù)</b></p><p>  本系統(tǒng)的設(shè)計(jì)綜合應(yīng)用了B/S體系結(jié)構(gòu)、SQL server 2000、JSP等技術(shù)。</p><p>  由于客戶服務(wù)器兩層結(jié)構(gòu)存在靈活性差、升級(jí)困難

67、、維護(hù)工作量大等缺陷,已較難適應(yīng)當(dāng)前信息技術(shù)與網(wǎng)絡(luò)技術(shù)發(fā)展的需要。隨著WEB技術(shù)的日益成為Browse/Serve r(簡(jiǎn)稱B/S)結(jié)構(gòu)已成為取代Client/Server(簡(jiǎn)稱C/S)結(jié)構(gòu)的一種全新技術(shù)。因此該結(jié)構(gòu)在管理信息系統(tǒng)開發(fā)領(lǐng)域中獲得飛速發(fā)展,成為應(yīng)用軟件研制中一種流行的體系結(jié)構(gòu)。</p><p>  3.9 B/S體系結(jié)構(gòu)</p><p>  在B/S體系結(jié)構(gòu)系統(tǒng)中,用戶通過(guò)瀏

68、覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請(qǐng)求,服務(wù)器對(duì)瀏覽器的請(qǐng)求進(jìn)行處理,將用戶所需信息返回到瀏覽器。B/S結(jié)構(gòu)簡(jiǎn)化了客戶機(jī)的工作,客戶機(jī)上只需配置少量的客戶端軟件。服務(wù)器將擔(dān)負(fù)更多的工作,對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。瀏覽器發(fā)出請(qǐng)求,而其余如數(shù)據(jù)請(qǐng)求、加工、結(jié)果返回以及動(dòng)態(tài)網(wǎng)頁(yè)生成等工作全部由Web Server完成。實(shí)際上B/S體系結(jié)構(gòu)是把二層C/S結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)中分離出來(lái),由Web服務(wù)器單獨(dú)組成

69、一層來(lái)負(fù)擔(dān)其任務(wù),這樣客戶機(jī)的壓力減輕了,把負(fù)荷分配給了Web服務(wù)器。</p><p>  這種三層結(jié)構(gòu)層與層之間相互獨(dú)立,任何一層的改變不影響其他層的功能。</p><p>  三層B/S結(jié)構(gòu)將應(yīng)用的三個(gè)部分明確的分開:表示部分、應(yīng)用邏輯部分、數(shù)據(jù)訪問(wèn)部分。這三個(gè)部分在邏輯上獨(dú)立的分開,分別加以實(shí)現(xiàn),稱之為:客戶端、應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器。而在客戶端和應(yīng)用服務(wù)器之間加入一個(gè)WEB服務(wù)器

70、,就形成了一種特殊的B/S結(jié)構(gòu):Browser/Server,只在客戶端安裝瀏覽器軟件即可??蛻舳耸褂肐nternet Explore時(shí),就可以讓Internet Explore變成為能夠處理數(shù)據(jù)的應(yīng)用系統(tǒng)。</p><p>  由于這種模式是提供一個(gè)跨平臺(tái)的、簡(jiǎn)單一致的應(yīng)用環(huán)境,實(shí)現(xiàn)了開發(fā)系統(tǒng)與應(yīng)用系統(tǒng)的分離,因此避免了為多重不同的操作系統(tǒng)開發(fā)同一應(yīng)用系統(tǒng)的重復(fù)操作,便于用戶群的擴(kuò)展、變化以及應(yīng)用系統(tǒng)的管理。&

71、lt;/p><p>  第四章 系統(tǒng)概要設(shè)計(jì)</p><p>  4.1 設(shè)計(jì)說(shuō)明和原則</p><p>  概要設(shè)計(jì)的主要任務(wù)是把需求分析得到的DFD轉(zhuǎn)換為軟件結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。設(shè)計(jì)軟件結(jié)構(gòu)的具體任務(wù)是:將一個(gè)復(fù)雜系統(tǒng)按功能進(jìn)行模塊劃分、建立模塊的層次結(jié)構(gòu)及調(diào)用關(guān)系、確定模塊間的接口及人機(jī)界面等。數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)包括數(shù)據(jù)特征的描述、確定數(shù)據(jù)的結(jié)構(gòu)特性、以及數(shù)據(jù)庫(kù)的設(shè)計(jì)。&l

72、t;/p><p>  系統(tǒng)的總體設(shè)計(jì)滿足以下幾個(gè)原則:</p><p>  1. 產(chǎn)品化:制造標(biāo)準(zhǔn)的產(chǎn)品,保證產(chǎn)品功能和產(chǎn)品質(zhì)量:“零客戶端安裝”,安裝和維護(hù)僅限于服務(wù)器端,縮短實(shí)施部署時(shí)間;提供產(chǎn)品升級(jí)服務(wù),讓客戶一次投資終生受益,提供周全的產(chǎn)品售后服務(wù)。</p><p>  2. 易用性:人性化的菜單項(xiàng)目、方便快捷的員工服務(wù)項(xiàng)目,保證用戶可無(wú)障礙的學(xué)習(xí)和使用系統(tǒng)。&

73、lt;/p><p>  3. 技術(shù)的先進(jìn)性和成熟性:系統(tǒng)在成熟的(J2EE架構(gòu))架構(gòu)上開發(fā),確保技術(shù)的先進(jìn)性和成熟性,具有良好的可持續(xù)擴(kuò)展能力。確保產(chǎn)品的平臺(tái)化設(shè)計(jì)原則順利進(jìn)行。</p><p>  4. 產(chǎn)品平臺(tái)化:以平臺(tái)化原則來(lái)設(shè)計(jì)產(chǎn)品,制定統(tǒng)一的接口標(biāo)準(zhǔn)和規(guī)范,利于產(chǎn)品功能的完善和升級(jí)。</p><p>  4.2 總體設(shè)計(jì)結(jié)構(gòu)圖</p><p

74、>  圖4-1 總體設(shè)計(jì)結(jié)構(gòu)圖</p><p>  本系統(tǒng)能夠滿足各級(jí)中小學(xué)校建立基礎(chǔ)數(shù)據(jù)庫(kù)、日常管理、向上級(jí)部門上報(bào)報(bào)表數(shù)據(jù)等;可以實(shí)現(xiàn)教委對(duì)學(xué)校的實(shí)時(shí)監(jiān)控,增加各個(gè)學(xué)校管理的透明度,利于教育部門對(duì)各個(gè)學(xué)校的管理;可以實(shí)現(xiàn)老師與領(lǐng)導(dǎo),老師與學(xué)生,學(xué)生與學(xué)校,學(xué)生家長(zhǎng)與老師、學(xué)校之間的互動(dòng),有利對(duì)學(xué)生的教育管理;在電子化教學(xué)中結(jié)合人力資源管理的理念,以人為本,由教學(xué)管理、考試管理、自動(dòng)排課,成績(jī)查詢,貫徹教

75、學(xué)的整體流程。在電子化教學(xué)中將網(wǎng)絡(luò)技術(shù)與傳統(tǒng)教學(xué)相結(jié)合,為學(xué)院提供遠(yuǎn)程教育技術(shù)解決方案,將高質(zhì)量的教育服務(wù)延伸到社會(huì)的每一個(gè)角落。 </p><p>  4.3 文檔目錄編排</p><p>  圖4-2 總體文檔目錄編排圖</p><p>  項(xiàng)目采用MVC模式,文檔目錄編排依照MVC模式。</p><p>  1. M:MODEL

76、</p><p>  Com.sevenEleven.Beans包中主要包含數(shù)據(jù)庫(kù)的持久化類。</p><p>  Com.sevenEleven.javaBean包及子包中包含連接數(shù)據(jù)庫(kù)類以及業(yè)務(wù)層中的類。</p><p><b>  2. V:VIEW</b></p><p>  WebContent文件夾中包含著頁(yè)

77、面和頁(yè)面元素。有JSP,HTML,CSS,F(xiàn)LASH,JS等。作為項(xiàng)目的視圖層。</p><p>  3. C:CONTROL</p><p>  Com.sevenEleven.servlet包及子包包含了WEB中的servlet文件,作為控制層??刂芃ODEL層和VIEW層之間的數(shù)據(jù)流。</p><p>  4.4 產(chǎn)品具體功能</p><p

78、>  學(xué)生登陸以后,可以選報(bào)課程。系統(tǒng)會(huì)根據(jù)學(xué)生所在系及課程的預(yù)修課判斷</p><p>  1. 系統(tǒng)會(huì)列出所有滿足該生還未選報(bào)的課程,或者其預(yù)修課為公共課的課程。如果該生選報(bào)了未滿足預(yù)修課要求的課程,系統(tǒng)會(huì)有相關(guān)的錯(cuò)誤提示。例如:高等數(shù)學(xué)(二)的預(yù)修課為高等數(shù)學(xué)(一)。</p><p>  2. 學(xué)生可以查看自己的成績(jī),包括該生已選課程的名稱,學(xué)分以及該生的總分。如果教師還未給出

79、成績(jī),則系統(tǒng)會(huì)有相關(guān)提示。</p><p>  3. 該生可以更改自己的個(gè)人信息,包括密碼,電話號(hào)碼等,其中要求密碼不能為空。</p><p>  4. 學(xué)生課表,有時(shí)間,地點(diǎn),課程名,老師名,如果老師還沒有選擇課程而此時(shí)學(xué)生又查詢課表,老師名可以為空。</p><p>  圖4-3 學(xué)生模塊流程圖</p><p>  教師在本系統(tǒng)中擁有是否

80、接受學(xué)生所選課程,以及給學(xué)生打分的權(quán)力,只有先接受學(xué)生,才能給該生打分。 </p><p>  1. 系統(tǒng)要求教師選擇學(xué)生,然后系統(tǒng)會(huì)列出該教師所代課程的班級(jí),然后系統(tǒng)會(huì)列出選報(bào)了該課程的所有學(xué)生;可以看到學(xué)生的一些詳細(xì)情況</p><p>  2. 學(xué)生考試完后,教師確認(rèn)學(xué)生成績(jī)之后,系統(tǒng)會(huì)根據(jù)總成績(jī)來(lái)判斷該生是否通過(guò)了考試。</p><p>  3. 總成績(jī)是

81、由考試成績(jī)×80%+平時(shí)成績(jī)×20%;考試成績(jī)由學(xué)生考完試后系統(tǒng)自動(dòng)打分,平時(shí)成績(jī)老師給出;平時(shí)成績(jī)占老成績(jī)的百分比由老師給出。</p><p>  4. 考試成績(jī)和平時(shí)成績(jī)的分?jǐn)?shù)范圍0-100,老師課表,有時(shí)間,地點(diǎn),課程名,班級(jí)名。</p><p>  圖4-5 教師模塊流程圖</p><p>  管理員在本模塊中有著最高的權(quán)力,包括新增,更

82、改,刪除學(xué)生,教師,課程以及班級(jí)。</p><p>  1. 管理員負(fù)責(zé)排課,要保證同一教師在同一時(shí)間不能上兩門課程等等約束。</p><p>  2. 所有web頁(yè)面需要頁(yè)面權(quán)限驗(yàn)證,對(duì)不同的模塊分配不同的訪問(wèn)權(quán)限。例如:學(xué)生進(jìn)入學(xué)生模塊,而不能進(jìn)入管理員模塊;圖書管理員只能進(jìn)入圖書借閱模塊</p><p>  3. 系統(tǒng)管理員可以增刪改查其他管理員(教學(xué)管理員;

83、BBS管理員;圖書管理員)。</p><p>  4. 系統(tǒng)管理員的用戶名和密碼可以預(yù)先在數(shù)據(jù)庫(kù)中設(shè)定。</p><p><b>  第五章 系統(tǒng)設(shè)計(jì)</b></p><p><b>  5.1 共用文件系</b></p><p>  5.1.1 Model層</p><p>

84、;  圖5-1 共用文件的Model層文件圖</p><p>  表5-1 Com.sevenEleven.Beans包中的共用文件表</p><p>  表5-2 Com.sevenEleven.javaBean包中的共用文件表</p><p>  5.1.2 View層</p><p>  圖5-2 共用文件系的View層文件</p

85、><p>  表5-3 WebContent文件夾中的文件列表</p><p>  5.1.3 Control層</p><p>  圖5-3 共用文件系的Control層文件</p><p>  表5-4 com.sevenEleven.servlet包中的共用servlet列表</p><p>  5.2 MVC的設(shè)計(jì)

86、</p><p>  圖5-4 MVC設(shè)計(jì)圖</p><p>  如上圖所示,MVC設(shè)計(jì)模式在JAVA WEB項(xiàng)目中的體現(xiàn)為 JSP(VIEW層)、Servlet(Control層)、JavaBean(Model層)。為了說(shuō)明MVC在項(xiàng)目中代碼中的體現(xiàn),可以拿登錄模塊為例子來(lái)說(shuō)明。</p><p>  WebContent/login.jsp作為VIEW層,是用戶登

87、錄的頁(yè)面。該頁(yè)面顯示在瀏覽器上,用戶可以在指定的位置鍵入用戶名和密碼,并選擇用戶的類型,點(diǎn)確定提交到CcheckServlet.具體實(shí)現(xiàn)可以通過(guò)以下代碼:</p><p>  <form name="form1" method="post" action="CcheckServlet"></p><p>  <t

88、able align="center"></p><p><b>  <tr></b></p><p>  <td>用戶名</td></p><p>  <td><input type="text" name="userName&quo

89、t; /></td></p><p><b>  </tr></b></p><p><b>  <tr></b></p><p>  <td>密碼</td></p><p>  <td><input type=&q

90、uot;password" name="userPassword" /></td></p><p><b>  </tr></b></p><p><b>  <tr></b></p><p>  <td>用戶類型</td>&l

91、t;/p><p>  <td><select name="userType" size="1"></p><p>  <option value="student" selected>學(xué)生</p><p>  <option value="teacher&qu

92、ot;>老師</p><p>  <option value="admin">管理員</td></p><p><b>  </tr></b></p><p><b>  <tr></b></p><p><b> 

93、 <td></td></b></p><p>  <td><input type="submit" onclick="submitForm()" name="Submit"</p><p>  value="登錄"> &nbsp;&nb

94、sp; <input type="reset" value="重置"></td></p><p><b>  </tr></b></p><p><b>  </table></b></p><p><b>  </fo

95、rm></b></p><p>  附錄中的文件1:com.sevenEleven.servlet.CcheckUserServlet作為Control層,是登錄功能的控制器,負(fù)責(zé)控制MODEL層和VIEW層中的數(shù)據(jù)流向。通過(guò)request.getParameter("USERNAME")語(yǔ)句得到前臺(tái)輸入的數(shù)據(jù),經(jīng)過(guò)業(yè)務(wù)流程之后再通過(guò)request.getRequestDis

96、patcher("teacher/teacher.jsp"). forward</p><p>  (request, response);這樣的語(yǔ)句跳轉(zhuǎn)到therch/teacher.jsp這樣的JSP頁(yè)面。</p><p>  附錄中的文件2:com.sevenEleven.javaBean. CConnectMSSQL作為Model層,提供了SQLServer數(shù)據(jù)

97、庫(kù)的連接和返回記錄集。供Control層調(diào)用。</p><p>  5.3 分頁(yè)的分析與設(shè)計(jì)</p><p>  5.3.1 分頁(yè)的分析</p><p>  參考網(wǎng)上對(duì)分頁(yè)的分析,用的多的分頁(yè)方法有三種:(依數(shù)據(jù)來(lái)分類)</p><p>  1. 一次性把要想得到的數(shù)據(jù)從數(shù)據(jù)庫(kù)中取出來(lái),這種方法恰用于數(shù)據(jù)量小時(shí)用,不過(guò)不推薦。</p&g

98、t;<p>  1)優(yōu)點(diǎn): 一次取出,數(shù)據(jù)全在緩存里,跳轉(zhuǎn)到其它分頁(yè)時(shí)速度極快。</p><p>  2)缺點(diǎn): 第一次取出全部數(shù)據(jù),放在緩存中,極度的浪費(fèi)了資源。</p><p>  2. 每次只取當(dāng)前頁(yè)面所需要的數(shù)據(jù)。適合數(shù)據(jù)量比較大。</p><p>  1)優(yōu)點(diǎn):每次只取出每需頁(yè)面的數(shù)據(jù),大大減輕了緩存中的數(shù)據(jù)量。</p><

99、;p>  2)缺點(diǎn): 每一次分頁(yè)跳轉(zhuǎn)時(shí)都要連接數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)造成了壓力。</p><p>  3. 每次取出幾個(gè)頁(yè)面的數(shù)據(jù),分在緩存中,當(dāng)緩存中沒有頁(yè)面每需的數(shù)據(jù)時(shí),再?gòu)臄?shù)據(jù)中取。比較適合表中數(shù)據(jù)超大,比如幾百萬(wàn)條的數(shù)據(jù)。</p><p>  1)優(yōu)點(diǎn):終合了1,2兩種方法的好處,由系統(tǒng)分析員來(lái)把握一個(gè)最佳的度。</p><p>  2)缺點(diǎn):加大了分頁(yè)算法

100、的難度和邏輯量。</p><p>  5.3.2 分頁(yè)的設(shè)計(jì)</p><p>  由以上的分析,我選擇了第2種方法來(lái)實(shí)現(xiàn)。</p><p>  1. 關(guān)于取數(shù)據(jù)庫(kù)記錄的實(shí)現(xiàn):</p><p>  函數(shù)1:取出要從表中取出的數(shù)據(jù)的總條數(shù)。(見附錄中文件3)</p><p>  函數(shù)2:要實(shí)現(xiàn)第2種方法,那么取數(shù)據(jù)的方法是

101、動(dòng)態(tài)的。也就是說(shuō)每次由當(dāng)前頁(yè)來(lái)決定是取第多少條數(shù)據(jù)。SQL語(yǔ)句很重要,要給兩個(gè)參數(shù),比如說(shuō)form 第 一個(gè)參數(shù) to 最后一個(gè)參數(shù) 這么多數(shù)據(jù)。</p><p>  2. 關(guān)于分頁(yè)類的實(shí)現(xiàn):</p><p>  分頁(yè)類,主要功能是把當(dāng)前頁(yè)碼,總頁(yè)碼,每頁(yè)數(shù)據(jù)條數(shù),總條數(shù),等等數(shù)據(jù)的setter()和getter()方法。 主要是還給了一個(gè)分頁(yè)控件,此控件就是一個(gè)函數(shù)所實(shí)現(xiàn)的,參數(shù)是提交

102、的servlet名,返回的就是html代碼,這個(gè)代碼就是分頁(yè)控件。</p><p>  3. servlet的實(shí)現(xiàn):</p><p>  servlet1: 生成初使化頁(yè)面。</p><p>  servlet2: 生成非初使化頁(yè)面。</p><p>  5.4 時(shí)間字符串簡(jiǎn)介</p><p>  排課時(shí)用到的時(shí)間并不

103、是絕對(duì)時(shí)間。因?yàn)槟攴菰陧?xiàng)目中不起作用,而第幾學(xué)期、第幾周、星期幾、第幾節(jié)課反而是排課中時(shí)間的要素。當(dāng)然由相對(duì)時(shí)間和班級(jí)的開班時(shí)間,用固定的公式可以得到絕對(duì)時(shí)間。 這里我們利用時(shí)間字符串不僅可以減少數(shù)據(jù)庫(kù)存儲(chǔ)多余的信息量,而且讓后臺(tái)對(duì)相對(duì)時(shí)間的操作更簡(jiǎn)單。例如的時(shí)間類</p><p>  5.5 權(quán)限問(wèn)題的分析與設(shè)計(jì)</p><p>  權(quán)限問(wèn)題有多種解決方案,最系統(tǒng)的比如Windows的

104、用戶組分類。為了減輕工作量和復(fù)雜度,這里沒有給每個(gè)權(quán)限編號(hào)并為用戶設(shè)定用戶組。因?yàn)轫?yè)面的獨(dú)立,這里使用頁(yè)面權(quán)限和登錄權(quán)限。</p><p><b>  權(quán)限分析: </b></p><p>  頁(yè)面權(quán)限可以通過(guò)JSP中的過(guò)濾器(Filter)來(lái)實(shí)現(xiàn);</p><p>  登錄權(quán)限可以用JAVA代碼實(shí)現(xiàn);</p><p>

105、  這樣不同類型用戶登錄的是不同的頁(yè)面,并且用戶不能訪問(wèn)其它類型用戶的頁(yè)面。</p><p>  5.6 自動(dòng)排課分析與設(shè)計(jì)</p><p>  5.6.1 自動(dòng)排課分析</p><p>  自動(dòng)排能問(wèn)題是一個(gè)NP問(wèn)題,復(fù)雜度為(時(shí)間,班級(jí),老師,課程,教室)五維.加上其約束條件一起,其是一個(gè)數(shù)學(xué)上尚為解決的問(wèn)題.</p><p><b

106、>  自動(dòng)排課分析: </b></p><p>  1. 學(xué)院里同一屆的班開班時(shí)間相同,而不同屆的開班時(shí)間不同.</p><p>  2. 學(xué)院可以按周排課,特殊時(shí)可以變更單節(jié)課; </p><p>  5.6.2 自動(dòng)排課設(shè)計(jì)方案</p><p><b>  自動(dòng)排課解決方案:</b></p&g

107、t;<p>  1. 簡(jiǎn)化五維關(guān)系,在自動(dòng)排課之前,要求用戶選擇班級(jí)和階段,再為班級(jí)的特定階段規(guī)定(課程—老師) 在同一班級(jí)同一學(xué)期的課程和老師</p><p>  維 : (班級(jí)---學(xué)期---課程---老師) --- 時(shí)間 --- 教室</p><p>  2. 為排課定制約束</p><p>  1)如果取出的教室不為空,則給班

108、分配一個(gè)隨機(jī)的教室. 如果為空,這節(jié)課就不上了。</p><p>  2)如果取出的(老師-課程)都有課,則這節(jié)課不上。</p><p>  3)如果前6節(jié)課有同樣的課上過(guò)了,選其它的課。</p><p>  4)如果排到的課超過(guò)了當(dāng)周應(yīng)上課數(shù),選其它的課。</p><p>  5)如果當(dāng)天前三節(jié)課都上了,這節(jié)課不上。</p>

109、<p><b>  5.7 總結(jié)</b></p><p>  通過(guò)系統(tǒng)的設(shè)計(jì),本人感觸最深的是加深了對(duì)軟件開發(fā)過(guò)程的理解,熟悉了利用JSP實(shí)現(xiàn)各種實(shí)用的數(shù)據(jù)庫(kù)型軟件的開發(fā),以及了解了教務(wù)管理的一些流程,也更加深入理解了MIS設(shè)計(jì)中常見問(wèn)題和其設(shè)計(jì)的意義。本文在詳細(xì)分析了學(xué)生學(xué)籍管理的各功能模塊基礎(chǔ)上,設(shè)計(jì)并實(shí)現(xiàn)了學(xué)生學(xué)籍管理系統(tǒng)的簡(jiǎn)易版本。</p><p>

110、  第六章 系統(tǒng)功能實(shí)現(xiàn)</p><p><b>  6.1 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>  數(shù)據(jù)庫(kù)設(shè)計(jì) (Database Design)是指根據(jù)用戶的需求,在某一具體的數(shù)據(jù)庫(kù)管理系統(tǒng)上,設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)和建立數(shù)據(jù)庫(kù)的過(guò)程。就是規(guī)劃和結(jié)構(gòu)化數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象以及這些數(shù)據(jù)對(duì)象之間關(guān)系的過(guò)程數(shù)據(jù)庫(kù)設(shè)計(jì)遵從面向關(guān)系的原則,保證各表之間不出現(xiàn)邏輯錯(cuò)誤的同時(shí),要盡可能

111、滿足存取的簡(jiǎn)單,三范式和二范式間的取最優(yōu)者,保證開發(fā)和維護(hù)的簡(jiǎn)便和數(shù)據(jù)庫(kù)的可讀性。</p><p>  數(shù)據(jù)庫(kù)設(shè)計(jì)的很多工作仍需要人工來(lái)做,除了關(guān)系型數(shù)據(jù)庫(kù)已有一套較完整的數(shù)據(jù)范式理論可用來(lái)部分地指導(dǎo)數(shù)據(jù)庫(kù)設(shè)計(jì)之外,尚缺乏一套完善的數(shù)據(jù)庫(kù)設(shè)計(jì)理論、方法和工具,以實(shí)現(xiàn)數(shù)據(jù)庫(kù)設(shè)計(jì)的自動(dòng)化或交互式的半自動(dòng)化設(shè)計(jì)。所以數(shù)據(jù)庫(kù)設(shè)計(jì)今后的研究發(fā)展方向是研究數(shù)據(jù)庫(kù)設(shè)計(jì)理論,尋求能夠更有效地表達(dá)語(yǔ)義關(guān)系的數(shù)據(jù)模型,為各階段的設(shè)計(jì)

112、提供自動(dòng)或半自動(dòng)的設(shè)計(jì)工具和集成化的開發(fā)環(huán)境,使數(shù)據(jù)庫(kù)的設(shè)計(jì)更加工程化、更加規(guī)范化和更加方便易行,使得在數(shù)據(jù)庫(kù)的設(shè)計(jì)中充分體現(xiàn)軟件工程的先進(jìn)思想和方法。</p><p>  6.2 數(shù)據(jù)庫(kù)的命名規(guī)則</p><p>  6.2.1 表名的命名規(guī)則</p><p>  一個(gè)表的表名要能簡(jiǎn)潔易懂的表達(dá)表的功能,一般從基本表開始命名。如STUDENT</p>

113、<p>  6.2.2 主鍵的命名規(guī)則</p><p>  一個(gè)表的主鍵要一眼看得出來(lái),一般用表名的首字母+下劃線+ID。如S_ID。</p><p>  6.2.3 外鍵的命名規(guī)則</p><p>  一個(gè)表的外鍵是另一個(gè)表的主鍵,一般用相關(guān)表關(guān)鍵名來(lái)表示。如 CLASS 表的主鍵為C_ID,在STUDENT表中做外鍵表名也為C_ID。</p&g

114、t;<p>  學(xué)院有基本實(shí)體集:系、教師、學(xué)生和課程。</p><p><b>  它們各有屬性:</b></p><p>  系:系編號(hào)、系名、電話;</p><p>  課程:課程號(hào)、課程名稱;</p><p>  學(xué)生:姓名、學(xué)號(hào)、性別、年齡;</p><p>  教師:教師

115、編號(hào)、姓名、性別、職稱。</p><p><b>  實(shí)體間有聯(lián)系:</b></p><p>  每個(gè)系有一位系主任,有多位教師;</p><p>  一個(gè)教師僅在一個(gè)系任職;</p><p>  每門課程各有一位教師授課;</p><p>  一個(gè)學(xué)生可以在不同的系選修多門課程。</p&g

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論