C企业工资管理系统课程设计

上传人:3**** 文档编号:157231523 上传时间:2022-09-29 格式:DOCX 页数:52 大小:385.78KB
收藏 版权申诉 举报 下载
C企业工资管理系统课程设计_第1页
第1页 / 共52页
C企业工资管理系统课程设计_第2页
第2页 / 共52页
C企业工资管理系统课程设计_第3页
第3页 / 共52页
资源描述:

《C企业工资管理系统课程设计》由会员分享,可在线阅读,更多相关《C企业工资管理系统课程设计(52页珍藏版)》请在装配图网上搜索。

1、目录一、 需求分析.1二、 概要设计.3三、 详细设计.122四、 调试分析.122五、 用户手册.133六、 测试数据.177七、 附录.31一、 需求分析1. 源文件采用用多文件件的工程程结构。2. 数据存储采采用文件件形式。3. 标准C+输入输输出4. 程序完成企企业人事事工资管管理,能能够实现现工资的的录入、统统计(整整个单位位的平均均工资、最最高工资资、最低低工资和和工资均均方差;各部门门的平均均工资、最最高工资资、最低低工资和和工资均均方差)、查查询(按按工号或或姓名查查询)、修修改、删删除等功功能。5. 程序执行的的命令:(1) 录入员工工工资信息息;(2) 选择需要执执行的操操

2、作(添添加、统统计、删删除、修修改、查查询);(3) 输出结果。二、 概要设计1. 设计类的数数据类型型定义classs meessaageprivaate:charr boornpplacce110,dutty110;/籍籍贯 职职务 iint ID;/身身份证号号publiic:charr naame10,buumenn100;/姓名名 部部门 iint nummberr; /工号号int bassesaalarry;/基本本工资int jobbsallaryy;/岗位工工资int yljjj;/医疗疗基金int sj;/税税金int jjianngjiin;/奖金金friennd vvo

3、idd moodiffy(iint x); /友友员函数数friennd iint dell(innt xx); /友员函函数 2. 程序模块(1) 录入操作:voiid wwritten(intt x),该模模版主要要实现工工资信息息的录入入;(2) 添加操作:voiid aadd(intt x),该模模版主要要实现工工资信息息的添加加;(3) 删除操作:voiid ddel(intt x),该模模版主要要实现工工资信息息的删除除;(4) 修改操作:voiid mmodiify(intt x),该模模版主要要实现工工资信息息的修改改;(5) 查询操作:voiid ffindd(innt xx

4、) ,该该模版主主要实现现工资信信息的查查询(按按名字查查询或按按工号查查询);(6) 统计操作:voiid ccounnt(iint x),该该模版主主要实现现工资信信息的统统计(统统计单位位的平均均工资、最最高工资资、最低低工资、工工资均方方差;统统计部门门的平均均工资、最最高工资资、最低低工资、工工资均方方差)。 3程序模模块结构构void maiin()菜单(输入入选择);操作;三、详细设设计(1)类模模块classs meessaageprivaate:charr boornpplacce110,dutty110;/籍籍贯 职职务 iint ID;/身身份证号号publiic:cha

5、rr naame10,buumenn100;/姓名名 部部门 iint nummberr; /工号号int bassesaalarry;/基本本工资int jobbsallaryy;/岗位工工资int yljjj;/医疗疗基金int sj;/税税金 iint jiaangjjin;/奖奖金messsagee() /*构造函函数voidd xiinxii(chhar a_nnamee,chaar aa_boornpplacce,chhar a_ddutyy,chaar aa_buumenn,intt a_ID,intt a_nummberr,innt aa_baasessalaary,intt

6、a_jobbsallaryy,innt aa_jiianggjinn,innt aa_ylljj,intt a_sj)strrcpyy(naame,a_nnamee); strrcpyy(boornpplacce,aa_boornpplacce); strrcpyy(duuty,a_ddutyy); strcppy(bbumeen,aa_buumenn); ID=a_IID; nummberr=a_nummberr; bassesaalarry=aa_baasessalaary; jobbsallaryy=a_jobbsallaryy; jiaangjjin=a_jjianngjiin; yl

7、jjj=aa_ylljj; sj=a_ssj; messsagee &ooperratoor=(connst messsagge &s) /*运运算符重重载 strrcpyy(naame,s.nnamee);strrcpyy(boornpplacce,ss.boornpplacce);strrcpyy(duuty,s.ddutyy);strrcpyy(buumenn,s.bummen);ID=s.IID;nummberr=s.nummberr;bassesaalarry=ss.baasessalaary;jobbsallaryy=s.jobbsallaryy;jiaangjjin=s.jjia

8、nngjiin;yljjj=ss.ylljj;sj=s.ssj;retturnn * thiis;frieend voiid mmodiify(intt x); /*友友元函数数frieend intt deel(iint x);voidd puut()couutnamme bbornnplaace dutty bbumeen IID nnumbber bassesaalarry jjobssalaary jiaangjjin yljjj ssjenddl;messsagge() /*析构构;(2)主函函数流程程图 开始int b,or,i输入i值i=1录入i=2添加i=3删除i=4修改i =

9、5查找i=6统计i=7退出结束(3)录入入、添加加函数流流程图开始cout(请输入您要添加的信息)cout(姓名,工号,职务,身份证号,籍贯,基本工资,岗位工资,奖金,医疗住房基金,税金)cin(name,num,duty,ID,bornplace,basesalary,jobsalary,jiangjin,yljj,sj)结束(4) 删除函数流流程图开始int i,j,temp,flag=-1,char ming输入删除的名字name=mingitemp,jtemp-1aj=bi,i+,j+i+没有找到要删除的人endmesssagee a30;fstrreamm app(wwenjjian

10、n.txxt,ioss:iin|ioss:oout); /文文件打开开操作 ccouttmiing; /输入要要删除的的人员姓姓名 ccoutteendll; forr(j=0,ii=0;ittempp;i+) /判断是是否删除除 if(strrcmpp(bi.namme,mmingg)=0)/标记记要删除除的信息息 flaag=ii; if(flaag=-1)coout没没有要删删除的信信息。eendll;reeturrn 00; ffor(j=00,i=0;iiteemp,jttempp-1; )/删除除信息if(flaag!=i)aj=bii; /删删除信息息i+;j+;elssei+;

11、(5)修改改函数流流程图startint i,j,char name输入mingbi.name=ming输入修改的信息(名字,工号,职务,身份证号,籍贯,工资)cin(name,num,duty,ID,bornplace,basesalary,jobsalary,jiangjin,yljj,sj)没找到要修改的endcoutmiing;coutteendll;couttfflaggeendll;coutt请输入入修改信信息:eendll; couut姓名名: bflaag.namme;coutt籍贯: bflaag.borrnpllacee;coutt职务: bflaag.dutty;cout

12、t部门: bflaag.bummen;coutt身份证证号: bflaag.ID;coutt工号: bflaag.nummberr;coutt基本工工资: bflaag.bassesaalarry;coutt岗位工工资: bflaag.jobbsallaryy;coutt奖金: bflaag.jiaangjjin;coutt医疗住住房基金金: bflaag.yljjj;coutt税金: bflaag.sj;coutteendll;(6)查找找函数流流程图开始int i,j,k,num;char ming,k=1输入要查询的名字bi.name=ming输入要查询的工号bi.putBi.num=n

13、umm没有找到要查找的姓名没有找到要查找的工号结束1:按姓名名查询coutmiing; messsagge bb300;fstrreamm spp(wwenjjiann.txxt,ioss:iin|ioss:oout); forr(j=0,ii=0;ittempp;i+)if(strrcmpp(bi.namme,mmingg)=0)coout姓姓名 籍贯 职务 部门 身份证证号 工号 基本工工资 岗位工工资 奖金 医疗住住房基金金 税金 enddl;bi.putt();2.按工号号查询:coutnuu; mmesssagee b30;for(i=00;itemmp;ii+)if(bii.nnu

14、mbber=nuu)coout姓姓名 籍贯 职务 部门 身份证证号 工号 基本工工资 岗位工工资 奖金 医疗住住房基金金 税金 a_bumenbi.bumen=a_bumeni=0,j=0,jtempi+j+sum=sum+bi.basesalary+bi.jobsalary+bi.jiangjin-bi.yljj-bi.sj;ui=bi.basesalary+bi.jobsalary+bi.jiangjin-bi.yljj-bi.sj;i=0,j=0,jtempbi.bumen=a_bumensum=sum+basesalary+.jobsalary+.jiangjin-.yljj-.sj;

15、ui=.basesalary+jobsalary+.jiangjin-.yljj-sj;i+j+end1. 按部门统计计 forr(j=0,ii=0;ittempp;i+)if(strrcmpp(bi.bummen,a_bbumeen)=0)suum=ssum+bii.bbaseesallaryy+bi.jobbsallaryy+bi.jiaangjjin-bii.yyljjj-bi.sj; /实实发工资资ui=bii.bbaseesallaryy+bi.jobbsallaryy+bi.jiaangjjin-bii.yyljjj-bi.sj;j+;int maxx;int minn; mmax

16、=u0;min=u0;int bb;for(i=00;immax)bbb=Ui;Ui=maxx;maax=bbb; /最最高工资资for(i=00;itemmp;ii+)if(Uiimmin)bbb=Ui;Ui=minn;miin=UUi;/最低工工资for(i=00;itemmp;ii+) bii.bbaseesallaryy=abbs(ssum/(j+0.00)-bbi.baasessalaary);/工资均均方差summ1=ssum11+bi.bassesaalarry;2.单位统统计int UU200;for(i=00;i20;i+)Uii=00;for(j=00,i=0;iiteem

17、p;i+)suum=ssum+bii.bbaseesallaryy+bi.jobbsallaryy+bi.jiaangjjin-bii.yyljjj-bi.sj;/实实发工资资Ui=bii.bbaseesallaryy+bi.jobbsallaryy+bi.jiaangjjin-bii.yyljjj-bi.sj;j+;int maxx;int minn; mmax=U00;min=U00;int bb;for(i=00;immax)bbb=Ui;Ui=maxx;maax=bbb; /最最高工资资for(i=00;itemmp;ii+)if(Uiimmin)bbb=Ui;Ui=minn;miin

18、=UUi;/最低工工资for(i=00;itemmp;ii+) bii.bbaseesallaryy=abbs(ssum/(j+0.00)-bbi.baasessalaary);/工资均均方差summ1=ssum11+bi.bassesaalarry;四、调试分分析1、开始使使用文件件保存时时出现不不能为rreadd错误,后后通过查查阅资料料解决了了问题;2、删除部部分程序序开始不不能判断断是否找找到了要要删除的的人员信信息,后后来加了了flaag标记记后可以以判断了了;3、统计部部分程序序在求均均方差的的时候出出现算法法错误,后后来查阅阅了均方方差公式式后改正正了过来来4、使用友友员函数数可

19、以解解决类外外作用域域问题。五、用户手手册1.本程序序的运行行环境为为docc操作系系统;2进入界界面后,按按照提示示输入选选择;3.选择11:执行行工资信信息录入入操作;4.选择22:执行行工资信信息添加加操作;5.选择33:执行行工资信信息删除除操作;6.选择44:执行行工资信信息修改改操作;7.选择55:执行行工资信信息查询询操作;8.选择66:执行行工资信信息统计计操作;9.选择77:退出出工资管管理系统统;10.输入入后按回回车键,即即可输出出信息,按按提示输输入即可可。六、测试数数据(1)选择择1:工工资录入入选择(2):添加工工资信息息(3)选择择3:删删除工资资信息(4)选择择

20、4:修修改工资资信息(5)选择择5:查查找工资资信息(6)选择择6:统统计工资资信息(7)选择择7:退退出七、附录#inclludeeioostrreamm.h#inclludee sstdllib.h#inclludee sstdiio.hh#inclludeesttrinng.hh#inclludeemeessaage.hclasss meessaageprivaate:charr boornpplacce110,dutty110;/籍籍贯 职职务 iint ID;/身身份证号号publiic:charr naame10,buumenn100;/姓名名 部部门 intt nuumbeer;

21、 /工工号int bassesaalarry;/基本本工资int jobbsallaryy;/岗位工工资int yljjj;/医疗疗基金int sj;/税税金 intt jiianggjinn;/奖金messsagee() /*构构造函数数voidd xiinxii(chhar a_nnamee,chaar aa_boornpplacce,chhar a_ddutyy,chaar aa_buumenn,intt a_ID,intt a_nummberr,innt aa_baasessalaary,intt a_jobbsallaryy,innt aa_jiianggjinn,innt aa_y

22、lljj,intt a_sj)strrcpyy(naame,a_nnamee);strrcpyy(boornpplacce,aa_boornpplacce);strrcpyy(duuty,a_ddutyy);strrcpyy(buumenn,a_bummen);ID=a_IID;nummberr=a_nummberr;bassesaalarry=aa_baasessalaary;jobbsallaryy=a_jobbsallaryy;jiaangjjin=a_jjianngjiin;yljjj=aa_ylljj;sj=a_ssj;messsagee &ooperratoor=(connst m

23、esssagge &s) /*运算算符重载载 strrcpyy(naame,s.nnamee); strrcpyy(boornpplacce,ss.boornpplacce);strrcpyy(duuty,s.ddutyy);strrcpyy(buumenn,s.bummen);ID=s.IID;nummberr=s.nummberr;bassesaalarry=ss.baasessalaary;jobbsallaryy=s.jobbsallaryy;jiaangjjin=s.jjianngjiin;yljjj=ss.ylljj;sj=s.ssj;retturnn * thiis;frieen

24、d voiid mmodiify(intt x); /*友元元函数frieend intt deel(iint x);voidd puut() /定定义puut函数数,以便便于其他他函数的的调用couutnamme bbornnplaace dutty bbumeen IID nnumbber bassesaalarry jjobssalaary jiaangjjin yljjj ssjenddl;messsagge() /*析构;void maiin()int i,bb;int or;coutt*欢欢迎进入入企业工工资管理理系统*enndl;coutt*11.工资资信息录录入操作作*eend

25、ll;coutt*22.工资资信息增增加操作作*eendll;coutt*33.工资资信息删删除操作作*eendll;coutt*44.工资资信息修修改操作作*eendll;coutt*55.工资资信息查查找操作作*eendll;coutt*66.工资资信息统统计操作作*eendll;coutt*77.退出出*eendll;coutt*请输入入你要进进行的操操作选项项*i;coutteendll;whille(ii!=110) swwitcch(ii) deffaullt: couut你输输入的有有误,请请重新输输入。eendll;brreakk; casse 11: couutb; couu

26、tenddl; wriiteiin(bb); breeak; casse 22:/添加 addd(b); b+; breeak; casse 33:/删除 deel(bb); b-; brreakk; casse 44:/修改 moddifyy(b); brreakk; casse 55:/查询 coout enddl;coout请输入入您要选选择的查查询方式式:eendll;coout1.按按姓名查查找操作作 eendll;coout2.按按工号查查找操作作 eendll; couutor;iff(orr=11) nammfinnd(bb);ellse if(or=2)nnumffindd(

27、b); breeak; casse 66:/统计innt ccc; coouteendll;coout请输入入您要选选择的查查询方式式:eendll;coout1.按按部门统统计 enndl;coout2.按按单位统统计 enndl; ccouttoor;:ciincc;iff(ccc=11) bmccounnt(bb);ellse if(cc=2)ddwcoountt(); breeak; casse 77: exiit(00); coutt*欢欢迎进入入企业工工资管理理系统*enndl;coutt*11.工资资信息录录入操作作*eendll;coutt*22.工资资信息增增加操作作*een

28、dll;coutt*33.工资资信息删删除操作作*eendll;coutt*44.工资资信息修修改操作作*eendll;coutt*55.工资资信息查查找操作作*eendll;coutt*66.工资资信息统统计操作作*eendll;coutt*77.退出出*eendll;coutt*请输入入你要进进行的操操作选项项*i;coutteendll;void wriiteiin(iint x) /工工资信息息录入messsagee a10;charr a_namme110,a_bbornnplaace10,a_dutty110,a_bbumeen110; /姓名 籍贯 职务务 部部门int j,aa

29、_IDD,a_bassesaalarry,aa_joobsaalarry,aa_jiianggjinn,a_yljjj,aa_sjj,a_nummberr;/身份证证号 基本工工资 岗位工工资 奖金 医疗疗住房基基金 税金 ffstrreamm f(weenjiian.txtt,iios:ouut);/打打开文件件if(!f) cooutCCan nott oppen fillenn.;forr(j=0;jjx;j+)couut姓名名: aa_naame;couut籍贯贯: aa_boornpplacce;couut职务务: aa_duuty;couut部门门: aa_buumenn;couu

30、t身份份证号: aa_IDD;couut工号号: aa_nuumbeer;couut基本本工资: aa_baasessalaary;couut岗位位工资: aa_joobsaalarry;couut奖金金: aa_jiianggjinn;couut医疗疗住房基基金: aa_ylljj;couut税金金: aa_sjj;couutenddl;ajj.xxinxxi(aa_naame,a_bbornnplaace,a_ddutyy,a_bummen,a_IID,aa_nuumbeer,aa_baasessalaary,a_jjobssalaary,a_jjianngjiin,aa_ylljj,a_

31、ssj); f.wwritte(chaar *)&aaj,siizeoof(aaj );/保保存录入入的信息息f.cllosee(); /关关闭文件件coutteendll;ifsttreaam iin(wennjiaan.ttxt,ioos:in);messsagee b10;for(j=00;jx;jj+)if(!inn.eoof() inn.reead(chhar *)&bjj,ssizeeof(ajj); bj.putt();elsse exxit(0);in.cclosse();void addd(innt xx) /工资资信息添添加 ccharr a_namme110,a_bbor

32、nnplaace10,a_dutty110,a_bbumeen110;int a_IID,aa_baasessalaary,a_jjobssalaary,a_jjianngjiin,aa_ylljj,a_ssj,aa_nuumbeer,ttempp=300; mmesssagee c;coutt输入要要增加的的人员的的信息:enddl; ccoutt姓名: a_namme;coutt籍贯: a_borrnpllacee;coutt职务: a_dutty;coutt部门: a_bummen;coutt身份证证号: a_ID;coutt工号: a_nummberr;coutt基本工工资: a_ba

33、ssesaalarry;coutt岗位工工资: a_jobbsallaryy;coutt奖金: a_jiaangjjin;coutt医疗住住房基金金: a_yljjj;coutt税金: a_sj;coutteendll;c.xiinxii(a_namme,aa_boornpplacce,aa_duuty,a_bbumeen,aa_IDD,a_nummberr,a_bassesaalarry,aa_joobsaalarry,aa_jiianggjinn,a_yljjj,aa_sjj); ofsttreaam oout(weenjiian.txtt,iios:appp);out.wriite(ch

34、har *)&c,ssizeeof(claass messsagge);/保存到到文件中中out.cloose();coutt增加成成功!eendll;int ddel(intt x) /工资信信息删除除int i,jj,teemp,flaag=-1;charr miing10;systtem(clls); iifsttreaam iin(wennjiaan.ttxt);messsagee b30,c;for(j=00;j30;j+)if(!inn.eoof() inn.reead(chhar *)&bjj,ssizeeof(claass messsagge);elsseteemp = jj-

35、1;brreakk;coutt文件内内保存的的信息有有:enndl; /输出文文件内的的人员信信息coutt姓名 地址址 职职务 部门 身份份证号 工号号 工工资 enddl;for(j=00;jtemmp;jj+)bjj.pput();in.cclosse(); ffstrreamm spp(wwenjjiann.txxt,ioss:iin|ioss:oout);for(j=00;j30;j+)if(!spp.eoof() spp.reead(chhar *)&bjj,ssizeeof(claass messsagge);elsseteemp = jj-1;brreakk;sp.ccloss

36、e();messsagee a30;fstrreamm app(wwenjjiann.txxt,ioss:iin|ioss:oout); ccouttmiing; ccoutteendll; forr(j=0,ii=0;ittempp;i+) if(strrcmpp(bi.namme,mmingg)=0)/标记记要删除除的信息息 flaag=ii; if(flaag=-1)coout没没有要删删除的信信息。eendll;reeturrn 00; ffor(j=00,i=0;iiteemp,jttempp-1; )/删除除信息if(flaag!=i)aj=bii;i+;j+;elssei+;ap

37、.cclosse();ofsttreaam nnp(wennjiaan.ttxt);for(i=00;itemmp-11;i+)np.wriite(chhar *)&aii,ssizeeof(claass messsagge);/写入文文件 np.cclosse();coutt删除成成功!eendll;retuurn 1;void moddifyy(innt xx) /工资资信息修修改charr miing10;int i,jj,teemp,flaag;messsagee b30; iifsttreaam ssp(wennjiaan.ttxt);for(j=00;j30;j+)if(!spp.

38、eoof() spp.reead(chhar *)&bjj,ssizeeof(claass messsagge); /打打开文件件elsseteemp = jj-1;brreakk; ssp.cclosse(); ccouttmiing;coutteendll; ccoutt原文件件信息是是:enndl;for(i=00;itemmp;ii+) /输出文文件内保保存的信信息if(strrcmpp(bi.namme,mmingg)=0)fllag = ii; bi.putt();coutteendll;couttfflaggeendll;coutteendll;coutt请输入入修改信信息:ee

39、ndll; ccoutt姓名: bflaag.namme;coutt籍贯: bflaag.borrnpllacee;coutt职务: bflaag.dutty;coutt部门: bflaag.bummen;coutt身份证证号: bflaag.ID;coutt工号: bflaag.nummberr;coutt基本工工资: bflaag.bassesaalarry;coutt岗位工工资: bflaag.jobbsallaryy;coutt奖金: bflaag.jiaangjjin;coutt医疗住住房基金金: bflaag.yljjj;coutt税金: bflaag.sj;coutteendll

40、;ofsttreaam iin(wennjiaan.ttxt);for(i=00;itemmp;ii+)if(!inn)cooutCCan nott oppen!enddl; in.wriite(chhar *)&bii,ssizeeof(claass messsagge); couutenddl; in.cclosse();void nammfinnd(iint x) /按姓名名查找操操作int j,ttempp,i;charr miing10;couttmiing;coutteendll;coutt这个人人的信息息是:eendll; mmesssagee b30;fstrreamm spp(wwenjjiann.txxt,ioss:iin|ioss:oout); forr(j=0;jj300;j+)if(!spp.eoof() spp.reead(chhar *)&bjj,ssizeeof(claass messsagge);elsseteemp = jj-1;brreakk;fo

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!