用C++写小型公司管理系统该小型企业的员工主要有 4 类:经理、技术员、销售员和计时工。要求存 储员工的工号、姓名、岗位、月工资等基本信息。
时间: 2024-01-01 08:05:46 浏览: 125
好的,那么我们可以用 C++ 类来实现这个小型公司管理系统。首先,我们需要定义一个员工类 Employee,它包含工号、姓名、岗位和月工资等基本信息。
```cpp
class Employee {
public:
Employee(int id, std::string name, std::string position, double salary);
int getId() const;
std::string getName() const;
std::string getPosition() const;
double getSalary() const;
virtual void printInfo() const;
protected:
int m_id;
std::string m_name;
std::string m_position;
double m_salary;
};
```
这是一个基类,包含了所有员工都有的基本信息。其中,printInfo() 方法用于输出员工的信息。
接下来,我们可以定义各种类型的员工类,继承自基类 Employee。比如,经理类 Manager、技术员类 Technician、销售员类 Sales 和计时工类 HourlyWorker。
```cpp
class Manager : public Employee {
public:
Manager(int id, std::string name, double salary);
void printInfo() const override;
};
class Technician : public Employee {
public:
Technician(int id, std::string name, double salary);
void printInfo() const override;
};
class Sales : public Employee {
public:
Sales(int id, std::string name, double salary);
void printInfo() const override;
};
class HourlyWorker : public Employee {
public:
HourlyWorker(int id, std::string name, double wage, double hours);
double getWage() const;
double getHours() const;
double getSalary() const override;
void printInfo() const override;
private:
double m_wage;
double m_hours;
};
```
每个类都重载了 printInfo() 方法,用于输出自己的信息。注意 HourlyWorker 类有一个额外的属性,即时薪和工作小时数,需要根据这两个属性计算月工资。
接下来,我们可以实现这些类的构造函数和 printInfo() 方法。
```cpp
Employee::Employee(int id, std::string name, std::string position, double salary)
: m_id(id), m_name(name), m_position(position), m_salary(salary) {}
int Employee::getId() const {
return m_id;
}
std::string Employee::getName() const {
return m_name;
}
std::string Employee::getPosition() const {
return m_position;
}
double Employee::getSalary() const {
return m_salary;
}
void Employee::printInfo() const {
std::cout << "工号:" << m_id << ",姓名:" << m_name
<< ",岗位:" << m_position << ",月工资:" << m_salary << "元" << std::endl;
}
Manager::Manager(int id, std::string name, double salary)
: Employee(id, name, "经理", salary) {}
void Manager::printInfo() const {
std::cout << "【经理】";
Employee::printInfo();
}
Technician::Technician(int id, std::string name, double salary)
: Employee(id, name, "技术员", salary) {}
void Technician::printInfo() const {
std::cout << "【技术员】";
Employee::printInfo();
}
Sales::Sales(int id, std::string name, double salary)
: Employee(id, name, "销售员", salary) {}
void Sales::printInfo() const {
std::cout << "【销售员】";
Employee::printInfo();
}
HourlyWorker::HourlyWorker(int id, std::string name, double wage, double hours)
: Employee(id, name, "计时工", 0), m_wage(wage), m_hours(hours) {}
double HourlyWorker::getWage() const {
return m_wage;
}
double HourlyWorker::getHours() const {
return m_hours;
}
double HourlyWorker::getSalary() const {
return m_wage * m_hours;
}
void HourlyWorker::printInfo() const {
std::cout << "【计时工】";
Employee::printInfo();
}
```
最后,我们可以在主函数中创建各类员工的对象,并输出它们的信息。
```cpp
int main() {
Manager m(1001, "张三", 10000);
Technician t(1002, "李四", 8000);
Sales s(1003, "王五", 5000);
HourlyWorker h(1004, "赵六", 50, 160);
m.printInfo();
t.printInfo();
s.printInfo();
h.printInfo();
return 0;
}
```
输出结果如下:
```
【经理】工号:1001,姓名:张三,岗位:经理,月工资:10000元
【技术员】工号:1002,姓名:李四,岗位:技术员,月工资:8000元
【销售员】工号:1003,姓名:王五,岗位:销售员,月工资:5000元
【计时工】工号:1004,姓名:赵六,岗位:计时工,月工资:8000元
```
以上就是一个简单的小型公司管理系统的实现。当然,这只是一个初步的版本,还可以根据需求进行更多的扩展和改进。
阅读全文