⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 worker.h

📁 一个简单的小型公司工资管理系统
💻 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 + -