java學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告_第1頁
已閱讀1頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)學(xué)與計(jì)算機(jī)學(xué)院</b></p><p><b>  課程設(shè)計(jì)說明</b></p><p>  課 程 名 稱: JAVA程序設(shè)計(jì)-課程設(shè)計(jì) </p><p>  課 程 代 碼: </p><

2、;p>  題 目: 學(xué)生成績管理系統(tǒng) </p><p>  年級/專業(yè)/班: </p><p>  學(xué) 生 姓 名: </p><p>  學(xué)   號:

3、 </p><p>  開 始 時(shí) 間: 2010 年 12 月 7 日</p><p>  完 成 時(shí) 間: 2010 年 12 月 23 日</p><p><b>  課程設(shè)計(jì)成績:</b></p><p>  指導(dǎo)教師簽名:

4、 年 月 </p><p><b>  目 錄</b></p><p><b>  1 引言1</b></p><p>  1.1 問題的提出1</p><p>  1.2國內(nèi)外研究的現(xiàn)狀1</p><p>  1.3系統(tǒng)的具體任務(wù)2&

5、lt;/p><p>  1.4 系統(tǒng)開發(fā)目的2</p><p><b>  2需求分析3</b></p><p>  2.1總體功能需求3</p><p><b>  2.2初始化4</b></p><p><b>  2.3添加學(xué)生4</b>&l

6、t;/p><p>  2.4刪除學(xué)生記錄4</p><p>  2.5修改學(xué)生記錄4</p><p>  2.6查看學(xué)生記錄5</p><p><b>  2.7退出系統(tǒng)5</b></p><p><b>  3系統(tǒng)分析5</b></p><p>

7、;  3.1系統(tǒng)用例圖5</p><p>  3.2 系統(tǒng)總體用例圖6</p><p>  3.3學(xué)生信息用例圖6</p><p>  3.4管理員信息用例圖7</p><p><b>  4系統(tǒng)概要設(shè)計(jì)7</b></p><p>  4.1 軟件設(shè)計(jì)的原則7</p>&

8、lt;p>  4.2 系統(tǒng)HIPO圖9</p><p>  4.3 數(shù)據(jù)庫表設(shè)計(jì)10</p><p>  5系統(tǒng)詳細(xì)設(shè)計(jì)12</p><p>  5.1 系統(tǒng)程序流程圖12</p><p>  5.2 系統(tǒng)過程設(shè)計(jì)13</p><p><b>  6 模塊分析15</b><

9、/p><p>  6.1 用戶管理模塊15</p><p>  6.2增加學(xué)生信息模塊16</p><p>  6.3 修改學(xué)生信息模塊17</p><p>  6.4 綜合查詢模塊19</p><p>  6.5 存儲過程及觸發(fā)器:20</p><p><b>  7系統(tǒng)測試

10、21</b></p><p><b>  8結(jié)論25</b></p><p><b>  9參考文獻(xiàn)26</b></p><p><b>  1 引言</b></p><p><b>  1.1 問題的提出</b></p>&

11、lt;p>  人類已進(jìn)入21世紀(jì),科學(xué)技術(shù)突飛猛進(jìn),經(jīng)濟(jì)知識和信息產(chǎn)業(yè)初見端倪,特別是信息技術(shù)和網(wǎng)絡(luò)技術(shù)的訊速發(fā)展和廣泛應(yīng)用,對社會的政治、經(jīng)濟(jì)、軍事、文化等領(lǐng)域產(chǎn)生越來越深刻。學(xué)生成績管理系統(tǒng)是一個(gè)教育單位不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要。本論文敘述到的學(xué)生成績管理系統(tǒng)是用JSP網(wǎng)頁編程+ACCESS數(shù)據(jù)庫+SQL查詢語言實(shí)現(xiàn)的。重點(diǎn)介紹了學(xué)生成績管理系統(tǒng)的實(shí)現(xiàn)過程:包括系統(tǒng)分析、 系統(tǒng)調(diào)查、功能設(shè)

12、計(jì)、數(shù)據(jù)庫設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)測試和調(diào)試等。本系統(tǒng)主要功能有教師管理、學(xué)生管理、班級管理、學(xué)生信息管理、成績管理、留言管理,包括功能需求描述、數(shù)據(jù)庫設(shè)計(jì)等內(nèi)容。</p><p>  1.2國內(nèi)外研究的現(xiàn)狀 </p><p>  現(xiàn)在的社會日新月異,發(fā)展的非常快。學(xué)校的發(fā)展也是非常的快了,而且每年都有不同的要求。學(xué)生的量也非常的大,資料可能經(jīng)常性的發(fā)生更換,原來手工的管理模式就顯的不怎么的合

13、適了。而且手工的數(shù)據(jù)是存放在多處的,沒有使用統(tǒng)一管理的模式,數(shù)據(jù)整理非常的麻煩,統(tǒng)計(jì)也困難,很多的情況下,老師都是在重復(fù)一些相同的工作。做一些相似的報(bào)表,這樣不但降低了工作效率,而且非常的容易出錯(cuò)。在這種條件下,使用微機(jī)管理就顯的非常的合適了。只要你正確的錄入,統(tǒng)計(jì),報(bào)表輸出一點(diǎn)問題都沒有的。  學(xué)生做為學(xué)校的最主要的管理對象,學(xué)生檔案管理系統(tǒng)就成了學(xué)校信息化管理系統(tǒng)中中不可缺少的部分,它的內(nèi)容對于學(xué)校的管理者說都至關(guān)重

14、要。但一直以來人們使用傳統(tǒng)人工的方式進(jìn)行學(xué)生的檔案管理,這種管理方式存在著許多缺點(diǎn),如:效率低,容易出錯(cuò),格式不規(guī)范。另外時(shí)間一長,不容易進(jìn)行統(tǒng)計(jì)和分析。  隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對學(xué)生檔案進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、</p>

15、<p>  1.3系統(tǒng)的具體任務(wù) </p><p>  該系統(tǒng)的具體任務(wù)就是設(shè)計(jì)一個(gè)學(xué)生成績的數(shù)據(jù)庫管理系統(tǒng),由計(jì)算機(jī)來代替人工執(zhí)行一系列諸如增加新學(xué)生成績信息、刪除學(xué)生成績信息、學(xué)生資料、查詢、修改等的處理操作,以方便管理人員的管理信息工作。     本設(shè)計(jì)以客戶為中心,界面要美觀大方,操作盡量簡單明了,且要有良好的容錯(cuò)性,在用戶出現(xiàn)誤操作時(shí)能及時(shí)給出警告并修改。

16、在現(xiàn)有的技術(shù)和資金的情況下完全可以設(shè)計(jì)出這套功能完善的應(yīng)用軟件。</p><p>  1.4 系統(tǒng)開發(fā)目的</p><p>  建立學(xué)生成績管理系統(tǒng),采用計(jì)算機(jī)對學(xué)生成績進(jìn)行管理,進(jìn)一步提高辦學(xué)效益和現(xiàn)代化水平。幫助廣大教師提高工作效率,實(shí)現(xiàn)學(xué)生成績信息管理工作流程的系統(tǒng)化、規(guī)范化和自動化。</p><p>  1.5 系統(tǒng)環(huán)境需求   編程

17、語言:JAVA</p><p>  Java + Eclipse + SQL server數(shù)據(jù)庫</p><p>  開發(fā)工具:Eclipse SDK(英文版)</p><p>  SQL 2000(中文版)   運(yùn)行環(huán)境:Windows xp或windows 20002需求分析</p><p><b>  2

18、.1總體功能需求</b></p><p><b>  2.2初始化</b></p><p><b>  業(yè)務(wù)流程描述:</b></p><p>  1:初始化系統(tǒng)執(zhí)行對對象進(jìn)行序列化</p><p>  2: 反序列化獲得對象</p><p><b> 

19、 業(yè)務(wù)規(guī)則說明:</b></p><p>  1:進(jìn)入系統(tǒng)第一步必須序列化 。</p><p>  2:獲得反序列化的對象,如果文件不存在興建一個(gè),單必須是需要的對象類型。</p><p><b>  2.3添加學(xué)生</b></p><p><b>  業(yè)務(wù)流程描述:</b></p

20、><p>  1:要求用戶從鍵盤輸入一個(gè)或多個(gè)學(xué)生信息;</p><p>  2:輸入完成后序列化到文件/表。</p><p>  3:學(xué)生紀(jì)錄不允許重復(fù),判斷的關(guān)鍵字為學(xué)號</p><p><b>  業(yè)務(wù)規(guī)則說明:</b></p><p>  1:從菜單選擇添加學(xué)生,獲得容器對象 。</p&

21、gt;<p>  2:進(jìn)入添加頁面提示添加屬性。</p><p><b>  3:性別限制男女。</b></p><p>  4:科目成績可變性。課程可自動調(diào)節(jié)</p><p>  5:學(xué)號作為唯一標(biāo)示符:</p><p><b>  不能出現(xiàn)重復(fù)學(xué)號。</b></p>

22、<p><b>  必須是數(shù)字組成。</b></p><p>  6:添加完成后把容器對象序列化到文件</p><p><b>  2.4刪除學(xué)生記錄</b></p><p><b>  業(yè)務(wù)流程描述:</b></p><p>  1:要求用戶輸入欲刪除的學(xué)生的學(xué)號;

23、</p><p><b>  2:刪除學(xué)生記錄;</b></p><p>  3:更新到文件/表。</p><p><b>  業(yè)務(wù)規(guī)則說明:</b></p><p>  1:傳遞一個(gè)容器對象。</p><p>  2:給定一個(gè)學(xué)生學(xué)號刪除一個(gè)學(xué)生信息</p>

24、<p>  2:遍歷容器是否有輸入學(xué)號的學(xué)生信息。</p><p>  如果存在,提示是否刪除。</p><p><b>  如果沒有重新輸入。</b></p><p>  3:如果刪除成功返回一個(gè)容器對象,序列化到文件。</p><p><b>  2.5修改學(xué)生記錄</b></p

25、><p><b>  業(yè)務(wù)流程描述:</b></p><p>  1:要求用戶輸入欲修改的學(xué)生的學(xué)號;</p><p>  2:判斷該學(xué)生是否存在于記錄中;</p><p>  3:若學(xué)生記錄存在,提供修改學(xué)生信息功能。</p><p><b>  業(yè)務(wù)規(guī)則說明:</b><

26、/p><p>  1:傳遞一個(gè)容器對象給修改方法。</p><p>  2:給定一個(gè)欲修改學(xué)生的學(xué)號</p><p>  3:遍歷容器是否有輸入學(xué)號的學(xué)生信息。</p><p>  如果存在學(xué)生對象,繼續(xù)下一步。</p><p><b>  如果沒有重新輸入。</b></p><p

27、>  4:通過判斷知道存在學(xué)生對象后遍歷獲得學(xué)生對象。</p><p>  5:提示要修改的類容</p><p>  提示舊的信息添加新的信息</p><p>  6:修改后獲得容器對象,序列化到文件</p><p><b>  2.6查看學(xué)生記錄</b></p><p><b>

28、  業(yè)務(wù)流程描述:</b></p><p><b>  1:輸入學(xué)生學(xué)號;</b></p><p>  2:若該學(xué)生存在,打印該學(xué)生相關(guān)信息。</p><p>  查看多個(gè)學(xué)生記錄。具體功能為:</p><p>  1:打印出所有學(xué)生的記錄;</p><p>  2:能分別按學(xué)號、姓名

29、、性別、年齡和分?jǐn)?shù)進(jìn)行排序。</p><p><b>  業(yè)務(wù)規(guī)則說明:</b></p><p>  1:輸入選項(xiàng)獲得查看方式,獲得容器對象。</p><p>  2:全部查看顯示獲得全部學(xué)生信息</p><p><b>  3:查看特定學(xué)生。</b></p><p><

30、;b>  輸入學(xué)生學(xué)號;</b></p><p><b>  判斷學(xué)生是否存在</b></p><p>  如果存在顯示單個(gè)學(xué)生,如果不存在提示不存在,重新輸入。</p><p><b>  2.7退出系統(tǒng)</b></p><p><b>  提示是否退出</b&g

31、t;</p><p><b>  3系統(tǒng)分析</b></p><p><b>  3.1系統(tǒng)用例圖</b></p><p>  用例圖主要用來圖示化系統(tǒng)的主事件流程,它主要用來描述需求,即希望系統(tǒng)具備的完成一定功能的動作,通俗地理解用例就是軟件的功能模塊,是設(shè)計(jì)系統(tǒng)分析階段的起點(diǎn),設(shè)計(jì)人員根據(jù)需求來創(chuàng)建和解釋用例圖,用來描

32、述軟件應(yīng)具備哪些功能模塊以及這些模塊之間的調(diào)用關(guān)系。</p><p>  3.2 系統(tǒng)總體用例圖</p><p>  本系統(tǒng)包括三類角色:教師、管理員和學(xué)生。教師可以進(jìn)行分報(bào)表,記錄分?jǐn)?shù)和更新分?jǐn)?shù)的操作,管理員可以查看分?jǐn)?shù)和進(jìn)行成績的總報(bào)表,學(xué)生可以查看個(gè)人成績。同時(shí)系統(tǒng)還可以加載分?jǐn)?shù)和保存分?jǐn)?shù)。其系統(tǒng)總體用例圖如圖2.1所示:</p><p>  圖 3.1 系統(tǒng)

33、總體用例圖</p><p>  3.3學(xué)生信息用例圖</p><p>  學(xué)生信息管理模塊包括三類角色,可分別根據(jù)自己的權(quán)限對個(gè)人信息進(jìn)行增加、刪除和修改等操作。其用例圖如圖3.2所示:</p><p>  圖 3.2 學(xué)生信息用例圖</p><p>  3.4管理員信息用例圖</p><p>  管理員信息管理模塊包

34、括兩種角色,根據(jù)不同的權(quán)限可以添加管理員、查看管理員、刪除管理員,還包括登錄, 管理員信息用例圖如圖3.3所示:</p><p>  圖 3.3 管理員信息用例圖</p><p><b>  4系統(tǒng)概要設(shè)計(jì)</b></p><p>  4.1 軟件設(shè)計(jì)的原則</p><p><b>  1.模塊化</b&

35、gt;</p><p>  模塊化就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。</p><p>  Meyer提出了五條標(biāo)準(zhǔn),可以用這五條標(biāo)準(zhǔn)來評價(jià)一種設(shè)計(jì)方法定義有效的模塊系統(tǒng)的能力。下面列出這五條標(biāo)準(zhǔn)。</p><p><b> ?。?)模塊可分解性</b&

36、gt;</p><p>  如果一種設(shè)計(jì)方法提供了把問題分解為子問題的系統(tǒng)化機(jī)制,它就能降低整個(gè)問題的復(fù)雜性,從而可以實(shí)現(xiàn)一種有效的模塊化解決方案。</p><p><b>  (2)模塊可組裝性</b></p><p>  如果一種設(shè)計(jì)方法能把現(xiàn)有的(可重用的)設(shè)計(jì)構(gòu)件組裝成新系統(tǒng),它就能提供一種并非一切都從頭開始做的模塊化解決方案。<

37、/p><p><b>  (3)模塊可理解性</b></p><p>  如果可以把一個(gè)模塊作為一種獨(dú)立單元(無需參考其他模塊)來理解,那么,這樣的模塊是易于構(gòu)造和易于修改的。</p><p><b> ?。?)模塊連續(xù)性</b></p><p>  如果對系統(tǒng)需求的微小修改只導(dǎo)致對個(gè)別模塊,而不是對整

38、個(gè)系統(tǒng)的修改,則修改所引起的副作用將最小。</p><p><b> ?。?)模塊保護(hù)性</b></p><p>  如果在一個(gè)模塊內(nèi)出現(xiàn)異常情況時(shí),它的影響局限在該模塊內(nèi)部,則由錯(cuò)誤引起的副作用將最。</p><p>  采用模塊化原理可以使軟件結(jié)構(gòu)清晰,不僅容易設(shè)計(jì)也容易閱讀和理解。因?yàn)槌绦蝈e(cuò)誤通常局限在有關(guān)的模塊及它們之間的接口中,所以模

39、塊化使軟件容易測試和調(diào)試,因而有助于提高軟件的可靠性。因?yàn)樽儎油簧婕吧贁?shù)幾個(gè)模塊,所以模塊化能夠提高軟件的可修改性。模塊化也有助于軟件開發(fā)工程的組織管理,一個(gè)復(fù)雜的大型程序可以由許多程序員分工編寫不同的模塊,并且可以進(jìn)一步分配技術(shù)熟練的程序員編寫困難的模塊。</p><p><b>  2.抽象</b></p><p>  人類在認(rèn)識復(fù)雜現(xiàn)象的過程中使用的最強(qiáng)有力

40、的思維工具是抽象。把這些相似的方面集中和概括起來,暫時(shí)忽略它們之間的差異,這就是抽象?;蛘哒f抽象就是抽出事物的本質(zhì)特性而暫時(shí)不考慮它們的細(xì)節(jié)。</p><p><b>  3.逐步求精</b></p><p>  逐步求精是人類解決復(fù)雜問題時(shí)采用的基本技術(shù),也是許多軟件工程技術(shù)(例如,規(guī)格說明技術(shù),設(shè)計(jì)和實(shí)現(xiàn)技術(shù)、測試和集成技術(shù))的基礎(chǔ)??梢园阎鸩角缶x為:“為了能

41、集中精力解決主要問題而盡量推遲對問題細(xì)節(jié)的考慮?!?lt;/p><p>  求精實(shí)際上是細(xì)化過程。我們從在高抽象級別定義的功能陳述(或信息描述)開始。也就是說,該陳述僅僅概念性地描述了功能或信息,但是并沒有提供功能的內(nèi)部工作情況或信息的內(nèi)部結(jié)構(gòu)。求精要求設(shè)計(jì)者細(xì)化原始陳述,隨著每個(gè)后續(xù)求精(細(xì)化)步驟的完成而提供越來越多的細(xì)節(jié)。</p><p><b>  4.信息隱藏</b&

42、gt;</p><p>  應(yīng)用模塊化原理時(shí),自然會產(chǎn)生的一個(gè)問題是:“為了得到最好的一組模塊,應(yīng)該怎樣分解軟件”。信息隱藏原理指出:應(yīng)該這樣設(shè)計(jì)和確定模塊,使得一個(gè)模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。</p><p>  4.2 系統(tǒng)HIPO圖</p><p>  HIPO圖是美國IBM公司發(fā)明的“層次圖加輸入/處理/輸出圖”

43、的英文縮寫。根據(jù)系統(tǒng)的模塊層次結(jié)構(gòu)可得到系統(tǒng)HIPO圖,本軟件的HIPO圖如圖4.1所示。</p><p>  圖 4.1 系統(tǒng)HIPO圖</p><p>  模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募稀J强梢詥为?dú)被命名的而且可通過名字來訪問,例如,過程、函數(shù)、子程序、宏等等都可作為模塊。模塊化就是將程序劃分成若干個(gè)模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集合起來組成一個(gè)整體,可以完成指定

44、的功能滿足問題的要求。</p><p>  模塊化設(shè)計(jì)不僅降低了系統(tǒng)的復(fù)雜性,使得系統(tǒng)容易修改,而且推動了系統(tǒng)各個(gè)部分的并行開發(fā),從而提高了軟件的生產(chǎn)效率。</p><p>  以下為成績管理的IPO表,如圖4.2所示:</p><p>  圖 4.2 成績管理IPO表</p><p>  4.3 數(shù)據(jù)庫表設(shè)計(jì)</p><

45、p>  邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù)是把概念結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的E-R圖轉(zhuǎn)換成與選用的DBMS產(chǎn)品所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu)。E-R圖所需解決的問題是如何確定實(shí)體和實(shí)體間的關(guān)系,如何確定這些關(guān)系模式的屬性和碼。數(shù)據(jù)庫中兩實(shí)體間1:n聯(lián)系轉(zhuǎn)換為一個(gè)與n端對應(yīng)的關(guān)系模式合并的關(guān)系模式的方法是將聯(lián)系的屬性與1端的碼加入n端作為屬性,主碼為n端實(shí)體的主碼。以下為本系統(tǒng)中部分表的簡單介紹。</p><p>  1、管理員

46、基本信息表包含管理員編號、管理員姓名、管理員密碼,設(shè)計(jì)時(shí)注意AdminID設(shè)為主鍵,如表3.1所示:</p><p>  表 4.1 管理員基本信息表</p><p>  2、學(xué)生基本信息表包含的信息是學(xué)生編號、學(xué)生姓名、學(xué)生性別、學(xué)生年齡、家庭住址、聯(lián)系電話等信息,設(shè)計(jì)時(shí)注意ID字段設(shè)為主鍵,設(shè)為Int類型,如表3.2所示:</p><p>  表 4.2 學(xué)生基

47、本信息表</p><p>  3、教師基本信息表包含教師編號、教師姓名、教師年齡、家庭住址、聯(lián)系電話、所教科目等信息,設(shè)計(jì)時(shí)注意ID字段設(shè)為主鍵,設(shè)為Int類型,如表4.3所示:</p><p>  表 4.3 教師基本信息表</p><p>  4、成績基本信息表包括學(xué)生編號、科目類型、任課教師、所得分?jǐn)?shù),ID設(shè)為主鍵,如表4.4所示:</p>&l

48、t;p>  表 4.4 成績基本信息信息表</p><p><b>  5系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p>  5.1 系統(tǒng)程序流程圖</p><p>  5.1.1 管理員登錄模塊</p><p>  管理員登錄的流程是:如果管理員存在,則直接輸入賬號密碼,系統(tǒng)判斷賬號密碼是否正確,如果輸入不正確,重新輸入,

49、直到輸入正確之后才可以進(jìn)入系統(tǒng);當(dāng)管理員不存在時(shí),作者選擇注冊,根據(jù)個(gè)人詳細(xì)情況輸入個(gè)人信息,系統(tǒng)將會判斷輸入的信息是否正確,直到輸入的信息正確之后才注冊成功,然后輸入注冊的賬號密碼登錄系統(tǒng),系統(tǒng)仍會判斷賬號密碼是否正確,直到輸入正確的賬號密碼才會進(jìn)入系統(tǒng)。其流程圖如圖5.1所示:</p><p>  圖 5.1 管理員登錄流程圖</p><p>  5.1.2 成績管理模塊</p&

50、gt;<p>  成績管理的流程是:管理員輸入賬號密碼之后,系統(tǒng)判斷輸入賬號密碼是否正確,不正確,重新輸入直到正確才可以進(jìn)入后臺管理系統(tǒng),選擇成績管理,選擇要進(jìn)行審核的成績,進(jìn)行編輯修改,之后再進(jìn)一步審核,確定成績是否錄用,如果是存儲成績,則會顯示在系統(tǒng)前臺的首頁。其流程圖如圖4.2所示:</p><p>  圖5.2 成績管理流程圖</p><p>  5.2 系統(tǒng)過程設(shè)計(jì)

51、 </p><p>  過程設(shè)計(jì)的任務(wù)不是具體地編寫程序,而是要設(shè)計(jì)出程序的“藍(lán)圖”,程序員根據(jù)這個(gè)藍(lán)圖寫出實(shí)際的代碼。因此,過程設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。</p><p>  在軟件的生命周期中,實(shí)際上對于長期使用的軟件系統(tǒng)而言,人讀程序的時(shí)間可能比寫程序的時(shí)間還要長得多。因此,衡量程序的質(zhì)量不僅要看它的邏輯是否正確,性能是否滿足要求,更主要的是要看它是否容易閱讀和理解

52、。過程設(shè)計(jì)的目標(biāo)不僅僅是邏輯上正確地實(shí)現(xiàn)每個(gè)模塊的功能,更重要的是設(shè)計(jì)出的處理過程應(yīng)該盡可能簡明易懂。結(jié)構(gòu)程序設(shè)計(jì)技術(shù)是實(shí)現(xiàn)上述目標(biāo)的關(guān)鍵技術(shù),因此是過程設(shè)計(jì)的邏輯基礎(chǔ)。</p><p>  N-S圖是一種符合結(jié)構(gòu)化程序設(shè)計(jì)原則的圖形描述工具,又稱之為盒圖。它有以下特點(diǎn):</p><p>  1) 功能域明確,可以從盒圖上一眼就看出來。</p><p>  2)不可

53、能任意轉(zhuǎn)移控制。</p><p>  3)很容易確定局部和全程數(shù)據(jù)的作用域。</p><p>  4)很容易表明嵌套關(guān)系,也可以表示模塊的層次結(jié)構(gòu)。</p><p>  系統(tǒng)前臺的N-S圖,如圖5.3所示:</p><p>  圖 5.3 系統(tǒng)前臺N-S圖</p><p>  PAD 是問題分析圖(Problem An

54、alysis Diagram)的英文縮寫,它用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,是一種用結(jié)構(gòu)化程序設(shè)計(jì)思想表現(xiàn)程序邏輯結(jié)構(gòu)的圖形工具,將這種圖翻譯成程序代碼比較容易。</p><p>  PAD圖的主要優(yōu)點(diǎn)如下:</p><p> ?。?)使用表示結(jié)構(gòu)化控制的PAD符號所設(shè)計(jì)出來的程序必然是結(jié)構(gòu)化程序。</p><p> ?。?)PAD圖描述的程序結(jié)構(gòu)十分清晰。&

55、lt;/p><p>  圖中最左面的豎線是程序的主線,即第一層結(jié)構(gòu)。隨著程序?qū)哟卧黾?,PAD圖逐漸向右延伸,每增加一個(gè)層次,圖形向右擴(kuò)展一條豎線,PAD圖中豎線的總條數(shù)就是程序的層次數(shù)。</p><p> ?。?)用 PAD 圖表現(xiàn)程序邏輯易讀、易懂、易記。 PAD圖是二維樹形結(jié)構(gòu)的圖形,程序從圖中最左豎線上端的結(jié)點(diǎn)開始執(zhí)行,自上而下,從左到右順序執(zhí)行,遍歷所有結(jié)點(diǎn)。</p>&

56、lt;p> ?。?)有利于提高軟件的可靠性和軟件生產(chǎn)率。容易將PAD圖轉(zhuǎn)換成高級語言源程序,這種轉(zhuǎn)換可用軟件工具自動完成,從而可以省去人工編碼的工作,有利于提高軟件的可靠性和軟件生產(chǎn)率。</p><p>  (5)既可用于表示程序邏輯,也可用于描述數(shù)據(jù)結(jié)構(gòu)。</p><p>  (6)PAD 圖的符號支持自頂向下、逐步求精方法的使用。</p><p>  開始

57、設(shè)計(jì)者可以定義一個(gè)抽象的程序,隨著設(shè)計(jì)工作的深入而使用 def 符號逐步增加細(xì)節(jié),直至完成詳細(xì)設(shè)計(jì),系統(tǒng)前臺的PAD圖,如圖5.4所示:</p><p>  圖 5.4 系統(tǒng)前臺PAD圖</p><p><b>  6 模塊分析</b></p><p>  6.1 用戶管理模塊</p><p>  添加用戶,刪除用戶:&

58、lt;/p><p>  public void managementUser(String sa) {</p><p>  interFram = new JInternalFrame(sa, true, true, true, true);</p><p>  interFram.setBounds(0, 0, frm1.width, frm1.height);<

59、;/p><p>  interFram.validate();</p><p>  interFram.setVisible(true);</p><p>  jkjkjk = new 管理用戶();</p><p>  interFram.add(jkjkjk);</p><p>  add(interFram, Bor

60、derLayout.CENTER);</p><p>  圖6.1 用戶管理流程圖</p><p>  6.2增加學(xué)生信息模塊</p><p>  對學(xué)生信息進(jìn)行增加::</p><p>  public void addC(String sa) {</p><p>  interFram = new JInterna

61、lFrame(sa, true, true, true, true);</p><p>  interFram.setBounds(0, 0, frm1.width, frm1.height);</p><p>  interFram.validate();</p><p>  interFram.setVisible(true);</p><p

62、>  jkjkjk1 = new 信息();</p><p>  interFram.add(jkjkjk1);</p><p>  add(interFram, BorderLayout.CENTER);</p><p><b>  }</b></p><p>  stu 學(xué)生 extends JPanel {&

63、lt;/p><p>  private static final long serialVersionUID = -2018754547089377035L;</p><p>  JTable table;</p><p>  JScrollPane scroll;</p><p>  String rili[][] = new String[1

64、00][3];</p><p>  String str1, str2, str3;</p><p>  Object name[] = { "學(xué)號", "學(xué)科", "成績" };</p><p>  Connection con;</p><p>  int lyl, lwc;&l

65、t;/p><p>  Statement sql;</p><p>  ResultSet rs;</p><p>  圖6.2 學(xué)生信息增加流程圖</p><p>  6.3 修改學(xué)生信息模塊</p><p>  對學(xué)生的成績及信息進(jìn)行修改::</p><p>  String rili[][]

66、= new String[100][4];</p><p>  JButton f = JButton("修改信息");</p><p>  學(xué)生信息視圖表() {</p><p><b>  try {</b></p><p>  con = DriverManager.getConnection(

67、"jdbc:odbc:qyl", "", "");</p><p>  sql = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,</p><p>  ResultSet.CONCUR_READ_ONLY);</p><p>  rs = sql

68、.executeQuery("select * from 已修改視圖 WHERE SNO = " + "'"+ qyl + "'");</p><p>  int i = 0;</p><p>  while (rs.next()) {</p><p>  rili[i][0] = rs.g

69、etString(1);</p><p>  rili[i][1] = rs.getString(2);</p><p>  rili[i][2] = rs.getString(3);</p><p>  rili[i][3] = rs.getString(4);</p><p><b>  i++;</b></p

70、><p><b>  }</b></p><p><b>  }</b></p><p>  Stringoldvalue = table.getValueAt(table.getSelectedRow(),</p><p>  table.getSelectedColumn()).toString(

71、);</p><p>  int row = table.getSelectedRow();</p><p>  int column = table.getSelectedColumn();</p><p>  if(column==0){</p><p>  System.out.println(oldvalue);</p>

72、<p>  System.out.println(row+"\t"+column);</p><p>  System.out.println(rili[row][column+2]);</p><p>  int n = JOptionPane.showConfirmDialog(jk, "您選擇刪除"</p><p

73、>  + rili[row][1]+"("+rili[row][2]+"\b)"+"成績\n是否繼續(xù)?", "提示對話框",</p><p>  JOptionPane.YES_NO_OPTION);</p><p>  if (n == JOptionPane.YES_OPTION) {</p&g

74、t;<p>  System.out.println(rili[row][1]);</p><p>  String del = "DELETE FROM SC WHERE CNO = " +"'"+rili[row][1]+"'" ;</p><p>  圖6.3修改學(xué)生成績流程圖</p>

75、;<p>  6.4 綜合查詢模塊</p><p>  class 查詢 extends JPanel {</p><p>  private static final long serialVersionUID = -4737165668992172494L;</p><p>  JTable table;</p><p> 

76、 JScrollPane scroll;</p><p>  String rili[][] = new String[100][5];</p><p>  Object name[] = { "學(xué)號", "姓名", "性別", "年齡", "系別" };</p><p&

77、gt;  int lht, lyl, lwc;</p><p>  Connection con;</p><p>  String oldvalue = null;</p><p>  Statement sql;</p><p>  String str1, str2, str3, str4, str5;</p><p

78、>  ResultSet rs;</p><p>  6.5 存儲過程及觸發(fā)器:</p><p>  觸發(fā)器:刪除S表中的數(shù)據(jù)以后SC表中的相應(yīng)的數(shù)據(jù)也被刪除</p><p>  CREATE TRIGGER delS_SC ON S</p><p>  FOR DELETE </p><p>  AS d

79、eclare @SNO_DEL char(12)</p><p>  select @SNO_DEL =SNO from deleted</p><p>  delete from SC</p><p>  where SNO=@SNO_DEL</p><p>  觸發(fā)器:更新S表中的SNO后SC表中的也相應(yīng)改變</p><

80、;p>  CREATE TRIGGER UptateS_SC ON S </p><p>  FOR UPDATE </p><p>  AS IF UPDATE(SNO)</p><p><b>  BEGIN</b></p><p>  DECLARE @SNO_NEW CHAR(12),@SNO_OLD CH

81、AR(12)</p><p><b>  SEL</b></p><p>  ECT @SNO_NEW = SNO FROM INSERTED</p><p>  SELECT @SNO_OLD =SNO FROM DELETED</p><p>  UPDATE SC SET SNO =@SNO_NEW WHERE S

82、NO =@SNO_OLD</p><p><b>  END</b></p><p>  觸發(fā)器:刪除C表中的信息后SC表中的相應(yīng)信息也會被刪除掉</p><p>  CREATE TRIGGER delC_SC ON C</p><p>  FOR DELETE </p><p>  AS

83、 declare @CNO_DEL char(2)</p><p>  select @CNO_DEL =CNO from deleted</p><p>  delete from SC</p><p>  where CNO=@CNO_DEL</p><p>  觸發(fā)器:更新C表中的信息后SC表中的相應(yīng)信息也會隨著改變</p>

84、<p>  CREATE TRIGGER UptateC_SC ON C </p><p>  FOR UPDATE </p><p>  AS IF UPDATE(CNO)</p><p><b>  BEGIN</b></p><p>  DECLARE @SNO_NEW CHAR(12),@SNO_O

85、LD CHAR(12)</p><p>  SELECT @SNO_NEW = CNO FROM INSERTED</p><p>  SELECT @SNO_OLD =CNO FROM DELETED</p><p>  UPDATE SC SET CNO =@SNO_NEW WHERE CNO =@SNO_OLD</p><p><

86、b>  END</b></p><p>  觸發(fā)器:刪除T表中的教師信息后TC表中的相應(yīng)信息也會別刪掉</p><p>  CREATE TRIGGER delT_TC ON T</p><p>  FOR DELETE </p><p>  AS declare @SNO_DEL char(12)</p>

87、<p>  select @SNO_DEL =TNO from deleted</p><p><b>  7系統(tǒng)測試</b></p><p>  首先進(jìn)入NETBEANS,打開工程person.dsw,然后進(jìn)入源程序,接著選擇Build下的Execute person.exe即可,也可以不打開工程,直接雙擊person文件夾下的debug或releas

88、e子文件夾下的person.exe文件即可運(yùn)行程序。</p><p>  1. 系統(tǒng)登錄界面,如圖7.1-7.3所示。</p><p><b>  圖 7.1</b></p><p><b>  圖 7.2</b></p><p><b>  圖 7.3</b></p&g

89、t;<p>  2.系統(tǒng)主界面,如圖7.4所示。</p><p><b>  圖 7.4</b></p><p>  3.增加學(xué)生信息界面,如圖7.5所示。</p><p><b>  圖 7.5</b></p><p>  4.修改學(xué)生信息界面,如圖7.6所示。</p>

90、<p><b>  圖 7.6</b></p><p>  5.查找學(xué)生信息界面,如圖7.7所示。</p><p><b>  圖 7.7</b></p><p>  本系統(tǒng)依據(jù)開發(fā)要求主要應(yīng)用于教育系統(tǒng),完成對日常的教育工作中學(xué)生成績檔案的數(shù)字化管理。開發(fā)本系統(tǒng)可使學(xué)院教職員工減輕工作壓力,比較系統(tǒng)地對教務(wù)、

91、教學(xué)上的各項(xiàng)服務(wù)和信息進(jìn)行管理,同時(shí),可以減少勞動力的使用,加快查詢速度、加強(qiáng)管理,以及國家各部門關(guān)于信息化的步伐,使各項(xiàng)管理更加規(guī)范化。</p><p>  目前,學(xué)校工作繁雜、資料重多,雖然各類管理信息系統(tǒng)已進(jìn)入高校,但還未普及,而對于學(xué)生成績管理來說,目前還沒有一套完整的、統(tǒng)一的系統(tǒng)。因此,開發(fā)一套適和大眾的、兼容性好的系統(tǒng)是很有必要的。</p><p>  本系統(tǒng)在開發(fā)過程中,注意

92、使其符合操作的業(yè)務(wù)流程,并力求系統(tǒng)的全面性、通用性,使得本系統(tǒng)不只適用于一家教育機(jī)構(gòu)。在開發(fā)方法的選擇上,選擇了生命周期法與原型法相結(jié)合的方法,遵循系統(tǒng)調(diào)查研究、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)和系統(tǒng)實(shí)施四個(gè)主要階段進(jìn)行設(shè)計(jì),而在具體的設(shè)計(jì)上,采取了演化式原型法,隨著用戶的使用及對系統(tǒng)了解的不斷加深,對某一部分或幾部分進(jìn)行重新分析、設(shè)計(jì)、實(shí)施。8結(jié)論</p><p>  繼C++之后學(xué)習(xí)Java 程序設(shè)計(jì)語言會感覺很輕松,因?yàn)?/p>

93、Java 與C++語法類似,并把C++中一些較低級和較難以理解的功能都去掉了,如多繼承、指針等,同時(shí)Java增強(qiáng)了部分功能,如“+”運(yùn)算符的重載。對于初學(xué)Java的人而言,難點(diǎn)是 Java中的 引用、初始化一個(gè)類過程等??偟膩碚f,Java 其易于學(xué)習(xí)、高效率的執(zhí)行方式、平臺無關(guān)性、分布式與高安全性及其豐富的API文檔和類庫等特點(diǎn)都說明Java 是程序設(shè)計(jì)語言的偉大進(jìn)步的表現(xiàn)。</p><p>  可以說這么說,本

94、次課程設(shè)計(jì)綜合考察了我們對Java程序設(shè)計(jì)知識的掌握熟練程度和實(shí)際運(yùn)用能力。其間,涉及到了Java 中的絕大多數(shù)的知識點(diǎn),如Java圖形用戶界面設(shè)計(jì)、Java的異常處理機(jī)制、Java中的多線程程序設(shè)計(jì)、Java輸入輸出流等。</p><p>  程序?qū)崿F(xiàn)的關(guān)鍵在于功能的合理劃分以及各個(gè)包或者類之間的通訊問題,只要分析清楚這兩點(diǎn),剩下的就是按部就班的寫代碼了。所以設(shè)計(jì)是關(guān)鍵。</p><p>

95、;  功能實(shí)現(xiàn)了,再就是如何對程序進(jìn)行性能優(yōu)化的問題。如有的類需要多個(gè)對象實(shí)例,這時(shí)我們就可以使用Singleton模式產(chǎn)生唯一的對象實(shí)例,如“文件分割※合并器”中MyWindowListener類;文件操作中加入緩沖機(jī)制;對與圖像可以使用使用雙緩沖區(qū)等等。</p><p>  學(xué)習(xí)Java,我推薦使用 “六步走”的方法,循序漸進(jìn):</p><p>  第一步是安裝好JDK,寫一個(gè)Hell

96、o World。 其實(shí)JDK的學(xué)習(xí)沒有那么簡單,關(guān)于JDK有兩個(gè)問題是很容易一直困擾Java程序員的地方:一個(gè)是CLASSPATH的問題,其實(shí)從原理上來說,是要搞清楚JRE的ClassLoader是如何加載Class的;另一個(gè)問題是package和import問題,如何來尋找類的路徑問題。把這兩個(gè)問題摸索清楚了,就掃除了學(xué)習(xí)Java和使用JDK的最大障礙。推薦看一下王森的《Java深度歷險(xiǎn)》,對這兩個(gè)問題進(jìn)行了深入的探討。 第二步是學(xué)習(xí)

97、Java的語法。第三步是學(xué)習(xí)Java的面向?qū)ο蟮木幊陶Z言的特性的地方。比如繼承,構(gòu)造器,抽象類,接口,方法的多態(tài),重載,覆蓋,Java的異常處理機(jī)制。第四步就是熟悉Java的類庫。第五步,Java Web 編程。第六步,J2EE編程。</p><p>  總之,作為一門程序設(shè)計(jì)語言,Java 的學(xué)習(xí)務(wù)必要做到多看多寫多想多請教。</p><p>  多看,看高手、大師的程序,借鑒其解題思路

98、和程序架構(gòu);多寫,學(xué)習(xí)程序設(shè)計(jì)很重要的就是要自己親自動手寫代碼,切忌犯眼高手低的弊病,而且這樣記憶非常深刻;多想,程序調(diào)試中出現(xiàn)一些“莫明其妙”的問題,為什么會這樣而不是那樣;多請教:程序設(shè)計(jì)說到底是要徹底搞清設(shè)計(jì)該語言的人的思想,遇到問題想不通應(yīng)該請教同學(xué)、老師等。這樣可達(dá)到事半功倍的目的。</p><p><b>  9參考文獻(xiàn)</b></p><p>  1.

99、 黃曉東﹒JAVA課程設(shè)計(jì)案例精編(第二版)[M]中國水利電出版社,2005</p><p>  2. 徐迎曉﹒JAVA語法及網(wǎng)絡(luò)應(yīng)用設(shè)計(jì)。清華大學(xué)出版社。</p><p>  3. 技術(shù)交流網(wǎng)站CSDN:網(wǎng)址: http://www.csdn.net/</p><p>  4. 技術(shù)交流網(wǎng)站博客園:網(wǎng)址: http://www.cnblogs

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論