Java工资管理系统.docx
Javaa程序设设计基础础课程设计计课题名称称 工资资管理系系统工资管理理设计 学 号姓 名班 级指导老师师企业工资资管理工资资管理子子系统企业工资资管理工资资管理子子系统22一需求求分析报报告31.组织织机构操操作方式式上的可可行性332.基础础数据的的可用性性33.经济济上的可可行性334.技术术上的可可行性335.目标标分析33二项目目开发计计划41.项目目开发组组织机构构的设置置和人员员的安排排42.项目目开发的的进度443.项目目开发经经费的概概算44.项目目所需的的硬件和和软件资资源等44三系统统分析报报告41.业务务流程图图42.数据据流程图图63.功能能分析图图84.数据据字典.95.数据据加工处处理的描描述1226.管理理信息系系统流程程设计图图(新系系统模型型)122四 .系系统设计计报告113五.系统统实现部部分1662.源程程序1663.模拟拟运行数数据3334.测试试用例3346.系统统使用说说明书。37六.工作作总结335七、致谢谢36八附录录36一需求求分析报报告1.组织织机构操操作方式式上的可可行性本系统运运行在通通用的WWinddowss操作系系统上,具具有Wiindoows相相似的操操作界面面。具有有简单易易学,使使用方便便等特点点,只需需在计算算机上进进行相关关的简单单的设置置即可,懂懂得计算算机基本本操作的的人员经经过短期期培训培培训即可可熟练操操作,熟熟悉计算算机操作作的人员员不需要要再经过过专门的的培训即即可熟练练操作。所以,从从组织机机构操作作方式上上的可行行性分析析,该系系统是可可行的。2.基础础数据的的可用性性企业工资资管理系系统的基基础数据据都是一一些比较较常见的的基础数数据,比比如职工工编号,姓姓名,部部门编号号等等,在在系统的的设计过过程中都都是很好好使用和和编排的的,所以以,从系系统基础础数据可可用性的的角度看看,该系系统是可可行的。3.经济济上的可可行性a.采用用新的工工资管理理系统可可取代原原系统的的单据手手工传递递工作,减减少人工工开支,节节省资金金,并且且可大大大提高信信息量的的取得,缩缩短信息息处理周周期,提高工资资汇总的的效率,使使公司变变的资金金运转更更加便捷捷。b.开发发经费、投资方方面的来来源和限限制:各各种硬件件及人员员花费至至少需880000元.所以,从从经济上上的可行行性分析析,该系系统是可可行的。4.技术术上的可可行性本系统是是一个数数据库管管理和查查询的系系统,现现有的技技术以较较为成熟熟,硬件件、软件件的性能能要求、环境条条件等各各项条件件良好,估估计利用用现有技技术条件件应完全全可以达达到该系系统的功功能目标标。职工工工资管管理系统统开发与与运行环环境选择择如下:开发环境境:Wiindoows XP开发工具具:Jaava,JJavaa软件可可以选用用ecllipsse3.5数据库管管理系统统:acccesss数据据库5.目标标分析做出一个个简单实实用工资资管理系系统,不不需要功功能复杂杂,只需需要实用用性强。功能要要在很多多小型企企业都能能够使用用。操作作性简单单,要最最大限度度的减少少使用用用户的工工作量。二项目目开发计计划1.项目目开发组组织机构构的设置置和人员员的安排排本系统开开发人员员共有44位,每每人负责责一部分分。 :负责工工资管理理部分; :负责考考勤管理理部分; :负责工工资管理理部分; :负责前前台设置置部分;2.项目目开发的的进度本小组决决定在两两周之内内完成该该项目的的开发,即即完成对对该工资资管理系系统的开开发,本本系统计计划分为为四个模模块,分分别为工工资管理理,工资资管理,考考勤管理理,前后后台设置置。第一一周将系系统设计计报告撰撰写好,第第三周时时间进行行系统设设计和jjavaa代码设设计,最最后测试试系统并并加以完完善。3.项目目开发经经费的概概算项目开发发经费的预预算为:各种软软硬件及人人员花费费至少需需80000元。4.项目目所需的的硬件和和软件资资源等硬件、软软件、运运行环境境和开发发环境方方面的条条件和限限制:软软件需求求:操作作系统WWINDDOWSS 20000 Advvancce SServver以以上;数数据库服服务器端端软件aacceess,jjavaa编程软软件,jjdk11.6版版本。硬硬件需求求:100M以上上的LAAN接入入网络带带宽,PP4 33.0GG Xeeon CPUU /11G内存存/3660G(10KK) SSCSII硬盘的的服务器器,P33以上微微机(带带网卡)的的客户机机,P44 3.0G Xeoon CCPU /1GG内存/36GG(100K) RAIID硬盘盘的数据据库服务务器。本系统采采用jaava实实现,依依靠其强强大的控控件系统统以及acccesss数据据库管理理系统。三系统统分析报报告1.业务务流程图图图例说明明: 表示外外部实体体 表表示处理理过程的的说明表示系统统 表示示生成文文档 表示示表 表示信信息的传传输过程程,线段段上的文文字是对对传递信信息的说说明根据需求求分析,我我们分析析出一个个工资管管理系统统中工资资管理子子系统业业务的一一般流程程:首先,用用户必须须进行注注册以及及登陆,才才能进入入工资管管理系统统。注册册及登陆陆的流程程如下:图3-11员工注注册及登登陆业务务流程图图其次,员员工登陆陆进入工工资管理理子系统统之后就就要进行行工资查查询。图3-22 企业工工资管理理工资资管理子子系统业业务流程程图2.数据据流程图图图例说明明:表示外部部实体 表表示处理理过程表示存储储信息或或文件 带有名名称的有有向线段段表示数数据流图3-33 工工资管理理系统顶顶层DFFD图3-44 工资资管理系系统的第第一层DDFD 图3-5 企企业工资资管理工资资管理子子系统的的数据流流程图3.功能能分析图图该工资管管理工资管理理子系统统的总体体功能可可以从两两个方面面来分析析,一是是查找功功能,二二是编辑辑功能-包括修修改,删删除,和和添加,总总体功能能设计如如图3-4所示示。功能名称查询功能能编辑功能能员工员工和管管理员都都可以通通过在进进入工资资管理子子系统后后,对员员工的基基本,和和基本工工资信息息进行查查询无管理员管理员通通过管理理权限登登录后,可可根据改改变员工工信息,对对基本工工资表,工资表进行修改,添加和删除操作。图3-66 工工资管理理子系统统功能分分析图4.数据据字典数据字典典中有六六类条目目:数据据元素、数据结结构、数数据流、数据存存储、处处理过程程和外部部实体。不同类类型的条条目有不不同的属属性。根根据“数据流流程图”,编写写相应的的“数据字字典”,如下下所示。(1)数数据元素素条目 数据元元素条目目总编码:3-11 编号:001数据项名名称:员员工编号号 有关关编码说说明:数值类型型:离散散 XXXXXX类型:数数字 序号长度:88 职职务编号号说明: 员工的的具体编编号 有关数据据结构:基本工资资表,工工资表,可可变工资资表,最最终工资资表考勤表 数据元元素条目目总编码:3-22 编号:002数据项名名称:姓姓名 类型:字字符 长度:88 说明: 员工的的姓名 有关数据据结构:基本工资资表,工工资表,可可变工资资表,最最终工资资表考勤表 数据元元素条目目总编码:3-33 编号:003数据项名名称:性性别 类型:字字符 长度:22 说明: 员工的的所拥有有的性别别 有关数据据结构:工资表,最最终工资资表,考考勤表 数据元元素条目目总编码:3-44 编号:004数据项名名称:部部门编号号 有关编编码说明明:数值类型型:离散散 XXX 类型:数数字 部门门编号长度:22 说明: 员工的的所在部部门的编编号 有关数据据结构:工资表,可可变工资资表,最最终工资资表考勤表 数据元元素条目目总编码:3-55 编号:005数据项名名称:职职务编号号 有关编编码说明明:数值类型型:离散散 XXX 类型:数数字 职务务编号长度:22 说明: 员工的的拥有的的职务的的编号 有关数据据结构:工资表,最最终工资资表 数据元元素条目目总编码:3-88 编号:008数据项名名称:底底薪 类型:数数字 长度:88 说明: 员工的的得到的的工资 有关数据据结构:工资表,最最终工资资表 数据元元素条目目总编码:3-99 编号:009数据项名名称:津津贴 数值类型型:离散散 类型:数数字 长度:88 说明: 员工得得到的津津贴 有关数据据结构:工资表,最最终工资资表(2)数数据流条条目名称:基基本工资资表简要说明明:每月月结束时时,有工工资管理理员填写写的表 总编编号:33-100数据来源源:管理理员 编编号:110数据流向向: PP1.11,P11.3 包含的数数据结构构: 流通量量:1份份/ 月月员工编号号性别姓名部门编号号职务编号号底薪津贴(3)处处理过程程定义名称:查查询最终终工资说明:月月末员工工查询最最终工资资 总总编号:3-112输入: P3.2 编编号:112输出: D6 处理:员员工通过过正确的的权限,进入到到最终工资资表界面面,查询询其本月月所得到到的最终工工资.名称:修修改基本本工资表表说明:月月末管理理员修改改或查询询基本工工资 总编编号:33-144输入:PP1.11,P11.3 编号:14输出: D2 处理:管管理员通通过工资资表和基基本工资资表的变变动,对对基本工资资表进行行查询或或修改.(4)数数据存储储数据存储储名称:基本工工资表说明:月月末按员员工编号号给员工工发的最最基本工工资 总编号号:3-16包含的数数据结构构: 编编号:116员工编号号性别 有有关的数数据流:姓名部门编号号职务编号号 信息量量:1份份/月底薪 有无无立即查查询:有有津贴5.数据据加工处处理的描描述数据加工工处理的的工具主主要包括括:结构构化语言言,判断断树,决决策表。下面用用结构化化语言描描述。如果 职务是是经理则 基基本工资资为25500 如果 职务是是部长 则 基本本工资为为20000如果 职职务是工工人 则 基本本工资为为120006.管理理信息系系统流程程设计图图(新系系统模型型) 图33-7 企业工工资管理理工资资管理子子系统设设计报告告四 .系系统设计计报告1. 功能结构构设计本学工资资管理子子系统主主要分为为三个模模块,包包括查询询,添加加,修改改和删除除。本系系统首先先将员工工的基本本和基本本工资信信息输入入,然后后可以进进行以下下三种功功能操作作。图4-11 企业业工资管管理工资管理理子系统统功能模模块设计计2. 新系统信信息处理理流程设设计 图44-2 3.代码码设计(如如:职工工证号和和部门代代号等)每一个代代码都只只代表唯唯一的实实体或属属性,代代码必须须简单明明了,但但必须有有利于对对数据进进行统计计、汇总总、分析析等操作作。同时时必须满满足系统统要求,便便于记忆忆和使用用。该工资管管理子系系统是针针对员工工信息进进行管理理的,主主要涉及及到的人人员是员员工,下下面对员员工的相相关代码码结构及及编码规规则进行行说明,如如下所示示:员工编号号10000编号部门编号5.程序序设计说说明书五.系统统实现部部分1.程序序框图(程程序流程程图)2.源程程序下面是程程序的各各部分关关系图:普通员工工进入后后的界面面,只有有查询功功能,其其余有添添加修改改删除操操作的菜菜单为灰灰色,不不能操作作。这是管理理员进入入后的界界面,全全部可以以操作,菜菜单显示示可以全全部操作作。这是登陆陆界面的的代码:impoort javva.aawt.*;classs ddengglu exttendds FFramme ppubllic Labbel namme=nnew Labbel("用户户名");publlic Labbel passs=nnew Labbel("密码码");publlic TexxtFiieldd txxtnaame=neww TeextFFielld();publlic TexxtFiieldd txxtpaass=neww TeextFFielld();publlic Butttonn bttok=neww Buuttoon(""登陆"");publlic Butttonn bttexiit=nnew Butttonn("取取消");publlic conndb connu=nnew conndb();privvatee Sttrinng ssql=nulll;privvatee ReesulltSeet rrs=nnulll;privvatee Immagee immg;publlic denngluu()img=gettTooolkiit().geetImmagee(geetCllasss().gettRessourrce("/www.ppng"");setTTitlle(""欢迎使使用工资资管理系系统");setLLayoout(nulll);setRResiizabble(fallse);setSSizee(5000,3350);Dimeensiion scrr=Tooolkkit.gettDeffaulltTooolkkit().ggetSScreeenSSizee();Dimeensiion frmm=thhis.gettSizze();setLLocaatioon(scrr.wiidthh-frrm.wwidtth)/2,(scrr.heeighht-ffrm.heiightt)/22-188);txtppasss.seetEcchoCCharr('*');txtnnamee.seetBooundds(1120,2600,1220,227);txtppasss.seetBooundds(1120,3000,1220,227);btokk.seetBooundds(3340,2600,1000,228);btexxit.settBouundss(3440,3300,1000,288);add(namme);add(txttnamme);add(passs);add(txttpasss);add(btook);add(bteexitt);setVVisiiblee(trrue);btexxit.adddActtionnLisstenner(neww AcctioonLiisteenerr()publlic voiid aactiionPPerfformmed(ActtionnEveent e)dispposee();Systtem.exiit(00); );btokk.adddAcctioonLiisteenerr(neew AActiionLListteneer()publlic voiid aactiionPPerfformmed(ActtionnEveent e)sql="seelecct * frrom 数据库库用户 wheere 用户名名='""+txxtnaame.gettTexxt()+"'' annd 密密码=''"+ttxtppasss.geetTeext()+""'"try rss=coonu.gettrs(connu.ccon,sqll);if(rrs.nnextt() ) maainfff mmf=nnew maiinfff();if(rrs.ggetIInt(4)!=0)mf.ggetIInittsyss().settEnaableed(ffalsse);mf.ggetUUserr().settEnaableed(ffalsse);mf.ggetGGongg2().seetEnnablled(fallse);dispposee();mf.sshoww();elsee JOpptioonPaane jopp=neew JJOpttionnPanne();jop.shoowMeessaageDDiallog(nulll,""用户名名或密码码错误"","信信息提示示!",-1);cattch(Exccepttionn eee) );addWWinddowLListteneer( neww WiindoowAddaptter()pubblicc vooid winndowwCloosinng(WWinddowEEvennt ee) diispoose();Systtem.exiit(00); );publlic voiid ppainnt(GGrapphiccs gg) g.settCliip(nnew Recctannglee2D.Flooat(0,00,5000,3350);g.drrawIImagge(iimg,0,00,thhis);publlic claass dl puubliic sstattic voiid mmainn(Sttrinng aargss) deengllu ddengg=neew ddengglu();工资查询询的功能能截图查询代码码:impoort javva.aawt.*;impoort javva.aawt.eveent.*;impoort javvax.swiing.*;impoort javva.ssql.*;classs wwholle eexteendss JDDiallog impplemmentts AActiionLListteneer privvatee coondbb coon = nuull;privvatee ReesulltSeet rrs = nuull;privvatee Sttrinng ssql = nnulll;privvatee JLLabeel bbmhaao = neew JJLabbel("员工工编号:");privvatee JLLabeel bbmnaame = nnew JLaabell("姓姓名:"");privvatee JTTexttFieeld whoolettx1 = nnew JTeextFFielld();privvatee JTTexttFieeld whoolettx2 = nnew JTeextFFielld();privvatee JBButtton ok = nnew JBuuttoon(""查询"");privvatee JOOptiionPPanee joop = neew JJOpttionnPanne();privvatee JTTablle tta = nuull;privvatee JSScroollPPanee taaoooo = neww JSScroollPPanee();privvatee Sttrinng ccol = "员工工编号"", ""姓名"", ""旷工"", ""迟到"", ""底薪"", ""加班"", ""绩效奖奖励","出勤金金额", "实实发工资资" ;privvatee Obbjecct rrowllinee = neew SStriing45100;privvatee boooleean tf = ffalsse;publlic whoole() con=neww coondbb();setTTitlle(""全部信信息");setSSizee(6000, 3000);getCConttenttPanne().seetBaackggrouund(Collor.LIGGHT_GRAAY);getCConttenttPanne().seetLaayouut(nnulll);Dimeensiion scrr = Tooolkiit.ggetDDefaaulttTooolkiit().geetSccreeenSiize();Dimeensiion frmm = gettSizze();setLLocaatioon(intt) (scrr.geetWiidthh() - ffrm.gettWiddth() / 22, 1150);bmhaao.ssetBBounnds(50, 200, 880, 30);wholletxx1.ssetBBounnds(1400, 220, 50, 200);bmnaame.settBouundss(2110, 20, 800, 330);wholletxx2.ssetBBounnds(3000, 220, 50, 200);ok.ssetBBounnds(4000, 220, 1000, 330);getCConttenttPanne().addd(bbmhaao);getCConttenttPanne().addd(wwholletxx1);getCConttenttPanne().addd(bbmnaame);getCConttenttPanne().addd(wwholletxx2);getCConttenttPanne().addd(ook);ok.aaddAActiionLListteneer(tthiss);setVVisiiblee(trrue);publlic voiid iinittTabble(Objjectt roow, Sttrinng ccol) if (whoolettx1.gettTexxt().eqqualls(""")&&& wwholletxx2.ggetTTextt().equualss(""") sql = ""sellectt * frrom 员工数数据表,出勤表表,员工工绩效,最终工工资 wwherre" +" 员员工数据据表.员员工编号号=最终终工资.员工编编号 aand 最终工工资.员员工编号号=出勤勤表.员员工编号号 annd 出出勤表.员工编编号=员员工绩效效.员工工编号"" ellse if (whholeetx11.geetTeext().eequaals("") = faalsee) sql = ""sellectt * frrom 员工数数据表,出勤表表,员工工绩效,最终工工资 wwherre" +" 员员工数据据表.员员工编号号=最终终工资.员工编编号 aand 最终工工资.员员工编号号=出勤勤表.员员工编号号 annd 出出勤表.员工编编号=员员工绩效效.员工工编号 andd 员工工数据表表.员工工编号= "+whoolettx1.gettTexxt() + ""Systtem.outt.prrinttln(sqll);elsee iff (wwholletxx2.ggetTTextt().equualss(""") = ffalsse) sql = ""sellectt * frrom 员工数数据表,出勤表表,员工工绩效,最终工工资 wwherre" +" 员员工数据据表.员员工编号号=最终终工资.员工编编号 aand 最终工工资.员员工编号号=出勤勤表.员员工编号号 annd 出出勤表.员工编编号=员员工绩效效.员工工编号 andd 员工工数据表表.员工工姓名='"+whoolettx2.gettTexxt() + "'""Systtem.outt.prrinttln(sqll);Connnecttionn coonn=conn.geetCoonn();Stattemeent staa=nuull;try sta = cconnn.crreatteSttateemennt();ResuultSSet rs=staa.exxecuuteQQuerry(ssql);int cntt = 0;whille (rs.nexxt()rowllineecnnt0 = rrs.ggetSStriing("员工工编号"");rowllineecnnt1 = rrs.ggetSStriing("员工工姓名"");rowllineecnnt2 = rrs.ggetSStriing("矿工工次数"");rowllineecnnt3 = rrs.ggetSStriing("迟到到次数"");rowllineecnnt4 = rrs.ggetSStriing("底薪薪");rowllineecnnt5 = rrs.ggetSStriing("加班班次数"");rowllineecnnt6 = rrs.ggetSStriing("绩效效奖励"");rowllineecnnt7 = rrs.