
C++课程设计(employee)高手进
某学校对员工的奖金按下面方法计算:对管理人员按其职务发固定的岗位奖,对专职教师按其职称和月任课时数计发业绩奖,对既有管理工作又兼授课的人员按岗位奖加月任课时数乘某系数之和...
某学校对员工的奖金按下面方法计算:对管理人员按其职务发固定的岗位奖,对专职教师按其职称和月任课时数计发业绩奖,对既有管理工作又兼授课的人员按岗位奖加月任课时数乘某系数之和为奖金数。
分析应用要求,建立一个抽象类,具有员工的基本数据成员,计算月奖金和显示信息的成员函数。由于不同人员的奖金计算方法不同,所以将这两个成员函数声明为虚函数。以抽象类为基类派生出三种不同人员类,有派生类对月奖金和显示信息函数进行重载。主函数实现动态调用,计算个人员的月奖金。
我自己也写了一个程序,可是搞不出来有多个职员,谁能帮我搞出来可以输入多个职员及其其它信息?感激不尽。
做的好的话会追加金币的! 展开
分析应用要求,建立一个抽象类,具有员工的基本数据成员,计算月奖金和显示信息的成员函数。由于不同人员的奖金计算方法不同,所以将这两个成员函数声明为虚函数。以抽象类为基类派生出三种不同人员类,有派生类对月奖金和显示信息函数进行重载。主函数实现动态调用,计算个人员的月奖金。
我自己也写了一个程序,可是搞不出来有多个职员,谁能帮我搞出来可以输入多个职员及其其它信息?感激不尽。
做的好的话会追加金币的! 展开
2个回答
展开全部
#include<iostream>
using namespace std;
class employee // 虚基类
{
public:
virtual void display() = 0;
virtual double money() = 0;
};
class employee1:public employee // 管理人员
{
public:
void display (){cout << "管理人员,薪酬为: " << money() << endl;}
double money(){return BasicSalary;}
private:
static int BasicSalary;
};
int employee1::BasicSalary = 2000; // 管理人员固定奖金
class employee2:public employee // 专职教师
{
public:
employee2(double time){TIME = time;}
void display(){cout << "专职教师,薪酬为: " << money() << endl;}
double money(){return price * TIME;}
private:
static int price;
double TIME; // 任课时数
};
int employee2::price = 120; // 每节课的薪酬
class employee3:public employee // 管理者兼教师
{
public:
employee3(double time){TIME = time;}
void display(){cout << "教师兼管理者,薪酬为: " << money() << endl;}
double money(){return BasicSalary + Coefficient * TIME;}
private:
static double Coefficient;
static int BasicSalary;
int TIME;
};
double employee3::Coefficient = 75; // 某系数
int employee3::BasicSalary = 1800; // 固定奖金
int main()
{
employee1 p1;
employee2 p2(15);
employee3 p3(8);
employee *p[3] = {&p1,&p2,&p3};
for (int i = 0;i < 3;i++)
p[i]->display();
return 0;
}
using namespace std;
class employee // 虚基类
{
public:
virtual void display() = 0;
virtual double money() = 0;
};
class employee1:public employee // 管理人员
{
public:
void display (){cout << "管理人员,薪酬为: " << money() << endl;}
double money(){return BasicSalary;}
private:
static int BasicSalary;
};
int employee1::BasicSalary = 2000; // 管理人员固定奖金
class employee2:public employee // 专职教师
{
public:
employee2(double time){TIME = time;}
void display(){cout << "专职教师,薪酬为: " << money() << endl;}
double money(){return price * TIME;}
private:
static int price;
double TIME; // 任课时数
};
int employee2::price = 120; // 每节课的薪酬
class employee3:public employee // 管理者兼教师
{
public:
employee3(double time){TIME = time;}
void display(){cout << "教师兼管理者,薪酬为: " << money() << endl;}
double money(){return BasicSalary + Coefficient * TIME;}
private:
static double Coefficient;
static int BasicSalary;
int TIME;
};
double employee3::Coefficient = 75; // 某系数
int employee3::BasicSalary = 1800; // 固定奖金
int main()
{
employee1 p1;
employee2 p2(15);
employee3 p3(8);
employee *p[3] = {&p1,&p2,&p3};
for (int i = 0;i < 3;i++)
p[i]->display();
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询