公司员工管理系统

上传人:陈** 文档编号:94304208 上传时间:2022-05-22 格式:DOC 页数:13 大小:36KB
收藏 版权申诉 举报 下载
公司员工管理系统_第1页
第1页 / 共13页
公司员工管理系统_第2页
第2页 / 共13页
公司员工管理系统_第3页
第3页 / 共13页
资源描述:

《公司员工管理系统》由会员分享,可在线阅读,更多相关《公司员工管理系统(13页珍藏版)》请在装配图网上搜索。

1、精品范文模板 可修改删除撰写人:_日 期:_/公司员工管理系统-CEMS#include/文件操作头文件#include/包含system()等函数的头文件#include/字符串处理头文件#include/输入输出流重载需要的头文件#include/工资明细结构体typedefstructWAGEfloatBase_Wage;/基本工资floatMerit_Wage;/绩效工资floatSum_Wage;/总工资WAGE;/包括职工姓名、职工号的工资记录typedefstructEmplo_Wagecharid10;/职工编号charname10;/职工姓名WAGEdata;/工资Emplo

2、_Wage;typedefstructNodecharE_id10;/职工号charE_name10;/姓名charE_sex3; /性别charE_dep20; /部门charE_job20; /职务floatE_wage; /工资structNode*prior;/前驱指针structNode*next;/后继指针Node,*DLink;/工资大于1000的员工,超过部门需要按税率交税floatTax_Rate1=0.05f;/3000以下floatTax_Rate2=0.1f;/3000-8000floatTax_Rate3=0.15f;/8000以上voidSetWage(DLinkp

3、);/职工类classemployeeprivate:Nodedata;/结构体类型的数据成员public:friendostream&operator(istream&stream,DLinkp);/友元重载输入流运算符employee();/构造函数DLinkCreateLink();/创建链表DLinkInsertNode(DLinkHead);/插入一个结点;/全局常量,一个结点的大小constintNUM=sizeof(Node);/重载输出流运算符ostream&operator(ostream&stream,constDLinkp)streamsetiosflags(ios:le

4、ft)setw(10)E_idsetiosflags(ios:left)setw(10)E_namesetiosflags(ios:left)setw(7)E_sexsetiosflags(ios:left)setw(15)E_depsetiosflags(ios:left)setw(15)E_jobsetiosflags(ios:left)setw(8)E_wage(istream&stream,DLinkp)coutp-E_name;coutp-E_sex;coutp-E_dep;coutp-E_job;SetWage(p);/输入工资coutprior=NULL;Head-next=NU

5、LL;returnHead;/插入结点DLinkemployee:InsertNode(DLinkHead)DLinkp;ofstreamfile(EmployeeInfo.txt,ios:app);/打开文件if(!file)coutCannotopenthefile!n;return0;p=newNode;cout请输入员工信息:n;coutp-E_id;while(strcmp(p-E_id,00)/循环输入,以00结束输入cinp;p-prior=Head;p-next=Head-next;if(Head-next!=NULL)/如果不是空链Head-next-prior=p;Head

6、-next=p;file.write(char*)p,NUM);p=newNode;cout请输入员工信息:n;coutp-E_id; file.close();/关闭文件printf(录入完毕.n);returnHead;/输出格式voidPrint_Format()coutsetiosflags(ios:left)setw(10)职工号setiosflags(ios:left)setw(10)姓名setiosflags(ios:left)setw(7)性别setiosflags(ios:left)setw(15)所在部门setiosflags(ios:left)setw(15)职务seti

7、osflags(ios:left)setw(8)工资endl;/设置工资税率voidSetTRate()docout请输入税率:;cinTax_Rate1;while(Tax_Rate11|Tax_Rate10);docout请输入税率:;cinTax_Rate2;while(Tax_Rate21|Tax_Rate20);docout请输入税率:;cinTax_Rate3;while(Tax_Rate31|Tax_Rate30);/设置一个员工的明细工资voidSetWage(DLinkp)/ intflag=0;floatsum;Emplo_Wage*s;s=newEmplo_Wage;/

8、q=newEmplo_Wage;fstreamfile;file.open(Employee_Wage_Info.txt,ios:app);if(!file)cout打开工资文件失败!endl;return;couts-data.Base_Wage;/设置基本工资couts-data.Merit_Wage;/设置绩效工资sum=s-data.Base_Wage+s-data.Merit_Wage; if(sumdata.Sum_Wage=sum;elseif(sumdata.Sum_Wage=(sum-1000)*(1-Tax_Rate1)+1000;elseif(sumdata.Sum_Wa

9、ge=(sum-3000)*(1-Tax_Rate2)+3000;elses-data.Sum_Wage=(sum-8000)*(1-Tax_Rate3)+8000;p-E_wage=s-data.Sum_Wage;/总工资strcpy(s-id,p-E_id);strcpy(s-name,p-E_name);file.write(char*)s,sizeof(Emplo_Wage);/写入文件file.close();/输出voidPrint()intn,count=0;/n-输入的每屏显示的记录数,count-计数DLinkp;ifstreamfile(EmployeeInfo.txt);

10、/打开文件if(!file)coutCannotopenthefile!n;return;p=newNode;coutn;system(cls);/清屏Print_Format();/输出字段名while(!file.eof()file.read(char*)p,NUM);if(file.fail()break;if(n=count)/控制每一屏显示的记录条数system(pause);/暂停system(cls);/清屏count=0;/计数器清零Print_Format();coutp;count+;/修改函数voidAmend()intn;/用于选择修改选项charid10;/存放输入的

11、需要修改信息的职工号DLinkp;p=newNode;fstreamfile;file.open(EmployeeInfo.txt,ios:in|ios:out);/以读写方式打开if(!file)coutCannotopenthefile!n;return; coutid;while(!file.eof()file.read(char*)p,NUM);if(file.fail()break;if(!strcmp(p-E_id,id)break;if(file.eof()printf(没有这个职工号!n); return;cout可以修改的项目有:1-部门2-职务3-工资n;coutn;if(

12、n=0)/修改所在部门、职务、工资coutp-E_dep;coutp-E_job;SetWage(p);elseif(n=1)/修改所在部门coutp-E_dep;elseif(n=2)/修改职务coutp-E_job;elseif(n=3)/修改工资SetWage(p);elseprintf(输入错误!n);file.seekp(-1*NUM,ios:cur);/写指针回跳一条记录,以更新记录file.write(char*)p,NUM);/写入更新后的记录if(n=0|n=1|n=2|n=3)printf(修改成功!n);/操作提示file.close();/关闭文件/查询函数voidQu

13、ery()charQuery_Value20;/存放输入的需要查询的姓名或部门名称intflag=0,n;/是否查询到的标志DLinkp;p=newNode;ifstreamfile(EmployeeInfo.txt);/打开文件if(!file)coutCannotopenthefile!n;return;cout通过哪种方式查询:endl;coutt1-姓名2-所在部门endl;coutn;if(n=1)coutQuery_Value;elseif(n=2)coutQuery_Value;elsecout输入错误!E_name,Query_Value)Print_Format();cout

14、E_dep,Query_Value)Print_Format();coutp;flag=1;if(flag=0)printf(查询失败,没有相应记录!n);file.close();/关闭文件/删除函数voidDelete()charid10;/存放输入的职工号charname10;/存放输入的职工姓名intcount1=0,count2=0;/count1-总的记录数,count2-删除记录以后的总记录数DLinkp;p=newNode;ifstreamfile(EmployeeInfo.txt);if(!file)coutCannotopenthefile!n;return;ofstrea

15、mnewfile(NewEmployeeInfo.txt);if(!newfile)coutCannotopenthefile!n;return;coutid;coutname;while(!file.eof()file.read(char*)p,NUM);count1+;if(file.fail()break;if(strcmp(p-E_name,name)|strcmp(p-E_id,id)newfile.write(char*)p,NUM);count2+;file.close();/关闭文件newfile.close();/关闭文件remove(EmployeeInfo.txt);/删

16、除原来的EmployeeInfo.txtrename(NewEmployeeInfo.txt,EmployeeInfo.txt);/重命名if(count1=count2)printf(没有这个记录!n);elseprintf(删除成功!n);/查看职工工资明细voidshowwage()intn;chartemp110;Emplo_Wagetemp2;ifstreamfile(Employee_Wage_Info.txt);if(!file)cout职工工资表文件不能打开!endl;return;cout请选择操作项:endl;cout1-查看某个职工工资明细2-查看全部职工工资明细endl

17、;coutn;if(n=1)/输出某一个职工的工资明细couttemp1;elseif(n!=2)cout输入错误!endl;return;coutsetiosflags(ios:left)setw(10)职工号setiosflags(ios:left)setw(10)姓名setiosflags(ios:left)setw(10)基本工资setiosflags(ios:left)setw(10)绩效工资setiosflags(ios:left)setw(10)总工资endl;while(!file.eof()file.read(char*)&temp2,sizeof(Emplo_Wage);i

18、f(file.fail()break;if(n=1)/输出某一个职工的工资明细if(!strcmp(temp2.id,temp1)coutsetiosflags(ios:left)setw(10)temp2.idsetiosflags(ios:left)setw(10)temp2.namesetiosflags(ios:left)setw(10)temp2.data.Base_Wagesetiosflags(ios:left)setw(10)temp2.data.Merit_Wagesetiosflags(ios:left)setw(10)temp2.data.Sum_Wageendl;bre

19、ak;else/输出全部职工的工资明细coutsetiosflags(ios:left)setw(10)temp2.idsetiosflags(ios:left)setw(10)temp2.namesetiosflags(ios:left)setw(10)temp2.data.Base_Wagesetiosflags(ios:left)setw(10)temp2.data.Merit_Wagesetiosflags(ios:left)setw(10)temp2.data.Sum_Wageendl;/欢迎界面voidstartface()system(color0A);/设置屏幕显示的前景色、背

20、景色system(cls);/清屏/ cout*endl;coutendlendlendlendlendl;cout*endl;cout*endl;cout*欢迎进入公司员工管理系统*endl;cout*endl;cout*endl;coutendlendlendlendlendlendlendlendlendlendl;system(pause);/暂停/主菜单voidmenu()system(cls);/清屏coutendlendl;cout|*主菜单*|endl;cout|endl;cout|1、设置工资税率|endl;cout|2、插入职工信息|endl;cout|3、显示职工信息|e

21、ndl;cout|4、删除职工信息|endl;cout|5、修改职工信息|endl;cout|6、查询职工信息|endl;cout|7、查看职工工资明细|endl;cout|8、退出系统|endl;cout|endl;/主函数voidmain()intn;employeeEM;/定义一个对象DLinkHead;/定义一个链表startface();/调用欢迎界面函数while(1)/菜单循环system(cls);menu();coutn;switch(n)case1:SetTRate();system(pause);break;case2:Head=EM.CreateLink();Head=

22、EM.InsertNode(Head);system(pause);break;case3:Print();system(pause);break;case4:Delete();system(pause);break;case5:Amend();system(pause);break;case6:Query();system(pause);break;case7:showwage();system(pause);break;case8:exit(0);default:printf(输入错误!n);system(pause);第 13 页 共 13 页免责声明:图文来源于网络搜集,版权归原作者所以若侵犯了您的合法权益,请作者与本上传人联系,我们将及时更正删除。

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