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

📄 9_77.cpp

📁 C++程序设计技能百练随书配套光盘的源码
💻 CPP
字号:
#include<iostream.h>
#include<string.h>
class employee
{
protected:
	int no;
	char *name;
	float salary;
	static int totalno;
public:
	employee()
	{
		char temname[20];
		cout<<"执行employee构造函数!"<<endl;
        no=totalno++;
		cout<<"职工姓名:";
		cin>>temname;
		name=new char[strlen(temname)+1];
		strcpy(name,temname);
		salary=0;
	}
	~employee()
	{ 
		cout<<"执行employee析构函数!"<<endl;
		delete[] name;
	}
	void pay(){}
	void display(){}
};
class technician:public employee
{
private:
	float hourlyrate;
	int workhours;
public:
	technician()
	{cout<<"执行technician构造函数!"<<endl;hourlyrate=100;}
	void pay()
	{
		cout<<name<<"本月工作时数:";
		cin>>workhours;
		salary=hourlyrate*workhours;
	}
	void display()
	{
		cout<<"兼职技术人员"<<name<<"(编号为"<<no\
			<<")"<<"本月工资:"<<salary<<endl;
	}
};
int employee::totalno=100;  //静态数据成员totalno在类外进行初始化
class saleman:virtual public employee
{
protected:
	float commrate;
	float sales;
public:
	saleman()
	{cout<<"执行saleman构造函数!"<<endl;commrate=0.04f;}
	void pay()
	{
		cout<<name<<"本月销售额:";
		cin>>sales;
		salary=sales*commrate;
	}
	void display()
	{
		cout<<"销售员"<<name<<"(编号为"<<no<<")"\
			<<")"<<"本月工资:"<<salary<<endl;
	}
};
class manager:virtual public employee
{
protected:
	float monthlypay;
public:
	manager()
	{ 
		cout<<"执行manager构造函数!"<<endl;
		monthlypay=8000; 
	}
	void pay(){salary=monthlypay;}
	void display()
	{
		cout<<"经理"<<name<<"(编号为"<<no<<")"\
			<<")"<<"本月工资:"<<salary<<endl;
	}
};
class salesmanager:public manager,public saleman
{
public:
	salesmanager()
	{
		cout<<"执行salesmanager构造函数!"<<endl;
		monthlypay=5000;
		commrate=0.005f;
	}
	void pay()
	{
		cout<<name<<"所管部门月销售量:";
		cin>>sales;
		salary=monthlypay+commrate*sales;
	}
	void display()
	{
		cout<<"销售经理"<<name<<"(编号为"<<no<<")"\
			<<")"<<"本月工资:"<<salary<<endl;
	}
};
void main()
{
	manager m1;
	technician t1;
	saleman s1;
	cout<<endl<<"请注意以下建立类salesmanager的对象的过程!"<<endl;
	salesmanager sm1;
	m1.pay();
	m1.display();
	t1.pay();
	t1.display();
	s1.pay();
	s1.display();
	sm1.pay();
	sm1.display();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -