📄 employee_manager.cpp
字号:
#include<iostream.h>
#include<string.h>
const Max=10;
class Employee
{
private:
float performance;
protected:
char name[10];
int grade;
float salary;
public:
Employee ()
{
cout<<"姓名:";
cin>>name;
cout<<"级别(1,2,3):";
cin>>grade;
}
void setPerformance()
{
cout<<"输入绩效:";
cin>>performance;
}
virtual float calculate(float base)
{
salary=base*grade+performance;//bs*grade+perroemance
return salary;
}
virtual void display()
{
//cout<<"姓名"<<" "<<"级别"<<" "<<"绩效工资"<<" "<<"工资"<<endl;
cout<<name<<" "<<grade<<" "<<performance<<" "<<salary<<endl;
}
virtual int getFlesh(){return 0;}
};
class Manager:public Employee
{
private:
int flesh;
float pleased;
public:
Manager():Employee()
{
cout<<"下属人数";
cin>>flesh;
cout<<"满意度(0-100%)";
cin>>pleased;
}
int getFlesh()
{
return flesh;
}
float calculate(float base)
{
salary=base*grade*pleased+1000;//bs*grade*pleased+1000
return salary;
}
void display()
{
//Employee::disp();
//cout<<"下属人数"<<"满意度"<<endl;
cout<<name<<" "<<grade<<" "<<flesh<<" "<<pleased<<" "<<salary<<endl;
}
};
class Department
{
private:
int deptID;
float basicSalary;
Employee *empPtr[Max];
public:
Department()
{ int i;
cout<<"部门ID(1--生产;2--销售)"<<endl;
cin>>deptID;//输入部门类别
if (deptID==1)
basicSalary=1000;
else
basicSalary=900;
empPtr[0]=new Manager; //创建一个主管
//cout<<empPtr[0]->getFlesh()<<endl;
for(i=1;i<=empPtr[0]->getFlesh();i++)
{
empPtr[i]=new Employee; //empPtr[0]->下属人数
empPtr[i]->setPerformance();
}
}
void empdisplay()
{ int i;
float totalSalary=0;
if(deptID==1)
{
cout<<"生产部门工资统计如下:";
}
else
cout<<"销售部门工资统计如下:";
cout<<"主管: \n";
cout<<"姓名 级别 满意度 工资 \n";
cout<<"-------------------------------------------------\n";
totalSalary=empPtr[0]->calculate(basicSalary);
cout<<empPtr[0]->calculate(basicSalary)<<endl;
empPtr[0]->display();
cout<<"员工:\n";
cout<<"姓名 级别 绩 效 工资 \n";
cout<<"-------------------------------------------------\n";
for(i=1;i<=empPtr[0]->getFlesh();i++)
{
totalSalary+=empPtr[i]->calculate(basicSalary);
//cout<<empPtr[0]->calculate(basicSalary)<<endl;
empPtr[i]->display();
}
cout<<"-----------------------------------\n";
cout<<" 部门总工资:"<<totalSalary;
}
};
void main()
{
Department dept;
dept.empdisplay();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -