c++公司人事管理_第1页
c++公司人事管理_第2页
c++公司人事管理_第3页
c++公司人事管理_第4页
c++公司人事管理_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、/ 852369.cpp : 定义控制台应用程序的入口点。 / #i nclude stdafx.h #in elude #in elude #i nclude #in elude #in elude #i nclude #in elude #in elude #in elude using n amespaee std; elass Staff / 声明员工类 proteeted: int nu m,post; ehar n ame20; float in eome; publie: friend elass Boss;/ 在一个非成员函数中,要想访问类的私有数据成 造函数, ,该函数必须声

2、明为该类的友元函数 声明一个无参的构造函数 Staff (int id,ehar *Name,i nt post,double pay);/ 用参数的初始化表对数据成员初始化 virtual double Pay()return 0; / Staff() / Staff 定义一个有参的构 Word资料 ; 在类外定义有参构造 Staff :Staff (int id,ehar *Name,int Post,double pay) / 函数 nu m=id; post=Post; in eome= pay; strepy (n ame,Name); elass Techni queMa nage

3、r:public Staff /声明技术经理类 public: Tech niq ueMa nager(i ntid,ehar*Name,i ntpost,double pay):Staff (id,Name,post,pay) double Pay()retur n in come=5000; void display。; Tech niq ueMa nager() ; void Tech niq ueMa nager:display()构造函数 Pay(); coutnumname技术经理 in comee ndl; class Busi nessMa nager:public Staff

4、 /声明业务经理类 public: double Amount, Programe; Busin essMa nager(i nt id,char *Name,i nt post,double amoun t,double programe,double pay); void SetAm oun t(double s,double d); double Pay(); Bus in essMa nager() ; Busin essMa nager:Bus in essMa nager(i nt id,char *Name,i nt post,double amoun t,double prog

5、rame,double pay):Staff (id,Name,post,pay) /构造函数 Amoun t=am ount; Programe=programe; void Busin essMa nager:SetAm oun t(double s,double d) Amoun t=s; Programe=d; double Busin essMa nager:Pay() return in come=2000+Amou nt*15/100+Programe*10/100; class Secretary:public Staff /声明文秘类 public: Secretary(i

6、ntid,char *Name,i nt post,double pay):Staff (id,Name,post,pay) double Pay()return in come=1500; void display(); Secretary() ; void Secretary:display() /构造函数 Pay(); n ame cout num in comee ndl; class Finan cial:public Staff public: / 声明财务人员类 Finan cial( int id,char*Name,i ntpost,double (id,Name,post,

7、pay) double Pay()return in come=2000; pay):Staff void display(); Fi nan cial() ; void Finan cial:display()/构造函数 Pay(); cout n umn ame财 务 in comee ndl; class Sales:public Staff /声明业务人员类 public: double Amoun t,Programe; Sales(i ntid,char*Name,i ntpost,double amoun t,double programe,double pay); void S

8、etAm oun t(double s,double d); virtual double Pay(); Sales() ; Sales:Sales(i ntid,char*Name,i ntpost,doubleamoun t,doubleprograme,double pay):Staff (id,Name,post,pay) /在类外定义有参构造函数 Amou nt=Amou nt; 销售额 Programe=programe;项目额 double Sales:Pay() return in come=Amou nt*15/100+Programe*10/100; void Sales:

9、SetAm oun t(double s,double d) Amoun t=s;Programe=d; class Tech nicia n:public Staff/声明技术员类 public: double Line; Tech nician (i ntid,char *Name,i nt post,double lin e,double pay):Staff (id,Name,post,pay) Lin e=li ne; double Pay(); void display(); Tech nician() ; double Tech nicia n:Pay() /在类外定义无参构造函

10、数 return in come=L ine; void Tech nicia n:display() Pay();coutnumname技术人员 in comee ndl; class Boss /声明老板类 public: Boss(); void Add(); void Search(); void Delete(); void Modify(); void DisPlay(); Boss() ; void Boss:Add() time_t t = time(0); 本年第 %j 天 %z,localtime( strftime( tmp, sizeof(tmp), %Y/%m/%d

11、%X %A puts( tmp ); Staff p,*p1; int post,id; char Name20,ch; double pay,Am oun t,sell,programe; coute ndl; 添加职工信息endl; 技术经理endl; 业务经理endl; 文 秘e ndl; 业务人员endl; 技术人员endl; 财务人员endl; coute ndl; coutnnnn ttt coutttt1 coutttt2 coutttt3 coutttt4 coutttt5 coutttt6 do fstream file(compa ny .dat,ios:out|ios:a

12、pp|ios:b in ary);/以写,追力口 , 二进制形式打开文件 if(file.fail() coutca n not ope n file!e ndl; coutendl post; cout id; cout Name; switch(post) case 1:p1= new Tech niqueMa nager(id,Name,post,0); /声明一个基类的指针指向派 生类,用new创建了派生类的对象 pay=(*p1).Pay();p=Tech niq ueMa nager(id,Name,post,pay); break; case 2: cout sell; cout

13、 programe; coute ndl; p1= new Busin essMa nager(id,Name,post,sell,programe,0); pay=(*p1) .P ay(); p=Bus in essMa nager(id,Name,post,sell,programe,pay); break; case 3:p1= new Secretary(id,Name,post,0); pay=(*p1).Pay();p=Secretary(id,Name,post,pay); break; case 4:cout sell; cout programe; coute ndl; p

14、1= new Sales(id,Name, post,sell,programe,0); pay=(*p1).Pay(); p=Sales(id,Name, post,sell,programe,pay);break; case 5: cout Am ount; p1= new Tech ni cia n(id,Name,post,Am oun t,0); pay=(*p1) .P ay(); p=Tech nician (id,Name,post,Am oun t,pay);break; case 6:p1= new Finan cial(id,Name,post,0); pay=(*p1)

15、.Pay();p=Fi nan cial(id,Name,post,pay); break; file.write(char *)(以写的方式读入文件中 file.close(); cout ch; if(ch = n |ch = N) break; while(ch=y|ch=Y); system( cls); void Boss:Search() /查找员工信息 time_t t = time(0); char tmp64; strftime( tmp, sizeof(tmp), %Y/%m/%d %X %A本年第 j 天 %z,localtime( puts( tmp ); Staff

16、p; char ch; coutnnnnnn coutttt1- coutttt2- coutttt3- coutttt4- int d; 查找员工信息endl; 技术经理endl; 业务经理endl; 文秘e ndl; 业务人员endl; coutttt5-技术人员endl; coutttt6-财务人员endl; do cout d; coute ndl; fstream file(company.dat,ios:in|ios:binary);/ if(file.fail() coutca n not ope n the file!e ndl; while(file.read(char*)

17、else if(d=2 else if(d=3 else if(d=4 else if(d=5 else if(d=6 tp .n ame p .n ame p .n ame p .n ame p .n ame p .n ame 技术经理 财务经理 文秘 业务人员 技术人员 财务人员 file.close(); cout ch; if(ch = n |ch = N) break; while(ch=y|ch=Y); system( cls); void Boss:Modify()/修改信息 i+; Word资料 time_t t = time(0); char tmp64; strftime(

18、tmp, sizeof(tmp), puts( tmp ); char Name20; Staff p310; Staff *p1; Staff p; int post,id,i=0,j=0; double pay,Am oun t,sell,programe; coutnnnnnn coutttt1 coutttt2 coutttt3 coutttt4 coutttt5 coutttt6 cout id; fstream file(compa ny .dat,ios:i n|ios:b in ary); if(file.fail() coutca n not ope n the file!e

19、 ndl; file.seekg(0,ios:beg); / while(file.read(char *) 技术经理endl; 业务经理endl; 文秘e ndl; 业务人员endl; 技术人员endl; 财务人员endl; 把文件指针放在文件的开始 p3i=p; if(p3i. num=id) cout post; cout Name; coute ndl; switch(post) case1:p1= newTech niq ueMa nager(id,Name,post,0); pay=(*p1).Pay();p3i=Tech niq ueMa nager(id,Name,post,p

20、ay);break; case 2:cout sell; cout programe; coute ndl; p1= new Busin essMa nager(id,Name, post,sell,programe,0); pay=(*p1).Pay(); p3i=Bus in essMa nager(id,Name,post,sell,programe,pay); break; case3:p1= new Secretary(id,Name,post,0);pay=(*p1).Pay();p3i=Secretary(id,Name,post,pay); break; case 4:cout

21、 sell; cout programe; coute ndl; p1= new Sales(id,Name, post,sell,programe,0); pay=(*p1).Pay(); p3i=Sales(id,Name, post,sell,programe,pay); break; case 5:cout Am ount; coute ndl; p1= new Tech nician (id,Name,post,Am oun t,0); pay=(*p1).Pay(); p3i=Tech nician (id,Name,post,Am oun t,pay); case6:p1= ne

22、w Finan cial(id,Name,post,0);pay=(*p1).Pay();p3i=Finan cial(id,Name,post,pay); break; file.close(); ofstream file1(compa ny .dat,ios:out|ios:b in ary); if(file1.fail() coutca n not ope n the file!e ndl; for(j=0;ji;j+)/把修改后的信息存入文件中 file1.write(char *) file1.close(); system(” cls); void Boss:Delete()

23、/删除人员- time_t t = time(0); char tmp64; strftime( tmp, sizeof(tmp), %Y/%m/%d %X %A本年第 %j 天 %z,localtime( puts( tmp ); int nu m,i,j=0; Staff p110; Staff p; char ch; do i=0; cout删除员工信息; cout编号:; cinnum; fstream file(compa ny .dat,ios:i n|ios:b in ary);/输入文件流类 if(file.fail() coutca n not ope n the file!

24、e ndl; while(file.read(char *)break; case 2: coutp .num p.i ncomee ndl;break; case 3: p .n ame 财务经理 coutp .num p.i ncomee ndl; break; case 4: p .n ame 文秘 coutp .num p.i ncomee ndl;break; case 5: p .n ame 业务人员 coutp .num p.i ncomee ndl;break; case 6: p .n ame 技术员 coutp .num p.i ncomee ndl;break; else

25、 p1i=p; i+; p .n ame 财务人员 file.close(); fstream file1(compa ny .dat,ios:out|ios:b in ary);/ if(file1.fail() coutca n not ope n the file!e ndl; 输出文件流类 for(j=0;ji;j+) file1.write(char *) file1.close(); cout ch; if(ch = n |ch = N) break; Word资料 while(ch=y|ch=Y); system(” cls); void Boss:DisPlay() / 显示人

26、员信息 Staff p;/P 是职员类的对象 cout 编号| 员工姓名 工资 | e ndl; 级另寸| fstream file(compa ny .dat,ios:i n|ios:out|ios:b in ary); if(file.fail() coutca n not ope n the file!e ndl; while(file.read(char *)( switch(p.post) case1:cout setw(6)技术经理 case 2:cout 姓名 case 3:cout setw(6) 文秘 case 4:cout setw(6) 业务人员 case 5:cout

27、setw(6) 技术人员 case 6:cout setw(6)业务经理 setw(6)财务人员 p .num p.i ncomee ndl;break; p .num p.i ncomee ndl; break; p .num p.i ncomee ndl; break; p .num p.i ncomee ndl; break; p .num p.i ncomee ndl; break; p .num p.i ncomee ndl; break; 岗位 setw(6)p. name setw(6)p. name setw(6)p. name setw(6)p. name setw(6)p. nam

温馨提示

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

评论

0/150

提交评论