公司员工管理系统.doc_第1页
公司员工管理系统.doc_第2页
公司员工管理系统.doc_第3页
公司员工管理系统.doc_第4页
公司员工管理系统.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

/公司员工管理系统-CEMS#include/文件操作头文件#include/包含system()等函数的头文件#include/字符串处理头文件#include/输入输出流重载需要的头文件#include/工资明细结构体typedefstructWAGEfloatBase_Wage;/基本工资floatMerit_Wage;/绩效工资floatSum_Wage;/总工资WAGE;/包括职工姓名、职工号的工资记录typedefstructEmplo_Wagecharid10;/职工编号charname10;/职工姓名WAGEdata;/工资Emplo_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);/职工类classemployeeprivate:Nodedata;/结构体类型的数据成员public:friendostream&operator(istream&stream,DLinkp);/友元重载输入流运算符employee();/构造函数DLinkCreateLink();/创建链表DLinkInsertNode(DLinkHead);/插入一个结点;/全局常量,一个结点的大小constintNUM=sizeof(Node);/重载输出流运算符ostream&operator(ostream&stream,constDLinkp)streamsetiosflags(ios:left)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=NULL;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-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)职务setiosflags(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;/ 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_Wage=(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);/打开文件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;/存放输入的需要修改信息的职工号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(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();/关闭文件/查询函数voidQuery()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();coutE_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;ofstreamnewfile(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);/删除原来的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;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);if(file.fail()break;if(n=1)/输出某一个职工的工资明细if(!strcmp(temp2.id,temp1)coutsetiosflags(ios:left)setw(10)temp2.idsetiosflags(ios:left)setw(10)setiosflags(ios:left)setw(10)temp2.data.Base_Wagesetiosflags(ios:left)setw(10)temp2.data.Merit_Wagesetiosflags(ios:left)setw(10)temp2.data.Sum_Wageendl;break;else/输出全部职工的工资明细coutsetiosflags(ios:left)setw(10)temp2.idsetiosflags(ios:left)setw(10)setiosflags(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);/设置屏幕显示的前景色、背景色system(cls);/清屏/ cout*endl;coutendlendlendlendlendl;cout*endl;cout*endl;cout*欢迎进入公司员工管理系统*endl;cout*endl;cout*endl;coutendlendlendlendlendlendlendlendlendlendl;system(pause);/暂停/主菜单voidmenu()system(cls);/清屏cou

温馨提示

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

评论

0/150

提交评论