人事档案管理系统课程设计_第1页
人事档案管理系统课程设计_第2页
人事档案管理系统课程设计_第3页
人事档案管理系统课程设计_第4页
人事档案管理系统课程设计_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、编号:数据结构构与算法法课程设设计说明书题 目:人事档档案管理理系统 学院院:计算算机科学学与工程程学院专 业:计算机机科学与与技术学生姓名名:学 号:指导教师师: 唐唐麟 20133年 99月266号 摘摘 要要电脑已经经深入到到我们日日常工作作和生活活的方方方面面,比比如文字字处理、信息管管理、辅辅助设计计、图形形图像处处理、教教育培训训以及游游戏娱乐乐等。WWinddowss系统的的推出使使电脑从从高雅的的学术殿殿堂走入入了寻常常百姓家家,各行行各业的的人们无无须经过过特别的的训练就就能够使使用电脑脑完成许许许多多多复杂的的工作。然而,虽虽然现在在世界上上已经充充满了多多如牛毛毛的各种种

2、软件,但但它们依依然不能能满足用用户的各各种特殊殊需要,人人们还不不得不开开发适合合自己特特殊需求求的软件件。 随随着企事事业单位位的发展展,人员员会越来来越多,少少则几十十人、多多则上万万人。例例如一个个企业分分很多部部门,每每个部门门又分为为许多科科或室等等,而其其下又分分为各级级领导和和员工。用笔和和纸传统统的手工工管理档档案,这这中管理理方式存存在着不不易更新新、不易易存放、不安全全、容易易丢失、难以备备份等重重大缺陷陷,管理理起来效效率低下下而且很很可能造造成管理理上的混混乱。而而自己建建立简单单的电子子文档对对信息管管理进行行管理虽虽然克服服了以上上的缺点点,但查查询效率率较低,特

3、特别是当当数据量量十分庞庞大时,劣劣势尤其其明显。因此开开发一个个既可以以存储信信息,又又可以进进行更新新、查询询、管理理等功能能,同时时价格又又能为广广大消费费者接受受的多功功能电子子人事信信息管理理系统就就显得十十分必要要。 关键词:Vissuall C+6.0;算算法;人人事管理理;类面面向对象象;链表表 目 录录 HYPERLINK l _Toc263006613 引言1 HYPERLINK l _Toc263006614 1系统概概述2 HYPERLINK l _Toc263006614 2需求分分析2 HYPERLINK l _Toc263006619 2.1 系统需需求2 HYP

4、ERLINK l _Toc263006620 2.2 开发环环境33详细设设计443.1类类的设计计及分析析 43.2各各功能的的设计 64 所所遇到的的问题和和分析解解决 105 系系统特色色及关键键技术 1115.1成成员函数数添加的的分析 115.2直直接选择择排序 146 用用户使用用 1557结论18参考文献献19引言随着全球球对知识识和人才才的重视视,企业业对人力力资源管管理重要要性的认认识逐渐渐深化,人人才的全全球化竞竞争使企企业的人人力资源源管理面面临前所所未有的的挑战。在新形形势下,人人事档案案管理系系统是一一个企业业单位不不可缺少少的部分分,是适适应现代代企业制制度,推推动

5、企业业人力资资源管理理走向科科学化、规范化化、自动动化的必必要条件件;是应应对挑战战、适应应环境变变化、提提高企业业管理效效率、提提升核心心竞争力力的关键键措施。它所包包含内容容对于企企业的决决策者和和管理者者来说至至关重要要。目前前市场上上的人事事管理系系统很多多,但要要找到一一款真正正称心、符合企企业实际际情况的的并不容容易。由由于存在在这样那那样的不不足,使使企业浪浪费了大大量的人人力、物物力等大大量资源源,难以以真正提提升企业业人力资资源的管管理水平平,提高高工作效效率及降降低管理理成本的的效果也也不明显显。因此此,为了了加快公公司信息息化的步步伐,提提高公司司的管理理水平,并并在激烈

6、烈的社会会竞争中中立于不不败之地地,建立立及完善善人力资资源管理理系统已已变得十十分必要要和迫切切。在社社会中,人人力资源源是企事事业单位位的核心心,而对对它的管管理及管管理软件件的选用用则是评评价管理理者管理理水平的的一个重重要标志志。因此此人力资资源管理理工作是是企事业业单位工工作的一一项重要要任务,是是提高管管理质量量和保障障企事业业单位生生产目标标实现的的一个重重要保证证。因此此,人力力资源管管理的内内容对企企事业单单位的决决策者和和管理者者来说都都具有重重要意义义。当规规模扩大大以后,企企事业单单位人员员部门增增加,给给人力资资源管理理带来困困难。根据需求求,本人人事档案案管理系系统

7、主要要分系统统管理、信息登登记、信信息删除除、信息息查询、信息修修改、信信息按顺顺序输出出、报表表信息输输出、系系统简介介等八大大部分。具体要要求实现现:对业业务模块块相关信信息的添添加,修修改,删删除以及及对人员员调动的的管理;对考勤勤信息设设置、管管理和查查询;对对工资信信息设置置;部门门,员工工工资统统计查询询等等。1 系系统概述述本人事档档案管理理系统主主要分系系统管理理、信息息登记、信息删删除、信信息查询询、信息息修改、信息按按顺序输输出、报报表信息息输出、系统简简介等八八大部分分。具体体要求实实现:对对业务模模块相关关信息的的添加,修修改,删删除以及及对人员员调动的的管理;对考勤勤

8、信息设设置、管管理和查查询;对对工资信信息设置置;部门门,员工工工资统统计查询询等等。2 需需求分析析2.1 系统需需求在信息技技术高速速发展的的今天,传传统的数数据统计计方式在在处理庞庞大繁杂杂的信息息量时显显得力不不从心,于于是,人人们对于于运用计计算机来来辅助和和管理工工作的需需求正在在逐步提提高。随着各个个企业业业务的逐逐步扩展展,企业业的员工工人数也也在迅速速增加,由由于管理理人员水水平有限限,导致致某些员员工纪录录管理并并不完善善,特别别是繁杂杂的员工工工资管管理纪录录,不易易查询、修改,极极易导致致错误,而而落后的的员工管管理方法法随着社社会的日日益竞争争,必将将被淘汰汰。由计算

9、机机来管理理庞大而而繁杂的的企业员员工纪录录是非常常合适的的,不仅仅查询和和修改方方便,并并且效率率高,速速度快,完完全能够够满足现现代化企企业管理理的需要要,同时时也更利利于实现现全面办办公自动动化。因因此开发发一套企企业员工工工资管管理系统统软件势势在必行行。企业员工工工资管管理系统统是企业业管理系系统中的的一个重重要组成成部分,它它为企业业合理的的员工调调配与编编制,以以及有关关问题的的决策能能够提供供各种必必要的基基础数据据,是公公司管理理现代化化的一个个重要方方面。利利用微机机对庞杂杂而繁锁锁的员工工工资系系统实现现自动化化管理,是是计算机机公司信信息管理理系统的的重要内内容。我我在

10、陈勇勇老师指指导下开开发了企企业员工工工资管管理系统统。企业员员工工资资管理系系统旨旨在为商商业人士士及在社社会团体体、机构构中负责责管理关关系的人人士提供供一个功功能全面面、使用用方便的的工资管管理系统统,以替替代传统统的手工工管理工工资纪录录,同时时利用先先进信息息技术为为用户提提供一些些更为方方便实用用的功能能。 本系统实实现五种种基本功功能:输输入员工工工资信信息、删删除员工工工资信信息、修修改员工工工资信信息、查查找员工工工资信信息、列列出所有有员工工工资信息息。所以以该工资资管理系系统可以以分为55个模块块,分别别为输入入模块、删除模模块、修修改模块块、查找找模块、列表模模块,每每

11、个模块块都有其其对应的的功能以以及其设设计。(1)输输入模块块输入模块块的功能能是创建建存储职职工工资资信息的的存储系系统以及及添加某某职工的的工资信信息。为为实现输输入的功功能,有有两个方方面的任任务:定定义结构构体以及及建立链链表。(2)删删除模块块删除模块块的功能能是删除除某职工工的工资资信息。(3)修修改模块块修改模块块的功能能是修改改某职工工的部分分工资信信息。(4)查查找模块块查找模块块的功能能就是:输出指指定编号号职工的的工资信信息;输输出姓名名和部门门联合查查询的职职工工资资信息。(5)统统计模块块统计模块块的功能能是:统统计全企企业总人人数及各各部门的的人数;统计企企业的平平

12、均工资资及部门门的平均均工资。(6)排排序模块块排序的模模块的功功能是:对全企企业的信信息表按按受教育育年限及及工资进进行递增增排序。(7)列列表模块块列表模块块的功能能是输出出全体职职工的工工资信息息。程序具体体功能介介绍:2.1.1 功功能介绍绍现在,需需要存储储这些人人员的人人事档案案信息:员工编编号, 员工工姓名 ,年龄 ,性别 ,部门 ,职务,受教育育年限,工资 ,缺勤(天) ,罚金, 个税税 ,实发数数。其中中,人员员编号唯唯一,不不能重复复。添加删除除功能:能根据据学企业业人事的的变动情情况,添添加删除除记录;查询功能能:能根根据编号号及姓名名和部门门的复合合查询进进行查询询;编

13、辑功能能(高级级):根根据查询询对相应应的记录录进行修修改,并并存储;统计功能能:能根根据多种种参数进进行人员员的统计计及平均均工资,统统计要求求同时显显示被统统计者的的信息;排序功能能:按照照受教育育年限、工资进行行排序;保存功能能:能对对输入的的数据进进行相应应的存储储;2 .22 系统统框图系统框架架图在本本设计中中,将主主要实现现以下功功能:增增加记录录功能,修修改记录录功能,删删除记录录功能,以以及筛选选记录功功能等。主菜单输入员工工资信息删除指定员工工资信息修改指定员工工资信息查找指定员工工资信息输出全体员工工资信息退出图1 系系统框架架图2.2 开发环环境本系统是是在Viisua

14、al CC+66.0平平台上运运行的,主主要运行行C及CC+等等语言。3 详详细设计计具体系统统设计3.1结结构体及及类的设设计与分分析 3.11.1:员工结结构体的的建立struuct Worrkerr_paayint numm; /员员工编号号striing namme; /员员工姓名名int agee; /年年龄striing sexx; /性性别striing depparttmennt; /部部门striing tittle; /职职务int eduuagee; /学学历(年年)floaat wwagee; /工工资int dayy; /缺缺勤天数数floaat aalloowann

15、ce; /扣扣发工资资floaat ttax; /个个人所得得税floaat rreall_waage; /实实发数Workker_payy * nexxt; /链链表结点点的指针针域;3.1.2:员员工类的的建立classs WWorkkerprottectted:Workker_payy * heaad; /链链表的头头结点指指针publlic:Workker()hheadd=NUULL; /构构造函数数voidd Diispllay(Worrkerr_paay *); /输输出函数数 Workker_payy * Finnd(iint); /查查找函数数int LisstCoountt(

16、); /统统计员工工人数函函数 voidd AdddIttem(intt,sttrinng,iint,strringg,sttrinng,sstriing,flooat,flooat); /创建建链表并并链表的的插入voidd ReemovveIttem(intt); /删除除函数voidd ReeplaaceIItemm(innt); /修修改函数数voidd LiistLL(); /遍历历函数 voidd Seearcch(iint); /查找找并输出出某个员员工信息息函数voidd Reeal_wagge(ffloaat,ffloaat); /计计算函数数voidd Reecorrdin

17、nfo(intt,sttrinng,iint,strringg,sttrinng,sstriing,flooat,flooat,flooat,flooat); /存储储函数;3.1.3:相相关的成成员函数数表1 WWorkker类类说明表表名称属性说明headd数据成员员链表头结结点指针针Workker()成员函数数缺省的构构造函数数,缺省省值为hheadd=NUULLvoidd Diispllay(Worrkerr_paay *)成员函数数输出函数数Workker_payy * Finnd(iint)成员函数数查找函数数int LisstCoountt()成员函数数统计员工工人数函函数voi

18、dd AdddIttem(intt,flloatt,flloatt)成员函数数创建链表表并链表表的插入入voidd ReemovveIttem(intt)成员函数数删除函数数voidd ReeplaaceIItemm(innt)成员函数数修改函数数voidd LiistLL()成员函数数遍历函数数voidd Liistaavg(strringg)成员函数数部门查询询及统计计的函数数voidd looad()成员函数数读取文件件voidd soort_datta();对员工信信息进行行整理的的函数voidd seearcch(sstinng ,strringg)成员函数数复合查找找并输出出员工信

19、信息的函函数voidd Seearcch(iint)成员函数数查找并输输出某个个员工信信息函数数voidd Reeal_wagge()成员函数数计算函数数voiddReccoreeinffo(iint,flloatt,flloatt)成员函数数存储函数数3.1.4非成成员函数数的设计计与分析析表2 非非成员函函数说明明表名称说明int Mennu()用于显示示主菜单单charr Exxit()用于退出出程序voidd Innputt(innt * nuum,flooat * aalloowannce)用于输入入员工工工资信息息voidd AdddNeew()用于调用用成员函函数AdddItte

20、m(intt,flloatt,flloatt)Reeal_wagge()和Reecorreinnfo(intt,ffloaat,ffloaat)voidd DooFinnd()用于调用用成员函函数Seearcch(iint)voidd DooDelletee()用于调用用成员函函数ReemovveIttem(intt)voidd DooMottifyy()用于调用用成员函函数ReeplaaceIItemm(innt)voidd Liist()用于调用用成员函函数LiistLL()int maiin()主函数voidd fiindttavgg()用于调用用成员函函数vooid Lisstavvg

21、(sstriing)3.2:各功能能模块设设计:(1)、新建数数据文件件模块:、数据结结构;看各个数数据信息息,员工工编号(intt), 员员工姓名名 (sstinng),年龄 (innt),性别 (sttrinng),部门(sstriing),职务(sstriing),受教育育年限(intt),工资 (sttrinng),缺勤(天)(intt),罚金(iint), 个税税 (iint),实发数数(innt),在在文件中中以文本本形式存存放,每每条记录录对应一一个人员员的信息息,可以以方便信信息的管管理;而而数据读读进内存存中时,可可以以结结构体的的形式,每每一个结结构体包包含了一一个人员员的

22、全部部信息,多多的人员员的信息息组成了了一个结结构体数数组。定定义见结结构体及及类的设设计与分分析(2)、追加模模块:1需求分分析该模块的的功能是是拥护需需要增加加新的员员工记录录,从键键盘输入入并逐条条写入到到原来的的文件中中去,其其中输入入号码是是要防止止号码重重复,重重复时报报告错误误,重新新输入。为方便便用户管管理和查查看,该该模块采采用的方方式是用用先把原原来文件件中的数数据读入入内存,保保存在内内存中,然然后在内内存中的的数据后后面增加加新的数数据,操操作完成成后用写写的方式式打开文文件,用用覆盖的的方式写写入。2流流程图:略;3对对应程序序:vooid AdddNeww() (3

23、)修修改模块块:需求分分析:该模块的的功能是是显示所所有信息息,考虑虑到记录录较多,采采用分屏屏显示,显显示完所所有的记记录后,由由用户输输入需要要修改的的人员的的号码,查查找成功功后,显显示查找找结果,并并询问拥拥护修改改人员的的哪部分分记录,根根据用户户选择修修改相应应的信息息,然后后保存修修改后的的结果;用户选择要修改的数据流流程图:输入编号是否有此编号 Y Y N找到调用修改函数提示没有找到询问用户是否继续修改返回主菜单 YY N 对对应的函函数:vvoidd DDoMootiffy();(4)删删除模块块:1需求分分析:该模块的的运行方方式与修修改模块块类似,首首先分屏屏显示所所有人

24、员员的记录录,显示示完所有有的记录录后,由由用户输输入要删删除的人人员的号号码,根根据号码码查找相相应的记记录并将将结果显显示出来来,经用用户确认认后删除除,删除除的方法法是将文文件中的的数据读读入内存存,赋给给相应的的结构体体,并将将结构体体数组中中将删除除的后面面的数据据赋给前前一个结结构体,然然后将相相应数据据写入文文件并保保存;2流流程图:类似添添加的流流程对对应函数数: vvoidd DooDelletee(); (5)、按编号号搜索:1需求分分析:该模块的的功能是是按照输输入的人人员的编编号查找找对应的的记录,并并将其显显示,查查找成功功以后,增增加删除除和修改改等功能能,其中中删

25、除和和修改功功能可以以通过调调用相应应的函数数来实现现。2流流程图;(6)按按姓名和和部门搜搜索。需需求分析析:该模模块的功功能是按按照输入入的人员员的姓名名和部门门查找对对应的记记录,并并将其显显示,查查找成功功以后,增增加删除除和修改改等功能能,其中中删除和和修改功功能可以以通过调调用相应应的函数数来实现现。该该模块的的结构与与按号码码查询的的结构基基本相同同;对对应函数数:vooid DoFFinddbummen();(7)输输出模块块;需求分析析:该模块的的功能是是显示所所有保存存在文件件中的记记录。2、流程图图;略对对应函数数:vooid Lisst(); (8)、排序模模块;1、需

26、求求分析;该模块的的功能是是要求将将记录按按照年龄龄或者来来院时间间进行排排序,总总体结构构是先用用n=lloadd()函函数将文文件中的的数据调调入内存存,然后后按照选选择法排排序,并并将结果果显示出出来,然然后将排排序后的的结果保保存。 流程图图;略。 对应函函数: voiid ssortt_daata()(9)、统计模模块1、需求求分析;该模块的的功能是是按照用用户的要要求统计计出满足足符合条条件的所所有记录录的个数数,并将将满足条条件的记记录显示示出来。该模块块是在其其他模块块进行的的同时进进行的,没没有单独独列出,没有涉及到文件的保存。2流流程图;无;3对对应函数数:包含含在其他他函

27、数内内4 所所遇到的的问题和和分析解解决(1)设设计初期期,先完完成初步步构思,写写出主函函数。然然后对主主函数所所涉及的的各个模模块进行行编程,将将各个模模块利用用指针和和链表联联系起来来。在环环境中进进行调试试,应一一边编译译,一边边调试,并并且要一一个模块块一个模模块的调调试。直直至此模模块完全全没有错错误时,在在进入下下一模块块的调试试。不能能直接输输入全部部的代码码一次性性调,这这样错误误会很多多,并且且不易找找出和修修改。在在完成程程序的编编译链接接后,要要用多组组数据进进行审查查,确保保做到系系统无误误。设计过程程中,不不应忽视视环境提提示的警警告,有有时程序序运行不不正确与与警

28、告也也有很大大的关系系。这次次设计中中遇到很很多问题题都是提提示类型型不匹配配,这时时就要认认真检查查前面的的代码,及及时改正正并且认认真仔细细,杜绝绝此类错错再次发发生。编写代码码时应该该少用全全局变量量,全局局变量在在编写试试看似定定义次数数少,很很方便。但全局局变量出出错几率率较大,且且不易修修改,每每次修改改时都要要全面考考虑,所所以应避避免用到到。程序调试试中碰到到的错误误可以使使自己学学到知识识。养成成良好的的编程习习惯,可可以节省省很多时时间,避避免很多多不必要要的错误误。(2)在在编辑完完整个程程序后,进进行调试试阶段总总是会数数显heead无无定义。解决办法法:再类类的定义义

29、是忘记记声明指指针Woorkeer_ppay *heead;。 (33)在写写读入函函数时,总总是不能能读入数数据,经经同学检检查发现现没有申申请新的的空间存存放数据据。 解决办办法:在在读入ttxt文文件时,q=new Worker_pay;q-next=NULL。5 系系统特色色及关键键技术5.1:Worrkerr类中的的成员函函数vooid AdddIteem(iint,flooat,flooat)(1)功功能:创创建存储储职工工工资信息息的存储储系统以以及添加加某职工工的工资资信息。算法思路路:先定定义一个个结构体体Worrkerr_paay,通通过从表表尾插入入的方法法来建立立链表。

30、首先要要先设立立一个头头指针(hheadd)来存存放链表表的首地地址,然然后,不不断用nnew运运算符生生成一个个新的结结点,将将这个结结点链入入已有的的链表尾尾部;如如果链表表中还没没有结点点,则这这个新结结点将是是首结点点,否则则,将新新结点的的地址赋赋给原有有链表的的尾结点点的neext指指针。流程图:StartIF !head员工工资信息赋给headReturn*t=headWhile t&t-num!= num1t=t-nextIF t操作失败Return*p-headWhilep-nextp-next员工工资信息赋给pReturnEnd(3)代代码:voidd Woorkeer:A

31、dddIteem(iint numm1,sstriing namme1 , )if(!heaad)headd=neew WWorkker_payy;headd-nnum=numm1;headd-nnextt=NUULL;retuurn;Workker_payy * t=hheadd;whille(tt&tt-nnum!=nuum1)t=t-neext;if(tt)coutt操作失失败;员员工编号号为nuum1的的信息已已经存在在!nnextt)p=p-neext;Workker_payy * p1=neww Woorkeer_ppay;retuurn;5.2:Worrkerr类中的的成员函函数

32、vooid sorrt_ddataa()(1)功功能:创创建存储储职工工工资信息息的存储储系统以以及添加加某职工工的工资资信息。算法思路路:运用用算法课课本上的的直接选选择排序序的算法法,与课课本的不不同之处处在于,本本程序是是用指针针进行排排序的,课课本使用用的数组组。直接选择择排序的的比较次次数与文文件初始始状态无无关,在在第i趟趟排序中中选出最最小的记记录,需需做n-i次比比较,因因此总的的次数为为:O(N*NN),文文件初始始状态为为正序时时,移动动0;最最坏情况况每趟排排序都要要交换操操作,总总的移动动次数是是3(nn-1)。直接选选择排序序的平均均时间复复杂度为为O(nn平方)。算

33、法中中增加了了一个辅辅助空间间temmp,因因此辅助助空间为为S(nn)=OO(1)。直接选选择排序序是不稳稳定的。 主要要代码:Worrkerr_paay * p,*q,*smmalll,*ttempp;tempp= nnew Worrkerr_paay ;for(p=hheadd;p-neext!=NUULL;p=pp-nnextt)smalll=pp;for(q=pp-nnextt ;qq!=NNULLL;q=q-nexxt)if(qq-eeduaageedduagge)smalll=qq;if(ssmalll!=p)tempp-eeduaage=p-eduuagee;p-eeduaag

34、e=smaall-edduagge;smalll-eduuagee=teemp-edduagge; ccoutt员工编编号 员员工姓名名 年龄龄 性别别 部门门 职务务 学历历 工资资 缺勤勤(天) 罚金金 个税税 实发发数nnextt;6 用户户手册及及测试结结果6.1用用户手册册运行程序序时,界界面刚开开始出现现一个主主菜单及及提示信信息,用用户通过过在键盘盘上输入入来选择择某个功功能。当当用户选选择了某某个功能能,系统统将跳转转到所选选择的功功能界面面,用户户将可以以根据提提示信息息来使用用该功能能,当用用户通过过键盘输输入编号号为-11时,系系统将返返回主界界面。6.2 测试结结果1,

35、主菜菜单2,输入入,添加加,删除除,修改改,查询询:统计排序7.总结结:成功之处处:此系系统程序序虽然简简单,却却集结了了基本的的管理功功能。删删除,存存储,统统计等功功能还是是较为成成功的。特别是是人事档档案的统统计管理理功能,使使烦琐的的工作变变得简单单轻松。不足之处处:由于于我们水水平和时时间有限限,难免免有不足足和差强强人意的的地方。尤其是是对于系系统应该该配以保保密性的的设置,可可是由于于我知识识积累不不够,做做不出来来。还请请迟老师师海涵。两周的数数据结构构与算法法课程设设计结束束了,在在这几天的时时间里,我我自己独独立完成成了一个个程序从从构思结结构,到到编写代代码,然然后上机机

36、调试运运行的过过程,感感觉自己己收获很很大。通通过解决决一个又又一个的的问题,熟熟悉了CC+语言言的应用用。在设计过过程中,在在编程时时条理清清晰是至至关重要要的。主主函数,函函数,成成员函数数之间的的层次关关系,调调用关系系一定要要有一个个全面的的把握,尤尤其要体体会类的的封装性性。另外外很重要要的一点点就是一一定要对对链表的的五种操操作熟练练的掌握握。我理理解了对对于一个个较大的的程序,不不可能一一次编写写出一个个较大的的系统,通通常要采采取自顶顶向下的的设计思思想,先先设计主主函数,再再通过完完善一个个个的功功能模块块来完成成程序的的设计过过程,在在设计过过程中要要充分理理解整个个程序的

37、的设计思思路,采采用逐步步细化的的方式来来完成整整个程序序。在编编译,链链接,调调试的过过程中一一定要有有耐心。因为一一个程序序中会有有很多小小的错误误,甚至至有的问问题要几几个小时时才能解解决。遇遇到问题题,一定定要全面面分析,有有时候还还要向同同学请教教。总得得来说,编编程时极极需要耐耐心的。参考文献献C语言大大学实用用教程 电子工工业出版版社 HYPERLINK htttp:/n2、C+程序序设计教教程(第第二版)高高等教育育出版社社3、C语语言程序序设计教教程北京京大学出出版社4、C语语言程序序设计实实例精粹粹电子工工业出版版社 5、wwww.bbaidduweenkuu.coom6、

38、陈天天华编.面向对对象程序序设计与与Vissuall C+6.0教程程M.北京京:清华华大学出出版社,20006程序清单单:#iinclludee#inccludde#inccludde#inccluddeusinng nnameespaace stdd;/*/*定义义一个员员工信息息的结构构体Woorkeer_ppay*/struuct Worrkerr_paayint numm; /员员工编号号striing namme; /员员工姓名名int agee; /年年龄striing sexx; /性性别striing depparttmennt; /部部门striing tittle; /职

39、职务int eduuagee; /学学历(年年)floaat wwagee; /工工资int dayy; /缺缺勤天数数floaat aalloowannce; /扣扣发工资资floaat ttax; /个个人所得得税floaat rreall_waage; /实实发数Workker_payy * nexxt; /链链表结点点的指针针域;/*/*定义义一个员员工类WWorkker*/classs WWorkkerprottectted:Workker_payy * heaad;/链表表的头结结点指针针 / WWorkker_payy * p;publlic:Workker()hheadd=NU

40、ULL; /构构造函数数voidd Diispllay(Worrkerr_paay *); /输输出函数数 Workker_payy * Finnd(iint); /查查找函数数Workker_payy * Finnd(sstriing,strringg);Workker_payy * Finnd(sstriing);int LisstCoountt(); /统统计员工工人数函函数 voidd AdddIttem(intt,sttrinng,iint,strringg,sttrinng,sstriing,intt,flloatt,innt,ffloaat); /创建链链表并链链表的插插入voi

41、dd ReemovveIttem(intt); /删删除函数数voidd ReeplaaceIItemm(innt); /修修改函数数voidd LiistLL(); /遍遍历函数数 voidd Seearcch(iint); /查查找并输输出某个个员工信信息函数数 voiid SSearrch(strringg,sttrinng);voidd Seearcch(sstriing); vvoidd Liistaavg(strringg);voidd Reeal_wagge(ffloaat,ffloaat); /计计算函数数voidd Reecorrdinnfo(intt,sttrinng,ii

42、nt,strringg,sttrinng,sstriing,intt,flloatt,innt,ffloaat,ffloaat,ffloaat); /存储函函数voidd paaixuu(sttrinng);voidd looad(); vvoidd soort_datta();/Woorkeer_ppay *t;/*/功能能:用于于统计员员工人数数int Worrkerr:LListtCouunt()if(!heaad) retuurn 0;Workker_payy * p=hheadd;int n=00;whille(pp)n+;p=p-neext;retuurn n;/*/功能能:在链链

43、表中查查找员工工的编号号Workker_payy * Worrkerr:FFindd(innt nnum)if(LListtCouunt=0)coutt列表为为空,请请先输入入数据!nnum=nuum) breaak;p=p-neext;if(!p)coutt错误,找找不到该该信息!eendll;retuurn NULLL;retuurn p;/*/*Woorkeer_ppay * WWorkker:Fiind(strringg deeparrtmeent)if(LListtCouunt=0)coutt列表为为空,请请先输入入数据!ddepaartmmentt=ddepaartmmentt)

44、/WWorkker11.Liistaavg(depparttmennt);breaak;p=p-neext;if(!p)coutt错误,找找不到该该信息!nnum=numm1;headd-nnamee=naame11;headd-aage=agee1;headd-ssex=sexx1;headd-ddepaartmmentt=deeparrtmeent11;headd-ttitlle=ttitlle1;headd-eeduaage=eduuagee1;headd-wwagee=waage11;headd-dday=dayy1;headd-aalloowannce=alllowaancee1;h

45、eadd-nnextt=NUULL;retuurn;Workker_payy * t=hheadd;whille(tt&tt-nnum!=nuum1)t=t-neext;if(tt)coutt操作失失败;员员工编号号为nuum1的的信息已已经存在在!nnextt)p=p-neext;Workker_payy * p1=neww Woorkeer_ppay;p1-numm=nuum1;p1-namme=nnamee1;p1-agee=agge1;p1-sexx=seex1;p1-depparttmennt=ddepaartmmentt1;p1-tittle=tittle11;p1-eduuage

46、e=edduagge1;p1-wagge=wwagee1;p1-dayy=daay1;p1-alllowaancee=alllowwancce1;p1-nexxt=NNULLL;p-nnextt=p11;retuurn;/*/功能能:从链链表中删删除一个个结点voidd Woorkeer:RemmoveeIteem(iint numm)Workker_payy * t=FFindd(nuum);if(!t)retuurn;Workker_payy * p=hheadd;if(hheadd=t)headd=heead-neext;deleete p;coutt成功删删除员工工编号为为numm的信

47、息息!nnextt!=tt)p=p-neext;Workker_payy * p1=p-nexxt;p-nnextt=p11-nnextt;deleete p1;coutt成功删删除员工工编号为为numm的信息息!enndl;retuurn;/*/功能能:修改改员工信信息voidd Woorkeer:RepplacceIttem(intt nuum)Workker_payy * p=FFindd(nuum);if(!p)retuurn;coutt请重新新输入相相应信息息enddl;couttp-nuum;couttp-naame;couttp-agge;couttp-seex;couttp-d

48、eeparrtmeent;couttp-tiitlee;couttp-edduagge;couttp-waage;couttp-daay;/cooutaalloowannce=p-wagge*pp-dday*0.001;/ciin* aalloowannce;retuurn;/*/功能能:输出出员工信信息voidd Woorkeer:Dissplaay(WWorkker_payy * p)couttssetww(3)nnumseetw(9)naameseetw(9)aggesettw(55)sexxssetww(5)ddepaartmmenttssetww(5)tiitleessetww(5)

49、eeduaageseetw(6)waageseetw(6)daaysettw(88)alllowaanceessetww(4)ttaxseetw(8)reeal_waggeenddl;retuurn;/*/功能能:遍历历链表voidd Woorkeer:LisstL()floaat ssum=0;floaat aaverr=0;int n=00;if(LListtCouunt=0)coutt当前列列表为空空,请先先输入数数据!eendll;retuurn;Workker_payy * p=hheadd;coutt*员工工信息*enndl;coutt共有LListtCouunt()个员员工信息息

50、enddl;coutt员工编编号 员员工姓名名 年龄龄 性别别 部门门 职务务 学历历 工资资 缺勤勤(天) 罚金金 个税税 实发发数waage;p=p-neext;averr=suum/nn;coutt员工平平均薪水水:avverenndl;retuurn;/*/功能能:查找找并输出出指定员员工信息息voidd Woorkeer:Seaarchh(innt nnum)couttSeaarchh.enddl;Workker_payy * p =Finnd(nnum);if(pp)coutt员工编编号为nnum的的员工工工资信息息:enndl;coutt员工编编号 员员工姓名名 年龄龄 性别别

51、部门门 职务务 学历历 工资资 缺勤勤(天) 罚金金 个税税 实发发数enndl;Dispplayy(p);coutteendll;retuurn;/*/功能能:程序序内部函函数计算算的信息息例如个个人所得得税,实实发数voidd Woorkeer:Reaal_wwagee(flloatt taax,ffloaat rreall_waage)if(LListtCouunt()=0)coutt当前列列表为空空,请先先输入数数据!waage-p-alllowaancee-20000;if(qqttax=0;elsee p-ttax=q*00.1;p-rreall_waage=q+220000-p-

52、taax;p=p-neext;retuurn;/*/功能能:存储储员工信信息voidd Woorkeer:Reccorddinffo(iint numm1,sstriing namme1,intt agge1,strringg seex1,strringg deeparrtmeent11,sttrinng ttitlle1,intt edduagge1,flooat wagge1,intt daay1,flooat alllowaancee1,ffloaat ttax11,flloatt reeal_wagge1) ofsttreaam ffilee1(inffo1.txtt,iios:app

53、p);filee1numm1ttnamme1tagge1tseex1tdeeparrtmeent11tttitlle1tedduagge1 twwagee1ttdayy1ttalllowaancee1tttaxx1ttreaal_wwagee1enddl;filee1.cclosse();voidd Woorkeer:loaad()/读读全部数数据 没没有完善善 Worrkerr_paay *t;t=neew WWorkker_payy; ifsstreeam in(innfo11.txxt); if(!inn) coout文文件打开开失败!t-nuump-nammep-ageepp-ssex

54、p-deeparrtmeentp-tiitleepp-eeduaagep-waagep-daayp-alllowaanceepp-ttaxp-reeal_wagge;int-nummtt-nnameett-aaget-seext-depparttmenntt-tittlet-edduagget-wagget-dayytt-aalloowanncet-taaxt-reaal_wwagee; ellse ccoutt文件为为空!请请先建立立数据!nnextt=NUULL; tt-nnextt=q; tt=t-neext; iint-nummtt-nnameett-aaget-seext-deppa

55、rttmenntt-tittlet-edduagget-wagget-dayytt-aalloowanncet-taaxt-reaal_wwagee; /inp-nuump-nammep-ageepp-ssexp-deeparrtmeentp-tiitleepp-eeduaagep-waagep-daayp-alllowaanceepp-ttaxp-reeal_wagge; ccoutt读入;pp-NNop-Nammep-Areeap-EnttyPrriceepp-NNumSStocckpiilep-NuumPuutp-SallePrricee; /*whhilee(t)heaad-nexxt

56、=tt;t=t-neext;coutt?neext;headd=heead-neext;coutt?enddl;*/ in.cloose();/*/*定义义一个对对象Woorkeer1*/Workker Worrkerr1; /*/ /*/功能能:退出出程序charr Exxit() charr s;coutts;retuurn s;/*/功能能:输入入员工信信息voidd Innputt(innt * nuum,sstriing * nnamee,innt * agge,sstriing * ssex,strringg * depparttmennt,sstriing * ttitlle,i

57、int *edduagge,ffloaat * waage,intt *dday,flooat * aalloowannce) coutt现在输输入员工工信息!enddl;coutt* numm;if(* nuum=-1)retturnn;coutt* namme;coutt* agee;coutt* sexx;coutt* depparttmennt;coutt* tiitlee;coutt*eeduaage;coutt* wagge;coutt*dday;*alllowaancee=(*wagge)*(*dday)*0.01;retuurn;/*/功能能:把员员工信息息插入到到链表中中vo

58、idd AdddNeew() int numm=0;striing namme;int agee=0;striing sexx;striing depparttmennt;striing tittle;int eduuagee=0;int dayy=0;floaat wwagee=0;floaat aalloowannce=0;floaat ttax=0;floaat rreall_waage=0;coutt当输入入的员工工编号为为-1是是表示结结束输入入enddl;Inpuut(&numm,&nnamee,&aage,&seex,&depparttmennt,&tittle,&edduagg

59、e,&wagge,&dayy,&aalloowannce);whille(nnum!=-11)Workker11.AdddIttem(numm,naame,agee,seex,ddepaartmmentt,tiitlee,edduagge,wwagee,daay,aalloowannce);Workker11.Reeal_wagge(ttax,reaal_wwagee);Workker11.Reecorrdinnfo(numm,naame,agee,seex,ddepaartmmentt,tiitlee,edduagge,wwagee,daay,aalloowannce,taxx,reeal_

60、wagge);Inpuut(&numm,&nnamee,&aage,&seex,&depparttmennt,&tittle,&edduagge,&wagge,&dayy,&aalloowannce);coutt员工工工资信息息已成功功存储!eendll;retuurn;/*/用名名字和部部门查找找信息Workker_payy * Worrkerr:FFindd(sttrinng nnamee,sttrinng ddepaartmmentt)if(LListtCouunt=0)coutt列表为为空,请请先输入入数据!nnamee=nnamee & p-deeparrtmeent=deeparr

温馨提示

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

评论

0/150

提交评论