2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計說明書</b></p><p>  2009年6月18日</p><p> 課程名稱:軟件工程導(dǎo)論</p><p> 課程代碼:</p><p> 題 目:企業(yè)工資管理系統(tǒng)</p><p> 年級/專業(yè)/班:08級計科二班</p><p

2、> 學(xué)生姓名:</p><p> 學(xué) 號:</p><p> 指導(dǎo)老師:</p><p> 開題時間:2009年6月5日</p><p> 完成時間:2009年6月29日</p><p>  課程設(shè)計任務(wù)書及成績評定</p><p>  1、設(shè)計的目的與要求 </p>&

3、lt;p>  1)加強(qiáng)學(xué)生的實踐能力;</p><p>  2)理解小型系統(tǒng)開發(fā)的基本步驟;</p><p>  3)本系統(tǒng)的功能包括:檔案信息管理模塊、工資管理模塊、工資統(tǒng)計模塊,部門查詢,特殊查詢,報表查詢。</p><p>  2、設(shè)計進(jìn)度及完成情況</p><p><b>  3、成績評定</b></

4、p><p>  設(shè)計成績: (教師填寫)</p><p>  指導(dǎo)老師: (簽 字)</p><p>  二00九 年 月 </p><p><b>  目 錄</b></p><p><b>  目 錄

5、1</b></p><p>  一 項目開發(fā)計劃書3</p><p><b>  1.1 引言3</b></p><p>  1.2 工資管理系統(tǒng)功能模塊描述4</p><p>  1.3 實施計劃4</p><p>  1.4 支持條件5</p><p&

6、gt;<b>  二 可行性分析5</b></p><p>  2.1 可行性研究前提5</p><p>  2.2 經(jīng)濟(jì)上可行性6</p><p>  2.3 技術(shù)可行性6</p><p>  2.4 開發(fā)工具的選擇6</p><p>  2.5 開發(fā)工具概述6</p>

7、<p>  2.5.1 JSP 概述6</p><p>  2.5.2 SQL Server數(shù)據(jù)庫簡介7</p><p><b>  三 需求分析8</b></p><p>  3.1 市場需求分析8</p><p>  3.2 系統(tǒng)需求分析8</p><p>  3.2.1

8、 系統(tǒng)目標(biāo)8</p><p>  3.2.2 系統(tǒng)的分析和概要設(shè)計9</p><p>  3.2.3 系統(tǒng)功能分析10</p><p>  3.2.4 系統(tǒng)業(yè)務(wù)流程圖11</p><p>  3.3 系統(tǒng)E-R圖12</p><p>  3.4 數(shù)據(jù)流圖13</p><p>  3.

9、5 數(shù)據(jù)字典15</p><p><b>  四 系統(tǒng)設(shè)計16</b></p><p>  4.1 系統(tǒng)處理流程和數(shù)據(jù)流程16</p><p>  4.2 系統(tǒng)數(shù)據(jù)庫概念結(jié)構(gòu)18</p><p>  4.3 系統(tǒng)數(shù)據(jù)庫邏輯結(jié)構(gòu)18</p><p>  4.4 系統(tǒng)數(shù)據(jù)庫設(shè)計19<

10、/p><p><b>  五 系統(tǒng)測試22</b></p><p>  5.1 部分代碼22</p><p>  5.1.1 登陸平臺22</p><p>  5.1.2 工資查詢系統(tǒng)24</p><p>  5.1.3 工資發(fā)放系統(tǒng)26</p><p><b&

11、gt;  5.2測試27</b></p><p>  5.2.1 測試的作用和意義27</p><p>  5.2.2 測試方法27</p><p>  5.2.3 測試內(nèi)容28</p><p>  5.2.4 測試結(jié)果28</p><p><b>  六 總結(jié)29</b>

12、</p><p><b>  參考文獻(xiàn)29</b></p><p>  附錄:編碼規(guī)范29</p><p><b>  一 項目開發(fā)計劃書</b></p><p><b>  1.1 引言</b></p><p>  企業(yè)工資管理系統(tǒng)是一個企業(yè)單位不

13、可缺少的部分,它的內(nèi)容對于企業(yè)的決策者和管理者來說都至關(guān)重要,所以工資管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。使其公司工資管理初步實行計算機(jī)化,讓計算機(jī)在工資管理中得到初步應(yīng)用。使工資管理者總是根據(jù)準(zhǔn)確、及時的工資管理信息來進(jìn)行決策,實現(xiàn)管理。只有計算機(jī)才能將現(xiàn)代化社會中,成倍增長的工資管理信息量,進(jìn)行及時收集、加工、整理、貯存、檢索、傳遞、反饋給決策者。而一個企業(yè)工資管理系統(tǒng)在企業(yè)對工資管理已不可或缺。其功能主要有:&l

14、t;/p><p> ?。?)對輸入的工資管理數(shù)據(jù),進(jìn)行數(shù)值運(yùn)算和邏輯運(yùn)算,求解各種問題。</p><p> ?。?)對工資管理信息進(jìn)行加工來解決各種數(shù)據(jù)處理問題,為人事決策者在決策時提供依據(jù)。</p><p> ?。?)對工資管理的各種資料數(shù)據(jù)進(jìn)等統(tǒng)計計算,并將處理后的信息存貯起來。</p><p>  當(dāng)前,不少單位的工資管理部門對于計算機(jī)的應(yīng)

15、用還僅限于簡單的單機(jī)應(yīng)用,隨著時間的推移、任務(wù)的復(fù)雜、用戶的需求,其應(yīng)用還會擴(kuò)大。</p><p>  隨著計算機(jī)的廣泛應(yīng)用,計算機(jī)工資管理信息系統(tǒng)的建立,適應(yīng)了社會經(jīng)濟(jì)發(fā)的客觀要求,是工資管理現(xiàn)代化的一大進(jìn)步。今天我們運(yùn)用計算機(jī)進(jìn)行了工資管理檔案管理的初步現(xiàn)代化的開發(fā)和使用,它大大提高了工資管理工作者的工作效率,它把工資管理(檔案、工資)從繁重的手工操作中解脫出來,用更多精力從事創(chuàng)造性的管理活動;它能使決策、計

16、劃和其它管理活動更加科學(xué)、精確、靈活。因此,建立計算機(jī)工資管理信息系統(tǒng)是一種客觀發(fā)展必然趨勢。盡管在工資管理方面還不可能普遍使用計算機(jī),但從長遠(yuǎn)來說,工資管理現(xiàn)代化和計算機(jī)是不分割的。輕視或者拒絕利用計算機(jī)技術(shù),就不可能真正地、全面地實現(xiàn)工資管理現(xiàn)代化。</p><p>  1.2 工資管理系統(tǒng)功能模塊描述</p><p>  具體系統(tǒng)功能需求描述</p><p>

17、  (1) 檔案信息管理</p><p>  提供對”人員檔案信息”數(shù)據(jù)輸入、查詢功能。</p><p><b>  (2) 工資管理</b></p><p>  提供對”職工工資表”數(shù)據(jù)的輸入、查詢、統(tǒng)計功能。</p><p><b>  (3) 工資統(tǒng)計</b></p><p

18、>  提供對“職工工資表”數(shù)據(jù)的月統(tǒng)計,由系統(tǒng)自行生成“職工工資構(gòu)成情況表”實現(xiàn)該表的查詢、打印功能。</p><p><b>  (4) 部門查詢</b></p><p>  提供以某一部門為索引的”人員檔案信息”查詢功能。</p><p><b>  (5) 特殊查詢</b></p><p&g

19、t;  提供對日期型字段和合同期限的”人員檔案信息”查詢功能。</p><p><b>  (6) 報表查詢</b></p><p>  提供對工資、職工履歷的信息以報表的形式供用戶查詢、打印,另外用戶還可以對這些基本信息進(jìn)行更新和刪除, </p><p><b>  1.3 實

20、施計劃</b></p><p>  工作任務(wù)的分門與人員分工 </p><p>  組長: 賀澤溪 任務(wù): (1)系統(tǒng)總的開發(fā)計劃書</p><p> ?。?)每周至少組織小組討論一次,記錄討論內(nèi)</p><p><b>  列出本周開發(fā)計劃</b></p><p> 

21、?。?)項目開發(fā)進(jìn)度的管理</p><p> ?。?)團(tuán)隊的組織和協(xié)調(diào)</p><p>  設(shè)計:羅維 馬紅操 任務(wù):(1)參與小組討論</p><p> ?。?)進(jìn)行系統(tǒng)的需求分析和系統(tǒng)設(shè)計</p><p> ?。?)完成系統(tǒng)需求說明書和系統(tǒng)設(shè)計說明書</p><p> ?。?)編寫測試計劃,參與系統(tǒng)測試<

22、/p><p> ?。?)協(xié)助文檔人員完成用戶相關(guān)文檔</p><p>  開發(fā):王日春 盧洪波 任務(wù):(1)參與小組討論</p><p> ?。?)根據(jù)設(shè)計完成編碼,并注釋</p><p><b> ?。?)進(jìn)行單元測試</b></p><p>  系統(tǒng)規(guī)劃階段: 項標(biāo)志性事件

23、 開始到完成</p><p>  開發(fā)階段: 目開發(fā)計劃書的完成 6.5-6.7</p><p>  需求分析階段: 系統(tǒng)需求說明書完成 6.8-6.10</p><p>  設(shè)計階段: 系統(tǒng)設(shè)計說明書 6.11-6.13</p><p>

24、  編碼實現(xiàn): 項目的形成 6.14-6.15</p><p>  測試階段: 測試計劃和Bug跟蹤列表 6.16-6.17</p><p>  移交階段: 項目的遞交 6.17-6.18</p><p><b>  1.4 支持條件&

25、lt;/b></p><p><b>  計算機(jī)系統(tǒng)支持</b></p><p>  操作系統(tǒng)需要 windows 2000以上版本;</p><p><b>  二 可行性分析</b></p><p>  2.1 可行性研究前提</p><p>  要求:滿足對工資管

26、理的基本要求及功能,并對職工信息收集、處理、保存。</p><p>  目標(biāo):實現(xiàn)無紙化辦公,節(jié)省成本,提高工作效率。</p><p>  條件、假定、限制:當(dāng)企業(yè)工資管理的信息量和復(fù)雜程度達(dá)到某一限度時,即管理人員的勞動強(qiáng)度超過其承受能力時,就必須采用新的管理手段,如用計算機(jī)技術(shù)對信息的收集、加工、傳遞和存貯等,這樣,一個工資管理系統(tǒng)就可以對企業(yè)職工工資進(jìn)行高效、合理、恰當(dāng)?shù)毓芾?。此系統(tǒng)

27、成本低廉,自開發(fā)到運(yùn)行結(jié)束至少可運(yùn)行3年,開發(fā)成本不超過600人民幣,開發(fā)軟件到投入使用不超過1個月。</p><p>  2.2 經(jīng)濟(jì)上可行性</p><p>  開發(fā)成本:600元人民幣。</p><p>  效益:大幅度地提高工資管理信息系統(tǒng)的工作質(zhì)量和效率,讓企業(yè)掌握整個工資管理系統(tǒng)的全面情況,為管理人員提供了準(zhǔn)確的工資管理信息,促進(jìn)工資管理工作的規(guī)范化及各

28、項管理制度與指標(biāo)體系的建立和健全;提供各種加工處理了的工資管理信息,以滿足工資管理的特殊要求,適應(yīng)新形勢對職工隊伍提出的新要求。</p><p>  效益/投資比:暫時無法估算。</p><p>  投資回收期:大約3個月。</p><p><b>  2.3 技術(shù)可行性</b></p><p>  軟件需求:操作系統(tǒng)W

29、INDOWS 2000 Advance Server以上。</p><p>  硬件需求:賽揚(yáng)1.7G CPU、512M內(nèi)存 80G硬盤的計算機(jī)。</p><p>  本系統(tǒng)采用JSP實現(xiàn),依靠其強(qiáng)大的面向?qū)ο笙到y(tǒng),與SQL Server2000數(shù)據(jù)庫管理系統(tǒng)相結(jié)合,能在1個月內(nèi)開發(fā)出系統(tǒng)。</p><p>  2.4 開發(fā)工具的選擇</p><

30、p>  eclipse作為前臺的開發(fā)工具,用SQL Server200作為后臺支持?jǐn)?shù)據(jù)庫,通過JSP的數(shù)據(jù)庫控件來連接SQL Server200中并對其編程來實現(xiàn)各種功能。</p><p>  2.5 開發(fā)工具概述</p><p>  2.5.1 JSP 概述</p><p>  JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封

31、裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計和顯示分離,支持可重用的基于組件的設(shè)計,使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。 </p><p>  Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實

32、現(xiàn)建立動態(tài)網(wǎng)頁所需要的功能。 </p><p>  JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。 </p><p>  JSP的1.0規(guī)范的最后版本是1999年9月推出的,12月又推出了1.1規(guī)范。目前較新的是JSP1.2規(guī)范,JSP2.0規(guī)范的征求意見稿也已出臺。 </p><p&g

33、t;  JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο?,具有平臺無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點。 </p><p>

34、  自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。 </p><p>  JSP可用一種簡單易懂的等式表示為:HTML+Java=JSP。</p><p>  2.5.2 SQL Server數(shù)據(jù)庫簡介</p><p>  SQL Server是由Microsoft開發(fā)和推廣的關(guān)系

35、數(shù)據(jù)庫管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase、Ashton-Tate等三家公司共同開發(fā)的,并于1988年推出了第一個在OS/2版本上運(yùn)行的SQL Server系統(tǒng)。1992年Sybase和Microsoft這兩家公司將SQL Server移植到了Windows NT操作系統(tǒng)上,后來Microsoft致力于Windows NT平臺的SQL Server的開發(fā),而Sybase則專注于SQL Server在UNIX上

36、的應(yīng)用。 近年來在Microsoft SQL Server的發(fā)展歷程中不斷更新版本,有兩個版本具有重要的意義。即是在1996年推出的SQL Server6.5版本和在2000年8月推出的SQL Server2000版本。6.5版本使得SQL Server得到廣泛的應(yīng)用,而2000版本在功能和易用性上有很大的增強(qiáng),并推出了簡體中文版,它包括企業(yè)版、標(biāo)準(zhǔn)版、開發(fā)版和個人版等4個版本。</p><p><b>

37、;  三 需求分析</b></p><p>  3.1 市場需求分析</p><p>  工資管理系統(tǒng)是一個企業(yè)單位不可缺少的部分,它能為用戶提供充足的信息和快捷的查詢手段。</p><p> ?。?)一個工資管理系統(tǒng)可以高效能、大容量地收集、處理、存貯工資管理信息,大幅度地提高工資管理信息系統(tǒng)的工作質(zhì)量和效率。</p><p>

38、 ?。?)能夠為企業(yè)管理人員及時掌握整個工資管理系統(tǒng)的全面情況,提供系統(tǒng)的準(zhǔn)確的工資管理信息,可以促進(jìn)工資管理工作的規(guī)范化及各項管理制度與指標(biāo)體系的建立和健全。</p><p> ?。?)為企業(yè)提供各種加工處理了的工資管理信息,以滿足工資管理的特殊要求,適應(yīng)新形勢對職工隊伍提出的新要求,幫助管理人員選擇方案,實現(xiàn)優(yōu)化決策。</p><p>  雖然當(dāng)前,不少單位的工資管理部門對于計算機(jī)的應(yīng)

39、用還僅限于簡單的單機(jī)應(yīng)用,隨著時間的推移、任務(wù)的復(fù)雜、用戶的需求,其應(yīng)用還會擴(kuò)大。</p><p>  3.2 系統(tǒng)需求分析</p><p>  3.2.1 系統(tǒng)目標(biāo)</p><p>  企業(yè)工資管理系統(tǒng)可以用于支持企業(yè)完成工資管理工作,有如下3個方面的目標(biāo)。</p><p> ?。?)支持企業(yè)實現(xiàn)規(guī)范化的管理。 </p>&l

40、t;p> ?。?)支持企業(yè)高效率完成人事管理的日常業(yè)務(wù),包括新員工加入時人事檔案的建立,老員工轉(zhuǎn)出、辭職、退休等。 </p><p> ?。?)支持企業(yè)進(jìn)行人事管理及其相關(guān)方面的科學(xué)決策,如企業(yè)領(lǐng)導(dǎo)根據(jù)現(xiàn)有的員工合同期限決定是否繼續(xù)聘用等。</p><p>  3.2.2 系統(tǒng)的分析和概要設(shè)計</p><p>  根據(jù)實際情況,我們使用原型法(Rapid Pr

41、ototyping)即以少量代價快速地構(gòu)造一個可執(zhí)行的軟件系統(tǒng)模型。使用戶和開發(fā)人員可以較快地確定需求,然后采用循環(huán)進(jìn)化的開發(fā)方式,對系統(tǒng)模型作連續(xù)的精化,將系統(tǒng)需具備的性質(zhì)逐漸增加上去,直到所有的性質(zhì)全部滿足。此時模塊也發(fā)展成為最終產(chǎn)品了。</p><p>  通過對用戶需求的分析,我們可以分析出該工資管理系統(tǒng)大致可以分為六個模塊:人事檔案管理模塊、職工工資管理模塊、工資統(tǒng)計模塊的實現(xiàn)、部門查詢模塊、特殊查詢模

42、塊、報表查詢模塊。</p><p>  現(xiàn)在對這六個模塊做具體說明:</p><p>  人事基本情況管理模塊:</p><p><b>  輸入:職工信息</b></p><p>  輸出:“人員檔案表”</p><p>  功能:對人事基本信息的查詢</p><p>&

43、lt;b>  職工工資管理模塊</b></p><p><b>  輸入:人員月工資</b></p><p>  輸出:“職工工資表” </p><p>  功能:完成員工工資的查詢</p><p><b>  工資統(tǒng)計模塊</b></p><p>  輸出

44、:“職工工資統(tǒng)計表”</p><p>  功能:完成員工工資的統(tǒng)計和打印</p><p><b>  部門查詢模塊</b></p><p>  輸出:以部門為索引的“職工檔案信息”</p><p>  功能:完成以部門為索引的“職工檔案信息”的統(tǒng)計和查詢</p><p><b>  特殊

45、查詢模塊的實現(xiàn)</b></p><p>  輸出:滿足查詢條件的“職工檔案信息”和職工合同的期限</p><p>  功能:完成滿足查詢條件的“職工檔案信息”和職工合同的期限的查詢</p><p><b>  報表查詢模塊的實現(xiàn)</b></p><p>  輸出:員工履歷信息和工資信息的基本情況 查詢及打印功

46、能</p><p>  功能:完成對員工履歷信息和工資信息基本情況的查詢及打印</p><p>  3.2.3 系統(tǒng)功能分析</p><p>  本系統(tǒng)是基于JSP和SQL Server數(shù)據(jù)庫建立的B/S結(jié)構(gòu)管理系統(tǒng),考慮了兩種角色:工資管理員和普通員工。他們通過相同的登陸頁面,選擇不同的登陸方式,各自進(jìn)入自己的用戶界面</p><p>  

47、管理員進(jìn)入管理頁面可以對員工發(fā)放工資,可以新添加新的員工,修改自己的密碼,以及發(fā)布消息:</p><p>  普通用戶可以查看自己的工資情況,可以根據(jù)需要查詢具體每個月,或幾個月的工資發(fā)放情況,察看最近的動態(tài)發(fā)布消息,同時也可以修改密碼:</p><p>  3.2.4 系統(tǒng)業(yè)務(wù)流程圖</p><p>  3.3 系統(tǒng)E-R圖</p><p>

48、;  圖3-3 E-R圖</p><p><b>  3.4 數(shù)據(jù)流圖</b></p><p>  表6-1 底層數(shù)據(jù)流圖 </p><p>  表6-2 工資管理第一層數(shù)據(jù)流圖</p><p>  表6-3 工資管理的展開</p><p>  表6-4 本月工資管理的展開</p

49、><p><b>  3.5 數(shù)據(jù)字典</b></p><p>  通過系統(tǒng)需求分析,對企業(yè)工資管理系統(tǒng)編制數(shù)據(jù)字典如下:</p><p><b>  數(shù)據(jù)流定義</b></p><p><b>  數(shù)據(jù)存儲定義</b></p><p><b> 

50、 處理邏輯定義</b></p><p><b>  外部實體定義</b></p><p><b>  四 系統(tǒng)設(shè)計</b></p><p>  4.1 系統(tǒng)處理流程和數(shù)據(jù)流程</p><p>  4.2 系統(tǒng)數(shù)據(jù)庫概念結(jié)構(gòu)</p><p>  4.3 系統(tǒng)數(shù)據(jù)庫邏

51、輯結(jié)構(gòu)</p><p>  4.4 系統(tǒng)數(shù)據(jù)庫設(shè)計</p><p>  由于考慮到本系統(tǒng)是應(yīng)用在單機(jī)系統(tǒng)上,另外根據(jù)人員規(guī)模,我們只建立起一個數(shù)據(jù)庫,在此數(shù)據(jù)庫基礎(chǔ)上建立起如下表:</p><p>  ·職工基本信息表  employee_information_table</p><p>  ·職工工資表

52、employee_salary_table</p><p>  ·系統(tǒng)信息表 system_table </p><p><b>  下面我們詳細(xì)說明:</b></p><p>  表3-21 員工基本信息</p><p>  表3-22 部門查詢表</p><p>

53、  表3-23 員工工資表</p><p>  表3-24 工資統(tǒng)計表</p><p>  表3-25 特殊查詢表</p><p>  表3-26 報表查詢表</p><p><b>  五 系統(tǒng)測試</b></p><p><b>  5.1 部分代碼</b>&l

54、t;/p><p>  5.1.1 登陸平臺</p><p>  該平臺可以實現(xiàn)員工和管理員的登錄驗證,根據(jù)登陸的身份不同進(jìn)入不同的管理系統(tǒng)如:普通員工進(jìn)入工資查詢系統(tǒng),管理員則進(jìn)入工資發(fā)放系統(tǒng)。</p><p><b>  核心代碼:</b></p><p>  <%@page contentType="te

55、xt/html;charset=GB2312" session="true"%></p><p>  <%@page import="java.sql.*"%></p><p>  <jsp:useBean id="login" scope="session" class=&q

56、uot;DataBase.DBControl"></jsp:useBean></p><p><b>  <%</b></p><p>  String lname = request.getParameter("UserName");</p><p>  String lpassword

57、= request.getParameter("Password");</p><p>  int ltype = Integer.parseInt(request.getParameter("logintype"));</p><p>  if (ltype == 0) {</p><p>  if (login.isMan

58、ager(lname, lpassword, ltype)) {</p><p>  session.setAttribute("MANAGERID",String.valueOf(login.getMID()));</p><p>  session.setAttribute("MANAGERNAME",lname);</p><

59、;p>  session.setAttribute("MANAGERPASSWORD",lpassword);</p><p>  response.sendRedirect("manageMain.jsp");</p><p><b>  }</b></p><p><b>  else

60、 {</b></p><p>  response.sendRedirect("error.jsp");</p><p><b>  }</b></p><p><b>  }</b></p><p>  else if (ltype == 1) {</p>

61、;<p>  if (login.isUser(lname, lpassword)) {</p><p>  session.setAttribute("GUESTID",String.valueOf(login.getUID()));</p><p>  session.setAttribute("GUESTNAME",lname);

62、</p><p>  session.setAttribute("GUESTPASSWORD",lpassword);</p><p>  response.sendRedirect("user.jsp");</p><p><b>  }</b></p><p><b>

63、;  else {</b></p><p>  response.sendRedirect("error.jsp");</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  %></b>

64、</p><p>  以及javabean文件的核心部分:</p><p>  public boolean isManager(String manager, String password, int type) {</p><p>  this.setMname(manager);</p><p>  this.setMpassword(

65、password);</p><p>  String cstr = "select * from manager where managername='" + manager +</p><p>  "' and managerpassword='" + password + "'";</p

66、><p><b>  try {</b></p><p>  mcon = this.connection();</p><p>  mstmt = mcon.createStatement();</p><p>  mrs = mstmt.executeQuery(cstr);</p><p>  

67、if (mrs.next()) {</p><p>  setMID(mrs.getInt("MID"));</p><p>  return true;</p><p><b>  }</b></p><p><b>  else {</b></p><p&

68、gt;  return false;</p><p><b>  }</b></p><p><b>  }</b></p><p>  catch (Exception ex) {</p><p>  return false;</p><p><b>  }&l

69、t;/b></p><p><b>  }</b></p><p>  public boolean isUser(String user,String password){</p><p>  this.setUsername(user);</p><p>  this.setUserpassword(passw

70、ord);</p><p>  String ustr = "select * from guestuser where username='" + user +</p><p>  "' and userpassword='" + password + "'";</p><p&

71、gt;<b>  try{</b></p><p>  ucon=this.connection();</p><p>  ustmt=ucon.createStatement();</p><p>  urs=ustmt.executeQuery(ustr);</p><p>  if(urs.next()){<

72、/p><p>  setUID(urs.getInt("USERID"));</p><p>  return true;</p><p><b>  }else{</b></p><p>  return false;</p><p><b>  }</b>

73、</p><p>  }catch(Exception ex){</p><p>  System.out.println(ex.toString());</p><p>  return false;</p><p><b>  }</b></p><p><b>  }</b&

74、gt;</p><p>  5.1.2 工資查詢系統(tǒng)</p><p>  該子系統(tǒng)實現(xiàn)普通員工對工資的查詢以及動態(tài)新聞的瀏覽以及密碼修改</p><p><b>  核心代碼:</b></p><p><b>  <%</b></p><p>  Connection

75、usercon;</p><p>  Statement userstmt;</p><p>  ResultSet userrs;</p><p>  String rsstr= "select * from guestuser where username='" + uname +</p><p>  &quo

76、t;' and userpassword='" + upassword + "'";</p><p><b>  try{</b></p><p>  usercon=datacon.connection();</p><p>  userstmt=usercon.createStateme

77、nt();</p><p>  userrs=userstmt.executeQuery(rsstr);</p><p>  while(userrs.next()){</p><p><b>  %></b></p><p><b>  <tr></b></p>&

78、lt;p>  <td width="124" align="center"></p><p>  <p style="margin-top: 0; margin-bottom: 0"></p><p>  <font size="2"><%=userrs.getD

79、ate("wagetime")%></font></p><p><b>  </td></b></p><p>  <td width="146" align="center"></p><p>  <p style="mar

80、gin-top: 0; margin-bottom: 0"></p><p>  <font size="2"><%=userrs.getFloat("oldmoney")%></font></p><p><b>  </td></b></p>&l

81、t;p>  <td align="center"></p><p>  <p style="margin-top: 0; margin-bottom: 0"></p><p>  <font size="2"><%=userrs.getFloat("healthmoney&

82、quot;) %></font></p><p><b>  </td></b></p><p>  <td align="center"></p><p>  <p style="margin-top: 0; margin-bottom: 0">&l

83、t;/p><p>  <font size="2"><%=userrs.getFloat("wages") %></font></p><p><b>  </td></b></p><p>  <td align="center"&g

84、t;</p><p>  <p style="margin-top: 0; margin-bottom: 0"></p><p>  <font size="2"><%=userrs.getFloat("housemoney") %></font></p><p&

85、gt;<b>  </td></b></p><p>  <td width="148" align="center"></p><p>  <p style="margin-top: 0; margin-bottom: 0"></p><p>  

86、<font size="2"><%=userrs.getFloat("totalmoney") %></font></p><p><b>  </td></b></p><p><b>  </tr></b></p><p&g

87、t;<b>  <%</b></p><p><b>  }</b></p><p>  userrs.close();</p><p>  userstmt.close();</p><p>  usercon.close();</p><p>  }catch(Ex

88、ception ex){</p><p><b>  }</b></p><p><b>  %></b></p><p>  修改密碼的核心代碼:</p><p>  package DataBase;</p><p>  import java.sql.*;<

89、/p><p>  public class Changepwd extends DataAction{</p><p>  private Connection changepwdcon;</p><p>  private Statement changestmt;</p><p>  public boolean change(String

90、username,String oldpass,String newpass){</p><p>  changepwdcon=this.connection();</p><p>  String changestr = "update guestuser set userpassword='" + newpass +</p><p>

91、  "' where username like '" + username + "'";</p><p><b>  try {</b></p><p>  changestmt = changepwdcon.createStatement();</p><p>  change

92、stmt.execute(changestr);</p><p>  changestmt.close();</p><p>  changepwdcon.close();</p><p>  return true;</p><p><b>  }</b></p><p>  catch (Ex

93、ception ex) {</p><p>  System.out.println(ex.toString());</p><p>  return false;</p><p><b>  }</b></p><p><b>  }</b></p><p><b&g

94、t;  }</b></p><p>  5.1.3 工資發(fā)放系統(tǒng)</p><p>  該平臺下,管理員可以為員工發(fā)放每月的工資,同時還可以修改密碼以及發(fā)布動態(tài)的新聞。</p><p><b>  核心代碼:</b></p><p><b>  <%</b></p>&

95、lt;p>  String mdStr="select * from guestuser";</p><p><b>  try{</b></p><p>  Connection mdcon=managecon.connection();</p><p>  Statement mdstmt=mdcon.create

96、Statement();</p><p>  ResultSet mdrs=mdstmt.executeQuery(mdStr);</p><p>  while(mdrs.next()){</p><p><b>  %></b></p><p><b>  <tr></b>&l

97、t;/p><p>  <td align="center"><%=mdrs.getString("username")%></td></p><p>  <td align="center"><%=mdrs.getString("department")%>

98、;</td></p><p>  <td align="center"><%=mdrs.getDate("wagetime")%></td></p><p>  <td align="center"><%=mdrs.getFloat("housemoney

99、") %></td></p><p>  <td align="center"><%=mdrs.getFloat("oldmoney") %></td></p><p>  <td align="center"><%=mdrs.getFloat(&q

100、uot;healthmoney") %></td></p><p>  <td align="center"><%=mdrs.getFloat("totalmoney") %></td></p><p>  <td align="center"></

101、p><p>  <input type="button" value="發(fā)放工資" name="B1"></p><p><b>  </td></b></p><p><b>  </tr></b></p><

102、p><b>  <%</b></p><p><b>  }</b></p><p>  mdrs.close();</p><p>  mdstmt.close();</p><p>  mdcon.close();</p><p><b>  }&l

103、t;/b></p><p>  catch(Exception ex){</p><p><b>  }</b></p><p><b>  %></b></p><p><b>  5.2測試</b></p><p>  5.2.1 測試的

104、作用和意義</p><p>  系統(tǒng)測試是教師工資管理系統(tǒng)的開發(fā)周期中的一個十分重要環(huán)節(jié)。盡管在系統(tǒng)開發(fā)周期的各個階段均采取了嚴(yán)格的技術(shù)審查,但依然難免會留下錯誤,如果沒有在投入運(yùn)行前的系統(tǒng)測試階段被發(fā)現(xiàn)并糾正,問題遲早會在運(yùn)行中暴露出來,到那時要糾正錯誤將會付出更大的代價。系統(tǒng)測試占用的時間、花費的人力和成本占軟件開發(fā)的很大比例。統(tǒng)計表明,開發(fā)較大規(guī)模的系統(tǒng),系統(tǒng)測試的工作量大約占整個軟件開發(fā)工作量的40%-5

105、0%。而對于一些特別重要的大系統(tǒng),測試的工作量和成本更大,甚至超過系統(tǒng)開發(fā)其他各階段的總和的若干倍。</p><p>  5.2.2 測試方法</p><p><b> ?。?) 測試人員</b></p><p>  測試隊伍由兩位成員組成。軟件的設(shè)計者在測試整個過程中負(fù)責(zé)整體測試方案的制定和測試進(jìn)度的掌握以及白盒測試的測試者。第二位成員由未參

106、加軟件制作者擔(dān)任,主要責(zé)任是進(jìn)行軟件的黑盒測試以及軟件環(huán)境,硬件要求和極限測試工作。</p><p><b> ?。?) 機(jī)器測試</b></p><p>  通過在計算機(jī)上直接運(yùn)行被測程序,來發(fā)現(xiàn)程序中的錯誤。機(jī)器測試包括黑盒測試盒白盒測試。黑盒測試也稱功能測試,將軟件看作黑盒子,在完全不考慮程序的內(nèi)部結(jié)構(gòu)和特性的情況下,研究軟件的外部特性。根據(jù)軟件的需求規(guī)格說明書

107、測試用例,從程序的輸入和輸出特性上測試是否滿足設(shè)定的功能。白盒測試也稱結(jié)構(gòu)測試,將軟件看作一個透明的白盒子,按照程序的內(nèi)部結(jié)構(gòu)和處理邏輯來選定測試用例,對軟件的邏輯路徑及過程進(jìn)行測試,檢查與測試是否相符。</p><p>  5.2.3 測試內(nèi)容</p><p> ?、佘浖恼_\(yùn)行、關(guān)閉及退出時保存記錄的提示(默認(rèn)為是)。</p><p> ?、谟脩舻卿浗缑嬗押?,

108、可操作性及安全性能較好,能對不同管理級別者進(jìn)行限制,以保證數(shù)據(jù)庫的安全。</p><p> ?、蹟?shù)據(jù)庫的可維護(hù)性好,數(shù)據(jù)的錄入、刪除及更改均能順利完成,并能實現(xiàn)動態(tài)更新。</p><p> ?、軘?shù)據(jù)查詢便捷,能對各種不同的查詢條件進(jìn)行搜索,以找到最合適的答案。</p><p> ?、輸?shù)據(jù)溢出、越界均能進(jìn)行非法提示,以警告用戶正確使用。對用戶的非正常操作方式也提出警告

109、。</p><p> ?、迶?shù)據(jù)類型填寫錯誤時,系統(tǒng)能夠報錯。</p><p> ?、哕浖Σ僮飨到y(tǒng)的兼容性良好,可移植性完好。</p><p>  5.2.4 測試結(jié)果</p><p> ?、佘浖谶\(yùn)行、關(guān)閉及退出時保存記錄的提示功能基本完成,在軟件的不斷啟動關(guān)閉過程中沒有出現(xiàn)死機(jī)、程序執(zhí)行效率降低等各種不良現(xiàn)象,功能的實現(xiàn)較為完善。<

110、/p><p> ?、谟脩舻卿浗缑孑^友好,但軟件界面的色彩選擇、搭配上對于長期工作者而言仍然不會產(chǎn)生眼部不適感??刹僮餍约鞍踩阅茌^好,能完成對不同管理級別者的限制工作,對軟件涉及到的機(jī)密數(shù)據(jù)能進(jìn)行良好的保護(hù)。</p><p> ?、蹟?shù)據(jù)庫的可維護(hù)性良好,數(shù)據(jù)的錄入能順利完成,并能實現(xiàn)動態(tài)更新,刪除和修改也能順利完成。</p><p> ?、軘?shù)據(jù)查詢不夠全面,只能按系統(tǒng)設(shè)

111、定的少數(shù)查詢條件進(jìn)行搜索,以找到合適的答案。</p><p> ?、輸?shù)據(jù)溢出、越界基本不能進(jìn)行非法提示,以警告用戶正確使用。對用戶的非正常操作方式能提出警告。</p><p> ?、迶?shù)據(jù)類型填寫錯誤時,系統(tǒng)有報錯功能,在數(shù)據(jù)輸入錯誤時,使用者能夠獲知錯誤所在。</p><p> ?、哕浖嫒菪杂写岣?,在Dreamweaver版本較低的機(jī)子上測試不斷出現(xiàn)錯誤提示。&

112、lt;/p><p><b>  六 總結(jié)</b></p><p>  經(jīng)過反復(fù)測試,系統(tǒng)完成后運(yùn)行添加、修改、查詢、報表等功能均正常,發(fā)布1.0版。此系統(tǒng)仍存在許多缺陷,但是通過該系統(tǒng)設(shè)計達(dá)到了系統(tǒng)設(shè)計目的意義,基本掌握了軟件開發(fā)的主要步驟,了解了各環(huán)節(jié)在開發(fā)時要注意的問題,體會到開發(fā)一個系統(tǒng)應(yīng)該注意的方面以及重視用戶在系統(tǒng)開發(fā)過程中間的作用,開發(fā)出好的軟件高質(zhì)量的軟件。

113、另外在設(shè)計過程中也逐漸提高了軟件開發(fā)技能和編程技能以及良好的軟件開發(fā)思維模式。</p><p><b>  參考文獻(xiàn)</b></p><p>  張海藩,軟件工程(第二版)。北京:人民郵電出版社,2006</p><p>  張海藩,牟永敏,面向?qū)ο蟪绦蛟O(shè)計使用教程(第二版)。北京:清華大學(xué)出版社,2007</p><p&g

114、t;  金敏,周翔,高級軟件開發(fā)過程。北京:清華大學(xué)出版社,2005</p><p>  4.朱如龍,ACCESS 2000 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)技術(shù),機(jī)械工業(yè)出版社,2005</p><p>  5.譚浩強(qiáng),軟件工程系統(tǒng)分析與設(shè)計.,清華大學(xué)出版社,2005</p><p>  6.王少鋒,面向?qū)ο蠹夹g(shù)UML教程,北京:清華大學(xué)出版社,2004</p>

115、<p>  7.張海藩,軟件工程導(dǎo)論(第三版)。北京:清華大學(xué)出版社,1998</p><p>  8.鄭人杰,殷人昆,陶永雷,實用軟件工程(第二版)。北京:清華大學(xué)出版社,1997</p><p><b>  附錄:編碼規(guī)范</b></p><p>  編碼規(guī)范對于程序員而言尤為重要,一個軟件的生命周期中,80%的花費在于維護(hù)。幾

116、乎沒有任何一個軟件,在其整個生命周期中,均由最初的開發(fā)人員來維護(hù)。編碼規(guī)范可以改善軟件的可讀性,可以讓程序員盡快而徹底地理解新的代碼。</p><p>  常見的編碼規(guī)范總結(jié)如下:</p><p>  1.開頭注釋(Beginning Comments)</p><p>  所有的源文件都應(yīng)該在開頭有一個風(fēng)格一致的注釋,其中列出類名、版本信息、日期和版權(quán)聲明等,如下

117、:</p><p><b>  /**</b></p><p>  * Classname</p><p>  * Version information</p><p><b>  * Date</b></p><p>  * Copyright notice</p&

118、gt;<p><b>  */</b></p><p>  2.包和引入語句(Package and Import Statements)</p><p>  在多數(shù)Java源文件中,第一個非注釋行是包語句。在它之后可以跟引入語句。例如:</p><p>  package java.awt;</p><p&g

119、t;  import java.awt.peer.CanvasPeer;</p><p>  3.縮進(jìn)排版(Indentation)</p><p>  4個空格常被作為縮進(jìn)排版的一個單位。</p><p>  4.行長度(Line Length)</p><p>  盡量避免一行的長度超過80個字符,因為很多終端和工具不能很好處理長度超過8

120、0個字符的行。</p><p>  5.換行(Wrapping Lines)</p><p>  當(dāng)一個表達(dá)式無法容納在一行內(nèi)時,可以依據(jù)如下一般規(guī)則斷開該行:</p><p>  在一個逗號后面斷開。</p><p>  在一個操作符前面斷開。</p><p>  寧可選擇較高級別(higher-level)的斷開,

121、而非較低級別(lower-level)的斷開。</p><p>  新的一行應(yīng)該與上一行同一級別表達(dá)式的開頭處對齊。</p><p>  如果以上規(guī)則導(dǎo)致你的代碼混亂或者使你的代碼都堆擠在右邊,那就代之以縮進(jìn)4個空格。</p><p>  6.注釋(Comments)</p><p>  Java程序有兩類注釋:實現(xiàn)注釋(implementa

122、tion comments)和文檔注釋(document comments)。實現(xiàn)注釋是那些在C++中見過的,使用/*...*/和//界定的注釋。文檔注釋(被稱為"doc comments")是Java獨有的,并由/**...*/界定。文檔注釋可以通過javadoc工具轉(zhuǎn)換成HTML文件。</p><p>  為了使程序更容易閱讀,程序員應(yīng)適當(dāng)?shù)脑诖a中添加注釋。</p><

123、;p>  7.每行聲明變量的數(shù)量(Number Per Line)</p><p>  推薦一行一個聲明,因為這樣以利于寫注釋,如下:</p><p>  int level; // indentation level</p><p>  int size; // size of table</p><p>  不要將不同類型變量

124、的聲明放在同一行,例如:</p><p>  int foo, fooarray[]; </p><p>  8.避免聲明的局部變量覆蓋上一級聲明的變量。例如,不要在內(nèi)部代碼塊中聲明相同的變量名,見下面的代碼,定義了兩個“count”,這種情況應(yīng)避免。</p><p>  int count;</p><p><b>  ..

125、.</b></p><p>  myMethod() {</p><p>  if (condition) {</p><p>  int count = 0; </p><p><b>  ...</b></p><p><b>  }</b></

126、p><p><b>  ...</b></p><p><b>  }</b></p><p>  9.簡單語句(Simple Statements)</p><p>  每行至多包含一條語句,例如:</p><p>  argv++; //推薦使用</p&

127、gt;<p>  argv++; argc--; //不推薦使用</p><p>  10.復(fù)合語句(Compound Statements)</p><p>  復(fù)合語句是包含在大括號中的語句序列,形如"{ 語句 }"。復(fù)合語句的書寫一般應(yīng)遵守以下原則:</p><p>  被括其中的語句應(yīng)該較之復(fù)合語句縮進(jìn)一個層次。<

128、/p><p>  左大括號"{"應(yīng)位于復(fù)合語句起始行的行尾;右大括號"}"應(yīng)另起一行并與復(fù)合語句首行對齊。</p><p>  大括號可以被用于所有語句,包括單個語句,只要這些語句是諸如if-else或for控制結(jié)構(gòu)的一部分。這樣便于添加語句而無需擔(dān)心由于忘了加括號而引入bug。 </p><p>  11.空行(Blank Li

129、nes)</p><p>  空行將邏輯相關(guān)的代碼段分隔開,以提高可讀性。下列情況應(yīng)該總是使用空行:</p><p>  一個源文件的兩個片段(section)之間。</p><p>  類聲明和接口聲明之間 。</p><p><b>  兩個方法之間。</b></p><p>  方法內(nèi)的局部

130、變量和方法的第一條語句之間。 </p><p>  一個方法內(nèi)的兩個邏輯段之間,用以提高可讀性。</p><p>  12.命名規(guī)范(Naming Conventions)</p><p>  命名規(guī)范使程序更易讀,從而更易于理解。它們也可以提供一些有關(guān)標(biāo)識符功能的信息,以助于理解代碼,例如,不論它是一個常量,包,還是類。</p><p> 

131、 13.變量賦值(Variable Assignments)</p><p>  避免在一個語句中給多個變量賦相同的值。它很難讀懂。例如:</p><p>  fooBar.fChar = barFoo.lchar = 'c';</p><p>  14.圓括號(Parentheses)</p><p>  一般而言,在含有多

132、種運(yùn)算符的表達(dá)式中使用圓括號來避免運(yùn)算符優(yōu)先級問題,是個好方法。即使運(yùn)算符的優(yōu)先級對你而言可能很清楚,但對其他人未必如此。你不能假設(shè)別的程序員和你一樣清楚運(yùn)算符的優(yōu)先級。</p><p>  if (a == b && c == d) //不推薦使用</p><p>  if ((a == b) && (c == d)) //推薦使用</p&

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論