版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- java學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- java課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- java課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- java課程設(shè)計(jì)----學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)java課程設(shè)計(jì)
- java學(xué)生成績管理系統(tǒng) 課程設(shè)計(jì)
- java學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)--基于java的學(xué)生成績管理系統(tǒng)
- java程序課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)的設(shè)計(jì)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告-學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)報(bào)告--學(xué)生成績管理系統(tǒng)
- 課程設(shè)計(jì)報(bào)告---學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)報(bào)告
評論
0/150
提交評論