📄 worker.h
字号:
#ifndef worker_h
#define worker_h
#include<iostream>
#include<string>
using namespace std;
class employee;
class manager;
class technician;
class saler;
class salermanager;
//-----------------------------------------------------------------------------------------------
class employee
{
public:
employee();
employee(long thenumber,string thename,string thesex,string thejob,long theage,long thewage);
virtual ~employee();
long getnumber(){return number;}
long getage(){return age;}
long getwage(){return wage;}
long getrank(){return rank;}
string getname(){return name;}
string getdepartment(){return department;}
string getsex(){return sex;}
string getjob(){return job;}
void setnumber(long thenumber){number=thenumber;}
void setage(long theage){age=theage;}
void setwage(long thewage){wage=thewage;}
void setrank(long therank){rank=therank;}
void setname(string thename){name=thename;}
void setdepartment(string thedepartment){department=thedepartment;}
void setsex(string thesex){sex=thesex;}
void setjob(string thejob){job=thejob;}
void virtual input();
void virtual settsm(long thetsm){}
long virtual gettsm(){return 0;}
long virtual getsalemoney(){return 0;}
private:
long number,age,wage,rank;
string name,department,sex,job;
};
employee::employee()
{
wage=0;
}
employee::~employee(){}
void employee::input()
{
cout<<"请输入职工号。"<<endl;
cin>>number;
cout<<"请输入姓名,不能含空格。"<<endl;
cin>>name;
//getline(cin,name,'#');
cout<<"请输入性别。(M/F)"<<endl;
cin>>sex;
while(!(sex=="M"||sex=="F"))
{
cout<<"输入错误,请重新输入!"<<endl;
cin>>sex;
}
cout<<"请输入年龄。"<<endl;
cin>>age;
cout<<"请输入部门。(A、B、C)"<<endl;
cin>>department;
while(!(department=="A"||department=="B"||department=="C"))
{
cout<<"输入错误,请重新输入!"<<endl;
cin>>department;
}
}
//----------------------------------------------------------------------------------------------
class manager : public virtual employee
{
public:
manager(){}
virtual ~manager();
void virtual input();
};
void manager::input()
{
employee::input();
setjob("经理");
setwage(8000);
}
manager::~manager(){}
//---------------------------------------------------------------------------------------------
class technician : public employee
{
public:
technician();
virtual ~technician();
void virtual input();
private:
long worktime,moneyph;
};
technician::technician()
{
moneyph=100;
}
technician::~technician(){}
void technician::input()
{
employee::input();
setjob("技术员");
cout<<"请输入工作时间。"<<endl;
cin>>worktime;
setwage(worktime*moneyph);
}
//----------------------------------------------------------------------------------------------
class saler : public virtual employee
{
public:
saler(){}
virtual ~saler();
void virtual input();
long virtual getsalemoney();
private:
long salemoney;
};
saler::~saler(){}
void saler::input()
{
employee::input();
setjob("销售员");
cout<<"销售额"<<endl;
cin>>salemoney;
setwage(long(salemoney*0.04+0.5));
}
long saler::getsalemoney()
{
return salemoney;
};
//----------------------------------------------------------------------------------------------
class salermanager :public saler,public manager
{
public:
salermanager(){ tsm=0; }
virtual ~salermanager();
void virtual input();
void settsm(long thetsm);
long gettsm();
private:
long tsm;
};
salermanager::~salermanager(){}
void salermanager::settsm(long thetsm)
{
tsm=thetsm;
setwage(long(5000+tsm*0.005));
}
long salermanager::gettsm(){return tsm;}
void salermanager::input()
{
employee::input();
setjob("销售经理");
setwage(long(5000+tsm*0.005));
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -