用c++定义一个职工类Employee 数据成员 (private): 职工姓名 (char *name)、性别 (bool sex)、年龄、工龄、工资 成员函数 (public): 构造函数:职工基本信息的初始化(姓名、性别、年龄、工龄、工资) 析构函数:释放系统资源(堆空间) 修改职工姓名 修改工资 年薪计算(12×工资+年终奖) 工龄增加 显示职工信息 要求:将类的定义与类成员函数的实现分并举例
时间: 2023-12-19 17:25:40 浏览: 225
一个用C++编写的雇员类
4星 · 用户满意度95%
以下是用C++定义的职工类Employee的示例代码:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
class Employee {
private:
char *name;
bool sex;
int age;
int work_years;
double salary;
public:
// 构造函数
Employee(const char *n, bool s, int a, int w, double sal) {
name = new char[strlen(n) + 1];
strcpy(name, n);
sex = s;
age = a;
work_years = w;
salary = sal;
}
// 析构函数
~Employee() {
delete[] name;
}
// 修改职工姓名
void set_name(const char *n) {
delete[] name;
name = new char[strlen(n) + 1];
strcpy(name, n);
}
// 修改工资
void set_salary(double sal) {
salary = sal;
}
// 年薪计算
double annual_salary() {
return 12 * salary + work_years * 1000;
}
// 工龄增加
void increase_work_years() {
work_years++;
}
// 显示职工信息
void display() {
cout << "姓名:" << name << endl;
cout << "性别:" << (sex ? "男" : "女") << endl;
cout << "年龄:" << age << endl;
cout << "工龄:" << work_years << endl;
cout << "工资:" << salary << endl;
cout << "年薪:" << annual_salary() << endl;
}
};
int main() {
Employee emp("张三", true, 25, 2, 5000);
emp.display();
cout << endl;
emp.set_name("李四");
emp.set_salary(6000);
emp.increase_work_years();
emp.display();
return 0;
}
```
在这个示例代码中,职工类Employee包含了五个私有数据成员:职工姓名name、性别sex、年龄age、工龄work_years和工资salary。同时,它还包含了多个公有成员函数,用于修改和获取职工的信息。
在构造函数中,通过传入参数对职工基本信息进行初始化。在析构函数中,释放动态分配的堆空间。
其他的成员函数包括set_name()、set_salary()、annual_salary()、increase_work_years()和display(),分别用于修改职工姓名、修改工资、计算年薪、增加工龄和显示职工信息。
在main()函数中,我们创建了一个Employee对象emp,并对它进行了一些操作。首先,我们调用display()函数显示了emp的初始信息。然后,我们依次调用set_name()、set_salary()和increase_work_years()函数修改了emp的姓名、工资和工龄。最后,我们再次调用display()函数,显示了修改后的emp信息。
阅读全文