C课程设计企业员工工资管理系统_第1页
C课程设计企业员工工资管理系统_第2页
C课程设计企业员工工资管理系统_第3页
C课程设计企业员工工资管理系统_第4页
C课程设计企业员工工资管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE PAGE 27仲恺农业业工程学学院课程设计计报告*课 程 面面向对象象课程设设计姓 名院 (系系)专业年级级学 号指导教师师日 期仲恺农业业工程学学院教务务处制目 录TOC o 1-3 h z u HYPERLINK l _Toc272268147 1 需求求与功能分析1 HYPERLINK l _Toc272268148 2 系统统框架图2 HYPERLINK l _Toc272268149 3 类的的设计与分析2 HYPERLINK l _Toc272268150 4 非成成员函数数的设计与分析4 HYPERLINK l _Toc272268151 5 特色色算法分分析4 HYP

2、ERLINK l _Toc272268152 6 存在在的问题题及对策8 HYPERLINK l _Toc272268153 7 用户户手册及及测试结结果8 HYPERLINK l _Toc272268154 7.1 用户手册8 HYPERLINK l _Toc272268155 7.2 测试结结果8 HYPERLINK l _Toc272268156 8 心得得体会11 HYPERLINK l _Toc272268157 9 附:程序源源代码1111 需求求与功能能分析在信息技技术高速速发展的的今天,传传统的数数据统计计方式在在处理庞庞大繁杂杂的信息息量时显显得力不不从心,于于是,人人们对于

3、于运用计计算机来来辅助和和管理工工作的需需求正在在逐步提提高。随着各个个企业业业务的逐逐步扩展展,企业业的员工工人数也也在迅速速增加,由由于管理理人员水水平有限限,导致致某些员员工纪录录管理并并不完善善,特别别是繁杂杂的员工工工资管管理纪录录,不易易查询、修改,极极易导致致错误,而而落后的的员工管管理方法法随着社社会的日日益竞争争,必将将被淘汰汰。由计算机机来管理理庞大而而繁杂的的企业员员工纪录录是非常常合适的的,不仅仅查询和和修改方方便,并并且效率率高,速速度快,完完全能够够满足现现代化企企业管理理的需要要,同时时也更利利于实现现全面办办公自动动化。因因此开发发一套企企业员工工工资管管理系统

4、统软件势势在必行行。企业员工工工资管管理系统统是企业业管理系系统中的的一个重重要组成成部分,它它为企业业合理的的员工调调配与编编制,以以及有关关问题的的决策能能够提供供各种必必要的基基础数据据,是公公司管理理现代化化的一个个重要方方面。利利用微机机对庞杂杂而繁锁锁的员工工工资系系统实现现自动化化管理,是是计算机机公司信信息管理理系统的的重要内内容。我我在陈勇勇老师指指导下开开发了企企业员工工工资管管理系统统。企业员员工工资资管理系系统旨旨在为商商业人士士及在社社会团体体、机构构中负责责管理关关系的人人士提供供一个功功能全面面、使用用方便的的工资管管理系统统,以替替代传统统的手工工管理工工资纪录

5、录,同时时利用先先进信息息技术为为用户提提供一些些更为方方便实用用的功能能。 本系统实实现五种种基本功功能:输输入员工工工资信信息、删删除员工工工资信信息、修修改员工工工资信信息、查查找员工工工资信信息、列列出所有有员工工工资信息息。所以以该工资资管理系系统可以以分为55个模块块,分别别为输入入模块、删除模模块、修修改模块块、查找找模块、列表模模块,每每个模块块都有其其对应的的功能以以及其设设计。(1)输输入模块块输入模块块的功能能是创建建存储职职工工资资信息的的存储系系统以及及添加某某职工的的工资信信息。为为实现输输入的功功能,有有两个方方面的任任务:定定义结构构体以及及建立链链表。(2)删

6、删除模块块删除模块块的功能能是删除除某职工工的工资资信息。(3)修修改模块块修改模块块的功能能是修改改某职工工的部分分工资信信息。(4)查查找模块块查找模块块的功能能就是输输出指定定编号职职工的工工资信息息。(5)列列表模块块列表模块块的功能能是输出出当月全全体职工工的工资资信息。2 系统统框架图图主菜单输入员工工资信息删除指定员工工资信息修改指定员工工资信息查找指定员工工资信息输出全体员工工资信息退出图1 系系统框架架图3 类的的设计与与分析classs WWorkkerprottectted:Worrkerr_paay * heead; /链表的的头结点点指针publlic:Worrker

7、r()heaad=NNULLL; /构造函函数voiid DDispplayy(Woorkeer_ppay *); /输出函函数 Worrkerr_paay * Fiind(intt); /查找函函数intt LiistCCounnt(); /统计员员工人数数函数 voiid AAddIItemm(innt,sstriing,intt,sttrinng,sstriing,strringg,flloatt,flloatt); /创创建链表表并链表表的插入入voiid RRemooveIItemm(innt); /删删除函数数voiid RRepllaceeIteem(iint); /修改函函数v

8、oiid LListtL(); /遍遍历函数数 voiid SSearrch(intt); /查查找并输输出某个个员工信信息函数数voiid RReall_waage(flooat,flooat); /计算函函数voiid RRecoordiinfoo(innt,sstriing,intt,sttrinng,sstriing,strringg,flloatt,flloatt,flloatt,flloatt); /存存储函数数;表1 WWorkker类类说明表表名称属性说明headd数据成员员链表头结结点指针针Workker()成员函数数缺省的构构造函数数,缺省省值为hheadd=NUULLvo

9、idd Diispllay(Worrkerr_paay *)成员函数数输出函数数Workker_payy * Finnd(iint)成员函数数查找函数数int LisstCoountt()成员函数数统计员工工人数函函数voidd AdddIttem(intt,flloatt,flloatt)成员函数数创建链表表并链表表的插入入voidd ReemovveIttem(intt)成员函数数删除函数数voidd ReeplaaceIItemm(innt)成员函数数修改函数数voidd LiistLL()成员函数数遍历函数数voidd Seearcch(iint)成员函数数查找并输输出某个个员工信信息

10、函数数voidd Reeal_wagge()成员函数数计算函数数voiddReccoreeinffo(iint,flloatt,flloatt)成员函数数存储函数数4 非成成员函数数的设计计与分析析表2 非非成员函函数说明明表名称说明int Mennu()用于显示示主菜单单charr Exxit()用于退出出程序voidd Innputt(innt * nuum,flooat * aalloowannce)用于输入入员工工工资信息息voidd AdddNeew()用于调用用成员函函数AdddIttem(intt,flloatt,flloatt)Reaal_wwagee()和和Reccoreei

11、nffo(iint,flloatt,flloatt)voidd DooFinnd()用于调用用成员函函数Seearcch(iint)voidd DooDelletee()用于调用用成员函函数ReemovveIttem(intt)voidd DooMottifyy()用于调用用成员函函数ReeplaaceIItemm(innt)voidd Liist()用于调用用成员函函数LiistLL()int maiin()主函数5 特色色算法分分析Workker类类中的成成员函数数voiid AAddIItemm(innt,ffloaat,ffloaat)(1)功功能:创创建存储储职工工工资信息息的存储储

12、系统以以及添加加某职工工的工资资信息。算法思路路:先定定义一个个结构体体Worrkerr_paay,通通过从表表尾插入入的方法法来建立立链表。首先要要先设立立一个头头指针(hheadd)来存存放链表表的首地地址,然然后,不不断用nnew运运算符生生成一个个新的结结点,将将这个结结点链入入已有的的链表尾尾部;如如果链表表中还没没有结点点,则这这个新结结点将是是首结点点,否则则,将新新结点的的地址赋赋给原有有链表的的尾结点点的neext指指针。(2)流流程图:StartIF !head员工工资信息赋给headReturn*t=headWhile t&t-num!= num1t=t-nextIF t

13、操作失败Return*p-headWhilep-nextp-next员工工资信息赋给pReturnEnd图2 流流程图(3)代代码:voidd Woorkeer:AdddIteem(iint numm1,sstriing namme1,intt agge1,strringg seex1,strringg deeparrtmeent11,sttrinng ttitlle1,flooat wagge1,flooat alllowaancee1)if(!heead)heead=neww Woorkeer_ppay;heead-nuum=nnum11;heead-naame=namme1;heead-

14、agge=aage11;heead-seex=ssex11;heead-deeparrtmeent=depparttmennt1;heead-tiitlee=tiitlee1;heead-waage=wagge1;heead-alllowwancce=aalloowannce11;heead-neext=NULLL;reeturrn;Worrkerr_paay * t=heaad;whiile(t&t-numm!=nnum11)t=t-nexxt;if(t)coout操操作失败败;员工工编号为为numm1的信信息已经经存在!nexxt)p=p-nexxt;Worrkerr_paay * p11

15、=neew WWorkker_payy;p1-nuum=nnum11;p1-naame=namme1;p1-agge=aage11;p1-seex=ssex11;p1-deeparrtmeent=depparttmennt1;p1-tiitlee=tiitlee1;p1-waage=wagge1;p1-alllowwancce=aalloowannce11;p1-neext=NULLL;p-nexxt=pp1;retturnn;6 存在在的问题题及对策策(1)设设计初期期,先完完成初步步构思,写写出主函函数。然然后对主主函数所所涉及的的各个模模块进行行编程,将将各个模模块利用用指针和和链表联联

16、系起来来。在环环境中进进行调试试,应一一边编译译,一边边调试,并并且要一一个模块块一个模模块的调调试。直直至此模模块完全全没有错错误时,在在进入下下一模块块的调试试。不能能直接输输入全部部的代码码一次性性调,这这样错误误会很多多,并且且不易找找出和修修改。在在完成程程序的编编译链接接后,要要用多组组数据进进行审查查,确保保做到系系统无误误。设计过程程中,不不应忽视视环境提提示的警警告,有有时程序序运行不不正确与与警告也也有很大大的关系系。这次次设计中中遇到很很多问题题都是提提示类型型不匹配配,这时时就要认认真检查查前面的的代码,及及时改正正并且认认真仔细细,杜绝绝此类错错再次发发生。编写代码码

17、时应该该少用全全局变量量,全局局变量在在编写试试看似定定义次数数少,很很方便。但全局局变量出出错几率率较大,且且不易修修改,每每次修改改时都要要全面考考虑,所所以应避避免用到到。程序调试试中碰到到的错误误可以使使自己学学到知识识。养成成良好的的编程习习惯,可可以节省省很多时时间,避避免很多多不必要要的错误误。(2)在在编辑完完整个程程序后,进进行调试试阶段总总是会数数显heead无无定义。解决办法法:再类类的定义义是忘记记声明指指针Woorkeer_ppay *heead;。7 用户户手册及及测试结结果7.1 用户手手册运行程序序时,界界面刚开开始出现现一个主主菜单及及提示信信息,用用户通过过

18、在键盘盘上输入入来选择择某个功功能。当当用户选选择了某某个功能能,系统统将跳转转到所选选择的功功能界面面,用户户将可以以根据提提示信息息来使用用该功能能,当用用户通过过键盘输输入编号号为-11时,系系统将返返回主界界面。7.2 测试结结果图3 系系统主界界面图4 输输入员工工信息测测试图图5 删删除员工工信息测测试图图6 修修改员工工信息测测试图图7 查查找员工工信息测测试图图8 输输出全体体员工信信息测试试图图9 退退出系统统测试图图8 心得得体会经过两周周的C+课程程设计,我我对C+语言言设计有有了一个个更深、更全面面的了解解,尤其其体会到到了C+面向向对象操操作对简简化程序序的重要要作用

19、。下面是是我的几几点体会会:刚拿到到课题时时,我一一脸的茫茫然,看看到如此此庞大的的工程,不不知如何何下手。这个工工资管理理系统中中职工子子信息竟竟然包含含15条条,以前前从来没没有遇到到过如此此多的变变量。和和同学讨讨论很久久好,我我发现其其实可以以化繁为为简的,信信息中115条不不一定全全都要,因因为其中中本身就就有重复复的,例例如津贴贴和补贴贴。并且且可以有有一个ppay的的数组来来处理数数据。所所以做任任何事情情都必须须要开动动脑筋,积积极思考考,有时时还要学学会化繁繁为简。在编程程时条理理清晰是是至关重重要的。主函数数,函数数,成员员函数之之间的层层次关系系,调用用关系一一定要有有一

20、个全全面的把把握,尤尤其要体体会类的的封装性性。另外外很重要要的一点点就是一一定要对对链表的的五种操操作熟练练的掌握握。在编译译,链接接,调试试的过程程中一定定要有耐耐心。因因为一个个程序中中会有很很多小的的错误,甚甚至有的的问题要要几个小小时才能能解决。遇到问问题,一一定要全全面分析析,有时时候还要要向同学学请教。总得来来说,编编程时极极需要耐耐心的。总之,CC+课课程设计计为我们们提供了了一个综综合应用用所学知知识,解解决实际际问题的的平台,增增强了我我们实践践动手的的能力和和工程实实践能力力,并且且锻炼和和培养了了我们的的自学能能力,让让我们对对C+有了一一个更全全面的了了解。9 附:程

21、序源源代码/*/#inccludde#inccludde#inccludde#inccluddeusinng nnameespaace stdd;/*/*定义义一个员员工信息息的结构构体Woorkeer_ppay*/struuct Worrkerr_paayintt nuum; /员工编编号strringg naame; /员工姓姓名intt agge; /年龄strringg seex; /性别strringg deeparrtmeent; /部门strringg tiitlee; /职务flooat wagge; /工资flooat alllowaancee; /津贴flooat taxx

22、; /个人所所得税flooat reaal_wwagee; /实发数数Worrkerr_paay * neext; /链表结结点的指指针域;/*/*定义义一个员员工类WWorkker*/classs WWorkkerprottectted:Worrkerr_paay * heead; /链表的的头结点点指针publlic:Worrkerr()heaad=NNULLL; /构造函函数voiid DDispplayy(Woorkeer_ppay *); /输出函函数 Worrkerr_paay * Fiind(intt); /查找函函数intt LiistCCounnt(); /统计员员工人数数函

23、数 voiid AAddIItemm(innt,sstriing,intt,sttrinng,sstriing,strringg,flloatt,flloatt); /创创建链表表并链表表的插入入voiid RRemooveIItemm(innt); /删除函函数voiid RRepllaceeIteem(iint); /修改函函数voiid LListtL(); /遍历函函数 voiid SSearrch(intt); /查找并并输出某某个员工工信息函函数voiid RReall_waage(flooat,flooat); /计算函函数voiid RRecoordiinfoo(innt,ss

24、triing,intt,sttrinng,sstriing,strringg,flloatt,flloatt,flloatt,flloatt); /存存储函数数;/*/功能能:用于于统计员员工人数数int Worrkerr:LListtCouunt()if(!heead) reeturrn 00;Worrkerr_paay * p=heaad;intt n=0;whiile(p)n+;p=p-nexxt;retturnn n;/*/功能能:在链链表中查查找员工工的编号号Workker_payy * Worrkerr:FFindd(innt nnum)if(LisstCoountt=00)coo

25、ut列列表为空空,请先先输入数数据!nuum=numm) bbreaak;p=p-nexxt;if(!p)coout错错误,找找不到该该信息!nuum=nnum11;heead-naame=namme1;heead-agge=aage11;heead-seex=ssex11;heead-deeparrtmeent=depparttmennt1;heead-tiitlee=tiitlee1;heead-waage=wagge1;heead-alllowwancce=aalloowannce11;heead-neext=NULLL;reeturrn;Worrkerr_paay * t=heaad;

26、whiile(t&t-numm!=nnum11)t=t-nexxt;if(t)coout操操作失败败;员工工编号为为numm1的信信息已经经存在!nexxt)p=p-nexxt;Worrkerr_paay * p11=neew WWorkker_payy;p1-nuum=nnum11;p1-naame=namme1;p1-agge=aage11;p1-seex=ssex11;p1-deeparrtmeent=depparttmennt1;p1-tiitlee=tiitlee1;p1-waage=wagge1;p1-alllowwancce=aalloowannce11;p1-neext=NUL

27、LL;p-nexxt=pp1;retturnn;/*/功能能:从链链表中删删除一个个结点voidd Woorkeer:RemmoveeIteem(iint numm)Worrkerr_paay * t=Finnd(nnum);if(!t)reeturrn;Worrkerr_paay * p=heaad;if(heaad=tt)heead=heaad-nexxt;deelette pp;coout成成功删除除员工编编号为nnum的的信息!nexxt!=t)p=p-nexxt;Worrkerr_paay * p11=p-neext;p-nexxt=pp1-nexxt;delletee p11;co

28、uut成功功删除员员工编号号为nuum的信信息!eendll;retturnn;/*/功能能:修改改员工信信息voidd Woorkeer:RepplacceIttem(intt nuum)Worrkerr_paay * p=Finnd(nnum);if(!p)reeturrn;couut请重重新输入入相应信信息enndl;couutpp-nnum;couutpp-nnamee;couutpp-aage;couutpp-ssex;couutpp-ddepaartmmentt;couutpp-ttitlle;couutpp-wwagee;couutpp-aalloowannce;retturnn

29、;/*/功能能:输出出员工信信息voidd Woorkeer:Dissplaay(WWorkker_payy * p)couutnummssetww(8)nnameessetww(8)aageseetw(8)seexsettw(88)depparttmenntsettw(88)tittleseetw(8)waageseetw(8)alllowwanccesettw(88)taxxssetww(8)rreall_waageenndl;retturnn;/*/功能能:遍历历链表voidd Woorkeer:LisstL()flooat summ=0;flooat aveer=00;intt n=0

30、;if(LisstCoountt=00)coout当当前列表表为空,请请先输入入数据!enddl;reeturrn;Worrkerr_paay * p=heaad;couut*员员工信息息*eendll;couut共有有LisstCoountt()个个员工信信息enndl;couut员工工编号 员工姓姓名 年年龄 性别别 部门 职务 工工资 津津贴 个税 实实发数wagge;p=p-nexxt;aveer=ssum/n;couut员工工平均薪薪水:aaverreendll;retturnn;/*/功能能:查找找并输出出指定员员工信息息voidd Woorkeer:Seaarchh(innt n

31、num)couutSeearcchenndl;Worrkerr_paay * p=Finnd(nnum);if(p)coout员员工编号号为nuum的员员工工资资信息:enddl;coout员员工编号号 员工工姓名 年龄 性性别 部门门 职务务 工资 津贴 个税税 实发数数enddl;Diispllay(p);couutenddl;retturnn;/*/功能能:程序序内部函函数计算算的信息息例如个个人所得得税,实实发数voidd Woorkeer:Reaal_wwagee(flloatt taax,ffloaat rreall_waage)if(LisstCoountt()=0)coout当

32、当前列表表为空,请请先输入入数据!waagettax=0;ellse if(p-wagge220000&pp-wwageettax=p-wagge*00.055;ellse if(p-wagge225000&pp-wwageettax=p-wagge*00.1-25;ellse if(p-wagge440000&pp-wwageettax=p-wagge*00.155-1225;ellse if(p-wagge770000&pp-wwageettax=p-wagge*00.2-3755;ellse if(p-wagge2220000&p-waggettax=p-wagge*00.255-133

33、75;ellse if(p-wagge4420000&p-waggettax=p-wagge*00.3-33775;ellse if(p-wagge6620000&p-waggettax=p-wagge*00.355-63375;ellse if(p-wagge8820000&p-waggettax=p-wagge*00.4-103375;ellse p-taxx=p-waage*0.445-1153775;p-reeal_wagge=pp-wwagee+p-alllowwancce-pp-ttax;p=p-nexxt;retturnn;/*/功能能:存储储员工信信息voidd Woorkee

34、r:Reccorddinffo(iint numm1,sstriing namme1,intt agge1,strringg seex1,strringg deeparrtmeent11,sttrinng ttitlle1,flooat wagge1,flooat alllowaancee1,ffloaat ttax11,flloatt reeal_wagge1) ofsstreeam fille1(innfo11.txxt,ioss:aapp);fille1员员工编号号:nuum1 员工姓姓名:nnamee1 年年龄:aage11 性别别:seex1 部门:depparttmennt1 职务

35、:tittle11 工资(元):wagge1 津贴(元):alllowaancee1 个个人所得得税(元元):ttax11 实发发数(元元):rreall_waage11eendll;fille1.cloose(); /*/*定义义一个对对象Woorkeer1*/Workker Worrkerr1; /*/ /*主菜菜单函数数*/ int Mennu() couuttttteendll;couutttt 企业业员工工工资管理理系统 teendll;couutttt *主主菜单* tenddl;intt n=1,sseleect=-1;couutttt n+.输入入员工信信息 tteendll;

36、couutttt n+.删除除指定员员工编号号信息tttenndl;couutttt n+.修改改指定员员工编号号信息tttenndl;couutttt n+.查找找指定员员工编号号信息tttenndl;couutttt n+.输出出全体员员工信息息ttttenndl;couutttt 0.退退出ttttttenndl;couuttttttenndl;couutsseleect;retturnn seelecct;/*/功能能:退出出程序charr Exxit() chaar ss;couutss;retturnn s;/*/功能能:输入入员工信信息voidd Innputt(innt * n

37、uum,sstriing * nnamee,innt * agge,sstriing * ssex,strringg * depparttmennt,sstriing * ttitlle,ffloaat * waage,flooat * aalloowannce) couut现在在输入员员工信息息!enndl;couut* nuum;if(* nnum=-11)reeturrn;couut* naame;couut* agge;couut* seex;couut* deeparrtmeent;couut* tiitlee;couut* waage;couut* alllowwancce;ret

38、turnn;/*/功能能:把员员工信息息插入到到链表中中voidd AdddNeew() intt nuum=00;strringg naame;intt agge=00;strringg seex;strringg deeparrtmeent;strringg tiitlee;flooat wagge=00;flooat alllowaancee=0;flooat taxx=0;flooat reaal_wwagee=0;couut当输输入的员员工编号号为-11是表示示结束输输入enndl;Inpput(&nuum,&namme,&agee,&ssex,&deeparrtmeent,&tiitlee,&wwagee,&aalloowannce);whiile(numm!=-1)Woorkeer1.AdddIteem(nnum,namme,aage,sexx,deeparrtmeent,tittle,wagge,aalloowannc

温馨提示

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

评论

0/150

提交评论