📄 virtualemployee.cpp
字号:
#include <iostream>
#include <string>
using namespace std;
class Employee
{
protected:
int no;
char name[10];
float salary;
public:
Employee()
{
cout<<endl<<"输入姓名:";
cin>>name;
cout<<"输入工号:";
cin>>no;
salary=0.0;
}
virtual void payment()=0;
virtual void display()=0;
};
class Manager:virtual public Employee
{
protected:
float monthSalary;
public:
Manager()
{
this->monthSalary=8000.0;
}
inline void payment()
{
salary=monthSalary;
cout<<" 工资:"<<salary;
}
inline void display()
{
cout<<endl;
cout<<"姓名:"<<name<<" 工号:"<<no;
this->payment();
}
};
class Technician:public Employee
{
private:
int hour;
public:
Technician()
{
cout<<"输入工作时间(小时):";
cin>>hour;
}
void payment()
{
this->salary=this->hour*100;
cout<<" 工资:"<<salary;
}
void display()
{
cout<<endl;
cout<<"姓名:"<<name<<" 工号:"<<no;
this->payment();
}
};
class Salesman:virtual public Employee
{
protected:
float commrate;
float sales;
public:
Salesman()
{
cout<<"输入本月销售额:";
cin>>sales;
commrate=0.04;
}
void payment()
{
this->salary=this->commrate*this->sales;
cout<<" 工资:"<<salary;
}
void display()
{
cout<<endl;
cout<<"姓名:"<<name<<" 工号:"<<no;
this->payment();
}
};
class SalesManager:public Manager,public Salesman
{
public:
SalesManager()
{
this->commrate=0.005;
monthSalary=5000;
}
void payment()
{
Manager::salary=this->commrate*this->sales+this->monthSalary;
cout<<" 工资:"<<Manager::salary;
}
void display()
{
cout<<endl;
cout<<"姓名:"<<name<<" 工号:"<<no;
this->payment();
}
};
void main()
{
Manager man;
man.display();
Technician tech;
tech.display();
Salesman sale;
sale.display();
SalesManager salesMag;
salesMag.display();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -