JAVA課程管理系統(tǒng)的設(shè)計(jì)與測試_第1頁
JAVA課程管理系統(tǒng)的設(shè)計(jì)與測試_第2頁
JAVA課程管理系統(tǒng)的設(shè)計(jì)與測試_第3頁
JAVA課程管理系統(tǒng)的設(shè)計(jì)與測試_第4頁
JAVA課程管理系統(tǒng)的設(shè)計(jì)與測試_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、java課程管理系統(tǒng)設(shè)計(jì)與測試摘 要高校學(xué)生課程管理工作是高等教育中的一個極為重要的環(huán)節(jié),是院校學(xué)生管理的基礎(chǔ)。面對種類繁多的數(shù)據(jù)和報(bào)表,手工處理方式已經(jīng)很難跟上現(xiàn)代化管理的步伐,傳統(tǒng)的文件管理方式進(jìn)行成績管理,效率很低,耗時(shí)費(fèi)力,容易出錯,安全性也存在問題。特別是在查詢上,由于文件過多,帶來很多不便。隨著計(jì)算機(jī)及通訊技術(shù)的飛速發(fā)展,高等教育對教務(wù)管理工作提出了更高的要求。盡快改變傳統(tǒng)的管理模式,運(yùn)用現(xiàn)代化手段進(jìn)行科學(xué)管理。本設(shè)計(jì)研究的是基于j2ee的高校課程管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。本系統(tǒng)是基于j2ee開發(fā)的成績管理系統(tǒng),彌補(bǔ)了人工管理的不足,提高了一定的效率。主要功能包括管理員對教師、學(xué)生。課

2、程的管理,教師提交開課申請、查看選課情況、錄入成績。學(xué)生查詢相關(guān)的課程信息、選課、退課、查看課表。該系統(tǒng)為教務(wù)處人員提供了強(qiáng)大的課程管理功能,為教師提供了對平時(shí)成績和期末成績方便的管理,為學(xué)生提供了一個方便快捷的查詢功能。本設(shè)計(jì)的開發(fā)工具使用myeclipse,數(shù)據(jù)庫使用的mysql,框架是struts整合hibernate。關(guān)鍵詞:j2ee;課程管理;mysql;myeclipsecourse management system design and implementationabstractcollege course management is a very important asp

3、ect of higher education,is the foundation of college students management. faced with a wide variety of data and statements, the manual processing methods have been difficult to keep up with the pace of modern management, the traditional document management about grade management, is inefficient, tim

4、e-consuming effort, error-prone, and also existing security issues. because too many documents, it brings a lot of inconvenience in the query. with the computer and the rapid development of communication technology, higher education must meet a higher demand. we should change the traditional mode of

5、 management and use modern means of scientific management as soon as possible. the design based on j2ee technology mainly research about implementation of course management system of universities. the system is based on j2ee platform, cover the deficiencies of manual management, and improve the effi

6、ciency of management. main features including: teachers record the grade of students in the term examines, generate the report card to examine. students can query their information at any time with this system. administrator can manage the students, teachers, curriculum, classes together. the system

7、 for the registry staff with a powerful performance management capabilities, provide teachers with the usual results and final results for the management, provide students with a convenient and efficient enquiry function. the development tools is myeclipse, database is mysql, integrated framework is

8、 struts and hibernate.key words: j2ee; grade management; mysql; myeclipse目 錄第一章緒 論51.1系統(tǒng)開發(fā)背景51.2課題研究的內(nèi)容合意義51.3本文的組織結(jié)構(gòu)6第二章j2ee平臺及其支撐技術(shù)72.1 j2ee平臺72.2 mvc模式72.3 struts92.4 hibernate10第三章需求分析133.1管理員功能133.2學(xué)生功能133.3教師功能13第四章 總體設(shè)計(jì)144.1系統(tǒng)設(shè)計(jì)基礎(chǔ)144.2系統(tǒng)模塊劃分144.3主要模塊設(shè)計(jì)154.3.1管理模塊154.3.2學(xué)生模塊154.3.3教師模塊15第五章 詳細(xì)

9、設(shè)計(jì)165.1系統(tǒng)體系結(jié)構(gòu)165.2登陸模塊設(shè)計(jì)165.3教師開課申請165.4錄入成績175.5學(xué)生選課、退課17第六章 數(shù)據(jù)庫設(shè)計(jì)196.1數(shù)據(jù)庫概念模型設(shè)計(jì)196.2數(shù)據(jù)庫邏輯模型設(shè)計(jì)20第七章實(shí)現(xiàn)237.1登陸模塊的實(shí)現(xiàn)237.2開課申請247.3學(xué)生選課26第八章系統(tǒng)測試298.1測試環(huán)境的搭建298.2系統(tǒng)可能出現(xiàn)的問題與不足298.3采用的測試類型298.4采用的測試用列308.5測試結(jié)果30致謝32參考文獻(xiàn)33課程管理系統(tǒng)設(shè)計(jì)與測試第一章緒論1.1系統(tǒng)開發(fā)背景高校學(xué)生成績管理工作是高等教育中的一個極為重要的環(huán)節(jié),是院校學(xué)生管理的基礎(chǔ)。面對種類繁多的數(shù)據(jù)和報(bào)表,手工處理方式和傳統(tǒng)

10、的文件管理方式已經(jīng)很難跟上現(xiàn)代化管理的步伐,主要表現(xiàn)在以下幾個方面:1.易于出錯,效率較低安徽大學(xué)有學(xué)院19個,本科專業(yè)66個,在校本科生多達(dá)2萬以上,各專業(yè)四年所上課程總數(shù)多達(dá)數(shù)千,由于采用學(xué)分制,在管理這些課程與學(xué)生信息的同時(shí),還得統(tǒng)計(jì)各個學(xué)生選修情況,學(xué)分獲取情況,仍然采用文件管理形式,手工填表,這種方式的可靠性不高,因?yàn)槭止ぬ畋硪徊恍⌒木蜁斐蓴?shù)據(jù)遺漏,同時(shí)由于學(xué)生的檔案、學(xué)籍?dāng)?shù)量繁多,手工處理工作量極大,效率低下,進(jìn)行數(shù)據(jù)的維護(hù)和檢索都非常的不便,不能滿足日常的管理工作的要求。2. 數(shù)據(jù)更新不夠及時(shí)以前由于沒有采用web結(jié)構(gòu)的網(wǎng)絡(luò)傳送方式,所以在數(shù)據(jù)的更新上,仍采用各系部或各班級將數(shù)

11、據(jù)上報(bào),并由專門的數(shù)據(jù)錄入人員進(jìn)行手工錄入。這種方式不僅加大了學(xué)生信息管理的工作量,而且很容易遺漏信息,并且造成信息的更新不及時(shí)。3.信息共享度低,數(shù)據(jù)冗余大由于沒有一個完善的系統(tǒng),各個部門之間的數(shù)據(jù)共享度低,數(shù)據(jù)分散存放,定義的格式往往會各不相同。如表示姓名的字段在這里取名為“name,,到了另一個表中就變成了“xm,這種不一致的數(shù)據(jù)格式在數(shù)據(jù)處理時(shí)往往需要進(jìn)行轉(zhuǎn)換,給工作帶來很大的不方便,增大了錯誤發(fā)生的機(jī)會。1.2課題研究的內(nèi)容合意義安徽大學(xué)最近幾年花費(fèi)十幾萬元引入一套教務(wù)管理系統(tǒng),我們學(xué)生經(jīng)常接觸的便是課程管理系統(tǒng),該系統(tǒng)采用技術(shù)實(shí)現(xiàn),通過幾年的使用,我們切實(shí)感受到了它的方便性,該系統(tǒng)

12、實(shí)現(xiàn)了學(xué)生,教師,課程等信息的管理工作,學(xué)生可以方便地進(jìn)行選課,退課,查看學(xué)分等等。教師可以進(jìn)行成績錄入,提交調(diào)課申請,查看選課學(xué)生的操作。但該系統(tǒng)也存在一些問題,首先是可移植性差,運(yùn)行平臺只能是windows操作系統(tǒng),而該系統(tǒng)作為服務(wù)器系統(tǒng)并不被看好。其次是系統(tǒng)穩(wěn)定性和安全性不夠好,在該系統(tǒng)的使用期間曾頻繁發(fā)生自動退課情況,導(dǎo)致選修該課程的學(xué)生成績無法錄入,本人就遇到這種情況。本系統(tǒng)在功能和界面風(fēng)格上模仿現(xiàn)有系統(tǒng),是對現(xiàn)有系統(tǒng)的肯定。但采用了不同的實(shí)現(xiàn)技術(shù)。系統(tǒng)的運(yùn)行平臺是j2ee+tomcat,采用了strut+hibernate框架,該系統(tǒng)具有很好的移植性。同時(shí)由于所采用的技術(shù)框架都是開

13、源的,這使得系統(tǒng)的穩(wěn)定性和安全性有了很大的提高,也便于以后的擴(kuò)展和維護(hù)工作。1.3本文的組織結(jié)構(gòu)本文共分八章,各章的主要內(nèi)容如下第一章緒論,主要說明系統(tǒng)開發(fā)背景,課題研究的內(nèi)容和意義。第二章j2ee平臺及其支撐技術(shù),介紹本系統(tǒng)的運(yùn)行平臺并簡要介紹開發(fā)本系統(tǒng)所用到的相關(guān)技術(shù)。第三章需求分析,從系統(tǒng)的不同用戶出發(fā)分析系統(tǒng)的功能需求。第四章總體設(shè)計(jì),介紹系統(tǒng)設(shè)計(jì)基礎(chǔ),對系統(tǒng)進(jìn)行模塊劃分,并設(shè)計(jì)各個模塊的層次圖。第五章詳細(xì)設(shè)計(jì),介紹系統(tǒng)體系結(jié)構(gòu),設(shè)計(jì)各個功能模塊的系統(tǒng)流程圖。第六五章數(shù)據(jù)庫設(shè)計(jì) 重點(diǎn)介紹數(shù)據(jù)庫概念模型設(shè)計(jì)和邏輯模型設(shè)計(jì),給出了數(shù)據(jù)庫的e-r圖第七章實(shí)現(xiàn) 主要介紹系統(tǒng)運(yùn)行時(shí)的界面截圖和核

14、心代碼。第八章系統(tǒng)測試,首先是介紹測試環(huán)境的搭建,然后介紹系統(tǒng)采用的測試技術(shù),最后列出測試用列。第二章j2ee平臺及其支撐技術(shù)2.1 j2ee平臺j2ee是一個開放的、基于標(biāo)準(zhǔn)的開發(fā)和部署的平臺,用于構(gòu)建n層的、基于web的、以服務(wù)端計(jì)算為核心的、模塊化的企業(yè)應(yīng)用。j2ee同時(shí)也是所有兼容j2ee標(biāo)準(zhǔn)的應(yīng)用服務(wù)器產(chǎn)品的統(tǒng)一標(biāo)識。sun公司領(lǐng)導(dǎo)著j2ee規(guī)范和標(biāo)準(zhǔn)的制定,但同時(shí)很多公司如ibm、bea也為該標(biāo)準(zhǔn)的制定貢獻(xiàn)了很多力量,所以j2ee每一個新規(guī)范的推出,都體現(xiàn)著整個業(yè)界對技術(shù)的共同認(rèn)同。大家都遵守著“在標(biāo)準(zhǔn)上進(jìn)行合作,在產(chǎn)品上進(jìn)行競爭”的原則,從而使j2ee在技術(shù)規(guī)范上日臻完善和進(jìn)步,

15、同時(shí)又有各廠家實(shí)現(xiàn)j2ee規(guī)范的應(yīng)用服務(wù)器產(chǎn)品在市場上推出,在性能上、價(jià)格上互相競爭,為最終用戶提供多樣化的選擇。圖1 ja2eea平臺體系架構(gòu)從圖1中可以看出,j2ee技術(shù)是在j2se的基礎(chǔ)之上,提供了企業(yè)計(jì)算所必須的服務(wù)如事務(wù)、安全性、消息服務(wù)等。j2se平臺提供java運(yùn)行時(shí)環(huán)境的標(biāo)準(zhǔn)功能,如對跨平臺開發(fā)的支持和內(nèi)存管理等。j2ee應(yīng)用的組件如企業(yè)javabean(ejb)、jsp和servlet運(yùn)行于j2ee容器之中,通過連接器訪問企業(yè)信息系統(tǒng),如數(shù)據(jù)庫系統(tǒng)、erp系統(tǒng)和其他應(yīng)用程序系統(tǒng)。j2ee應(yīng)用可以集成一系列的客戶端,包括獨(dú)立運(yùn)行的臺式客戶端、無線客戶端,以及基于web瀏覽器的客

16、戶端等。j2ee平臺為開發(fā)企業(yè)應(yīng)用提供了高性能、高可靠性和可伸縮性的運(yùn)行支撐環(huán)境。2.2 mvc模式mvc模式是model-view-controller的縮寫,中文翻譯為模式-視圖-控制器。mvc應(yīng)用程序總是由這三個部分組成。event(事件)導(dǎo)致controller改變model或view,或者同時(shí)改變兩者。只要controller改變了models的數(shù)據(jù)或者屬性,所有依賴的view都會自動更新。類似的,只要controller改變了view,view會從潛在的model中獲取數(shù)據(jù)來刷新自己。mvc模式最早是smalltalk語言研究團(tuán)提出的,應(yīng)用于用戶交互應(yīng)用程序中。smalltalk語

17、言和java語言有很多相似性,都是面向?qū)ο笳Z言,很自然的sun在petstore(寵物店)事例應(yīng)用程序中就推薦mvc模式作為開發(fā)web應(yīng)用的架構(gòu)模式。mvc模式是一種架構(gòu)模式,其實(shí)需要其他模式協(xié)作完成。在j2ee模式目錄中,通常采用service to worker模式實(shí)現(xiàn),而service to worker模式可由集中控制器模式,派遣器模式和page helper模式組成。而struts只實(shí)現(xiàn)了mvc的view和controller兩個部分,model部分需要開發(fā)者自己來實(shí)現(xiàn),struts提供了抽象類action使開發(fā)者能將model應(yīng)用于struts框架中。mvc模式是一個復(fù)雜的架構(gòu)模式

18、,其實(shí)現(xiàn)也顯得非常復(fù)雜。但是,我們已經(jīng)總結(jié)出了很多可靠的設(shè)計(jì)模式,多種設(shè)計(jì)模式結(jié)合在一起,使mvc模式的實(shí)現(xiàn)變得相對簡單易行。views可以看作一棵樹,顯然可以用composite pattern來實(shí)現(xiàn)。views和models之間的關(guān)系可以用observer pattern體現(xiàn)。controller控制views的顯示,可以用strategy pattern實(shí)現(xiàn)。model通常是一個調(diào)停者,可采用mediator pattern來實(shí)現(xiàn)?,F(xiàn)在讓我們來了解一下mvc三個部分在j2ee架構(gòu)中處于什么位置,這樣有助于我們理解mvc模式的實(shí)現(xiàn)。mvc與j2ee架構(gòu)的對應(yīng)關(guān)系是:view處于web ti

19、er或者說是client tier,通常是jsp/servlet,即頁面顯示部分。controller也處于web tier,通常用servlet來實(shí)現(xiàn),即頁面顯示的邏輯部分實(shí)現(xiàn)。model處于middle tier,通常用服務(wù)端的javabean或者ejb實(shí)現(xiàn),即業(yè)務(wù)邏輯部分的實(shí)現(xiàn)。2.3 struts一、為什么要使用struts struts是一個web開發(fā)框架。web從一開始的靜態(tài)html開發(fā),到后來的動態(tài)頁面。從繁瑣的、代碼及其混亂的model1,逐步到mvc模式。在技術(shù)上和結(jié)構(gòu)上都發(fā)生了極大的變化。mvc模式結(jié)構(gòu)清晰,現(xiàn)今已被大量運(yùn)用。struts 通過提供一個控制器servlet

20、實(shí)現(xiàn)了sun 的 model 2 架構(gòu),這個控制器可以用來管理jsp 頁面和其他表現(xiàn)設(shè)備之間的流程。struts 通過使用actionforward和actionmapping來保證表現(xiàn)層之外的控制流決策來實(shí)現(xiàn) mvc層 模式。同時(shí)通過xml配置文件實(shí)現(xiàn)幾個層次間的關(guān)系,大大簡化了開發(fā)人員的工作量。二、struts是怎么工作的 我們用一個圖示來描述struts的工作情況 上圖以uml以次序圖的方式展示了struts 請求-響應(yīng)流程。我們來按這個請求-響應(yīng)流程走一遍。 1、客戶請求匹配action uri 樣式的路徑 2、容器將請求傳遞給actionservlet. 3、如果這個是模塊化應(yīng)用,a

21、ctionservlet 選擇響應(yīng)的模塊。 4、actionservlet 查詢路徑的映射。(來自于配置文件) 5、如果映射標(biāo)明了一個form bean,actionservlet 看是否已經(jīng)有一個實(shí)例,或者創(chuàng)建一個新的實(shí)例。如果已經(jīng)有一個form bean,actionservlet 重設(shè)它,并根據(jù)http 請求重新組裝它。 6、如果 mapping 的 validate 屬性設(shè)置為 true, 它將調(diào)用 form bean 的validate 方法 7、如果失敗,servlet 將控制轉(zhuǎn)發(fā)到input 屬性標(biāo)明的路徑,控制流終止。 8、如果mapping 標(biāo)明一個action 類型,如果它

22、已經(jīng)存在或已經(jīng)實(shí)例化,它將被重用 9、action 的perform 或 execute 方法被調(diào)用,并傳遞一個實(shí)例化的form bean(或者 null)。 10、action 組裝form bean, 調(diào)用業(yè)務(wù)對象,以及其他需要做的事情。 11、action 返回一個actionforward 給actionservlet 12、如果actionforward 指向另一個 action uri,重新開始; 否則,顯示頁面或者其他資源,流程結(jié)束。通常,結(jié)果是一個jsp 頁面,或者jasper, 或其它類似技術(shù) (非struts)渲染的頁面。 13、如果jsp 中使用了struts html

23、標(biāo)記, 并且在請求中看到正確的actionform,他們會從actionform 中組裝html 控件。否則, 標(biāo)記將創(chuàng)建一個。從struts 1.1 開始, 如果form 標(biāo)記自行創(chuàng)建一個actionform ,它將調(diào)用actionform 的reset 方法。如果你只是想創(chuàng)建一個空白的表單,你可以使用標(biāo)準(zhǔn)的forwardaction來通過action 傳遞控制,然后離開頁面2.4 hibernate一 hibernate定義hibernate是一種java語言下的對象關(guān)系映射解決方案。 它是一種自由、開源的軟件。它用來把對象模型表示的對象映射到基于sql 的關(guān)系模型結(jié)構(gòu)中去,為面向?qū)ο蟮念I(lǐng)

24、域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的映射,提供了一個使用方便的框架。 二 hibernate的作用hibernate 不僅管理java 類到數(shù)據(jù)庫表的映射(包括從java數(shù)據(jù)類型到sql數(shù)據(jù)類型的映射),還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少開發(fā)時(shí)人工使用sql 和jdbc 處理數(shù)據(jù)的時(shí)間。它的設(shè)計(jì)目標(biāo)是將軟件開發(fā)人員從大量相同的數(shù)據(jù)持久層相關(guān)編程工作中解放出來。無論是從設(shè)計(jì)草案還是從一個遺留數(shù)據(jù)庫開始,開發(fā)人員都可以采用hibernate。三 hibernate的應(yīng)用hibernate對jdbc進(jìn)行了非常輕量級的對象封裝,使得java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 hib

25、ernate可以應(yīng)用在任何使用jdbc的場合,它既可以在java的客戶端程序使用,也可以在servlet/jsp的web應(yīng)用中使用。最具革命意義的是,hibernate可以在應(yīng)用ejb(enterprise javabeans是java應(yīng)用于企業(yè)計(jì)算的框架)的j2ee架構(gòu)中取代cmp,完成數(shù)據(jù)持久化的重任。四 hibernate api簡介1 hibernate api中的接口可以分為以下幾類:(1) 提供訪問數(shù)據(jù)庫的操作的接口,包括session、transaction、query接口;(2) 用于配置hibernate的接口,configuration;(3) 間接接口,使應(yīng)用程序接受hi

26、bernate內(nèi)部發(fā)生的事件,并作出相關(guān)的回應(yīng),包括:interceptor、lifecycle、validatable;(4) 用于擴(kuò)展hibernate功能的接口,如usertype、compositeusertype、identifiergenerator接口。hibernate內(nèi)部還封裝了jdbc、jta(java transaction api)和jndi(java naming and directory interface)。其中,jdbc提供底層的數(shù)據(jù)訪問操作,只要用戶提供了相應(yīng)的jdbc驅(qū)動程序,hibernate可以訪問任何一個數(shù)據(jù)庫系統(tǒng)。jta和jndi使hibernat

27、e能夠和j2ee應(yīng)用服務(wù)器集成。2hibernate的核心接口框圖五hibernate的優(yōu)缺點(diǎn)(1)優(yōu)點(diǎn):a.hibernate 使用 java 反射機(jī)制 而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。b.hibernate 的性能非常好,因?yàn)樗莻€輕量級框架。映射的靈活性很出色。c. 它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。 (2)缺點(diǎn):hibernate限制您所使用的對象模型。例如,一個持久性類不能映射到多個表。第三章需求分析高校課程管理系統(tǒng)角色是管理員、學(xué)生和教師,管理員對學(xué)生、教師、課程、學(xué)研、專業(yè)和班級信息進(jìn)行維護(hù),學(xué)生選擇想要上的課程,查看所選的學(xué)分以及修改個人信息,教師開課申請

28、查看選課情況以及給學(xué)生打?qū)W分。根據(jù)以上操作,所作需求分析如下:3.1管理員功能登錄:登錄學(xué)生管理:列表、增加、修改、刪除。教師管理:列表、增加、修改、刪除。課程管理:列表、增加、修改、刪除。學(xué)院管理:列表、增加、修改、刪除。專業(yè)管理:列表、增加、修改、刪除。班級管理:列表、增加、修改、刪除。3.2學(xué)生功能登錄:登錄。選課:選課、退課、查看個人課表。學(xué)分:查看。個人信息:修改。3.3教師功能登錄:登錄。開課申請:課程列表、選擇上課時(shí)間、選擇上課教室公布成績:課程列表、學(xué)生列表、成績。第四章總體設(shè)計(jì)4.1系統(tǒng)設(shè)計(jì)基礎(chǔ)系統(tǒng)功能實(shí)現(xiàn)應(yīng)遵循的基本準(zhǔn)則是:易于維護(hù)合擴(kuò)展。本課題研究中采用了以下技術(shù)方案。系

29、統(tǒng)體系結(jié)構(gòu):采用java語言開發(fā),基于j2ee struts框架的多層b/s應(yīng)用系統(tǒng)架構(gòu)。j2ee是個開放的、基于標(biāo)準(zhǔn)的平臺,可以開發(fā)、部署和管理的n層結(jié)構(gòu)的、面向web的,以服務(wù)器為中心的企業(yè)級應(yīng)用,它是利用java2平臺來簡化多級企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的諸多復(fù)雜問題的應(yīng)用體系結(jié)構(gòu),j2ee包括jsp、servlet、ejb、web service等多項(xiàng)技術(shù)。struts框架就是基于model2的框架,也是基于mvc模式的框架技術(shù)4.2系統(tǒng)模塊劃分系統(tǒng)主要劃分為三大模塊:管理員模塊,面向?qū)W校管理人員。教師模塊,面向在校教師。學(xué)生模塊,面向在校學(xué)生。系統(tǒng)層次圖如下:系統(tǒng)包結(jié)構(gòu)圖如下

30、:com.ahu.hibernate.beans 中存放數(shù)據(jù)庫中表映射的java對象com.ahu.struts.actions 中存放actionservlet的子類com.ahu.struts.forms 封裝用戶提交的數(shù)據(jù)的類com.ahu.struts.resources 存放配置文件com.ahu.util 存放常量,公用數(shù)據(jù)結(jié)構(gòu)和方法4.3主要模塊設(shè)計(jì)4.3.1管理模塊該模塊的主要功能是維護(hù)系統(tǒng)常用信息,確保系統(tǒng)能正常運(yùn)行。當(dāng)新生注冊是,管理員需要插入新生信息,老生畢業(yè),則需注銷這些學(xué)生的信息,教師的去留,新學(xué)院專業(yè)的成立,也要涉及數(shù)據(jù)的增刪修改,以保證數(shù)據(jù)的及時(shí)和準(zhǔn)確性。該模塊的

31、層次圖如下所示:4.3.2學(xué)生模塊學(xué)生模塊的主要功能是查看課程列表,獲知可選課程,選課,退課,查看個人課表,查看學(xué)分等功能。該模塊的層次圖如下所示:4.3.3教師模塊該模塊的功能主要是查看課程信息,提交開課申請,查看選課情況,錄入成績。該模塊的層次圖如下所示:第五章 詳細(xì)設(shè)計(jì)5.1系統(tǒng)體系結(jié)構(gòu)5.2登陸模塊設(shè)計(jì)系統(tǒng)的用戶包括:學(xué)院領(lǐng)導(dǎo)(管理人員)、教師、學(xué)生。這些用戶既是系統(tǒng)的參與者,又是系統(tǒng)的管理對象,還要控制用戶對系統(tǒng)的行為。當(dāng)用戶每次進(jìn)入系統(tǒng)時(shí),首先要驗(yàn)證用戶的合法性。根據(jù)用戶的類型轉(zhuǎn)向不同的功能頁面。系統(tǒng)流程圖如下:5.3教師開課申請教師開課是教師模塊這要功能之一,教師首先填寫開課申請

32、表,輸入檢查合法過后,申請表處于待審核狀態(tài),審核通過,學(xué)生則可以選修該課程,同時(shí)向教師發(fā)送審核合格通知,否則發(fā)送不通過通知,學(xué)生在課程列表中不可見該開課記錄,系統(tǒng)流程圖如下:5.4錄入成績錄入成績是教師模塊另一重要功能,教師首先選擇相關(guān)課程,系統(tǒng)列出選修該課程的學(xué)生,教師再選擇學(xué)生,輸入成績,單擊提交按鈕,進(jìn)行輸入合法性檢查,檢查通過則成績錄入成功,否則報(bào)錯。系統(tǒng)流程圖如下:5.5學(xué)生選課、退課該功能是學(xué)生端的主要功能,學(xué)生首先選擇開課學(xué)院,專業(yè),系統(tǒng)列出可選課程,學(xué)生選擇課程,系統(tǒng)列出上該課的教師,學(xué)生選擇自己喜歡的教師,點(diǎn)擊選課按鈕,系統(tǒng)進(jìn)行合法性檢查,檢查通過則選課成功,否則報(bào)錯。退課和

33、選課類似。第六章 數(shù)據(jù)庫設(shè)計(jì)該系統(tǒng)保存的主要信息有學(xué)生信息,教師信息,學(xué)院、專業(yè)、班級信息以及課程信息,教師開課信息,學(xué)生選課信息。6.1數(shù)據(jù)庫概念模型設(shè)計(jì)6.1.1系統(tǒng)管理數(shù)據(jù)庫概念模型設(shè)計(jì)系統(tǒng)管理即對用戶的管理,包括教師和學(xué)生,學(xué)院,專業(yè)以及班級,課程的管理。系統(tǒng)管理對應(yīng)的實(shí)體有教師,學(xué)生,學(xué)院,專業(yè),班級,課程。其概念數(shù)據(jù)模型如下圖所示:6.1.2教師開課信息管理數(shù)據(jù)庫概念模型設(shè)計(jì)需要記錄的信息有課程號,教師號,上課時(shí)間,上課教室。其概念數(shù)據(jù)模型如下圖所示:6.1.3學(xué)生選課信息管理數(shù)據(jù)庫概念模型設(shè)計(jì)需要記錄的數(shù)據(jù)有學(xué)號,開課號,平時(shí)成績,考試成績其概念數(shù)據(jù)模型如下圖所示:6.2數(shù)據(jù)庫邏

34、輯模型設(shè)計(jì)學(xué)生表字段名數(shù)據(jù)類型長度是否允許空說明xuehhaovarchar20否學(xué)號(主鍵)xingmingvarchar20否真實(shí)姓名mimavarchar20否密碼xingbievarchar2否性別csnydate否出生年月zcrqdate否入學(xué)日期banjiint11否所屬班級教師表字段名數(shù)據(jù)類型長度是否允許空說明jghvarchar20否教工號xingmingvarcha20否真實(shí)姓名mimavarchar20否密碼xingbievarchar2否性別csnydate否出生年月zhichengvarchar20否職稱ssxyint11否所屬學(xué)院課程表字段名數(shù)據(jù)類型長度是否允許空說明

35、kcdmint11否課程代碼kcmcvarchar100否課程名稱kcxzvarchar20否課程性質(zhì)kcxfint11否課程學(xué)分kcxqint11否開課學(xué)期kcxyint11否開課學(xué)院學(xué)院表字段名數(shù)據(jù)類型長度是否允許空說明xyhint11否學(xué)院號xymcvarchar100否學(xué)院名稱xyjjvarchar10000是學(xué)院簡介專業(yè)表字段名數(shù)據(jù)類型長度是否允許空說明zyhint11否專業(yè)號zxymcvarchar100否專業(yè)名稱zxyjjvarchar10000是專業(yè)簡介ssxyint11否所屬學(xué)院班級字段名數(shù)據(jù)類型長度是否允許空說明bjhint11否班級號bjmcvarchar100否班級名稱

36、bjjjvarchar10000是班級簡介sszyint11否所屬專業(yè)教室表字段名數(shù)據(jù)類型長度是否允許空說明jshint11否教室號jsmcvarchar100否教室名稱syqkvarchar1000是使用情況開課記錄表字段名數(shù)據(jù)類型長度是否允許空說明kkhint11否開課號jghvarchar20否教工號kcdmint11否課程代碼sksjvarchar50否上課時(shí)間skjsint11否上課教室選課記錄字段名數(shù)據(jù)類型長度是否允許空說明xuehaovarchar20否學(xué)號kkhint11否開課號pscjint11是平時(shí)成績kscjint11是考試成績第七章實(shí)現(xiàn)7.1登陸模塊的實(shí)現(xiàn)界面核心代碼:

37、public class loginaction extends dispatchaction public actionforward execute(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) loginform loginform = (loginform) form;request.getsession().setattribute(id, loginform.getusername();if(loginform.gettype().eq

38、uals(student)/學(xué)生用戶,轉(zhuǎn)向?qū)W生界面xueshengdao xsdao = new xueshengdao();xuesheng xs = xsdao.findbyid(loginform.getusername();list list = xsdao.findall();if(xs!=null&xs.getmima().equals(loginform.getpassword()return mapping.findforward(student);elsereturn mapping.findforward(failure);else if(loginform.gettype

39、().equals(teacher)/教師用戶,轉(zhuǎn)向教師界面jiaogongdao jgdao = new jiaogongdao();jiaogong jg = jgdao.findbyid(loginform.getusername();if(jg!=null&jg.getmima().equals(loginform.getpassword()return mapping.findforward(teacher);elsereturn mapping.findforward(failure);return mapping.findforward(failure);7.2開課申請界面核心代

40、碼:public class kkxxaction extends dispatchaction public actionforward execute(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) kkxxform kkxxform = (kkxxform)form;if(kkxxform.gettarget().equals(xueyuan)/返回學(xué)院信息request.getsession().setattribute(xueyuan, k

41、kxxform.getxueyuan();return mapping.findforward(continue);else if(kkxxform.gettarget().equals(zhuanye)/返回專業(yè)信息request.getsession().setattribute(zhuanye,kkxxform.getzhuanye();return mapping.findforward(continue);else if(kkxxform.gettarget().equals(kch)/返回課程信息request.getsession().setattribute(kch,kkxxf

42、orm.getkch();return mapping.findforward(continue);else if(kkxxform.gettarget().equals(louhao)/返回教室信息request.getsession().setattribute(bjh, kkxxform.getbanji();request.getsession().setattribute(louhao, kkxxform.getlouhao();request.getsession().setattribute(zhou0, kkxxform.getzhou0();request.getsessio

43、n().setattribute(node0,kkxxform.getnode0();request.getsession().setattribute(zhou1, kkxxform.getzhou1();request.getsession().setattribute(node1,kkxxform.getnode1();/檢測在該時(shí)間段內(nèi)可用教室return mapping.findforward(continue);else if(kkxxform.gettarget().equals(submit)/提交開課申請kkjiludao kkjldao = new kkjiludao();

44、kechengdao kcdao = new kechengdao();kecheng kc = kcdao.findbyid(kkxxform.getkch();int zks = kc.getzks();if(zks%3=0)zks = 3;elsezks = 2;kkjilu kkjl = new kkjilu();kkjl.setjgh(string)request.getsession().getattribute(id);kkjl.setkch(kkxxform.getkch();kkjl.setskjs(kkxxform.getjshao();string sksj = ;if(

45、kkxxform.getzhou0()!=null)sksj = sksj+kkxxform.getzhou0()+_+kkxxform.getnode0()+_+zks;if(kkxxform.getzhou1()!=null)sksj = sksj+ +kkxxform.getzhou1()+_+kkxxform.getnode1()+_+zks;kkjl.setsksj(sksj);kkjl.setyuliang(new integer(kkxxform.getmaxcount();if(kkxxform.getkch()!=null&!kkxxform.getkch().equals(

46、0)&kkxxform.getbanji()!=null&!kkxxform.getbanji().equals(0)kkjldao.save(kkjl);request.getsession().setattribute(msg, 開課成功!);request.getsession().setattribute(xueyuan,null);request.getsession().setattribute(zhuanye,null);request.getsession().setattribute(zhuanye,null);request.getsession().setattribut

47、e(kch,null);request.getsession().setattribute(louhao,null);request.getsession().setattribute(zhou,null);request.getsession().setattribute(node,null);request.getsession().setattribute(bjh,null);request.getsession().setattribute(jshao,null);elserequest.getsession().setattribute(msg, 請將信息填充完整!);request

48、.getsession().setattribute(jshao,kkxxform.getjshao();return mapping.findforward(continue);return null;7.3學(xué)生選課界面核心代碼:public class addcourseaction extends dispatchaction public actionforward execute(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) addcou

49、rseform addcourseform = (addcourseform) form;string xh = (string) request.getsession().getattribute(id);string kkh = addcourseform.getkkh();string kch = addcourseform.getkch();if(kkh=null|kch=null)return null;if(addcourseform.getbtnsubmit().equals(提交)/進(jìn)行選課操作xuekejiludao xkjldao = new xuekejiludao();

50、xuekejilu xkjl = new xuekejilu();xkjl.setxuehao(xh);xkjl.setkkh(new integer(kkh);xkjl.setkch(kch);if(xkjldao.find(from xuekejilu where xuehao=+xh+ and kch=+kch+).size() = 0)xkjldao.save(xkjl );kkjiludao kkjldao = new kkjiludao();kkjilu kkjl = kkjldao.findbyid(new integer(kkh);kkjl.setyuliang(kkjl.ge

51、tyuliang()-1);kkjldao.update(kkjl);xueshengdao xsdao = new xueshengdao();xuesheng xs = xsdao.findbyid(xh);string kcb = xs.getkcb1();stringtokenizer st = new stringtokenizer(kkjl.getsksj();while(st.hasmoretokens()kcb = kcb+ +st.nexttoken()+_+kkh;xs.setkcb1(kcb);xsdao.update(xs);request.getsession().s

52、etattribute(msg, 選課成功!);elserequest.getsession().setattribute(msg, 你已經(jīng)選了該課程!);else if(addcourseform.getbtnsubmit().equals(退選)/進(jìn)行退課操作xuekejiludao xkjldao = new xuekejiludao();list list = xkjldao.find(from xuekejilu where xuehao=+xh+ and kch=+kch+);if(list!=null&list.size()!=0)xuekejilu xkjl = (xuekejilu) list.get(0);xkjldao.delete(xkjl);kkjiludao kkjldao = new kkjiludao();kkjilu kkjl = kkjldao.findbyid(new

溫馨提示

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

最新文檔

評論

0/150

提交評論