軟件工程課程設(shè)計(jì)高校工資管理系統(tǒng)_第1頁
軟件工程課程設(shè)計(jì)高校工資管理系統(tǒng)_第2頁
軟件工程課程設(shè)計(jì)高校工資管理系統(tǒng)_第3頁
軟件工程課程設(shè)計(jì)高校工資管理系統(tǒng)_第4頁
軟件工程課程設(shè)計(jì)高校工資管理系統(tǒng)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件工程設(shè)計(jì) xxxx 08計(jì)科(網(wǎng)絡(luò))2班目錄前言11可行性研究11.1問題定義11.1.1問題的提出11.1.2問題的定義21.1.3問題定義報(bào)告21.2.可行性研究21.2.1技術(shù)可行性21.2.2 經(jīng)濟(jì)可行性41.2.3 操作可行性41.3 軟件計(jì)劃51.3.1工作范圍51.3.2 資源52需求分析62.1 需求功能分析62.2 數(shù)據(jù)分析62.2.1數(shù)據(jù)流圖62.2.2數(shù)據(jù)字典82.3安全性要求132.4一致性要求132.5完整性要求133 總體設(shè)計(jì)133.1系統(tǒng)圖層框圖133.2系統(tǒng)模塊設(shè)計(jì)143.3數(shù)據(jù)庫設(shè)計(jì)163.3.1概念結(jié)構(gòu)設(shè)計(jì)163.3.2邏輯結(jié)構(gòu)設(shè)計(jì)183.3.3數(shù)據(jù)庫物

2、理設(shè)計(jì)184 詳細(xì)設(shè)計(jì)224.1人機(jī)界面設(shè)計(jì)224.2 程序流程圖224.3 模塊具體實(shí)現(xiàn)235系統(tǒng)實(shí)現(xiàn)245.1編碼245.2測試與分析475.2.1 系統(tǒng)測試概述475.2.2 具體的測試過程485.2.3 綜合測試545.2.4 本系統(tǒng)性能測試與分析546安裝和使用說明556.1安裝說明556.2使用說明557小結(jié)55參考文獻(xiàn)55 高等學(xué)校工資管理系統(tǒng)前言隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,以數(shù)據(jù)庫技術(shù)為基礎(chǔ)的管理系統(tǒng)已成為了一個(gè)有效的管理手段,并在各行各業(yè)中得到越來越廣泛的應(yīng)用。本課題將設(shè)計(jì)一個(gè)應(yīng)用于高校的工資管理系統(tǒng)。由于高校規(guī)模的不斷擴(kuò)大,其工資應(yīng)用體系變得越來越復(fù)雜,與工資管理有關(guān)的信息也

3、隨之急劇增加。在這種情況下,單靠人工來處理教職員工的工資不但要消耗大量的人力和物力,而且極容易出錯(cuò)。工資管理的重復(fù)性、規(guī)律性、時(shí)間性,也使得工資管理計(jì)算機(jī)化成為可能。計(jì)算機(jī)進(jìn)行工資發(fā)放工作,不僅能夠保證工資核算正確無誤、快速輸出,而且還可以利用工資數(shù)據(jù)庫對有關(guān)工資的各種信息進(jìn)行統(tǒng)計(jì),服務(wù)于財(cái)務(wù)部門其他方面的核算和財(cái)務(wù)處理,使會(huì)計(jì)人員從繁重的手工制作中解脫出來,提高了會(huì)計(jì)信息的及時(shí)性、正確性、全面性。大大提高了管理水平和管理效率,產(chǎn)生了巨大的經(jīng)濟(jì)效益和社會(huì)效益。管理系統(tǒng)的開發(fā)不僅是一個(gè)應(yīng)用程序編寫的過程,更重要的是在系統(tǒng)分析和設(shè)計(jì)階段所做的工作。本系統(tǒng)為高校教職工工資管理系統(tǒng),采用了。財(cái)務(wù)部門人

4、員以管理員身份登錄,對本系統(tǒng)的可登錄人員進(jìn)行管理;實(shí)現(xiàn)了財(cái)務(wù)部門對本單位工資發(fā)放系統(tǒng)的集中管理,保證了系統(tǒng)的安全性。該程序在設(shè)計(jì)過程中嚴(yán)格遵循軟件工程學(xué)的方法,用分階段的生命周期計(jì)劃嚴(yán)格管理,并主要講述了程序的總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)階段,對程序進(jìn)行需求迭代,不斷修正和改進(jìn),利用java語言和sql server2005的強(qiáng)大數(shù)據(jù)庫功能,直到形成一個(gè)完善的可行 “高校工資管理系統(tǒng)”。支持運(yùn)行的環(huán)境:microsoft window98/2000/xp。1可行性研究1.1問題定義1.1.1問題的提出該校有9個(gè)部門:校辦、人事處、教務(wù)處、總務(wù)處、財(cái)務(wù)處、電氣系、機(jī)械系、管理系、基礎(chǔ)部。其中財(cái)務(wù)處有1 名

5、主任會(huì)計(jì)師、2名會(huì)計(jì)和2名出納共5人。由于職工人數(shù)增加,每月發(fā)工資前幾天會(huì)計(jì)工作量增大,要抽調(diào)其他部門人員幫忙,花一個(gè)星期才能把職工的工資表做出來。同時(shí)學(xué)校的規(guī)模還在不斷擴(kuò)大,財(cái)務(wù)工作量還會(huì)加大。為了減輕工作量,改善工作,學(xué)校決定采用微機(jī)系統(tǒng)來處理工資問題。財(cái)務(wù)處首先到計(jì)算機(jī)軟件公司,請求幫助分析解決問題的可能性。1.1.2問題的定義 對于所提問題,軟件公司派一名系統(tǒng)分析員協(xié)助著手分析解決。財(cái)務(wù)處的工作量的確很大,工作人員忙不過來。一種辦法是給財(cái)務(wù)處增加職工。若增加兩名職工,按職工月工資500元計(jì)算,每年要增加2.1萬元。若載發(fā)計(jì)算機(jī)工資管理系統(tǒng),可以節(jié)省人力,不必給財(cái)務(wù)處增加職工。因此,每年

6、至少可獲得經(jīng)濟(jì)效益1.2萬元。為了節(jié)省1.2萬元,校方能投資多少錢呢?由于大多數(shù)單位希望在兩三年收回投資,因此,對于這個(gè)項(xiàng)目來說,2.5萬元的開發(fā)成本可能是一個(gè)合理的上限。如果這項(xiàng)工作不能在2.5萬元之內(nèi)完成,那么它可能是值得做的。1.1.3問題定義報(bào)告 表1.1.2 問題定義報(bào)告用戶單位xx學(xué)校用戶負(fù)責(zé)人xxx分析員單位xx計(jì)算機(jī)軟件公司分析員xxx項(xiàng)目工資管理問題財(cái)務(wù)處每月的管理工作太忙;很多精力都花在工資管理事務(wù)中項(xiàng)目目標(biāo)研究工資管理系統(tǒng)的可能性項(xiàng)目規(guī)模此項(xiàng)目開發(fā)成本2.2萬元1.2.可行性研究 1.2.1技術(shù)可行性分析員須學(xué)習(xí)了解有關(guān)工資處理的基本知識,掌握工資處理的大概情況。財(cái)務(wù)處每

7、月接收每個(gè)職工當(dāng)月的水電用量記錄,編制出當(dāng)月職工的工資報(bào)表,并將當(dāng)月工資發(fā)到職工手中。在對現(xiàn)行系統(tǒng)情況調(diào)查的基礎(chǔ)上,得出新系統(tǒng)的邏輯模型(頂層數(shù)據(jù)流圖)圖1.2.1-1 頂層數(shù)據(jù)流圖此流圖中的“職工”既是數(shù)據(jù)流的源點(diǎn)又是終點(diǎn)。系統(tǒng)輸出一些報(bào)表給財(cái)務(wù)處,因此“財(cái)務(wù)處”也是數(shù)據(jù)的終點(diǎn)。再將此基本系統(tǒng)模型細(xì)化,得到功能級數(shù)據(jù)流圖如下。圖1.2.1-2 圖功能級數(shù)據(jù)流圖此流圖中,“處理事務(wù)”和“發(fā)放工資”、“產(chǎn)生報(bào)表”是系統(tǒng)必須完成的3個(gè)主要功能,它們代表了圖1.2.1-1中的“工資管理系統(tǒng)”。此外,細(xì)化后的數(shù)據(jù)流圖中還增加了3個(gè)數(shù)據(jù)存儲(chǔ)。處理事務(wù)需要“事務(wù)數(shù)據(jù)”存儲(chǔ);產(chǎn)生報(bào)表和處理事務(wù)在不同時(shí)間,因

8、此需要“報(bào)表”數(shù)據(jù)存儲(chǔ);發(fā)放工資與處理事務(wù)也在不同時(shí)間進(jìn)行,需要“工資”數(shù)據(jù)存儲(chǔ)。根據(jù)以上的認(rèn)識可推導(dǎo)出一些可供選擇的解決方案。得出方案,再對這些方案進(jìn)行詳細(xì)分析,從技術(shù)角度探討實(shí)現(xiàn)的可能性,選出最佳方案,確定是否能在2.5萬元的成本內(nèi)開發(fā)工資管理系統(tǒng),并及時(shí)報(bào)告用戶。1.2.2 經(jīng)濟(jì)可行性 系統(tǒng)開發(fā)費(fèi)用的分析:費(fèi)用主要包括計(jì)算機(jī)硬件、外部設(shè)備、軟件費(fèi)用,以及開發(fā)人員和維護(hù)人員的工資。設(shè)備方面初步考慮買一臺(tái)120g硬盤的聯(lián)想piv微型機(jī)和一臺(tái)打印機(jī),估計(jì)花費(fèi)1.2萬元左右(含有關(guān)軟件)。開發(fā)簡單的工資處理系統(tǒng)估計(jì)約需5個(gè)月的工作量。如果每人每個(gè)月工資2000元,則共需1萬元。這兩項(xiàng)成本共2.2

9、萬元(見表1.2.2)。 表1.2.2 工資管理系統(tǒng)的成本/效益分析購買設(shè)備、軟件費(fèi)1.2萬元人力(5個(gè)月、工資2000元/月)1.0萬元開發(fā)成本總計(jì)2.2萬元系統(tǒng)的維護(hù)費(fèi)600元/年每年節(jié)省人力費(fèi)用1.2萬元/年每年節(jié)省經(jīng)費(fèi)1.14萬元/年年節(jié)省(元)(1+i)n現(xiàn)在值(元)累計(jì)的現(xiàn)在值(元)11.14萬元/年1.121.017 857萬1.017 857萬21.14萬元/年1.259090.811.912 695萬31.14萬元/年1.408142.862.741 236萬第三年后純收入5212.36投資回收期2.52年通過成本/效益分析可知系統(tǒng)建立后每年可以節(jié)省2名職工,如果按每月工資5

10、00元計(jì)算,一年可以節(jié)省1.2萬元。這樣,估計(jì)2.52年就可以收回全部投資。因此,這種方案是合理的,在經(jīng)濟(jì)上是可行的。1.2.3 操作可行性 在技術(shù)可行性分析導(dǎo)出解決方案時(shí),如把“驗(yàn)證數(shù)據(jù)”和“處理事務(wù)”放在同一個(gè)自動(dòng)化邊界內(nèi),即為批處理方案。這種方案不必再增加成本,是可行的。因此,從技術(shù)上、經(jīng)濟(jì)上、操作上對軟件進(jìn)行了可行性研究,得出的結(jié)論是開發(fā)工資管理系統(tǒng)是完全可行的。1.3 軟件計(jì)劃1.3.1工作范圍1)項(xiàng)目目標(biāo) 本項(xiàng)目用微機(jī)進(jìn)行工資管理。2)主要功能 收集數(shù)據(jù) 將每個(gè)職工當(dāng)月的水電費(fèi)數(shù)據(jù)收集起來。工資核算 根據(jù)扣款以及水電費(fèi)等計(jì)算出當(dāng)朋應(yīng)發(fā)工資種實(shí)發(fā)工資打印報(bào)表 產(chǎn)生工資總表,工資分類表

11、等各種統(tǒng)計(jì)報(bào)表。1.3.2 資源 1)人力資源 一個(gè)人參加工資管理系統(tǒng)的開發(fā)工作 2) 硬件資源 聯(lián)想奔騰 iv 微型計(jì)算機(jī)、主存2g、250g硬盤、dvd光盤驅(qū)動(dòng)器、hplaser系列激光打印機(jī) 3)軟件資源 windows 操作系統(tǒng) visual foxpro 9.0 以上版本 4)成本估算 設(shè)備費(fèi)1.2萬元,開發(fā)費(fèi)1萬元,共2.2萬元。 預(yù)定開發(fā)計(jì)劃如表1.3.2 表1.3.2 工資管理系統(tǒng)開發(fā)計(jì)2需求分析 2.1 需求功能分析用戶需求分析就是在用戶需求調(diào)研的基礎(chǔ)上,確定系統(tǒng)的總體結(jié)構(gòu)方案,完成相應(yīng)的需求分析報(bào)告。在確定系統(tǒng)的總體結(jié)構(gòu)方案過程中,包括確定應(yīng)用程序的結(jié)構(gòu)、系統(tǒng)的功能模塊。用

12、戶需求調(diào)研結(jié)束之后,應(yīng)該立即進(jìn)行用戶需求分析。通過調(diào)查,確定本系統(tǒng)的功能主要分為五大類:1)系統(tǒng)管理:包括注銷和退出。 2)職工基本情況管理:包括職工信息添加、修改、刪除。3)工資管理:包括工資信息的查詢和瀏覽以及工資調(diào)整。4)打印報(bào)表:職工基本信息報(bào)表,職工工資報(bào)表。5)系統(tǒng)幫助信息管理:系統(tǒng)介紹。2.2 數(shù)據(jù)分析2.2.1數(shù)據(jù)流圖根據(jù)圖1.2.1-2細(xì)化數(shù)據(jù)流圖,得到零層數(shù)據(jù)流圖 圖2.2.1-1 零層數(shù)據(jù)流圖 將圖2.2.1-1中的“處理事務(wù)”這一變換細(xì)化??蓪⑵浞纸獬?取數(shù)據(jù);計(jì)算應(yīng)發(fā)工資;計(jì)算借款數(shù)據(jù);修改借款數(shù)據(jù);寫工資單;寫報(bào)表等,如圖2.2.1-2 圖2.2.1-2 第一層“處

13、理事務(wù)”分解的數(shù)據(jù)流圖根據(jù)頂層數(shù)據(jù)流圖、零層數(shù)據(jù)流圖、第一層數(shù)據(jù)流圖,便可以得出本工資管理系統(tǒng)的完整數(shù)據(jù)流圖,如圖2.2.1-3 圖2.2.1-3 完整數(shù)據(jù)流圖2.2.2數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,對數(shù)據(jù)流程圖中的各個(gè)元素做完整的定義與說明,是數(shù)據(jù)流程圖的補(bǔ)充工具。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型。經(jīng)分析工資管理系統(tǒng)的數(shù)據(jù)流圖可以得出數(shù)據(jù)字典如下。1)數(shù)據(jù)流描述 事務(wù)=職工姓名+職工號+水費(fèi)+電費(fèi) 工資=職工姓名+職工號+基本工資+工齡津貼+教輔津貼+生活補(bǔ)貼+物價(jià)補(bǔ)貼+洗理費(fèi)+書報(bào)費(fèi)+其他應(yīng)補(bǔ)+應(yīng)發(fā)工資+電費(fèi)+房租+水費(fèi)+其他扣款+實(shí)發(fā)工資 人事數(shù)據(jù)=職工姓名+職工號+性

14、別+基本工資+工齡津貼+教輔津貼+生活補(bǔ)貼+物價(jià)補(bǔ)貼+洗理費(fèi)+書報(bào)費(fèi)+房租+其他應(yīng)補(bǔ)(如補(bǔ)發(fā)工資) 報(bào)表=工資匯總表|房租水電費(fèi)扣款 |基本工資表|工資簽收表2)數(shù)據(jù)存儲(chǔ)描述 數(shù)據(jù)存儲(chǔ)名:事務(wù)數(shù)據(jù)文件組成:事務(wù)數(shù)據(jù)組織:按職工號大小順序排列數(shù)據(jù)存儲(chǔ)名:人事數(shù)據(jù)文件組成:人事數(shù)據(jù)組織:按職工號大小順序排列數(shù)據(jù)存儲(chǔ)名:工資文件組成:工資組織:按職工號大小順序排列3)變換描述 變換名:收集數(shù)據(jù)變換編號:1輸入數(shù)據(jù)流:事務(wù)數(shù)據(jù)輸出數(shù)據(jù)流:事務(wù)數(shù)據(jù)變換邏輯:將職工原水電費(fèi)登記到到該職工名下變換名:驗(yàn)證數(shù)據(jù)變換編號:2輸入數(shù)據(jù)流:事務(wù)數(shù)據(jù)輸出數(shù)據(jù)流:已校驗(yàn)的數(shù)據(jù)變換邏輯:將職工水電費(fèi)進(jìn)行校驗(yàn) 變換名:處理

15、事務(wù)變換編號:3輸入數(shù)據(jù)流:事務(wù)數(shù)據(jù)、人事數(shù)據(jù)輸出數(shù)據(jù)流:工資、報(bào)表變換邏輯:獲得事務(wù)數(shù)據(jù)、獲得人事數(shù)據(jù)、計(jì)算應(yīng)發(fā)工資、計(jì)算實(shí)發(fā)工資、寫工資單、寫報(bào)表變換名:發(fā)放工資變換編號:4輸入數(shù)據(jù)流:工資輸出數(shù)據(jù)流:工資變換邏輯:將工資分發(fā)給職工變換名:產(chǎn)生報(bào)表 變換編號:5輸入數(shù)據(jù)流:工資表輸出數(shù)據(jù)流:工資匯總表、房租水電扣款表、基本工資分類表、工資簽收表變換邏輯:對工資表中的有關(guān)項(xiàng)目進(jìn)行匯總產(chǎn)生各種報(bào)表 變換名:修改人事數(shù)據(jù)變換編號:6輸入數(shù)據(jù)流:修改數(shù)據(jù)項(xiàng)輸出數(shù)據(jù)流:修改后的人事數(shù)據(jù)變換邏輯:對相關(guān)的數(shù)據(jù)項(xiàng)的值進(jìn)行修改4)數(shù)據(jù)項(xiàng)描述數(shù)據(jù)項(xiàng)名:管理員用戶名類型:字符型長度:20所屬表名:管理員信息數(shù)

16、據(jù)項(xiàng)描述:管理員用于登錄系統(tǒng)的帳號數(shù)據(jù)項(xiàng)名:管理員密碼類型:字符型長度:20所屬表名:管理員信息數(shù)據(jù)項(xiàng)描述:管理員用于登錄系統(tǒng)的密碼數(shù)據(jù)項(xiàng)名:職工姓名類型:字符型長度:20所屬表名:職工基本信息,房租水電費(fèi)扣款,工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:高校領(lǐng)取工資的教職員工姓名數(shù)據(jù)項(xiàng)名:職工號類型:數(shù)字型長度:20所屬表名:職工基本信息,房租水電費(fèi)扣款,工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:教職員工編號,采用自動(dòng)編號數(shù)據(jù)項(xiàng)名:性別類型:字符型長度:2所屬表名:職工基本信息數(shù)據(jù)項(xiàng)描述:高校教職員工性別數(shù)據(jù)項(xiàng)名:基本工資類型:數(shù)字型長度:10所屬表名:工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:教職員工基本工資數(shù)據(jù)項(xiàng)名:工齡津貼

17、類型:數(shù)字型長度:10所屬表名:工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員工工齡補(bǔ)貼數(shù)據(jù)項(xiàng)名:教輔津貼類型:數(shù)字型長度:10所屬表名:工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:教職員工教輔補(bǔ)貼數(shù)據(jù)項(xiàng)名:生活津貼類型:數(shù)字型長度:10所屬表名:工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員生活補(bǔ)貼數(shù)據(jù)項(xiàng)名:物價(jià)津貼類型:數(shù)字型長度:10所屬表名:工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員工物價(jià)補(bǔ)貼數(shù)據(jù)項(xiàng)名:洗理費(fèi)類型:數(shù)字型長度:10所屬表名:工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員工洗理費(fèi)補(bǔ)貼數(shù)據(jù)項(xiàng)名:書報(bào)費(fèi)類型:數(shù)字型長度:10所屬表名:工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員工書報(bào)費(fèi)補(bǔ)貼數(shù)據(jù)項(xiàng)名:其他應(yīng)補(bǔ)類型:

18、數(shù)字型長度:10所屬表名:工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員工其他補(bǔ)貼數(shù)據(jù)項(xiàng)名:應(yīng)發(fā)工資類型:數(shù)字型長度:10所屬表名:工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員工應(yīng)發(fā)的工資數(shù)據(jù)項(xiàng)名:房租類型:數(shù)字型長度:10所屬表名:房租水電費(fèi)扣款,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員工每月的房租費(fèi)用數(shù)據(jù)項(xiàng)名:水費(fèi)類型:數(shù)字型長度:10所屬表名:房租水電費(fèi)扣款,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員工每月的水費(fèi)數(shù)據(jù)項(xiàng)名:電費(fèi)類型:數(shù)字型長度:10所屬表名:房租水電費(fèi)扣款,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員工每月的電費(fèi)數(shù)據(jù)項(xiàng)名:其他應(yīng)扣類型:數(shù)字型長度:10所屬表名:工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員工其他扣款情況數(shù)

19、據(jù)項(xiàng)名:實(shí)發(fā)工資類型:數(shù)字型長度:10所屬表名:工資匯總,工資簽收數(shù)據(jù)項(xiàng)描述:高校教職員工每月實(shí)際發(fā)放的工資2.3安全性要求訪問數(shù)據(jù)庫時(shí)需要輸入登陸帳號和密碼。在數(shù)據(jù)庫內(nèi)設(shè)有管理員表,登陸系統(tǒng)時(shí)會(huì)要求輸入管理員帳號和密碼。登陸模塊根據(jù)輸入帳號和密碼查管理員表,查到匹配記錄則允許其登陸系統(tǒng)。管理員帳號和密碼可以在系統(tǒng)中添加和修改。2.4一致性要求在管理系統(tǒng)相關(guān)的表之間,有較強(qiáng)的關(guān)聯(lián)性。為了實(shí)現(xiàn)一致性的需求,各個(gè)表之間均建立起了相應(yīng)的一致性約束。2.5完整性要求根據(jù)工資管理系統(tǒng)的要求,為保持?jǐn)?shù)據(jù)的完整性,采用了數(shù)據(jù)庫的事務(wù)機(jī)制,防止出現(xiàn)操作故障引起的數(shù)據(jù)不一致。3 總體設(shè)計(jì)3.1系統(tǒng)圖層框圖高校工

20、資管理系統(tǒng)的系統(tǒng)模塊如圖所示:高校工資管理系統(tǒng)退出打印寫報(bào)表寫工資單修改借款扣款工資計(jì)算取數(shù)據(jù)管理員登錄 取借款扣款取事務(wù)數(shù)據(jù)取人事數(shù)據(jù)計(jì)算借款扣款計(jì)算實(shí)發(fā)工資計(jì)算應(yīng)發(fā)工資 圖3.1 高校工資管理系統(tǒng)圖3.2系統(tǒng)模塊設(shè)計(jì)把系統(tǒng)內(nèi)部各種功能關(guān)系變換成程序模塊之間的控制關(guān)系,復(fù)查并確定數(shù)據(jù)流圖的類型。工資管理系統(tǒng)的數(shù)據(jù)流圖具有較明顯的輸入、中心變換和輸出三部分,故屬于變換型的數(shù)據(jù)流圖。“人事數(shù)據(jù)”、“事務(wù)數(shù)據(jù)”是邏輯輸入,“工資”和“報(bào)表”是邏輯輸出。上層模塊如圖3.2-1,主控模塊“工資管理”為頂,分成輸入、中心變換、輸出。圖3.2-1 工資管理系統(tǒng)上層模塊分解上層模塊設(shè)計(jì)中、下層模塊。圖3.2

21、中的中心變換模塊與變換“處理事務(wù)”相對應(yīng),而變換“處理事務(wù)”分解后的數(shù)據(jù)流圖(見圖2-2),又包含有“取數(shù)據(jù)”、“計(jì)算應(yīng)發(fā)工資”、“計(jì)算借款扣款”、“修改借款扣款”、“寫工資單”、“計(jì)算實(shí)發(fā)工資”、“寫報(bào)表”等7個(gè)功能。所以中心變換模塊分解后的“工資管理”分層結(jié)構(gòu)如圖3.2-2圖3.2-2 工資管理系統(tǒng)分層結(jié)構(gòu)圖由圖可見,“工資管理”模塊總是最先開始運(yùn)行。它調(diào)用“取數(shù)據(jù)”模塊讀取數(shù)據(jù)。然后把控制歸還給“工資管理”模塊。再將“工資管理”模塊將控制轉(zhuǎn)給“計(jì)算應(yīng)發(fā)工資”模塊,完成計(jì)算后又將控制返回到“工資管理 ”模塊。以此類推,最后由“工資管理”模塊結(jié)束處理。現(xiàn)將該系統(tǒng)的功能模塊作如下介紹:1)管理

22、員登錄模塊(m1)管理員通過管理員帳號和密碼登錄系統(tǒng)。2)取數(shù)據(jù)模塊(m2)取事務(wù)數(shù)據(jù)(m2.1):初始化時(shí)錄入教職員工房租水電費(fèi)到數(shù)據(jù)庫中,計(jì)算工資時(shí),從數(shù)據(jù)庫中調(diào)用。取人事數(shù)據(jù)(m2.2):從數(shù)據(jù)庫中調(diào)用員工基本信息。取借款扣款數(shù)據(jù)(m2.3):輸入或調(diào)用教職工借款和扣款。3)工資計(jì)算模塊(m3)計(jì)算應(yīng)發(fā)工資(m3.1):對教職員工的應(yīng)發(fā)工資進(jìn)行計(jì)算。計(jì)算借款扣款(m3.2):對教職員工的借款扣款進(jìn)行計(jì)算。計(jì)算實(shí)發(fā)工資(m3.3):用教職員工的應(yīng)發(fā)工資減去借扣款計(jì)算出實(shí)發(fā)工資。4)修改借款扣款模塊(m4) 當(dāng)教職員工的借款扣款有改動(dòng)時(shí),可對其進(jìn)行修改。5)寫工資單模塊(m5)計(jì)算出教職員工

23、實(shí)發(fā)工資后,生成每個(gè)教職員工工資單。6)寫報(bào)表模塊(m6)產(chǎn)生教職員工工資單后,將其匯總,生成工資匯總報(bào)表。7)打印模塊(m7)將生成的工資單和報(bào)表打印出來。3.3數(shù)據(jù)庫設(shè)計(jì)3.3.1概念結(jié)構(gòu)設(shè)計(jì)1)概念結(jié)構(gòu)e-r圖本實(shí)例根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有:管理員信息實(shí)體、教職員工基本信息實(shí)體及教職員工工資實(shí)體。各個(gè)實(shí)體的e-r圖如下:管理員信息實(shí)體圖(實(shí)體及屬性),如圖3.3.1-1所示:管理員信息用戶名管理員密碼圖3.3.1-1 管理員實(shí)體圖教職員工基本信息實(shí)體圖(實(shí)體及屬性),如圖3.3.1-2所示:職工姓名性別職工號教職員工 圖3.3.1-2 教職員工實(shí)體教職員工工資實(shí)體圖(實(shí)體及屬性),所

24、圖3.3.1-3所示:實(shí)發(fā)工資職工號教職員工工資其他應(yīng)扣職工姓名應(yīng)發(fā)工資基本工資其他應(yīng)補(bǔ)工齡津貼書報(bào)費(fèi)教輔津貼洗理費(fèi)物價(jià)補(bǔ)貼生活補(bǔ)貼圖3.3.1-3 教職工資實(shí)體圖根據(jù)上述所示得出本系統(tǒng)的全局e-r圖,如圖3.3.1-4所示:所屬職工號管理員用戶名密碼管理管理教職員工姓名性別n111111m職工號工資職工姓名基本工資工齡津貼教輔津貼生活補(bǔ)貼物價(jià)補(bǔ)貼洗理費(fèi)書報(bào)費(fèi)其他應(yīng)補(bǔ)應(yīng)發(fā)工資其他應(yīng)扣實(shí)發(fā)工資 圖3.3.1-4 系統(tǒng)全局e-r圖3.3.2邏輯結(jié)構(gòu)設(shè)計(jì)邏輯模型設(shè)計(jì)的任務(wù)就是把概念結(jié)構(gòu)轉(zhuǎn)換為與選用的dbms所支持的數(shù)據(jù)模型相符合的過程。本系統(tǒng)所選用的數(shù)據(jù)模型是關(guān)系型,把e-r圖向關(guān)系數(shù)據(jù)模型轉(zhuǎn)換的規(guī)

25、則是:1)一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。2)一個(gè)聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式,與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系的屬性轉(zhuǎn)換為關(guān)系的屬性。該關(guān)系的碼則有三種情況:若聯(lián)系為1 :1,則每個(gè)實(shí)體的碼均是該關(guān)系的侯選碼。若聯(lián)系為1 :n,關(guān)系的碼為n端實(shí)體的碼。若聯(lián)系為n : m,則關(guān)系的碼為諸實(shí)體碼的組合。然后再根據(jù)優(yōu)化原則進(jìn)行優(yōu)化設(shè)計(jì),進(jìn)行數(shù)據(jù)模型轉(zhuǎn)換,建立了四個(gè)表:管理員信息表、教職員工基本信息表、教職員工工資表、房租水電費(fèi)表。將e-r圖轉(zhuǎn)換成關(guān)系模型,關(guān)系的主碼用橫線標(biāo)識: 管理員信息表(用戶名,密碼)教職員工基本信息表(員工號,姓名,性別,) 員工工資

26、表(員工號,姓名,基本工資,工齡津貼,教輔津貼,生活補(bǔ)貼,物價(jià)補(bǔ)貼,洗理費(fèi),書報(bào)費(fèi),其他應(yīng)補(bǔ),應(yīng)發(fā)工資,其他應(yīng)扣,實(shí)發(fā)工資)房租水電費(fèi)表(員工號,姓名,房租,水費(fèi),電費(fèi))3.3.3數(shù)據(jù)庫物理設(shè)計(jì)數(shù)據(jù)庫的物理結(jié)構(gòu)設(shè)需確定各個(gè)表的結(jié)構(gòu)、存取方法和存取路徑即可。把每一個(gè)關(guān)系設(shè)計(jì)一個(gè)表,存取方法只需要建立索引,具體設(shè)計(jì)如下:1) 各表的建立管理員信息表列名數(shù)據(jù)類型長度允許空管理員用戶名char20不允許管理員密碼char20教職員工基本表列名數(shù)據(jù)類型長度允許空職工號char20不允許姓名char20性別char2表中性別的屬性,對于其有如下約束表達(dá)式:constraint c1 check (性別 i

27、n (男,女)。員工工資表列名數(shù)據(jù)類型長度允許空職工號char20不允許姓名char20基本工資float10工齡津貼float10教輔津貼float 10生活補(bǔ)貼float10物價(jià)補(bǔ)貼float10洗理費(fèi)float10書報(bào)費(fèi)float10其他應(yīng)補(bǔ)float10應(yīng)發(fā)工資float10其他應(yīng)扣float10實(shí)發(fā)工資float10房租水電費(fèi)表列名數(shù)據(jù)類型長度允許空職工號char20不允許姓名char20房租float10水費(fèi)float10電費(fèi)float102)表關(guān)系的實(shí)現(xiàn) 根據(jù)以上建立的管理員信息表,教職員工基本信息表,教職員工工資表,房租水電費(fèi)表之間的聯(lián)系,可以得出它們的關(guān)系圖如下: 管理員用戶

28、名密碼教職工基本信息職工號姓名性別教職工工資職工號姓名基本工資工齡津貼教輔津貼生活補(bǔ)貼物價(jià)補(bǔ)貼洗理費(fèi)書報(bào)費(fèi)其他應(yīng)補(bǔ)應(yīng)發(fā)工資其他應(yīng)扣實(shí)發(fā)工資房租水電費(fèi)職工號姓名房租水費(fèi)電費(fèi)3)數(shù)據(jù)庫備份和恢復(fù)方案應(yīng)用輔助工具進(jìn)行備份和恢復(fù)應(yīng)用數(shù)據(jù)庫輔助工具(如sqlbackuptools)進(jìn)行備份,選擇所需要備份的數(shù)據(jù)庫和目標(biāo)地址即可進(jìn)行數(shù)據(jù)備份,恢復(fù)數(shù)據(jù)庫只需要指定備份文件和需要恢復(fù)的數(shù)據(jù)庫即可進(jìn)行數(shù)據(jù)恢復(fù)。分離數(shù)據(jù)庫法在企業(yè)管理器中右擊需要備份的數(shù)據(jù)庫,選擇“所有任務(wù)”,“分離數(shù)據(jù)庫”,執(zhí)行分析操作,拷貝數(shù)據(jù)庫mdf文件和ldf文件?;謴?fù)方案:在企業(yè)管理器的控制臺(tái)樹中選擇“數(shù)據(jù)庫”節(jié)點(diǎn),右擊,“所有任務(wù)”,

29、“附加數(shù)據(jù)庫”,找到待恢復(fù)數(shù)據(jù)庫的mdf文件,確定。4 詳細(xì)設(shè)計(jì)4.1人機(jī)界面設(shè)計(jì) 這里只是用java語言簡單地實(shí)現(xiàn)一下登錄界面,其他編碼將在后面的“系統(tǒng)實(shí)現(xiàn)”中詳細(xì)說明。登錄界面 圖4.1 登錄界面4.2 程序流程圖開始登陸選擇主界面操作進(jìn)行職工信息管理操作是否退出?退出本系統(tǒng)yesno圖4.2 程序流程圖4.3 模塊具體實(shí)現(xiàn) 由于“取數(shù)據(jù)”模塊要從借款結(jié)算數(shù)據(jù)文件中讀取記錄,所以將其分解成圖4.3所示。 圖4.3 “取數(shù)據(jù)”模塊的分解 這樣,用同樣的方法就可以把其他模塊也進(jìn)一步分解。由于系統(tǒng)所要求的工資匯總表、基本工資分類表、工資簽收表要在所有職工的工資數(shù)據(jù)處理完之后才能產(chǎn)生出來。因此應(yīng)在

30、軟件結(jié)構(gòu)中增加一個(gè)“打印”模塊,以完成輸出功能。 “輸入模塊”中,在輸入之前首先應(yīng)進(jìn)行初始化,然后進(jìn)行工資的輸入與修改。各模塊分解結(jié)束后,就可以將它們匯集成一張完整的結(jié)構(gòu)圖。5系統(tǒng)實(shí)現(xiàn)5.1編碼1)數(shù)據(jù)庫連接(文件名:dbconnect.java)這個(gè)文件先編譯,因?yàn)楹竺娴膍ain.java文件的編譯會(huì)用到該文件編譯完產(chǎn)生的dbconnect.class文件/類dbconnect用于數(shù)據(jù)庫的連接/導(dǎo)入sql包import java.sql.*;/創(chuàng)建數(shù)據(jù)庫連接類dbconnectpublic class dbconnect/靜態(tài)方法提高數(shù)據(jù)庫的連接效率public static connect

31、ion getconn() throws exception/加載jdbc驅(qū)動(dòng)class.forname(sun.jdbc.odbc.jdbcodbcdriver);/以系統(tǒng)默認(rèn)用戶身份,連接數(shù)據(jù)庫studentmanagerreturn drivermanager.getconnection(jdbc:odbc:salarymanagement,);2 ) 添加職工信息(文件名:addemployee.java)/添加教職員工工面板類addemployee/導(dǎo)入系統(tǒng)的類包import java.awt.*;import java.sql.*;import javax.swing.*;impo

32、rt java.awt.event.*;/創(chuàng)建“添加職工“面板類public class addemployee extends jpanel implements actionlistener/聲明連接數(shù)據(jù)庫對象connection con;/聲明sql語句對象statement st;/創(chuàng)建組件對象:標(biāo)簽、文本行、單選jlabel jlabel1=new jlabel(職工工號);jlabel jlabel2=new jlabel(職工姓名);jlabel jlabel3=new jlabel(職工性別);jlabel jlabel4=new jlabel(職工年齡);jlabel jla

33、bel5=new jlabel(家庭住址);jlabel jlabel6=new jlabel(聯(lián)系電話);jtextfield jtextfield1=new jtextfield();jtextfield jtextfield2=new jtextfield();jtextfield jtextfield3=new jtextfield();jtextfield jtextfield4=new jtextfield();jtextfield jtextfield5=new jtextfield();jradiobutton jradiobutton1=new jradiobutton(男)

34、;jradiobutton jradiobutton2=new jradiobutton(女);buttongroup buttongroup1=new buttongroup();jbutton jbutton1=new jbutton(添加職工);/構(gòu)造方法public addemployee()try/調(diào)用初始化方法jbinit();catch(exception exception)exception.printstacktrace();/界面初始化方法private void jbinit() throws exception/連接數(shù)據(jù)庫con=dbconnect.getconn()

35、;st=con.createstatement();/框架的布局this.setlayout(null);/設(shè)置各組件的大小jlabel1.setbounds(new rectangle(21,17,64,24);jlabel2.setbounds(new rectangle(21,51,53,22);jlabel3.setbounds(new rectangle(21,86,61,27);jlabel4.setbounds(new rectangle(21,122,59,25);jlabel5.setbounds(new rectangle(21,168,54,24);jlabel6.set

36、bounds(new rectangle(21,205,54,24);jtextfield1.setbounds(new rectangle(102,10,200,30);jtextfield2.setbounds(new rectangle(102,49,200,30);jtextfield3.setbounds(new rectangle(102,117,80,33);jtextfield4.setbounds(new rectangle(102,163,200,29);jtextfield5.setbounds(new rectangle(102,200,200,29);jradiobu

37、tton1.setbounds(new rectangle(102,83,65,30);jradiobutton2.setbounds(new rectangle(190,85,85,30);jbutton1.setbounds(new rectangle(130,240,150,32);/設(shè)置單選按鈕被選中jradiobutton1.setselected(true);/添加按鈕動(dòng)作事件jbutton1.addactionlistener(this);/添加組件到面板this.add(jlabel1);this.add(jtextfield1);this.add(jlabel2);this.

38、add(jtextfield2);this.add(jlabel3);buttongroup1.add(jradiobutton1);buttongroup1.add(jradiobutton2);this.add(jradiobutton1);this.add(jradiobutton2);this.add(jlabel4);this.add(jtextfield3);this.add(jlabel5);this.add(jtextfield4);this.add(jlabel6);this.add(jtextfield5);this.add(jbutton1);/點(diǎn)擊按鈕事件public

39、void actionperformed(actionevent e)/獲取用戶輸入的信息string employeeid=jtextfield1.gettext();string employeename=jtextfield2.gettext();string employeesex=;if(jradiobutton1.isselected()employeesex+=男;if(jradiobutton2.isselected()employeesex+=女;string employeeage=jtextfield3.gettext();string employeeaddress=j

40、textfield4.gettext();string employeephone=jtextfield5.gettext();try/設(shè)置日期格式st.execute(set dateformat ymd);/利用st對象執(zhí)行sql語句,進(jìn)行插入操作st.executeupdate(insert into employee values(+employeeid+,+employeename+,+employeesex+,+employeeage+,+employeeaddress+,+employeephone+);/利用消息對話框提示職工添加成功joptionpane.showmessag

41、edialog(this,職工添加成功!);/清空文本行的內(nèi)容jtextfield1.settext();jtextfield2.settext();jtextfield3.settext();jtextfield4.settext();jtextfield5.settext();catch(exception ex)/利用消息對話框提示異常的信息joptionpane.showmessagedialog(this,職工添加失??!);ex.printstacktrace();3) 修改教職員工信息(文件名:modifyemployee.java)/“職工信息修改”面板類modifyemploy

42、ee/導(dǎo)入系統(tǒng)的類包import java.awt.*;import java.sql.*;import javax.swing.*;import java.awt.event.*;/創(chuàng)建“職工信息修改資”類public class modifyemployee extends jpanel implements actionlistener/聲明連接數(shù)據(jù)庫對象connection con;/聲明sql語句對象statement st;/創(chuàng)建組件對象:標(biāo)簽、文本行、單選jlabel jlabel1=new jlabel(請輸入職工的編號:);jtextfield jtextfield1=new

43、 jtextfield();jbutton jbutton1=new jbutton(查找該職工);jlabel jlabel2=new jlabel(職工編號:);jtextfield jtextfield2=new jtextfield();jlabel jlabel3=new jlabel(職工姓名:);jtextfield jtextfield3=new jtextfield();jlabel jlabel4=new jlabel(職工性別:);jtextfield jtextfield4=new jtextfield();jlabel jlabel5=new jlabel(職工年齡:

44、);jtextfield jtextfield5=new jtextfield();jlabel jlabel6=new jlabel(家庭住址:);jtextfield jtextfield6=new jtextfield();jlabel jlabel7=new jlabel(聯(lián)系電話:);jtextfield jtextfield7=new jtextfield();jbutton jbutton2=new jbutton(修改職工信息);/構(gòu)造方法public modifyemployee()try/調(diào)用初始化方法jbinit();catch(exception exception)e

45、xception.printstacktrace();/面板初始化方法private void jbinit() throws exception/連接數(shù)據(jù)庫con=dbconnect.getconn();st=con.createstatement();/框架的布局this.setlayout(null);/設(shè)置各組件的大小jlabel1.setfont(new java.awt.font(楷體,font.bold,14);jlabel1.setbounds(new rectangle(40,15,140,30);jtextfield1.setbounds(new rectangle(185

46、,15,120,30);jbutton1.setbounds(new rectangle(110,55,150,30);jlabel2.setfont(new java.awt.font(楷體,font.bold,14);jlabel2.setbounds(new rectangle(20,105,80,30);jtextfield2.setbounds(new rectangle(100,105,80,30);jlabel3.setfont(new java.awt.font(楷體,font.bold,14);jlabel3.setbounds(new rectangle(190,105,8

47、0,30);jtextfield3.setbounds(new rectangle(270,105,80,30);jlabel4.setfont(new java.awt.font(楷體,font.bold,14);jlabel4.setbounds(new rectangle(20,145,80,30);jtextfield4.setbounds(new rectangle(100,145,80,30);jlabel5.setfont(new java.awt.font(楷體,font.bold,14);jlabel5.setbounds(new rectangle(190,145,80,3

48、0);jtextfield5.setbounds(new rectangle(270,145,80,30);jlabel6.setfont(new java.awt.font(楷體,font.bold,14);jlabel6.setbounds(new rectangle(20,185,80,30);jtextfield6.setbounds(new rectangle(100,185,80,30);jlabel7.setfont(new java.awt.font(楷體,font.bold,14);jlabel7.setbounds(new rectangle(190,185,80,30);

49、jtextfield7.setbounds(new rectangle(270,185,80,30);jbutton2.setbounds(new rectangle(120,240,150,30);/添加按鈕動(dòng)作事件jbutton1.addactionlistener(this);jbutton2.addactionlistener(this);/添加組件到面板this.add(jlabel1);this.add(jtextfield1);this.add(jbutton1);this.add(jlabel2);this.add(jtextfield2);jtextfield2.seteditable(false);this.add(jlabel3);this.add(jtextfield3);this.add(jlabel4);this.add(jtextfield4);this.add(jlabel5);th

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論