设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、name(姓名)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中"出生日期"定义为一个"日期"类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、带缺省形参值的成员函数。其中姓名采用字符数组的类型定义。写出一段完整的代码
时间: 2023-06-15 17:04:57 浏览: 741
C++设计人事管理people类
5星 · 资源好评率100%
下面是一份实现人事管理的People类的代码:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
// 日期类
class Date {
public:
Date(int year = 1970, int month = 1, int day = 1) {
this->year = year;
this->month = month;
this->day = day;
}
~Date() {}
void display() const {
cout << year << "-" << month << "-" << day << endl;
}
private:
int year;
int month;
int day;
};
// 人员类
class People {
public:
People(int num = 0, const char* name = "", char sex = 'M',
const Date& birthday = Date(), const char* id = "") {
this->num = num;
strcpy(this->name, name);
this->sex = sex;
this->birthday = birthday;
strcpy(this->id, id);
}
People(const People& other) {
num = other.num;
strcpy(name, other.name);
sex = other.sex;
birthday = other.birthday;
strcpy(id, other.id);
}
~People() {}
void display() const {
cout << "编号:" << num << endl;
cout << "姓名:" << name << endl;
cout << "性别:" << sex << endl;
cout << "出生日期:";
birthday.display();
cout << "身份证号:" << id << endl;
}
void setNum(int num) { this->num = num; }
void setName(const char* name) { strcpy(this->name, name); }
void setSex(char sex) { this->sex = sex; }
void setBirthday(const Date& birthday) { this->birthday = birthday; }
void setId(const char* id) { strcpy(this->id, id); }
private:
int num;
char name[20];
char sex;
Date birthday;
char id[20];
};
int main() {
People p(123, "张三", 'M', Date(1990, 1, 1), "310101199001010101");
p.display();
return 0;
}
```
这份代码定义了一个日期类 `Date`,和一个人员类 `People`。人员类包括了编号、姓名、性别、出生日期和身份证号这些属性,其中出生日期是一个嵌套在人员类中的日期类对象。人员类中定义了一些成员函数用于对人员信息进行录入和显示,包括构造函数、析构函数、拷贝构造函数、内联成员函数和带缺省形参值的成员函数。在 `main()` 函数中,我们创建了一个人员对象并调用了它的 `display()` 函数来显示人员信息。
阅读全文