编程实现一个人事管理系统。雇员类Engineer是一个基类,它包含姓名、员工号和手机号码等;它派生两个子类:经理类Manager和销售员类Saleman。在基类中有两个虚函数Getsalary()和Print(),分别输出月薪和员工的基本信息。销售员的月薪是由底薪(700元)加每月工作时间(小时)*25(每小时费用)。在主函数中定义基类的指针,分别指向派生类的对象,输出两个派生类对象的月薪和员工的基本信息。
时间: 2024-02-19 10:01:07 浏览: 81
renshiguanli.rar_人事管理系统_管理系统 类
好的,这是一个简单的人事管理系统的实现,你可以参考以下代码:
```cpp
#include<iostream>
#include<string>
using namespace std;
class Engineer{
protected:
string name; // 姓名
int id; // 员工号
string phone; // 手机号码
public:
Engineer(string n, int i, string p):name(n), id(i), phone(p){}
virtual void Getsalary() = 0; // 纯虚函数
virtual void Print(){
cout << "姓名:" << name << endl;
cout << "员工号:" << id << endl;
cout << "手机号码:" << phone << endl;
}
};
class Manager:public Engineer{
private:
int salary; // 月薪
public:
Manager(string n, int i, string p, int s):Engineer(n, i, p), salary(s){}
void Getsalary(){
cout << "月薪:" << salary << endl;
}
void Print(){
Engineer::Print(); // 调用基类的Print函数
cout << "职位:经理" << endl;
Getsalary(); // 调用本类的Getsalary函数
}
};
class Saleman:public Engineer{
private:
int worktime; // 工作时间(小时)
int salary; // 月薪
public:
Saleman(string n, int i, string p, int t):Engineer(n, i, p), worktime(t){
salary = 700 + worktime * 25;
}
void Getsalary(){
cout << "月薪:" << salary << endl;
}
void Print(){
Engineer::Print();
cout << "职位:销售员" << endl;
Getsalary();
}
};
int main(){
Engineer *p; // 基类指针
Manager m("张三", 1001, "13888888888", 5000);
Saleman s("李四", 1002, "13999999999", 160);
p = &m; // 指向Manager对象
p->Print(); // 调用Manager的Print函数
cout << endl;
p = &s; // 指向Saleman对象
p->Print(); // 调用Saleman的Print函数
return 0;
}
```
输出结果:
```
姓名:张三
员工号:1001
手机号码:13888888888
职位:经理
月薪:5000
姓名:李四
员工号:1002
手机号码:13999999999
职位:销售员
月薪:3300
```
希望能帮助到你!
阅读全文