创建一个表示雇员信息的employee类
时间: 2023-11-03 09:14:18 浏览: 100
好的,关于创建一个表示雇员信息的employee类,你可以这样实现:
```
class Employee:
def __init__(self, name, age, salary, department):
self.name = name
self.age = age
self.salary = salary
self.department = department
def info(self):
print("Name:", self.name)
print("Age:", self.age)
print("Salary:", self.salary)
print("Department:", self.department)
```
你可以根据需要添加其他属性和方法。请问还有其他问题需要回答吗?
相关问题
创建一个表示雇员信息的employee类,其中包含数据成员name、empNo和salary,分别表示雇员的姓名、编号和月薪。再从employee类派生出3个类worker、technician 和salesman,分别代表普通工人、科研人员、销售人员。三个类中分别包含数据成员productNum、workHours和monthlysales,分别代表工人每月生产产品的数量、科研人员每月工作的时数和销售人员每月的销售额。要求在employee类中声明虚成员函数pay,并在各个派生类中覆盖pay函数,用来计算雇员的月薪,并假定: 普通工人的月薪=每月生产的产品数×每件产品的赢利×20% 科研人员的月薪=每月的工作时数×每小时工作的酬金 销售人员的月薪=月销售额×销售额提成。 创建一个通用函数CalculateSalary,用来计算并返回各种不同类型雇员的月薪。函数CalculateSalary的原型如下:float CalculateSalary(employee *emptr) ;在main函数中分别声明worker类、technician类和salesman类的对象代表各种类型的雇员,并调用函数CalculateSalary计算他们的月薪。
以下是实现上述要求的代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
class employee {
protected:
string name;
int empNo;
float salary;
public:
employee(string n, int no, float s) {
name = n;
empNo = no;
salary = s;
}
virtual float pay() {
return salary;
}
};
class worker : public employee {
private:
int productNum;
float profit;
public:
worker(string n, int no, float s, int p, float pf) : employee(n, no, s) {
productNum = p;
profit = pf;
}
float pay() {
return productNum * profit * 0.2;
}
};
class technician : public employee {
private:
float workHours;
float hourlyWage;
public:
technician(string n, int no, float s, float h, float hw) : employee(n, no, s) {
workHours = h;
hourlyWage = hw;
}
float pay() {
return workHours * hourlyWage;
}
};
class salesman : public employee {
private:
float monthlySales;
float commission;
public:
salesman(string n, int no, float s, float ms, float c) : employee(n, no, s) {
monthlySales = ms;
commission = c;
}
float pay() {
return monthlySales * commission;
}
};
float CalculateSalary(employee *emptr) {
return emptr->pay();
}
int main() {
worker w("Tom", 1001, 2000.0, 100, 10.0);
technician t("Jerry", 1002, 2500.0, 160, 15.0);
salesman s("Bob", 1003, 3000.0, 50000, 0.05);
cout << "Worker's salary: " << CalculateSalary(&w) << endl;
cout << "Technician's salary: " << CalculateSalary(&t) << endl;
cout << "Salesman's salary: " << CalculateSalary(&s) << endl;
return 0;
}
```
输出结果:
```
Worker's salary: 4000
Technician's salary: 2400
Salesman's salary: 1500
```
4.创建一个表示雇员信息的employee类,其中包含数据成员name、empNo和salary,分别表示雇员的姓名、编号和月薪。再从employee类派生出3个类worker、technician 和salesman,分别代表普通工人、科研人员、销售人员。三个类中分别包含数据成员productNum、workHours和monthlysales,分别代表工人每月生产产品的数量、科研人员每月工作的时数和销售人员每月的销售额。要求在employee类中声明虚成员函数pay,并在各个派生类中覆盖pay函数,用来计算雇员的月薪,并假定: 普通工人的月薪=每月生产的产品数×每件产品的赢利×20% 科研人员的月薪=每月的工作时数×每小时工作的酬金 销售人员的月薪=月销售额×销售额提成。 创建一个通用函数CalculateSalary,用来计算并返回各种不同类型雇员的月薪。函数CalculateSalary的原型如下: float CalculateSalary(employee *emptr) ; 在main函数中分别声明worker类、technician类和salesman类的对象代表各种类型的雇员,并调用函数CalculateSalary计算他们的月薪。
以下是需要实现的代码:
```cpp
#include <iostream>
using namespace std;
class employee {
protected:
string name;
int empNo;
float salary;
public:
employee(string n, int no, float s) {
name = n;
empNo = no;
salary = s;
}
virtual float pay() {
return salary;
}
};
class worker : public employee {
private:
float productNum;
float profit;
public:
worker(string n, int no, float s, float p, float pr) : employee(n, no, s) {
productNum = p;
profit = pr;
}
float pay() {
return productNum * profit * 0.2;
}
};
class technician : public employee {
private:
float workHours;
float hourlyWage;
public:
technician(string n, int no, float s, float h, float w) : employee(n, no, s) {
workHours = h;
hourlyWage = w;
}
float pay() {
return workHours * hourlyWage;
}
};
class salesman : public employee {
private:
float monthlySales;
float commissionRate;
public:
salesman(string n, int no, float s, float m, float c) : employee(n, no, s) {
monthlySales = m;
commissionRate = c;
}
float pay() {
return monthlySales * commissionRate;
}
};
float CalculateSalary(employee *emptr) {
return emptr->pay();
}
int main() {
worker w("Tom", 1, 2000, 1000, 5);
technician t("Jerry", 2, 3000, 160, 20);
salesman s("Bob", 3, 4000, 50000, 0.08);
cout << w.pay() << endl;
cout << t.pay() << endl;
cout << s.pay() << endl;
cout << CalculateSalary(&w) << endl;
cout << CalculateSalary(&t) << endl;
cout << CalculateSalary(&s) << endl;
return 0;
}
```
在这个程序中,我们首先定义了一个表示雇员信息的employee类,并在其中声明了一个虚成员函数pay,用来计算雇员的月薪。然后我们从employee类派生出3个类worker、technician和salesman,分别代表普通工人、科研人员、销售人员。
在派生类中,我们重新定义了pay函数,以实现不同类型雇员的月薪计算方式。然后我们定义了一个通用函数CalculateSalary,用来计算各种不同类型雇员的月薪。
在main函数中,我们分别声明了worker类、technician类和salesman类的对象,并调用函数CalculateSalary计算他们的月薪。最后,我们输出了各个对象的月薪。
阅读全文