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

下載本文檔

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

文檔簡介

軟件工程課程設(shè)計工資管理系統(tǒng)文件編碼(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)1前言課程設(shè)計是對學生的一種全面綜合訓練,是與課堂聽講、自學和練習相輔相成的、必不可少的一個教學環(huán)節(jié)。通常,課程設(shè)計中的問題比平時的習題復(fù)雜得多,也更接近實際。課程設(shè)計著眼于原理與應(yīng)用的結(jié)合點,使學生學會如何把書上學到的知識用于解決實際問題,培養(yǎng)軟件工作所需要的動手能力。另一方面,使書上的知識變活,起到深化理解和靈活應(yīng)用教學內(nèi)容的目的。平時的習題局限于一個和二個知識點,而課程設(shè)計題是軟件設(shè)計的綜合訓練,包括問題分析,總體結(jié)構(gòu)設(shè)計,用戶界面設(shè)計、程序設(shè)計、基本技能和技巧,以及一整套軟件工作規(guī)范的訓練和科學作風的培養(yǎng)。我們這組選的課題是工資管理系統(tǒng)的設(shè)計與開發(fā)。從接到任務(wù)書開所以能順利完成是和大家的努力分不開的。雖然還有一些不足之處,但是我們還是從中獲益不少。下面簡要介紹一下我們課題組的分工,我們這組的分工其實借鑒了ShariLawrencePfleeger和Joanne合著的SOFTWAREENGINEERINGTheoryandPractice(高等教育出版社第三版影印版)中的一些理論,這些知識可以參考此書的們組的具體分如下:(1)項目管理:王培(2)需求分析:鐘耀明、賀純(3)概要設(shè)計:賀純、趙亦嫻耀明、楊安、陳華、賀純(6)系統(tǒng)測試:陳華、楊安我的主要任務(wù)是概要設(shè)計和詳細設(shè)計任務(wù)概述現(xiàn)代企業(yè)基本上都引進了計算機軟件對公司業(yè)務(wù)進行管理,這樣做有很多優(yōu)點,一是提高了工作的效率,同時也減少了手工操作的錯誤以及人員的開支。本課題開發(fā)的工資管理系統(tǒng)正是基于這樣的目的實現(xiàn)的,系統(tǒng)完成的主要功能是對員工工資的管理,同時還包括對員工信息、部門信息以及附屬于員工、部門的職稱和職務(wù)信息的管理。系統(tǒng)主要采用事務(wù)型數(shù)據(jù)庫設(shè)計,但對于員工工資的信息,系統(tǒng)能夠保留其相應(yīng)的歷史記錄,包括員工的請假信息,出差信息以及工資結(jié)算信息等。本系統(tǒng)面向員工和管理人員同時開放,普通用戶可以進行查詢以及對個人相關(guān)信息的修改等操作,管理賬戶則擁有系統(tǒng)的全部功能。系統(tǒng)不允許非經(jīng)認證通過的用戶使用系統(tǒng)。系統(tǒng)采用語言開發(fā),系統(tǒng)的數(shù)據(jù)使用SQL數(shù)據(jù)庫進行管理。2.2功能需求分析(1)系統(tǒng)能夠維護員工的基本信息,部門、職務(wù)、職稱以及工資記錄等信息。(2)系統(tǒng)應(yīng)該能記錄員工的每一個職稱信息,并授予相應(yīng)的職稱,系統(tǒng)在計算員工工資的時候選取職稱對應(yīng)的最高職稱津貼。(3)工資表應(yīng)當由系統(tǒng)自動生成。系統(tǒng)負責員工的工資表以及員工工資的歷史記錄及記錄員工的請假信息和出差信息等意外情況。(4)系統(tǒng)可以給管理員提供權(quán)限增加刪除修改系統(tǒng)用戶以及其它實體信息,系統(tǒng)的部分權(quán)限不能下放給普通用戶以保證系統(tǒng)的安全性以及數(shù)據(jù)的正確性。外部接口需求分析系統(tǒng)人機交互界面為半屏幕大小,采用上下左右居中方式顯示,系統(tǒng)分辯率默認設(shè)置為1280*800,實際的界面大小由具體的屏幕決定。主界面包括標題欄,菜單欄,快捷工作區(qū),幫助信息區(qū)(默認是隱藏的)。每一個菜單對應(yīng)一個鍵盤快捷鍵性能需求分析系統(tǒng)在主頻,內(nèi)存512MB,總線頻率667MHZ的硬件平臺上運行時,系統(tǒng)的響應(yīng)時間、更新處理時間、數(shù)據(jù)轉(zhuǎn)換與傳輸時間、運行時間均能達到毫秒級。系統(tǒng)支持用戶并發(fā)操作,事務(wù)采用可串行化隔離級別,防止在讀寫過程中產(chǎn)生的丟失修改、讀臟數(shù)據(jù)、不可重復(fù)讀等一系列由并發(fā)操作帶來的不一致問題。系統(tǒng)的運行主存控制KBms間取決于數(shù)據(jù)庫系統(tǒng)表空間的約束限制。軟件屬性需求分析系統(tǒng)必須保證所有操作結(jié)果以及存儲數(shù)據(jù)的正確性,對于用戶的非法操作,系統(tǒng)必須能夠提出告警信息,對于用戶的錯誤操作,系統(tǒng)能夠提供錯誤信息以及錯誤源。在數(shù)據(jù)庫操作上的異常,系統(tǒng)也應(yīng)捕捉到并提供界面化的提示信息,對于可能會產(chǎn)生錯誤的操作,應(yīng)當能夠防范。另外系統(tǒng)必須提供一定的安全保密性,一些保密信息只針對特定的用戶提供。它人員無法訪問。軟件必須為中文操作界面,并且所有的中文功能菜單項描述須與其實際對應(yīng)的功能相一致,不能存在功能不足或者功能不對的情況,軟件采用面向?qū)ο蠹夹g(shù)架構(gòu),遵循代碼編寫規(guī)范,提供適當?shù)拇a注釋,盡可能地采用可復(fù)用技術(shù),提高軟件的可維護性。3概要設(shè)計系統(tǒng)設(shè)計總體思想當工資管理系統(tǒng)處理的事務(wù)主要有工資管理,員工信息管理,部門信息管理,職務(wù)信息管理,職稱信息管理。職務(wù)和職稱以及部門信息管理主要服務(wù)于工資管理加、刪除、修改相應(yīng)的合法的信息。圖3.1.1工資管理系統(tǒng)HIPO圖圖3.1.1是工資管理系統(tǒng)的HIPO圖,上圖主要說明了系統(tǒng)的各個主要功能以及各功能模塊之間的層次關(guān)系。上圖的基本框架也是整個系統(tǒng)界面的基要框架。系統(tǒng)行環(huán)境的平臺上運行。系統(tǒng)從登錄界面開始,要求驗證用戶信息,用戶通過驗證后,進入系統(tǒng)主界面。主界面提供了一個菜單框架,可以通過各個菜單類的一個實需要主界面類去生成這些菜單英的實例。系統(tǒng)加載的功能主要包括系統(tǒng)管理,用戶管理,工資管理,部門管理,職務(wù)管理,職稱管理以及適當?shù)膸椭畔?。系統(tǒng)管理主要向用戶提供用戶更改密碼的操作以及退出程序的功能。用戶管理允許管理員新建一個員工信息,比如當公司新增加了一個員工時,系統(tǒng)為該員工生成相應(yīng)的工資關(guān)系,但新建這個員工的信息則是第一環(huán)節(jié),當然如果公司離任了一名員工時,此員工與公司的工資關(guān)系已解除,則沒有必要保留該員工的信息,系統(tǒng)應(yīng)向管理員提能有部分具有相應(yīng)的職稱,考慮到職稱的種類繁多,系統(tǒng)只添加本公司員工所擁有的職稱的一個集合,而不考慮外界的因素,因此系統(tǒng)提供了增加、刪除、修改、查詢等對職稱的相關(guān)操作。例如,當公司一員工拿到高級職稱后,管理員首選應(yīng)該查看系統(tǒng)是否記錄了相應(yīng)職稱的信息,如果有,則直接將該職稱信息添加到員工信息中去,如果沒有,則應(yīng)當先增加這一職稱信息,再執(zhí)行上述操作。另外在刪除一個職稱的時候,系統(tǒng)要求必須沒有員工擁有此職稱,否則系統(tǒng)不能刪除,如果確實要刪除,則只能先刪除擁有此職稱的所有員工或者撤銷擁有此職稱的所有員工的此職系統(tǒng)功能模塊設(shè)計系統(tǒng)數(shù)據(jù)庫設(shè)計通過對工資管理系統(tǒng)的數(shù)據(jù)分析并根據(jù)業(yè)務(wù)之間的聯(lián)系,我們可以得出與系工資管理系統(tǒng)的數(shù)據(jù)據(jù)庫管理模式用語義描述如下:(1)每一個員工只能屬于一個部門,擔任一個職務(wù),但是可以擁有多個職稱.(2)每個部門可以有多名員工,有不同的職務(wù).(3)每個職務(wù)可以由多名員工擔任,可以在相同的部門,也可以在不同的部門.(4)每個職稱可以授予不同的員工.(5)每個員工每個月都會有一份工資記錄,并且會有一份歷史工資記錄.(6)員工每個月可以請假多次或者出差多次.但是要扣除相應(yīng)的工資或者獲得相應(yīng)的補助.每個員工都有一分歷史請假記錄和歷史出差記錄。綜合上述語義,可以得出系統(tǒng)的ER圖如圖3.3.1所示:根據(jù)實體之間的聯(lián)系,以及分析實體的屬性,得出了工資管理系統(tǒng)中各個實體的屬性,相關(guān)屬性列表見表3.3.1。表3.3.1工資管理模型的相關(guān)屬性列表實體或聯(lián)實體或聯(lián)屬性員工編號、姓名、性別、部門號、職務(wù)職務(wù)職職稱編號、名稱、職稱津貼出差編號、員工編號、天數(shù)、出差年份、出差月份、出差補員工編號、職稱編號請假編號、員工編號、天數(shù)、年、月、扣除工資、請假原由工資編號、員工編號、工資所屬年月、基本工資、扣除工資、出差補助、崗位工資、職稱津貼、工資總額職稱員工職稱請假信息資說明:加粗部分為主鍵,加底線部分為外鍵4詳細設(shè)計數(shù)據(jù)結(jié)構(gòu)設(shè)計4.1.1數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計EmployeeEmployee——員工信息表鍵數(shù)據(jù)類型number(6)名稱員工編號字段empnovarcharvarchar2(20)varchar2(4)number(6)number(6)數(shù)據(jù)類型number(6)varchar2(20)numbernumbernotnullnotnulltmentdeptno字段名deptnodeptnameempnum名稱部門編號部門名部門人數(shù)話員工姓名性別部門編號職務(wù)編號medeptnodutyno鍵notnullDepartment--部門信息表說明字字段名dutynodutynamedutypay數(shù)據(jù)類型number(6)varchar(20)numberDuty--職務(wù)信息表鍵notnulldefault(0),check(dutypay>=0)名稱職務(wù)編號職務(wù)名職務(wù)基本工資字段名titlenotitlenametitlepay數(shù)據(jù)類型number(6)varchar2(20)numberTitle--職稱信息表鍵notnulldefault(0),check(titlepay>=0)名稱職稱編號職稱名職稱津貼TitledEmployee--員工職稱聯(lián)系表組合主鍵,外鍵employee(empno)between1and12Leave--員工請假信息表鍵notnullnotnullnotnullnotnull名稱員工編號職稱編號說明記錄職稱授予時間名稱請假編號請假員工請假天數(shù)請假年份請假月份扣除工資字段名數(shù)據(jù)類型leavenonumber(6)empnonumber(6)leavedaysnumberleaveyearnumber(4)leavemonthnumberdeductionnumber字段名數(shù)據(jù)類型empnonumber(6)titlenonumber(6)yearnumber(4)monthnumber年月varcharvarchar(60)BusinessTravel--出差信息表數(shù)據(jù)類型number(6)number(6)numbernumber(4)numbernumberprimarykeynotnullnotnullnotnullnotnullReward--獎勵信息表數(shù)據(jù)類型number(6)number(6)number(4)numbernumbervarchar(60)primarykeynotnullnotnullreason字段名travelnopnotraveldaystravelyeartravelmonthtravelpay字段名rewardnoempnorewardyearrewardmonthrewardpayreason請假原因名稱員工編號名稱獎勵編號員工編號獎勵年份獎勵月份獎勵金額獎勵原由Penalty--罰金信息表字段名penaltynoempnopenaltyyearpenaltmonthpenaltynumreason數(shù)據(jù)類型number(6)number(6)number(4)numbernumbervarchar(60)primarykeynotnullnotnull名稱罰金編號員工編號罰金年份罰金月份罰金額度罰金原由Salary--職工工資信息表字段名salnopnopayyearpaymonthbasepaydeductiontravelpaydutypay數(shù)據(jù)類型number(6)number(6)number(4)numbernumbernumbernumbernumberprimarykeybetween1and12說名說工資編號員工編號工資年份工資月份基本工資請假扣除金額職務(wù)工資tititlepayrewardpaypenaltynumtotalpay職稱津貼獎勵金額金工資總額numbernumbernumbernumber4.1.2程序數(shù)據(jù)結(jié)構(gòu)設(shè)計(1)ADTDepartmentBean{符串}setDeptNo(intno):設(shè)置部門的部門號為no.getDeptNo():返回部門的部門號。setDeptName(Stringname):設(shè)置部門的部門名為name.getDeptName():返回部門的部門號.setEmpNum(intnum):設(shè)置部門的員工人數(shù)為num.getEmpNum():返回部門的人數(shù).setTel(inttelephone):設(shè)置部門的電話號碼為telephone.getTel():返回部門的電話號碼。}ADTDepartmentBean{D={dbUrl,theUser,thePsw,c,stmt,rs|dbUrl提供數(shù)據(jù)庫對象,theUser,thePsw指定用戶名和密碼,c與數(shù)據(jù)庫建立一個連接,stmt聲明一條SQL語句,rs保存執(zhí)R1<theUser,thePsw>:用戶登陸的驗證信息用戶名和密碼.Jdbc():加載數(shù)據(jù)庫驅(qū)動,建立數(shù)據(jù)庫連接.executeUpdate(Stringsql):執(zhí)行SQL更新語句,成功返回TRUE,失敗則返回FALSE.tringsqlSQLrsclose():關(guān)閉與數(shù)據(jù)庫的連接.}ADTJdbc模塊功能詳細設(shè)計4.2.1部門信息刪除模塊設(shè)計(1)類圖設(shè)計圖4.2.1.1部門信息刪除模塊類圖以下對部分類的屬性和方法的說明:屬屬性名稱屬性類型屬性說明deptMenuJMenu頂層菜單項deptInqueryItemJMenuItem部門信息查詢菜單項deptDeleteItemJMenuItem部門信息刪除菜單項deptUpdateItemJMenuItem部門信息更新菜單項UserUserBean用戶業(yè)務(wù)類方法名稱返回值類型isDeptExist()booleanisDeptEmpty()booleanexecuteDelete()void功能說明判斷輸入的部門號是否存在判斷輸入的部門號是否為空執(zhí)行刪除操作ShowAction類:該類為內(nèi)部類,是將各功能集成到系統(tǒng)的框架之中.ShowAction類的構(gòu)造函數(shù)提供了一個命名菜單項的方法,主要功能引入了DepartMentDelete這個類到系統(tǒng)中。通過監(jiān)聽器ShowAction執(zhí)行actionPerformed()方法,系統(tǒng)就應(yīng)該可以產(chǎn)生期望的動作。(2)界面設(shè)計界面設(shè)計說明:該文本框為單行文本框,可以輸入要刪除的部門號,當系統(tǒng)監(jiān)聽到文本框中選項被確定,將會自動地將該部門信息從數(shù)據(jù)庫中刪除。(3)核心代碼publicclassDepartmentDelete{privatestaticfinallongserialVersionUID=-853766L;publicDepartmentDelete(){executeDelete();}privatebooleanisDeptExist(intdeptno){ResultSetrs;Jdbcconn=null;booleanflag=false;try{conn=newJdbc();rs=("selectdeptnofromdepartment");while()){if(deptno==("deptno")){flag=true;break;}}}catch(InstantiationExceptione1){}catch(IllegalAccessExceptione1){}catch(ClassNotFoundExceptione1){}catch(SQLExceptione1){}returnflag;}publicbooleanisDeptEmpty(intdeptno){ResultSetrs;Jdbcconn=null;booleanflag=false;try{conn=newJdbc();rs=("selectcount(*)fromemployeewheredeptno="+deptno);while()){if((1)==0){flag=true;break;}}}catch(InstantiationExceptione1){}catch(IllegalAccessExceptione1){}catch(ClassNotFoundExceptione1){}catch(SQLExceptione1){}returnflag;}privatevoidexecuteDelete(){StringdeptnoStr=(null,"請輸入待刪除部門編號!");intdeptno=0;booleanflag=true;deptno=(deptnoStr);}catch(Exceptione){flag=false;}if(isDeptExist(deptno)==true){if(isDeptEmpty(deptno)==false){}e{Jdbcconn=null;intres=0;try{conn=newJdbc();PreparedStatementpstmt="deletefromdepartmentwheredeptno=");res=();if(res!=0)(null,"成功刪除部門"+deptno);(null,"刪除失敗");}catch(InstantiationExceptione){}catch(IllegalAccessExceptione){}catch(ClassNotFoundExceptione){}catch(SQLExceptione){}}}if(flag)(null,"您輸入的部門號不存在!");}4.2.2圖4.2.1.2所示的類圖就是一個增加新員工的實現(xiàn)過程,DepartmentAdd類是一個繼承自類的界面類,它提供了一個供錄入員工信息的操作界面,所有錄入的信息,則通過DepartmentBean類生成一個實例對象來保存,departmentAdd類的構(gòu)造函數(shù)負責調(diào)用createAddInterface()私有方法來構(gòu)造出界面,以及初始化各控件中的數(shù)值,如generateDeptNo()是生成部門編號,部編號并不能由用戶或者管理員確定,而是由系統(tǒng)查詢數(shù)據(jù)庫后,遵循唯一性原則生成出來的編號.這樣做不僅避免用戶管理編號的繁瑣性,而且也增強了系統(tǒng)的安全性.圖4.2.2.1部門信息的增加功能模塊類圖屬性和方法的說明:屬屬性名稱屬性類型屬性說明deptMenuJMenu頂層菜單項deptInqueryItemJMenuItem部門信息查詢菜單項deptDeleteItemJMenuItem部門信息刪除菜單項deptUpdateItemJMenuItem部門信息更新菜單項UserUserBean參數(shù)傳遞說明:當點擊各菜單項時,會彈出相應(yīng)的操作界面。屬屬性名稱屬性類型屬性說明dedeptNoTextJTextFied部門編號輸入文本框deptNameTextJtextFied部門名稱輸入文本框deptTelTextJTextFied部門電話輸入文本框confirmButtonJButton確定按鈕cancelButtonJButton取消按鈕DepartmentBean參數(shù)傳遞方法名稱方法名稱返回值類型功能說明DepartmentAdd()void是Departmentadd類的構(gòu)造函數(shù)InitDeptInfo()void初始化部門信息genertateDeptNo()void產(chǎn)生部門編號CreateAddInterface()void創(chuàng)建增加信息界面StoreDepartment()void將新的信息保存到數(shù)據(jù)庫中ShowAction類:該類為內(nèi)部類,是將各功能集成到系統(tǒng)的框中.ShowAction類的構(gòu)造函數(shù)提供了一個命名菜單項的方法,主要功能是引入DepartMentDelete這個類到系統(tǒng)中。通過監(jiān)聽器ShowActionactionPerformed()方法,系統(tǒng)就應(yīng)該可以產(chǎn)mActionCancelAction庫類Jdbc來執(zhí)行SQL存儲語句實現(xiàn)與數(shù)據(jù)庫的連接以及對數(shù)據(jù)庫的增加信息操作。(2)界面設(shè)計界面說明:以上文本框都是單行文本框,可以輸入部門編號,部門名稱,部門電話,當系統(tǒng)監(jiān)聽到文本框中的內(nèi)容被確定,將會新的部門信息保存到數(shù)據(jù)庫中。(3)核心代碼publicclassDepartmentAddextendsJFrame{{("AddanewDepartment!");GHTvDimensionscr=().getScreenSize();Dimensionfrm=();(int)()())/2-50);createAddInterface();generateDeptNo();initDeptInfo();}privatevoidinitDeptInfo(){}privatevoidgenerateDeptNo(){ResultSetrs;Jdbcconn=null;intno=102001;try{conn=newJdbc();rs=("selectdeptnofromdepartmentorderbydeptno");while()){if(no==("deptno"))++no;break;}}catch(InstantiationExceptione1){}catch(IllegalAccessExceptione1){}catch(ClassNotFoundExceptione1){}catch(SQLExceptione1){}}privatevoidcreateAddInterface(){ContainercontentPane=getContentPane();JLabellabel1=newJLabel("部門編號:");JPanelpanel1=newJPanel();deptNoText=newJTextField(10);JLabellabel2=newJLabel("部門名稱");JPanelpanel2=newJPanel();deptNameText=newJTextField(10);extJLabellabel3=newJLabel("部門電話");JPanelpanel3=newJPanel();deptTelText=newJTextField(10);confirmButton=newJButton("保存");cancelButton=newJButton("重置");JPanelpanel4=newJPanel();rmButtonton(newConfirmAction());(newCancelAction());}privatevoidstoreDepartment(){Jdbcconn=null;try{conn=newJdbc();PreparedStatementpstmt="insertintodepartmentvalues(,,,)");rs=();if(rs!=0)與體會{{}"保存成功");"保存失敗");5測試部門信息刪除和增加模塊測試模塊采用黑盒測試

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論