版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程管理系統(tǒng)</b></p><p> 摘 要:本文為適應高校分校管理體制下校區(qū)教學管理信息化的需要,采用Visual Basic數(shù)據(jù)庫技術,開發(fā)了一套簡單靈活、方便通用的學生課程管理系統(tǒng)。本文主要介紹的是該系統(tǒng)的設計與實現(xiàn)。</p><p> 關鍵詞:課程管理系統(tǒng);數(shù)據(jù)庫</p><p> Abstract
2、: In order to meet management at the University campus under the system of teaching management information needs, using Visual Basic database technology, developed a simple and flexible to facilitate a common course mana
3、gement system students. This paper describes the system is the Design and Implementation. Key words: course management system, database</p><p><b> 目錄</b></p><p><b> 第一章 緒論3
4、</b></p><p> 第二章 Visual Basic 6.0 簡介4</p><p> 第三章系統(tǒng)需求分析6</p><p> 3. 1需求獲取方法6</p><p> 3. 2業(yè)務需求的描述7</p><p> 3. 2. 1總體業(yè)務流程7</p><p&g
5、t; 3.2.2業(yè)務描述7</p><p> 3. 3需求分析9</p><p> 3. 3. 1系統(tǒng)需求獲取9</p><p> 3. 3. 2系統(tǒng)分析模型14</p><p> 第四章系統(tǒng)設計17</p><p> 4. 1系統(tǒng)功能框架17</p><p> 4.1
6、.1功能框架總述17</p><p> 4. 2設計類建模19</p><p> 4. 3數(shù)據(jù)庫建模21</p><p> 4. 3. 1數(shù)據(jù)庫建模步驟21</p><p> 4.3.2成績報表的視圖設計23</p><p> 第五章系統(tǒng)實現(xiàn)27</p><p> 5.
7、1課程管理系統(tǒng)的實現(xiàn)27</p><p> 5. 2培養(yǎng)方案管理的實現(xiàn)28</p><p> 5. 3 XML配置部署文件的實現(xiàn)30</p><p> 5. 4成績表的實現(xiàn)34</p><p> 5. 5內容管理掛接問題36</p><p> 5. 5. 1課程表實現(xiàn)方式36</p>
8、<p> 5. 5. 2 SVG實現(xiàn)方式36</p><p><b> 參考文獻39</b></p><p><b> 致 謝40</b></p><p><b> 第一章 緒論</b></p><p> 學生課程管理系統(tǒng)是一個學校不可缺少的部分,它
9、的內容對于管理者和學生來說都至關重要,所以學生課程管理系統(tǒng)應該能夠為管理者提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理學生課程,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。</p><p> 隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來
10、越重要的作用。</p><p> 作為計算機應用的一部分,使用計算機對人事勞資信息進行管理,具有著手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高人事勞資管理的效率,也是企業(yè)的科學化、正規(guī)化管理,與世界接軌的重要條件。如今隨著學生的擴招各個高校都有好幾個校區(qū),如果沒有相應的管理系統(tǒng)互相銜接,仍然停留在傳統(tǒng)的紙質和手工管理方式上,則必將成為
11、高校發(fā)展的瓶頸、制約管理效能的提高。針對這一情況,我們結合學校教學管理實際,利用Viusal Basic數(shù)據(jù)庫技術開發(fā)了一套簡單靈活的學生課程管理系統(tǒng)。</p><p> 第二章 Visual Basic 6.0 簡介</p><p> 20世紀60年代初,美國Dartmouth學院的兩位學者G.Keneny和Thomos E.Kurty發(fā)明了一種稱為“BASIC”的語言,它的誕生稱得
12、上是計算機語言發(fā)展史上的一件大事,對計算機的推廣應用起到了重要的作用。</p><p> 自從Basic語言問世以來,“Basic”已經成為了編程入門者學習語言的代名詞。Basic語言以其易學易用的特點風靡全球。然而自從微軟公司推出了劃時代的 Visual Basic,Basic又從一門“玩具語言”一躍而成為功能強大的應用軟件開發(fā)語言。它功能強大,語法簡單,執(zhí)行代碼效率高。據(jù)統(tǒng)計,開發(fā)同樣的應用軟件,采用 VB
13、開發(fā)要比用 VC++的效率提高 70%。因此,VB已經成為每一個編程工作者學習時的首選語言[14]。</p><p> 1991年,微軟推出了Visual Basic1.0版。這在當時引起了很大的轟動。接著于1992年微軟推出Visual BasicB2.0,1993年推出Visual Basic3.0,1995年推出Visual Basic4.0,1997年推出Visual Basic5.0,1998年推出V
14、isual Basic6.0。并且從Visual Basic3.0開始,微軟將ACCESS的數(shù)據(jù)庫驅動集成到了Visual Basic中,這使得Visual Basic的數(shù)據(jù)庫編程能力大大提高。從Visual Basic4.0開始,Visual Basic也引入了面向對象的程序設計思想。而且,Visual Basic還引入了“控件”的概念,使得大量已經編好的Visual Basic程序可以被我們直接拿來使用,如今,Visual Basi
15、c已經有了6.0版。Visual Basic已逐漸成為簡單易學、功能強大的編程工具[15]。它不但在一般程序設計方面比傳統(tǒng)的程序設計語言具有明顯的優(yōu)勢,而且可作為多媒體創(chuàng)作工具,支持程序跳轉,具有脫機播放動畫的能力,并采用了動畫過渡技術等。它的軟件費用支出低,易學習</p><p> Visual Basic 6.0作為Visual Studio 6.0的一員發(fā)布,證明微軟正在改變Visual Basic的產品
16、定位,他想讓Visual Basic成為企業(yè)級快速開發(fā)的利器。Visual Basic 6.0在數(shù)據(jù)訪問方面有了很大的改進,新的ADO組件讓對大量數(shù)據(jù)快速訪問成為可能。數(shù)據(jù)環(huán)境和新的報表功能也讓數(shù)據(jù)開發(fā)有了全新的體驗。Visual Basic 借助COM/COM+強大的功能,可以開發(fā)具有N層結構的分布式應用程序。同時,Visual Basic還可以在IIS上開發(fā)性能超群的Web應用程序。Visual Basic 6.0在語言方面和IDE
17、方面的改進都不大,但是許多新增的組件成為Visual Basic開發(fā)人員手中的利器,如File System Object等[16]。新的字符串函數(shù)Split和Replace等也給Visual Basic的程序員帶來很大方便。</p><p> 總之Visual Basic 6.0已經是非常成熟穩(wěn)定的開發(fā)系統(tǒng),能讓企業(yè)快速建立多層的系統(tǒng)以及Web應用程序,成為當前Windows上最流行的Visual Basic
18、版本。</p><p><b> 第三章系統(tǒng)需求分析</b></p><p> 本章對系統(tǒng)采用需求的獲取方法進行描述,分析了系統(tǒng)各個模塊的功能性需求,針對系統(tǒng)中的需求描述和分析的問題,采用面向對象的思想和UML中的用例模型和分析模型對系統(tǒng)需求進行分析描述,并且得出系統(tǒng)中各部分的用例模型。</p><p> 3. 1需求獲取方法</p
19、><p> 需求階段包括需求獲取和需求分析兩個主要的過程。需求獲取的主要任務在于明晰用戶的業(yè)務流程,獲取用戶需求。與學院及培養(yǎng)辦人員組成項目組,共同負責需求的設計,系統(tǒng)采用下面需求獲取方法。</p><p> 圖3-1業(yè)務需求獲取方法</p><p> 業(yè)務流程的確定,鑒于項目組作為系統(tǒng)得開發(fā)者和使用者的雙重角色,熟悉需要開發(fā)的系統(tǒng)的主要業(yè)務流程。通過與業(yè)務人員的
20、交流協(xié)商確定業(yè)務基本流程。業(yè)務字段的獲取,由于系統(tǒng)需要考慮與學校已有的信息系統(tǒng)的數(shù)據(jù)兼容問題,針對系統(tǒng)中的業(yè)務字段主要從己有的系統(tǒng)中的字段獲取。另外,從學校所具備的特點來看需要得到的主要是各種類型的上報表格,所以也可以由己有的各種業(yè)務表格中獲取業(yè)務字段。業(yè)務需求確認,獲取以上業(yè)務信息后對需求進行描述,然后與學校業(yè)務人員進行交流并且確認。業(yè)務需求的挖掘,鑒于開發(fā)人員的特殊性,作為兩重角色的項目組可以從系統(tǒng)中發(fā)掘出業(yè)務人員不曾關注的需求。及
21、時溝通是指開發(fā)人員在開發(fā)過程中遇到的業(yè)務問題以及發(fā)掘出的新需求及時與學校業(yè)務人員溝通;同時,由于學校業(yè)務流程的更新性,在開發(fā)周期中業(yè)務流程發(fā)生變化也需要與開發(fā)人員及時溝通。</p><p> 3. 2業(yè)務需求的描述</p><p> 3. 2. 1總體業(yè)務流程</p><p> 課程管理系統(tǒng)是針對培養(yǎng)過程中,從培養(yǎng)方案的制定,到學生教學計劃安排再到學生選課和學
22、生成績管理等一系列連貫性的教學活動的管理。由系統(tǒng)的業(yè)務描述可以發(fā)現(xiàn),整個系統(tǒng)的業(yè)務是依據(jù)培養(yǎng)過程為主線,實現(xiàn)了整個系統(tǒng)的可跟蹤性和可維護性;通過各個單獨的模塊可以完成對某一業(yè)務需求的管理,另外系統(tǒng)各個模塊間又是可依賴的,比如說成績的錄入需要學生選課的結果、學生選課又與各個班級的排課結果密切相關。</p><p> 培養(yǎng)過程中各業(yè)務之間的流程如圖3-2;首先,由各個學院確定本學院各個專業(yè)的培養(yǎng)方案;然后,在具體每
23、個學期的培養(yǎng)過程中由學院確定該學期需要上的課程以及課程安排;學生依據(jù)教學計劃和本人的培養(yǎng)計劃選定自己需要上的課程;最后,本學期末通過考試由教師或者秘書錄入學生成績;通過學生各個學期直到畢業(yè)的各門課程成績最終生成軟件工程的培養(yǎng)計劃;另外通過學院教學計劃的安排結果可以計算出教師個人的工作量。</p><p><b> 3.2.2業(yè)務描述</b></p><p> 系統(tǒng)
24、的目的在于通過系統(tǒng)對培養(yǎng)過程中課程管理形成一個統(tǒng)一的管理,通過系統(tǒng)提高課程管理的效率,并可以很方便的提取各個學期各學院的課程基本情況如新申請的課程的統(tǒng)計、學生課程的安排情況、教師各個學期工作量的計算情況、學生每個學期的選課情況以及學生各個學期和最終教學成績、各個學院的培養(yǎng)方案等。</p><p> 通過對系統(tǒng)的分析得到系統(tǒng)業(yè)務需求主要包括課程基本維護、新課程申請、選課管理、排課管理以及培養(yǎng)方案和成績的管理,其主
25、要的描述如下。</p><p> 1、課程基本維護,主要是由學院秘書和院管理人員對課程進行維護,包括添加、刪除、修改、查詢課程。院管理少、員可以維護整個學校的課程,學院秘書維護各自學院的課程。</p><p> 2、新課程申請,每年各個學院都會增加很多新的課程,而增加的課程院不能夠很好的掌握和控制;該部分功能就是更好的掌握新課程的增加情況。教師網上提交開設新課程申請,經過院系和學校審核
26、后轉為正式課程。教師、院系、學??煞謩e查看本人、本院、本校的歷史申請記錄和申請結果。業(yè)務流程如圖3-3所示,每個學期開始首先由各個學院的教師填寫</p><p><b> 圖3-3新課程申請</b></p><p> 3、培養(yǎng)方案管理,由各院系向學校提交本院各專業(yè)的培養(yǎng)方案。主要包括課程要求和學分、以及對學生培養(yǎng)情況的要求,學校進行統(tǒng)一管理。并且能按照專業(yè)和學科一
27、級代碼對培養(yǎng)方案進行查詢,學生可以通過界面查看各個專業(yè)的培養(yǎng)方案。</p><p> 4、選課管理,各院系秘書設置選課的起止期限,學生根據(jù)學校教學任務的安排在網上選課,系統(tǒng)自動統(tǒng)計選課結果供秘書進行綜合查詢和打印,如每門課有多少人選,學生都選了哪些課等。</p><p> 5、成績管理,系統(tǒng)根據(jù)選課結果初始化成績單,由各院系秘書和任課教師網上在線錄入學生成績,秘書對成績進行統(tǒng)計和排名,
28、學生可查詢自己的成績;秘書和學生可以選擇打印學生的個人成績表。</p><p> 6、課程內容管理,課程內容管理主要包括課程靜態(tài)模板的制定和動態(tài)交互部分,靜態(tài)部分包括課程簡介、教學資源、教師師資等內容,動態(tài)交互部分包括網上答疑和作業(yè)管理兩部分。另外,還包括與系統(tǒng)其它部分的無縫鏈接,為學生的學習和瀏覽提供方便。</p><p><b> 3. 3需求分析</b>&l
29、t;/p><p> 應用軟件系統(tǒng),就其本質來說,是使用計算機對現(xiàn)實世界進行的數(shù)字化模擬。應用軟件的制造過程,按照UML的方法,就是建立這一系列模型的過程。系統(tǒng)需求階段主要包括需求獲取和需求分析兩個重要階段。需求獲取主要就是獲取用戶的業(yè)務需求,而需求分析就是將業(yè)務需求轉化為軟件需求的過程。在面向對象的軟件工程方法中,用例模型是系統(tǒng)需求獲取的有效手段,它定義系統(tǒng)用來做什么; 需求分析是從開發(fā)者的角度來描述問題,其建模過
30、程包括靜態(tài)模型和動態(tài)模型建立。下面通過成績管理系統(tǒng)建模的實例對需求獲取和需求分析階段的需求方法進行描述。</p><p> 3. 3. 1系統(tǒng)需求獲取</p><p> 在成績管理系統(tǒng)中,通過用例模型獲取系統(tǒng)的需求。用例模型由“角色”(Actor)和“用例”(UseCase)組成。在構建一個用例的時候,通常要做的第一件事情是識別角色,或者說,參與者。然后識別系統(tǒng)為參與者提供的服務,或者
31、說,參與者的行為,也就是用例。最后確定角色和用例之間的關系。確定有效用例的關鍵是,檢查用例是否包含了一個完整的功能。用例不能定的過細,不能把一個完整的功能的一個部分作為一個用例,也不能在一個用例中包含過多的功育旨。</p><p><b> 1、用例建模</b></p><p> 用例模型由用例圖和用例描述兩部分組成。用例圖描述系統(tǒng)中的角色和參與者提供的服務;用例
32、描述是從軟件系統(tǒng)角度對用例工作流程和工作參與者進行的一段規(guī)范的文字性描述。為了保證在用例建模過程中描述的一致性,在課程管理系統(tǒng)中采用RUP推薦的描述用例的完整結構。用例模型是在業(yè)務流程和描述的基礎上建立的,主要包括軟件系統(tǒng)實現(xiàn)的部分,對業(yè)務功能需求進行了描述。用例描述模板如表3-1所示;</p><p><b> 表3-1用例模板</b></p><p> 在用例
33、描述中,用例名稱用來書寫用例的名稱,使用形象的詞語對用例進行概括描述,一般采用動賓結構的詞組來為用例取名如添加成績:用例參與者說明了系統(tǒng)發(fā)出請求人;用例的前置條件聲明了用例啟動之前的系統(tǒng)必須滿足的條件,該條件由系統(tǒng)負責實施,并要求確保為真;用例的后置條件表示一個條件列表,如果其中包含條件,則這些條件將在用例成功完成以后得到滿足;用例基本事件流是指參與者在用例中所遵循的主邏輯路徑。因為它描述了各項工作都正常進行時用例的工作方式,通常稱其為
34、適當路徑(happy path)或主路徑(mainpath);用例擴展事件流是用例中很少使用的邏輯路徑,包括在變更工作方式、出現(xiàn)異常或發(fā)生錯誤的情況下所遵循的路徑;修改記錄是指當系統(tǒng)業(yè)務需求發(fā)生改變時,相應的用例也要進行修改;修改記錄用來記錄修改的內容。</p><p> 圖3-4成績管理用例圖</p><p> 如圖3-4,系統(tǒng)成績管理部分的用例圖,成績管理中主要包括秘書(教務員)、
35、教師、學生三種角色;主要用例有學生成績查詢、管理員錄入、修改成績、秘書初始化成績設置、成績匯總以及教師錄入成績等。</p><p> 系統(tǒng)中的用例圖及其用例描述是對系統(tǒng)中包括的主要功能進行描述,但是在整個功能運行的流程上不能夠很好的顯示和描述,對于跨角色的業(yè)務細節(jié)也不能夠清晰的描述。在課程管理系統(tǒng)需求的分析過程中,引入了UML中的活動圖對需求進行分析和描述。</p><p> 圖3-5
36、為成績錄入設置流程的活動圖。各院系秘書登陸系統(tǒng)后進入成績初始化設置界面,選擇具體的學年學期和班級,系統(tǒng)顯示該班級本學年學期的所有課程;秘書可依據(jù)實際情況選擇對某一門課程或全部課程進行初始化操作;同時選擇郵件提醒功能,提醒相應課程的教師進行成績錄入操作,系統(tǒng)返回郵件提醒結果。</p><p> 圖3-5成績設置活動圖</p><p> 2、系統(tǒng)中主要的用例模型</p>&l
37、t;p> 由需求分析方法可以得出系統(tǒng)中各主要部分的用例模型,主要包括選課管理、培養(yǎng)方案管理以及課程維護管理等。其描述分析如下。</p><p> 圖3-6為選課管理的用例圖,主要包括了學生和秘書兩個角色;其主要用例有學生選擇課程、查看選課結果,秘書設置選課時間、查詢選課結果等。</p><p> 圖3-6選課管理用例圖</p><p> 圖3-7為培養(yǎng)
38、方案管理的用例圖,主要包括學院秘書和院管理人員以及學生等三種角色。主要用例包括學院管理添加專業(yè)培養(yǎng)方案、修改和刪除專業(yè)培養(yǎng)方案;學校院管理人員審核各個專業(yè)的培養(yǎng)方案;學生通過專業(yè)或者是一級學科查詢培養(yǎng)方案。</p><p> 圖3-7培養(yǎng)方案用例圖</p><p> 其中,主要用例學院秘書添加培養(yǎng)方案的用例描述如表3-3。</p><p> 表3-3添加培養(yǎng)方
39、案用例描述</p><p> 圖3-8描述了系統(tǒng)中關于新課程申請審核、課程基本維護的主要用例。主要包括教師填寫、修改課程申請,查看個人課程審核結果;學院秘書查看教師審核,并且填寫學院審核意見、維護課程;學校院管理人員填寫各個學院教師申請的審核意見、為審核通過的課程賦予課程號、維護各個學院課程等用例。</p><p> 圖3-8課程維護管理用例圖</p><p>
40、 3. 3. 2系統(tǒng)分析模型</p><p> 在系統(tǒng)分析過程中,所關注的仍然是問題。但同用例模型不同的是,用例模型是從最終用戶的角度來看待問題,而分析模型是從開發(fā)者的角度來描述問題。用例模型的主要工作是描述現(xiàn)實世界的業(yè)務流程,而很少涉及系統(tǒng)的概念。分析,則是從系統(tǒng)的角度來來看待軟件應該為用戶提供的服務。</p><p><b> 1、靜態(tài)模型的建立</b>&l
41、t;/p><p> 分析建模通常是識別對象和提取類的過程??紤]著名的htvc模式需要識別實體、控制和邊界三種對象。按照MVC模式來為識別對象做指導,是非常好的做法。對象識別的結果,就是需要的靜態(tài)模型。首先識別出實體對象,這些對象通常是比較明顯的,例如系統(tǒng)中的角色,系統(tǒng)需要處理的資料等;有些實體對象需要分析后得到,例如,在本系統(tǒng)中,為了記錄學生成績等的信息,需要一個對象來專門記錄這一信息。然后識別為了完成系統(tǒng)業(yè)務邏輯
42、而需要的業(yè)務邏輯對象,以及同用戶進行交互的界面類,在MVC模式中,他們分別對應于控制類(Control)和邊界類(View)。在分析階段,這些對象通常都按照比較自然的方式來組織,例如,為了完成一個業(yè)務功能,通常需要一個控制類和一個邊界類,控制類執(zhí)行業(yè)務邏輯,邊界類同客戶進行交互。當然,這不是絕對的,在進行進一步深入的分析后,這些類可能會被分解和合并,同時需要對用例進行逐個分析。.下面以系統(tǒng)中初始化設置成績用例為例進行分析。</p&
43、gt;<p> 在這個用例中首先可以識別出一些直接的對象,包括秘書(Teacher),課程(Subject);分析會發(fā)現(xiàn)需要實體類StudentMark和實體類Mail,分別用來處理選課信息和郵件提醒;完成了實體對象的識別。同時需要一個控制類和一個界面類(工nit工nterface)來接受用戶的交互操作以及需要一個業(yè)務邏輯類(MarkManger)完成對數(shù)據(jù)庫操作。最后完成系統(tǒng)模型的建立。根據(jù)以上描述得出初始化用例的靜態(tài)
44、模型圖。</p><p><b> 圖3-9靜態(tài)模型</b></p><p> 在分析模型中還要識別出類的一些屬性和方法。為了避免過早的陷入細節(jié)當中,并且適應將來在設計類時的變化,在分析模型中,一般只是識別一些主要的屬性和方法。例如,Teacher類只需要Id和password,對于Subject類只需要課程Id和課程名稱Name等。</p><
45、;p><b> 2、動態(tài)模型的建立</b></p><p> 在面向對象的系統(tǒng)中,業(yè)務流程表現(xiàn)為對象之間的交互,利用分析得到的對象可以描述他們是怎樣進行交互和協(xié)作的。在UML中可以使用順序圖、活動圖或者狀態(tài)圖來建模這些靜態(tài)過程。在圖3-10成績設置的順序圖中,用成績設置的順序圖來說明需求分析的動態(tài)模型的建立。矩形框表示一個基本類,在矩形框內標有類的名稱。垂直虛線稱為類的生命線,代表
46、在各個類之間的交互作用中概念的生命期。在生命線上的窄矩形條被稱作激活,表示該對象正在執(zhí)行某個操作。激活矩形的長度表示計劃的持續(xù)時間,頂部表示動作的開始,底部表示動作的結束。</p><p> 圖3-10成績設置順序圖</p><p> 圖中清楚顯示了成績設置用例中各個靜態(tài)模型之間進行消息傳遞的順序。成績管理員選擇需要初始化的班級和學期,提交初始化請求到控制類,控制類獲取某門課程選課結果
47、后,傳遞選課結果到成績邏輯類對數(shù)據(jù)庫進行操作完成初始化過程并且返回成功信息。</p><p><b> 第四章系統(tǒng)設計</b></p><p> 本章對系統(tǒng)的功能框架以及各個功能模塊之間的關系進行描述;使用面向對象的思想對系統(tǒng)的設計方法進行分析,設計了系統(tǒng)中的相關類和數(shù)據(jù)庫模型;著重分析了成績單打印功能中的數(shù)據(jù)庫視圖設計以及培養(yǎng)方案的數(shù)據(jù)庫設計,排課管理的相關設計
48、將在第6章中給出詳細描述,本章不再祥述。</p><p> 4. 1系統(tǒng)功能框架</p><p> 在設計系統(tǒng)的功能架構時,按照軟件工程中子系統(tǒng)劃分的思想,盡量實現(xiàn)各個子系統(tǒng)之間的獨立性以及減少系統(tǒng)間的依賴性。子系統(tǒng)的劃分采用了功能劃分的方法,其具體描述如下。</p><p> 4.1.1功能框架總述</p><p> 課程管理系統(tǒng)是
49、整個學院信息化系統(tǒng)的一部分,同時包括基本資料維護、權限管理系統(tǒng)和新聞系統(tǒng)等輔助功能模塊。其基本信息庫功能模塊如圖4-l;</p><p><b> 圖4-1基本信息庫</b></p><p> 基本信息庫主要包括學校基本資源及教學單位信息等功能模塊。其中,院系管理是指學校各個院、系、所的添加、刪除等基本維護;班級管理是指某個系所轄下的班級的管理維護;學期管理是指學
50、生各個學年學期的基本維護。數(shù)據(jù)字典管理是指,對于系統(tǒng)中經常使用但平時數(shù)據(jù)變化不頻繁的一類數(shù)據(jù),作為數(shù)據(jù)字,典的一個數(shù)據(jù)項進行存儲,并且可以對該數(shù)據(jù)項進行維護;這樣即滿足了數(shù)據(jù)的動態(tài)變化又減少了系統(tǒng)維護量。</p><p> 為了實現(xiàn)系統(tǒng)的網絡粼數(shù)據(jù)安全問題,系統(tǒng)中采用基于角色的訪問控制(RBAC)思想,實現(xiàn)了系統(tǒng)的權限管理系統(tǒng)。在基于角色訪問控制(role-based;access control, RBAC
51、)中,權限和角色相關,用戶被當作相應角色的成員而獲得角色的權限,簡化了權限的管理。角色針對組織中的各種功能創(chuàng)建,用戶依據(jù)責任和資歷被指派角色,并且可以容易地完成角色的轉換。用戶對信息的訪問在指派角色的基礎上被管制.RBAC的策略基于角色,可以使用映射組織結構的方式來闡述安全策略?;诮巧脑L問控制允許管理員根據(jù)組織結構來指定訪問控制 , RBAC通過創(chuàng)建稱為角色( role )的新對象來達到此目的??梢詾橛脩舴峙蓤?zhí)行某種工作職能的角色,
52、然而與組不同的是,角色將授權權限定義在資源的某些局部上。在RBAC模型中,管理員使用角色來管理和分派權限。</p><p> 圖4-2課程管理系統(tǒng)功能框架</p><p> 如圖4-2,課程管理系統(tǒng)主要描述了從學生入學到離校期間培養(yǎng)過程中的課程管理。按照培養(yǎng)過程,系統(tǒng)主要分為培養(yǎng)方案管理、新課程申請管理、課程基術維護、課程內容管理、排課管理、選課管理和成績管理等功能模塊。</p&
53、gt;<p> 課程基本維護模塊作為各個功能模塊的基礎,包括各個學院課程的基本維護。新課程申請模塊包括教師提交新課程申請、學院審核、學院審核以及跟蹤新課程申請情況等功能、培養(yǎng)方案模塊包括學院秘書提交培養(yǎng)方案、學院審核發(fā)布培養(yǎng)方案以及對培養(yǎng)方案查詢等功能。排課管理模塊包括教學任務設置、教師申請、管理員交互式排課以及課程表查詢等功能。選課管理模塊主要包括管理員時間設置、學生網上選課、選課查詢等功能。成績管理模塊包括成績表的初
54、始化、學生成績錄入、學生成績補錄、學生成績查詢以及學生成績和培養(yǎng)計劃報表等功能。課程內容管理主要包括課程內容模板設計、交流平臺的建立、內容管理的掛接等功能。</p><p> 2、功能模塊間的流程</p><p> 由系統(tǒng)的業(yè)務描述可以發(fā)現(xiàn),整個系統(tǒng)的業(yè)務以培養(yǎng)過程為主線,包括了培養(yǎng)過程中課程管理各環(huán)節(jié)。通過各單獨的模塊可以完成對某一環(huán)節(jié)的管理,另外系統(tǒng)各個模塊間又是可依賴的,比如成績
55、錄入需要學生選課的結果、學生選課又需要各個班級的開課結果作為前提。這樣,為了保持各個模塊間的低禍合性,系統(tǒng)每一模塊又增加了秘書手工維護功能,而在學生成績單生成過程中增加了學生手動選擇需要打印成績的功能。</p><p> 各功能模塊之間的流程關系如圖4-3。秘書維護本學院的所有課程,當有教師申請新的課程的時候進行審核,通過后添加到學院課程中去。學院依照實際情況指定本學院各個專業(yè)的培養(yǎng)方案,其中包括課程信息。每個
56、學期開學前,秘書按照教學計劃進行排課,然后學生依照培養(yǎng)方案選定課程,選課后通過成績管理最終生成學生在校期間的成績單。</p><p><b> 圖4-3模塊流程圖</b></p><p><b> 4. 2設計類建模</b></p><p> 在系統(tǒng)的設計階段,按照面向對象的方法對系統(tǒng)詳細描述并且提供具體可行的解決方
57、案。設計同分析所使用的工具一樣,也需要建立靜態(tài)和動態(tài)的模型,并且使用類圖、順序圖、協(xié)作圖、活動圖、狀態(tài)圖等來表示。設計類圖是對靜態(tài)模型的進一步細化的過程,在課程管理系統(tǒng)中是指在Struts框架Mvc模式的指導下對類進行細化并且按照struts框架的結構來分解和描述整個靜態(tài)模型。</p><p> 從靜態(tài)模型得到設計類圖的過程就是設計類建模的過程,主要流程包括依據(jù)MVC模式把靜態(tài)模型的類進行分離,然后再根據(jù)系統(tǒng)中
58、需要的方法和屬性給各個類添加屬性和方法,最終為各個類之間添加依賴和關聯(lián)關系。</p><p> 在MVC設計模式中,有一個宗旨就是不能將功能性的代碼和顯示性的代碼混合在一起,否則再更改頁面或者擴展新功能時會增加修改難度。首先,系統(tǒng)中需要把表現(xiàn)的細分為視圖(View)、控制器(Controller)和業(yè)務對象模型(BusinessObject Model)。按照MVC設計模式把InterFace類定義為視圖層,把
59、初始化類Initial細分為控制器和業(yè)務對象模型。按照Struts框架的各部分結構,視圖類就是JsP頁面并且通過ActionForm類InitialForm與Action之間交換數(shù)據(jù)。Initial初始化類定義為控制器InitialAction和MarkManager。然后,需要為每個靜態(tài)模型中的屬性添加到實體類中,為每個類添加方法。在實體類中除了創(chuàng)建方法和屬性的存取方法,其余實體相關的添加、刪除以及查詢方法我們把它封裝在系統(tǒng)管理類中也
60、就是MarkManager中。最后,在各個類之間添加關聯(lián)和依賴關系。最終的初始化成績設計類模型如圖4-40</p><p><b> 圖4-4</b></p><p> 各個類之間的關系為由View配置文件struts-config.xml初始化成績的設計類模型層的JsP頁面發(fā)送請求,通過服務器和Struts找到控制器類InitialAction。然后,調用Mar
61、kManager中的業(yè)務邏輯方法InitialMethod最后得到結果。通過系統(tǒng)的用例建模和用例分析以及設計類過程,最終形成系統(tǒng)的核心業(yè)務邏輯類圖。如圖4-6}系統(tǒng)中的核心邏輯處理集中在SubjectManager, ElectManager, MarkManager,CultivateMana}er中。</p><p><b> 4. 3數(shù)據(jù)庫建模</b></p><
62、p> 4. 3. 1數(shù)據(jù)庫建模步驟</p><p> 數(shù)據(jù)庫建模主要包括兩個過程:第一步是在細化類圖中尋找需要持久化的類,第二步將需要持久化的類的邏輯模型進行整合轉化為物理‘模型并完成數(shù)據(jù)庫建模。在系統(tǒng)開發(fā)過程中,通過分析各部分功能模塊并且從中獲取需要的持久化類,然后采用PowerDesigner工具把系統(tǒng)的邏輯模型轉化為數(shù)據(jù)庫物理模型并完成整個系統(tǒng)的數(shù)據(jù)庫設計。</p><p>
63、;<b> 1、需要持久化的類</b></p><p> 在系統(tǒng)開發(fā)過程中主要把課程管理相關模塊中的持久化類抽取出來。在成績初始化過程中持久化類主要包括成績類Mark、課程類Subjecl:、選課類Elective 。通過相同的方法,抽取系統(tǒng)中其余模塊的持久化類,主要包括培養(yǎng)類、成績類、課程類、選課類、新課程申請類等。</p><p> 2、建立的數(shù)據(jù)庫模型&l
64、t;/p><p> 依據(jù)抽取出來的持久化類對數(shù)據(jù)庫進行建模,需要對持久化的類進行持久化。建立模型的過程就是將邏輯模型轉化成物理模型并最終完成數(shù)據(jù)庫建模的過程。持久化是指把暫時性的對象永久保留下來并把對象轉換成一定格式的數(shù)據(jù),存放到磁盤或其他媒介。正如一般的持久數(shù)據(jù)一樣,持久對象由數(shù)據(jù)庫管理系統(tǒng)負責管理。一般采用“映射法”將對象存到關系數(shù)據(jù)庫。普遍原則是一個類映射為一個表格,表格的列或字段對應類的屬性,而行記錄則對應
65、類的實例。系統(tǒng)開發(fā)過程中,選擇PowerDesigner數(shù)據(jù)庫建模工具對數(shù)據(jù)庫進行建模;最終生成的課程相關的主要的數(shù)據(jù)庫模型如圖4-7 。</p><p> 圖4-6數(shù)據(jù)庫物理模型圖</p><p> 表4-1是對數(shù)據(jù)庫主要表格及其具體內容的說明。系統(tǒng)中主要包括課程主表、學生成績表、選課表、排課相關表格以及培養(yǎng)方案相關的培養(yǎng)方案和培養(yǎng)方案課程表。</p><p>
66、; 表4-1課程相關表格及說明</p><p> 除了課程相關的主要表外,系統(tǒng)還牽涉到系所、班級、學年學期、學生、教師、教室場所、權限維護等相關基本信息的數(shù)據(jù)庫設計,本文對其他的表的細節(jié)不再詳述。</p><p> 4.3.2成績報表的視圖設計</p><p> 學生成績相關的信息主要存儲在成績表中。在設計數(shù)據(jù)庫表格的時候,為了保持數(shù)據(jù)庫設計的3NF范式,與
67、其余表格相關的字段主要以外鍵關聯(lián)。在成績報表打印的時候,需要顯示相關實體的具體信息。由于成績表中需要關聯(lián)的字段過多,如果利用數(shù)據(jù)庫的聯(lián)合查詢勢必增加系統(tǒng)的復雜性和不可讀性。所以在設計成績單報表的數(shù)據(jù)庫時,引入了相關的兩個視圖。</p><p> 成績報表中具體的字段包括學生基本信息和學生成績信息等。學生基本信息如學號、姓名、性別、入學時間、學生專業(yè)、導師信息以及研究方向;學生的成績基本信息包括課程名稱、學分、備
68、注、學生已修總學分、實踐學分等。通過分析,在系統(tǒng)中設計了學生信息視圖MarkSheetBaseInfoView和學生成績視圖BASE_ CJXX_VIEWo</p><p> 如表4-2所示,視圖BASE_ CJXX_V工EW主要關聯(lián)以下九個表格和視圖,其中以成績表為主表然后從其余各個表格中獲取課程名稱、課程學分、課程類別、考核方式、指導教師等信息。</p><p> 表4-2成績信息
69、視圖說明</p><p> 如表4-3所示,視圖MarkSheetBaseInfoView是學生成績單需要的學生基本信息視圖,主要包括五個表格。其中以學生基本信息為主表,從學生教師表中獲取學生的指導教師信息,從其余表中獲取學生所屬專業(yè)等信息。</p><p> 表4-3學生成績單基本信息視圖說明</p><p> 4.3.3培養(yǎng)方案數(shù)據(jù)庫設計</p>
70、;<p> 培養(yǎng)方案管理包括網上提交培養(yǎng)方案、網上審核方案以及網上查詢、查看培養(yǎng)方案。培養(yǎng)方案主要包括三種類型,而且不同的類型其培養(yǎng)方案又包括不同的內容項。另外,培養(yǎng)方案中又包括具體的培養(yǎng)方案課程和文獻要求信息。</p><p> 通過系統(tǒng)數(shù)據(jù)庫建模過程對培養(yǎng)方案的數(shù)據(jù)庫進行分析建模。該部分的數(shù)據(jù)庫表格包括培養(yǎng)方案表、培養(yǎng)方案審核表以及培養(yǎng)方案課程表,其中培養(yǎng)方案表為系統(tǒng)主表,培養(yǎng)方案課程表為輔
71、表??紤]到培養(yǎng)方案課程表中包括課程的一些基本信息,培養(yǎng)方案課程表中由培養(yǎng)方案ID和課程ID作為聯(lián)合主鍵;培養(yǎng)方案審核表中存儲培養(yǎng)方案的審核信息和審核跟蹤情況。</p><p> 培養(yǎng)方案表中包括了三種類型培養(yǎng)方案所包括的所有內容,通過方案類別進行區(qū)分。表格中主要的字段如學位論文、參考文獻等由于字段過長,在數(shù)據(jù)庫中采用了大數(shù)據(jù)字段Text進行存儲。如表4-4所示,</p><p><
72、b> 表4-4培養(yǎng)方案表</b></p><p> 由培養(yǎng)方案表可以發(fā)現(xiàn),培養(yǎng)方案包括院系、專業(yè)以及類型三個與其它表信息相關的信息,為了方便對培養(yǎng)方案的讀取以及處理學生專業(yè)、院系、學生類型相關信息設計了culti_ xszy_view視圖。如表4-5,列出了視圖所關聯(lián)的所有表格,主要包括培養(yǎng)方案以及專業(yè)、院系信息。從視圖中可以獲取已經提交的所有培養(yǎng)方案的所屬專業(yè)、院系以及學生類型信息,從而簡
73、化了培養(yǎng)方案顯示部分的數(shù)據(jù)庫處理。</p><p> 表4-5培養(yǎng)專業(yè)視圖表說明</p><p> 由于基于周模板的交互排課的設計比較復雜,與之相關的類和數(shù)據(jù)庫的設計這里不再給出,排課管理的設計與實現(xiàn)將在第6章中給出詳細描述。</p><p><b> 第五章系統(tǒng)實現(xiàn)</b></p><p> 本章闡述了培養(yǎng)方案
74、管理系統(tǒng)的實現(xiàn)并且對系統(tǒng)實現(xiàn)中的主要問題進行了分析并且提出了解決方案。實現(xiàn)過程中的主要問題包括XML配置文件問題、成績報表的實現(xiàn)以及課程內容管理的人性化掛接問題。</p><p> 5. 1課程管理系統(tǒng)的實現(xiàn)</p><p> 課程管理系統(tǒng)是為了滿足校、院兩級建制的業(yè)務需要而設計和實現(xiàn)的。課程管理中的培養(yǎng)方案和新課程申請子系統(tǒng)是依據(jù)學院的業(yè)務需求進行開發(fā)的;其余子系統(tǒng)包括課程維護、選課
75、管理、排課管理以及成績管理是依據(jù)軟件學院的實際情況進行開發(fā)的。后者作為學院綜合系統(tǒng)中的一部分與學院其它部分整合在一起,采用了學院系統(tǒng)的統(tǒng)一登陸和管理;前者是面向全校培養(yǎng)管理的系統(tǒng),采用了獨立的界面設計風格以及獨立的登陸界面。</p><p><b> 1.系統(tǒng)軟硬件環(huán)境</b></p><p> 課程管理系統(tǒng)目前已經在學院部署使用。系統(tǒng)部署機器操作系統(tǒng)采用Wind
76、ows操作系統(tǒng),Web服務器采用開源的Tomcat服務器,數(shù)據(jù)庫服務器采用SqlServer2000。數(shù)據(jù)庫連接采用了Tomcat服務器自帶的數(shù)據(jù)庫連接池。</p><p><b> 2、系統(tǒng)實現(xiàn)功能</b></p><p> 課程管理系統(tǒng)實現(xiàn)了課程維護、新課程申請、選課管理、排課管理、成績管理、培養(yǎng)方案管理功能。課程維護功能包括課程的增加、刪除、修改和院系課程查
77、詢;新課程申請功能包括教師申請、學院審核、院審核;選課管理包括時間設置、學生網上選課、管理員選課查詢;排課管理包括教學任務設置、交互式排課、各種課表的生成查詢、教師工作量計算;成績管理包括成績初始化、成績錄入、成績查詢、成績表打印、培養(yǎng)計劃打印;培養(yǎng)方案管理包括培養(yǎng)方案維護、培養(yǎng)方案審核、培養(yǎng)方案發(fā)布等功能。</p><p> 軟件學院課程管理登陸入口為軟件學院主頁,系統(tǒng)中的各類用戶包括學生、教師等都可以從頁面
78、登陸。系統(tǒng)資源的分配采用了基于資源角色的權限管理系統(tǒng),不同角色的用戶登錄后看到不同的資源。在系統(tǒng)中,課程管理員是作為秘書角色分配的權限,除了課程維護、選課管理以及成績管理的權限外還包括教務通知發(fā)布、論文工作管理等權限。課程管理員的界面如圖5-1所示。</p><p><b> 略</b></p><p> 圖5-1學院課程管理界面</p><p
79、> 5. 2培養(yǎng)方案管理的實現(xiàn)</p><p> 培養(yǎng)方案管理作為系統(tǒng)中的重要部分,主要是由系統(tǒng)中的課程維護、新課程申請以及培養(yǎng)方案的網上提交等各部分組合而成。系統(tǒng)中主要的功能為培養(yǎng)方案的網上提交、審核以及網上展示等功能。</p><p><b> 1、系統(tǒng)的界面設計</b></p><p> 由于該部分是面向全校管理的系統(tǒng),因此
80、設計了獨立的用戶界面風格以符合院風格。如圖5-1,為培養(yǎng)管理系統(tǒng)的主界面。</p><p><b> 略</b></p><p> 圖5-2培養(yǎng)管理主界面</p><p><b> 2、培養(yǎng)方案的提交</b></p><p> 院系管理員主要包括基本信息和課程信息的添加。系統(tǒng)依據(jù)管理員的身份
81、確定管理員所屬院系并且在系統(tǒng)界面下列不同學生類型所對應的專業(yè);然后由管理員選擇專業(yè)和學生類型并添加相應的培養(yǎng)方案以及培養(yǎng)方案對應的課程。院系添加并且提交后,由院對培養(yǎng)方案進行審核、修改,通過后在網上發(fā)布。</p><p><b> 3、培養(yǎng)方案的展示</b></p><p> 培養(yǎng)方案提交審核通過后,需要通過網頁的形式展示給學生和教師。學生可以依據(jù)本專業(yè)的培養(yǎng)方案
82、制定個人的培養(yǎng)計劃。為了能夠為學生提供便捷的瀏覽方式,系統(tǒng)把學校培養(yǎng)方案按照院系及專業(yè)劃分顯示。如圖5-2所示,系統(tǒng)從設計的視圖culti_ xszy view中讀取數(shù)據(jù),在頁面上按照院系和專業(yè)進行顯示。用戶進入該頁面后只需要點擊相應的專業(yè)名就可以查看該專業(yè)的培養(yǎng)方案。</p><p><b> 略</b></p><p> 圖5-3查看培養(yǎng)方案</p>
83、;<p> 如圖5-3所示,某專業(yè)某學生類型的培養(yǎng)方案主要包括培養(yǎng)目標、研究方向以及學習年限等內容。另外,培養(yǎng)方案還包括具體課程要求和文獻要求頁面,由于兩者的顯示相對獨立所以在附頁中進行顯示。課程要求部分主要把課程分為選修課、必修課以及補修課,系統(tǒng)從培養(yǎng)方案課程要求表中讀取某一培養(yǎng)方案的課程要求并且在課程要求頁面上顯示。</p><p><b> 略</b></p&g
84、t;<p><b> 圖5-4培養(yǎng)方案圖</b></p><p> 由第四章的數(shù)據(jù)庫設計可知,系統(tǒng)培養(yǎng)方案中的重要字段需要從數(shù)據(jù)庫中讀取并且在WEB頁面上顯示。數(shù)據(jù)庫字段中存儲的字符串中的回車、換行、空格等與WEB頁面的字符不一致。如果對字符串不進行處理直接顯示將會導致字符串不顯示空格,也不進行換行。在系統(tǒng)中我們引入了DataFormat類中的格式轉換方法toHtml來實現(xiàn)
85、兩種字符之間的轉化。具體實現(xiàn)代碼如下:</p><p> public static String toHtml(String s)</p><p><b> {</b></p><p> if (s是null) return s;</p><p> 調用strReplace,s中的””用” ”
86、代替;</p><p> 調用strReplace,s中的”\n”用”<br>”代替:</p><p> 調用strReplace,s中的”\”用”"”代替:</p><p><b> return s:</b></p><p> public static String strRe
87、place(String sBody,String sFrom,String sTo)</p><p> int i, j, k, 1;</p><p> if(sBody是null或者sBody是空串)</p><p><b> return“”;</b></p><p><b> i=0:</
88、b></p><p> j=sFrom的長度:</p><p><b> k=sTo的長度;</b></p><p> 創(chuàng)建StringBuffer的實例buf,大小是sBody的長度:</p><p> 定義布爾值bFirst初始化為true;</p><p><b>
89、 1=i;</b></p><p> while(sBody中有與sFrom匹配的字符子串)</p><p><b> {</b></p><p> i=從第i個字符開始,找到sBody中與sForm匹配的字符串第一個字符的位置;</p><p> 取出sBody中從1到i的字符子串,加到buf中;&
90、lt;/p><p> 在buf中加入需要替換的字符串sTo;</p><p><b> i+=J</b></p><p><b> 1=i:</b></p><p> return buf轉為的字符串類型;</p><p> 5. 3 XML配置部署文件的實現(xiàn)</
91、p><p> 在系統(tǒng)中有很多系統(tǒng)的配置和部署參數(shù)需要不時的修改,比如說選課系統(tǒng)中的選課時間設置參數(shù)、發(fā)送郵件的信箱地址參數(shù)等都需要進行設置而不能在系統(tǒng)中定死。在系統(tǒng)中,以上的配置文件主要使用XML進行存儲。 XML稱為可擴充標記語一言,是類似于HTML定義文檔標記語言的一個框架。XML以結構嚴謹著稱,因此用來保存數(shù)據(jù)是非常合適的,這樣在數(shù)據(jù)庫之外,又多了一個持久化保存數(shù)據(jù)的方式。</p><p&
92、gt;<b> 1, XML的選擇</b></p><p> 系統(tǒng)中提到的配置和部署文件在這之前主要使用properties文件來保存。該類配置文件使用方法簡單直接,但是只適合配置文件簡單的情況。在配置文件復雜的情況下就不適合了。相對而言,用XML文檔存儲監(jiān)控信息,具有下面的這些優(yōu)點:</p><p> 1)具有良好的可讀性</p><p&g
93、t; XML文檔的結構決定了用這種格式存儲監(jiān)控信息,具有良好的可讀性。用</p><p> XML格式存儲監(jiān)控信息,結構清晰,含義明確,易于理解。</p><p><b> 2)易于信息的解析</b></p><p> 現(xiàn)在己經有了成熟的XML文檔的解析工具,如SAX, DOM, JDOM等。利用這些工具,能夠很方便的對XML文檔形式的
94、配置信息進行解析并且獲得相應的結構和含義,對于復雜的信息解析比較容易。</p><p> 2, XML的配置文件</p><p> 依據(jù)系統(tǒng)的需要,把系統(tǒng)中不同模塊的配置和部署參數(shù)存在XML文件中,然后放在web應用系統(tǒng)目錄下面進行存儲,系統(tǒng)的設置文件設計如下。</p><p> </moduleList></p><p>
95、 XML配置文件中各部分配置信息依照樹型結構存儲。在以上配置文件中,<moduleList>表示總的模塊列表,<subject>代表系統(tǒng)中的課程管理模塊,下一級目錄代表系統(tǒng)中的某個功能,再下一級表示該功能下的某一個屬性。通過以上XML文件存儲系統(tǒng)中的配置參數(shù),使得系統(tǒng)的配置文件簡單明了。</p><p> 3, XML的操作實現(xiàn)</p><p> 通過以上XM
96、L文件對數(shù)據(jù)進行存儲,使復雜的配置問題得以解決。分析讀取XML數(shù)據(jù)有很多工具,如DOM和SAX。這兩種是標準的XML分析器,可以使用任何語言來實現(xiàn)。DOM分析XML數(shù)據(jù)時,是將整個文檔一下子讀入內存,如果文檔很大,性能就發(fā)生影響;而SAX則是動態(tài)的對每一行進行分析,無需全部讀入,因此在解析大文檔時速度比較快。但是,這兩種分析方法都是圍繞XML樹形結構展開的。在編制這兩種分析器時,會涉及到大量的XML概念的API,需要一定的基礎知識,使用
97、起來有一定難度。</p><p> 系統(tǒng)采用了JDOM對XML文件進行解析,JDOM封裝了DOM/SAX的具體使用技術,在分析速度方面比DOM要快但比SAX要慢。但在配置文件分析上,分析速度不是重要的,因此可以使用lazy initialization。它類似于緩存機制,在第一次讀取后就保存到內存,以后每次直接從內存讀取。在系統(tǒng)中,其解析工作主要是由XMLOperation類來完成的。從下面代碼中可以發(fā)現(xiàn),通過
98、以上方法對XML文件讀寫非常方便。首先通過loadProperties()方法轉入XML文件,然后使用properties.getProperty(name)就可以獲得name的配置值。通過properties. setProperty(name, value)一句就可以將name和其值value保存到XML文件中,非常類似與HashTable的讀取和存入。</p><p> XMLProperties是JDO
99、M的一個屬性文件輔助包,它主要是對屬性名進行分解和合成。如上面配置文件中的數(shù)據(jù)項planScore的值是28,在系統(tǒng)中使用properties. getProperty( "mark. planScore")得到數(shù)據(jù)項的值。注意到,這里的key的組合是mark.planScore,這種特定寫法是XMLProperties可以支持的。在對XML文件保存細節(jié)中,由XMLProperties將這種屬性名稱寫法具體轉化成XM
100、L文檔操作。具體內部代碼如下,代碼首先從緩存中獲取XML文件,然后把mark.planScore轉化為String數(shù)組,并且通過propName數(shù)組循環(huán)、遍歷樹形結構層次,尋找出對應屬性。</p><p> 5. 4成績表的實現(xiàn)</p><p> 通過上一節(jié)成績單視圖的數(shù)據(jù)庫建模,系統(tǒng)可以獲取成績單需要的基本數(shù)據(jù)。系統(tǒng)的結構是基于MVC設計模式,主要分為數(shù)據(jù)展示的View層、邏輯控制的
101、Controller控制器和后臺邏輯數(shù)據(jù)獲取的Model層。通過NfVC設計模式的實現(xiàn),當成績表單的樣式發(fā)生變化而系統(tǒng)需要顯示的數(shù)據(jù)不發(fā)生變化時,系統(tǒng)只需要改變系統(tǒng)的前臺顯示也就是View層,減少了系統(tǒng)的維護量。在系統(tǒng)中,數(shù)據(jù)報表的顯示和生成采用了開源的iReport和jasperreport結合的B/S報表設計工具。后臺數(shù)據(jù)的獲取是由具體的Action調用業(yè)務邏輯類并且對成績單的兩個邏輯視圖進行操作獲取。</p><
102、;p><b> 3、業(yè)務邏輯的處理</b></p><p> 成績報表主要內容包括學生基本信息部分、學生成績列表部分、學生學分情況和畢業(yè)年級等部分。學生基本信息的獲取主要通過查詢視圖MarkSheetBaseInfoView獲得:學生成績列表部分的獲取主要是通過查詢學生成績基本信息視圖BASS_ CJXX一IEW獲得;學生的總學分也通過Sql語句查詢視圖BASE_ CJXX_ VI
103、EW獲取;畢業(yè)年級以及總學分、畢業(yè)實踐學分等信息主要存放在以上提到的XML配置文件中,系統(tǒng)通過JDOM解析XML文件獲取。</p><p><b> 4、報表生成的實現(xiàn)</b></p><p> 數(shù)據(jù)報表的生成系統(tǒng)中使用了開源項目jasperreport以及jasperreport的報表設計器iReport完成。通過以上工具可以很快完成成績報表的設計工作,并且能夠
104、達到以上成績單報表的表現(xiàn)效果。</p><p><b> 1>報表生成原理</b></p><p> 系統(tǒng)中采用的報表生成系統(tǒng)主要包括jasperreport和iReport。其中,jasperreport作為Web報表服務器引擎用來在Web服務器端解析報表內容。該引擎通過接受、解析應用系統(tǒng)傳遞來的控制參數(shù)來挖掘并分析處理數(shù)據(jù)源數(shù)據(jù),從而形成完整的Web報表
105、包傳遞給瀏覽端。iReport作為jasperreport的報表設計器,通過可視化界面對Web報表主體進行設計,包括Web報表版面的設計、數(shù)據(jù)源定義、數(shù)據(jù)重組(過濾、計算等)的函數(shù)設計、Web報表被引用參數(shù)的定義等。通過報表設計器iReport生成基于服務器引擎指定規(guī)則的.jasper文件,它實際上是一個特殊形式的XML;文件。Jasperreport作為Web報表服務器引擎,通過接受應用程序傳遞的參數(shù)并且解析jasper文件,然后進行
106、相應處理后生成報表。</p><p><b> 2>報表生成步驟</b></p><p> 報表的生成步驟包括報表模板的生成和應用程序的編寫。報表模板的生成是通過可視化工具iReport對報表的頁面布局、數(shù)據(jù)源和顯示數(shù)據(jù)項進行定義描述,然后運行后生成.jasper的模板文件。應用程序的編寫,在系統(tǒng)中主要是編寫成績單生成的」sp文件。成績表數(shù)據(jù)通過業(yè)務邏輯控制
107、器。reatMarkSheetAction類調用后臺業(yè)務數(shù)據(jù)獲取方法取到數(shù)據(jù),然后將數(shù)據(jù)存儲到基本類StudentMark中。然后傳到createSheet.jsp中,jsp頁面把jasper文件需要的基本參數(shù)傳到resultCard.jasper模板后通過jasperreport報表服務器引擎解析處理后生成報表。如圖5-4為最終生成的報表格式。</p><p><b> 略</b><
108、;/p><p> 圖5-5學生成績報表圖</p><p><b> 3>報表的部署</b></p><p> 通過上面的分析可知報表的部署主要包括服務器引擎和生成的*. j asper文件在Web服務器端的部署。服務器引擎的部署十分簡單,只需要把相應得.jar文件放置到系統(tǒng)所在應用的\\WEB-INF\lib文件夾下面然后把*.jasp
109、er文件放置到相應Web應用的reports文件夾下。</p><p> 3、可選擇式打印的實現(xiàn)</p><p> 由數(shù)據(jù)庫系統(tǒng)中的視圖獲得的數(shù)據(jù)包括了學生所有課程的成績。如果不進行進一步處理,那么生成的個人成績單就包括了所有課程的成績??墒擒浖W院的實際情況是學生可以在個人成績中選擇達到要求學分的成績,然后組成個人成績單,必修課成績除外。為了解決以上問題,系統(tǒng)中提供了可選擇性打印的功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文---vb學生管理系統(tǒng)
- 畢業(yè)論文---vb文檔管理系統(tǒng)
- 畢業(yè)論文----vb倉庫管理系統(tǒng)論文
- [vb畢設]畢業(yè)論文管理系統(tǒng)
- vb077畢業(yè)論文管理系統(tǒng)
- 【下載】vb學生畢業(yè)論文管理系統(tǒng)
- vb077畢業(yè)論文管理系統(tǒng)
- vb書店管理系統(tǒng)畢業(yè)論文--書店管理系統(tǒng)
- [vb畢設]vb本科畢業(yè)論文-工資管理系統(tǒng)畢業(yè)論文+源碼
- 基于vb圖書管理系統(tǒng)畢業(yè)論文
- 基于vb圖書管理系統(tǒng)畢業(yè)論文
- 基于vb圖書管理系統(tǒng)畢業(yè)論文
- 基于vb圖書管理系統(tǒng)畢業(yè)論文
- vb企業(yè)人事管理系統(tǒng)畢業(yè)論文
- vb學生信息管理系統(tǒng)a畢業(yè)論文
- vb藥房管理系統(tǒng)設計畢業(yè)論文
- [vb畢設]vb人事管理系統(tǒng)(vb畢設成品)畢業(yè)論文
- 畢業(yè)論文----vb+access公司管理系統(tǒng)設計
- vb+sql畢業(yè)論文----圖書管理系統(tǒng)
- 畢業(yè)論文-----vb+access公司管理系統(tǒng)設計
評論
0/150
提交評論