《Java工资管理系统13881.docx》由会员分享,可在线阅读,更多相关《Java工资管理系统13881.docx(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java程程序设计基基础课程设计课题名称 工资管理理系统工资管理设设计 学 号姓 名班 级指导老师企业工资管管理工资管理子子系统企业工资管管理工资管理子子系统2一需求分分析报告331.组织机机构操作方方式上的可可行性32.基础数数据的可用用性33.经济上上的可行性性34.技术上上的可行性性35.目标分分析3二项目开开发计划441.项目开开发组织机机构的设置置和人员的的安排42.项目开开发的进度度43.项目开开发经费的的概算44.项目所所需的硬件件和软件资资源等4三系统分分析报告441.业务流流程图42.数据流流程图63.功能分分析图84.数据字字典.95.数据加加工处理的的描述1226.管理信
2、信息系统流流程设计图图(新系统统模型)112四 .系统统设计报告告13五.系统实实现部分1162.源程序序163.模拟运运行数据3334.测试用用例346.系统使使用说明书书。37六.工作总总结35七、致谢336八附录336一需求分分析报告1.组织机机构操作方方式上的可可行性本系统运行行在通用的的Winddows操操作系统上上,具有WWindoows相似似的操作界界面。具有有简单易学学,使用方方便等特点点,只需在在计算机上上进行相关关的简单的的设置即可可,懂得计计算机基本本操作的人人员经过短短期培训培培训即可熟熟练操作,熟熟悉计算机机操作的人人员不需要要再经过专专门的培训训即可熟练练操作。所所
3、以,从组组织机构操操作方式上上的可行性性分析,该该系统是可可行的。2.基础数数据的可用用性企业工资管管理系统的的基础数据据都是一些些比较常见见的基础数数据,比如如职工编号号,姓名,部部门编号等等等,在系系统的设计计过程中都都是很好使使用和编排排的,所以以,从系统统基础数据据可用性的的角度看,该该系统是可可行的。3.经济上上的可行性性a.采用新新的工资管管理系统可可取代原系系统的单据据手工传递递工作,减减少人工开开支,节省省资金,并并且可大大大提高信息息量的取得得,缩短信信息处理周周期,提高工资汇汇总的效率率,使公司变变的资金运运转更加便便捷。b.开发经经费、投资资方面的来来源和限制制:各种硬硬
4、件及人员员花费至少少需80000元.所以,从经经济上的可可行性分析析,该系统统是可行的的。4.技术上上的可行性性本系统是一一个数据库库管理和查查询的系统统,现有的的技术以较较为成熟,硬硬件、软件件的性能要要求、环境境条件等各各项条件良良好,估计计利用现有有技术条件件应完全可可以达到该该系统的功功能目标。职职工工资管管理系统开开发与运行行环境选择择如下:开发环境:Winddows XP开发工具:Javaa,Javva软件可可以选用eeclippse3.5数据库管理理系统:aaccesss数据库库5.目标分分析做出一个简简单实用工工资管理系系统,不需需要功能复复杂,只需需要实用性性强。功能能要在很
5、多多小型企业业都能够使使用。操作作性简单,要要最大限度度的减少使使用用户的的工作量。二项目开开发计划1.项目开开发组织机机构的设置置和人员的的安排本系统开发发人员共有有4位,每每人负责一一部分。 :负责责工资管理理部分; :负责责考勤管理理部分; :负责责工资管理理部分; :负责责前台设置置部分;2.项目开开发的进度度本小组决定定在两周之之内完成该该项目的开开发,即完完成对该工工资管理系系统的开发发,本系统统计划分为为四个模块块,分别为为工资管理,工工资管理,考考勤管理,前前后台设置置。第一周周将系统设设计报告撰撰写好,第第三周时间间进行系统统设计和jjava代代码设计,最最后测试系系统并加以
6、以完善。3.项目开开发经费的的概算项目开发经经费的预算算为:各种种软硬件及人员员花费至少少需80000元。4.项目所所需的硬件件和软件资资源等硬件、软件件、运行环环境和开发发环境方面面的条件和和限制:软软件需求:操作系统统WINDDOWS 20000 Advvancee Serrver以以上;数据据库服务器器端软件aaccesss,jaava编程程软件,jjdk1.6版本。硬硬件需求:10M以上上的LANN接入网络络带宽,PP4 3.0G XXeon CPU /1G内存/360GG(10KK) SCCSI硬盘盘的服务器器,P3以以上微机(带带网卡)的的客户机,PP4 3.0G XXeon CP
7、U /1G内存/36G(110K) RAIDD硬盘的数数据库服务务器。本系统采用用javaa实现,依依靠其强大大的控件系系统以及acccess数数据库管理理系统。三系统分分析报告1.业务流流程图图例说明: 表表示外部实实体 表表示处理过过程的说明明表示系统 表示示生成文档档 表示表表 表示示信息的传传输过程,线线段上的文文字是对传传递信息的的说明根据需求分分析,我们们分析出一一个工资管管理系统中中工资管理子子系统业务务的一般流流程:首先,用户户必须进行行注册以及及登陆,才才能进入工工资管理系系统。注册册及登陆的的流程如下下:图3-1员员工注册及及登陆业务务流程图其次,员工工登陆进入入工资管理子
8、子系统之后后就要进行行工资查询询。图3-2 企业业工资管理理工资管理子子系统业务务流程图2.数据流流程图图例说明:表示外部实实体 表示处理理过程表示存储信信息或文件件 带有名名称的有向向线段表示示数据流图3-3 工资管管理系统顶顶层DFDD图3-4 工资管理理系统的第第一层DFFD 图3-55 企业工工资管理工资管理子子系统的数数据流程图图3.功能分分析图该工资管理理工资管理子子系统的总总体功能可可以从两个个方面来分分析,一是是查找功能能,二是编编辑功能-包包括修改,删删除,和添添加,总体体功能设计计如图3-4所示。功能名称查询功能编辑功能员工员工和管理理员都可以以通过在进进入工资管理子子系统
9、后,对对员工的基基本,和基基本工资信信息进行查查询无管理员管理员通过过管理权限限登录后,可可根据改变变员工信息息,对基本本工资表,工资表进行修改,添加和删除操作。图3-6 工资管理子子系统功能能分析图4.数据字字典数据字典中中有六类条条目:数据据元素、数数据结构、数数据流、数数据存储、处处理过程和和外部实体体。不同类类型的条目目有不同的的属性。根根据“数据流程程图”,编写相相应的“数据字典典”,如下所所示。(1)数据据元素条目目 数数据元素条条目总编码:33-1 编号:011数据项名称称:员工编编号 有关关编码说明明:数值类型:离散 XXXXX类型:数字字 序号号长度:8 职务编编号说明: 员
10、员工的具体体编号 有关数据结结构:基本工资表表,工资表,可可变工资表表,最终工工资表考勤表 数数据元素条条目总编码:33-2 编号:022数据项名称称:姓名 类型:字符符 长度:8 说明: 员员工的姓名名 有关数据结结构:基本工资表表,工资表,可可变工资表表,最终工工资表考勤表 数数据元素条条目总编码:33-3 编号:033数据项名称称:性别 类型:字符符 长度:2 说明: 员员工的所拥拥有的性别别 有关数据结结构:工资表,最最终工资表表,考勤表表 数数据元素条条目总编码:33-4 编号:044数据项名称称:部门编编号 有关编编码说明:数值类型:离散 XX 类型:数字字 部门编号号长度:2 说
11、明: 员员工的所在在部门的编编号 有关数据结结构:工资表,可可变工资表表,最终工工资表考勤表 数数据元素条条目总编码:33-5 编号:055数据项名称称:职务编编号 有关编编码说明:数值类型:离散 XX 类型:数字字 职务编号号长度:2 说明: 员员工的拥有有的职务的的编号 有关数据结结构:工资表,最最终工资表表 数数据元素条条目总编码:33-8 编号:088数据项名称称:底薪 类型:数字字 长度:8 说明: 员员工的得到到的工资 有关数据结结构:工资表,最最终工资表表 数数据元素条条目总编码:33-9 编号:099数据项名称称:津贴 数值类型:离散 类型:数字字 长度:8 说明: 员员工得到
12、的的津贴 有关数据结结构:工资表,最最终工资表表(2)数据据流条目名称:基本本工资表简要说明:每月结束束时,有工工资管理员员填写的表表 总总编号:33-10数据来源:管理员 编号:10数据流向: P1.1,P11.3 包含的数据据结构: 流流通量:11份/ 月月员工编号性别姓名部门编号职务编号底薪津贴(3)处理理过程定义义名称:查询询最终工资资说明:月末末员工查询询最终工资资 总总编号:33-12输入: PP3.2 编号:12输出: DD6 处理:员工工通过正确确的权限,进入到最终工资表表界面,查查询其本月月所得到的最终工资资.名称:修改改基本工资资表说明:月末末管理员修修改或查询询基本工资资
13、 总编编号:3-14输入:P11.1,PP1.3 编号:14输出: DD2 处理:管理理员通过工工资表和基基本工资表表的变动,对基本工资表表进行查询询或修改.(4)数据据存储数据存储名名称:基本本工资表说明:月末末按员工编编号给员工工发的最基基本工资 总总编号:33-16包含的数据据结构: 编号:16员工编号性别 有关的数数据流:姓名部门编号职务编号 信息息量:1份份/月底薪 有有无立即查查询:有津贴5.数据加加工处理的的描述数据加工处处理的工具具主要包括括:结构化化语言,判判断树,决决策表。下下面用结构构化语言描描述。如果 职职务是经理理则 基本本工资为22500如果职职务是部长长则基本工工
14、资为20000如果职务务是工人则基本工工资为122006.管理信信息系统流流程设计图图(新系统统模型) 图3-7 企业业工资管理理工资管理子子系统设计计报告四 .系统统设计报告告1. 功能结构设设计本学工资管管理子系统统主要分为为三个模块块,包括查查询,添加加,修改和和删除。本本系统首先先将员工的的基本和基基本工资信信息输入,然然后可以进进行以下三三种功能操操作。图4-1 企业工资资管理工资管理子子系统功能能模块设计计2. 新系统信息息处理流程程设计 图4-2 3.代码设设计(如:职工证号号和部门代代号等)每一个代码码都只代表表唯一的实实体或属性性,代码必必须简单明明了,但必必须有利于于对数据
15、进进行统计、汇汇总、分析析等操作。同同时必须满满足系统要要求,便于于记忆和使使用。该工资管理理子系统是是针对员工工信息进行行管理的,主主要涉及到到的人员是是员工,下下面对员工工的相关代代码结构及及编码规则则进行说明明,如下所所示:员工编号1000编号部门编号5.程序设设计说明书书五.系统实实现部分1.程序框框图(程序序流程图)2.源程序序下面是程序序的各部分分关系图:普通员工进进入后的界界面,只有有查询功能能,其余有有添加修改改删除操作作的菜单为为灰色,不不能操作。这是管理员员进入后的的界面,全全部可以操操作,菜单单显示可以以全部操作作。这是登陆界界面的代码码:imporrt jaava.aa
16、wt.*;classs dennglu exteends Framme pubblic Labeel naame=nnew LLabell(用户户名);publiic Laabel passs=neww Labbel(密码);publiic TeextFiield txtnname=new TexttFielld();publiic TeextFiield txtppass=new TexttFielld();publiic Buuttonn btook=neew Buuttonn(登陆陆);publiic Buuttonn bteexit=new Buttton(取消);publiic co
17、ondb conuu=neww conndb();privaate SStrinng sqql=nuull;privaate RResulltSett rs=nulll;privaate IImagee imgg;publiic deengluu()img=ggetTooolkiit().getIImagee(gettClasss().getRResouurce(/www.pngg);setTiitle(欢迎使使用工资管管理系统);setLaayoutt(nulll);setReesizaable(falsse);setSiize(5500,3350);Dimennsionn scrr=Too
18、olkitt.gettDefaaultTToolkkit().gettScreeenSiize();Dimennsionn frmm=thiis.geetSizze();setLoocatiion(scr.widtth-frrm.wiidth)/2,(scr.heigght-ffrm.hheighht)/22-18);txtpaass.ssetEcchoChhar(*);txtnaame.ssetBooundss(1200,2600,1200,27);txtpaass.ssetBooundss(1200,3000,1200,27);btok.setBBoundds(3440,2660,1000
19、,288);btexiit.seetBouunds(340,300,100,28);add(nname);add(ttxtnaame);add(ppass);add(ttxtpaass);add(bbtok);add(bbtexiit);setViisiblle(trrue);btexiit.adddActtionLListeener(new ActiionLiistenner()publiic vooid aactioonPerrformmed(AActioonEveent ee)dispoose();Systeem.exxit(00); );btok.addAActioonLisstene
20、er(neew AcctionnListtenerr()publiic vooid aactioonPerrformmed(AActioonEveent ee)sql=seleect * froom 数据据库用户 wherre 用户户名=+txttnamee.gettTextt()+ annd 密码码=+txtppass.getTText()+;try rrs=coonu.ggetrss(connu.coon,sqql);if(rss.nexxt() ) maiinff mf=nnew mmainfff();if(rss.gettInt(4)!=0)mf.geetIniitsyss().sse
21、tEnnableed(faalse);mf.geetUseer().setEEnablled(ffalsee);mf.geetGonng2().settEnabbled(falsse);dispoose();mf.shhow();else JOOptioonPanne joop=neew JOOptioonPanne();jop.sshowMMessaageDiialogg(nulll,用用户名或密密码错误,信息息提示!,-1);catcch(Exxcepttion ee) );addWiindowwListtenerr( neew WiindowwAdappter()publlic vvoi
22、d winddowCllosinng(WiindowwEvennt e) dissposee();Systeem.exxit(00); );publiic vooid ppaintt(Graaphiccs g) g.setCClip(new Recttanglle2D.Floaat(0,0,5000,3550);g.draawImaage(iimg,00,0,tthis);publiic cllass dl pubblic stattic vvoid mainn(Strring argss) dennglu dengg=neww dennglu();工资查询的的功能截图图查询代码:imporr
23、t jaava.aawt.*;imporrt jaava.aawt.eeventt.*;imporrt jaavax.swinng.*;imporrt jaava.ssql.*;classs whoole eextennds JJDiallog iimpleementts AcctionnListtenerr privaate ccondbb conn = nnull;privaate RResulltSett rs = nuull;privaate SStrinng sqql = nulll;privaate JJLabeel bmmhao = neew JLLabell(员工工编号:);p
24、rivaate JJLabeel bmmnamee = nnew JJLabeel(姓姓名:);privaate JJTexttFielld whholettx1 = neww JTeextFiield();privaate JJTexttFielld whholettx2 = neww JTeextFiield();privaate JJButtton ook = new JButtton(查询);privaate JJOptiionPaane jjop = neww JOpptionnPanee();privaate JJTablle taa = nnull;privaate JJScro
25、ollPaane ttaoooo = nnew JJScroollPaane();privaate SStrinng cool = 员工编编号, 姓名, 旷旷工, 迟到, 底底薪, 加班, 绩绩效奖励,出勤金额额, 实发工资资 ;privaate OObjecct roowlinne = new Striing445110;privaate bbooleean ttf = falsse;publiic whhole() con=nnew ccondbb();setTiitle(全部信信息);setSiize(6600, 300);getCoontenntPanne().setBBackggro
26、unnd(Coolor.LIGHHT_GRRAY);getCoontenntPanne().setLLayouut(nuull);Dimennsionn scrr = TToolkkit.ggetDeefaulltTooolkitt().ggetSccreennSizee();Dimennsionn frmm = ggetSiize();setLoocatiion(int) (sccr.geetWiddth() - ffrm.ggetWiidth() / 2, 150);bmhaoo.settBounnds(550, 220, 880, 330);wholeetx1.setBBoundds(1
27、440, 220, 550, 220);bmnamme.seetBouunds(210, 20, 80, 30);wholeetx2.setBBoundds(3000, 220, 550, 220);ok.seetBouunds(400, 20, 1000, 300);getCoontenntPanne().add(bmhaao);getCoontenntPanne().add(wholletx11);getCoontenntPanne().add(bmnaame);getCoontenntPanne().add(wholletx22);getCoontenntPanne().add(ok);
28、ok.adddActtionLListeener(thiss);setViisiblle(trrue);publiic vooid iinitTTablee(Objject row, Strring col) if (wwholeetx1.getTText().eqqualss()& wwholeetx2.getTText().eqqualss() sql = seelectt * fromm 员工数数据表,出出勤表,员员工绩效,最终工资资 wheere + 员工工数据表.员工编号号=最终工工资.员工工编号 aand 最最终工资.员工编号号=出勤表表.员工编编号 annd 出勤勤表.员工工编号
29、=员员工绩效.员工编号号; elsse iff (whholettx1.ggetTeext().equuals() = ffalsee) sql = seelectt * fromm 员工数数据表,出出勤表,员员工绩效,最终工资资 wheere + 员工工数据表.员工编号号=最终工工资.员工工编号 aand 最最终工资.员工编号号=出勤表表.员工编编号 annd 出勤勤表.员工工编号=员员工绩效.员工编号号 andd 员工数数据表.员员工编号= +wwholeetx1.getTText() + ;Systeem.ouut.prrintlln(sqql);else if (wholletx22.
30、gettTextt().eequalls() = fallse) sql = seelectt * fromm 员工数数据表,出出勤表,员员工绩效,最终工资资 wheere + 员工工数据表.员工编号号=最终工工资.员工工编号 aand 最最终工资.员工编号号=出勤表表.员工编编号 annd 出勤勤表.员工工编号=员员工绩效.员工编号号 andd 员工数数据表.员员工姓名=+wwholeetx2.getTText() + ;Systeem.ouut.prrintlln(sqql);Conneectioon coonn=ccon.ggetCoonn();Stateementt staa=null
31、l;try sta = connn.crreateeStattemennt();ResulltSett rs=sta.execcuteQQueryy(sqll);int ccnt = 0;whilee (rss.nexxt()rowliineccnt0 = rs.getSStrinng(员员工编号);rowliineccnt1 = rs.getSStrinng(员员工姓名);rowliineccnt2 = rs.getSStrinng(矿矿工次数);rowliineccnt3 = rs.getSStrinng(迟迟到次数);rowliineccnt4 = rs.getSStrinng(底底薪)
32、;rowliineccnt5 = rs.getSStrinng(加加班次数);rowliineccnt6 = rs.getSStrinng(绩绩效奖励);rowliineccnt7 = rs.getSStrinng(出出勤金额);rowliineccnt8 = rs.getSStrinng(实实发工资);cnt+;ta = new JTabble(rrowliine, col);ta.seetSizze(5880, 1190);taoooo = nnew JJScroollPaane(tta);taoooo.settLocaationn(20, 50);taoooo.settSizee(560
33、0, 1990);getCoontenntPanne().add(taoooo);this.repaaint(0, 00, 5000, 3300);tf = falsse; cattch (SQLEExcepptionn e) / TOODO 自自动生成 catcch 块e.priintSttackTTracee();publiic vooid aactioonPerrformmed(AActioonEveent aae) /* iint ccnt=11;whilee(cntt11) rowwlineecntt0=1;rowliineccnt1=2;rowliineccnt2=3;rowliineccnt3=4;rowliineccnt4=5;rowliineccnt5=6;rowliineccnt6=7;rowliineccnt7=8;rowliineccnt8=9;rowliineccnt9=10;cnt+;ta=neew JTTablee(rowwlinee,coll);ta.seetSizze(5880,1990);taoooo=neww JScc