定义一个员工类employee,有数据成员姓名,编号。定义一个销售员继承自员工类sales,工资为销售额的提成10%,定义一个经理类manager,固定工资8000,定义一个销售经理类,继承自销售员类
时间: 2023-06-05 07:47:32 浏览: 278
题目中给定了三个员工类别:employee(员工)、sales(销售)和manager(经理),每个类别都有不同的薪资、工作职责和提成比例。其中,employee类别的成员包括姓名和编号,sales类别的成员需要继承自employee类,并且需要额外记录销售额和提成比例,manager类别的成员同样需要继承自employee类,并且需要额外记录固定工资。同时,题目还要求设计一个销售经理类别,继承自manager和sales两个类别,同时需要记录销售额和提成比例并继承固定工资。
相关问题
定义一个员工类employee,有数据成员姓名,编号。定义一个销售员继承自员工类,工资为销售额的提成10%,每个类均有display()函数输出信息,编写主函数测试。主函数中,输入销售人员的信息,并计算工资
好的,我理解了你的问题。下面是对应的代码实现:
```python
class Employee:
def __init__(self, name, number):
self.name = name
self.number = number
def display(self):
print("Name:", self.name)
print("Number:", self.number)
class Salesperson(Employee):
def __init__(self, name, number, sales):
super().__init__(name, number)
self.sales = sales
def calculate_salary(self):
salary = self.sales * 0.1
return salary
def display(self):
super().display()
print("Salary:", self.calculate_salary())
# 测试
name = input("Please input the name: ")
number = input("Please input the number: ")
sales = float(input("Please input the sales: "))
salesperson = Salesperson(name, number, sales)
salesperson.display()
```
这里定义了一个基类 `Employee` 和一个子类 `Salesperson`,其中 `Employee` 有数据成员 `name` 和 `number`, `Salesperson` 继承自 `Employee` 并新增了一个 `sales` 数据成员,还有一个 `calculate_salary()` 函数用于计算工资。最后在主函数中输入销售人员信息,并通过 `display()` 函数输出信息和计算工资。
定义一个员工类Employee,有数据成员姓名string name,编号string id。定义一个销售员继承自员工类sales,工资为销售额float sale的提成10%,每个类均有dispaly()函数输出信息,编写主函数测试。主函数中,输入销售人员的信息,并计算工资,如果销售额小于0,则提示“input error!”并结束程序
好的,下面是实现员工类Employee和销售员类Sales的代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Employee {
protected:
string name; // 姓名
string id; // 编号
public:
Employee(string name="", string id=""): name(name), id(id) {}
virtual void display() { // 虚函数,用于输出员工信息
cout << "Name: " << name << endl;
cout << "ID: " << id << endl;
}
};
class Sales: public Employee {
private:
float sale; // 销售额
public:
Sales(string name="", string id="", float sale=0): Employee(name, id), sale(sale) {}
void display() { // 重载虚函数,用于输出销售员信息
Employee::display(); // 先调用基类的display函数输出姓名和编号
cout << "Sale: " << sale << endl;
cout << "Salary: " << (sale < 0 ? 0 : sale*0.1) << endl; // 计算并输出工资(注意工资不能为负数)
}
};
int main() {
string name, id;
float sale;
cout << "Please input the information of the salesperson:" << endl;
cout << "Name: ";
getline(cin, name); // 使用getline函数可以读入含有空格的字符串
cout << "ID: ";
getline(cin, id);
cout << "Sale: ";
cin >> sale;
if (sale < 0) { // 销售额小于0,输出错误信息并结束程序
cout << "Input error!" << endl;
return 0;
}
Sales s(name, id, sale); // 创建销售员对象
s.display(); // 输出销售员信息
return 0;
}
```
运行程序后,可以输入销售员的信息,如果销售额小于0则输出错误信息并结束程序,否则输出销售员的姓名、编号、销售额和工资(工资为销售额的10%)。
阅读全文