【问题描述】设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[19]。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数。在测试程序中声明people类的对象数组(要求使用动态内存分配生成对象数组),录入数据并显示相关信息。注:输出信息时先通过拷贝构造函数生成第一个员工的副本并输出其相关信息,然后再输出所有员工的相关信息。
【输入形式】先输入员工人数,再依次输入每个员工的信息。
【输出形式】输出信息时先通过拷贝构造函数生成第一个员工的副本并输出其相关信息,然后再输出所有员工的相关信息。
【样例输入】
员工人数:2
姓名:张山
编号:1001
性别(男/女):男
出生日期(年 月 日):1998 01 01
身份证号:510215199801010888
姓名:李四
编号:1002
性别(男/女):女
出生日期(年 月 日):1999 02 02
身份证号:500213199902020666
【样例输出】
姓名:张山
编号:1001
性别:男
出生日期:1998年1月1日
身份证号:510215199801010888
姓名:张山
编号:1001
性别:男
出生日期:1998年1月1日
身份证号:510215199801010888
姓名:李四
编号:1002
性别:女
出生日期:1999年2月2日
身份证号:500213199902020666
【样例说明】
【评分标准】3个评分点
代码如下:
#include <iostream>
#include <cstring>
using namespace std;
class Date {
private:
int year, month, day;
public:
Date(int year = 0, int month = 0, int day = 0) {
this->year = year;
this->month = month;
this->day = day;
}
void setDate() {
cin >> year >> month >> day;
}
inline void showDate() {
cout << year << "年" << month << "月" << day << "日";
}
~Date() {}
};
class People {
private:
char name[11];
char number[7];
char sex[4];
char id[19];
Date birthday;
public:
People() {
}
People(char na[], char num[], char se[], int y, int m, int d, char i[]): birthday(y, m, d) {
strcpy(name, na);
strcpy(number, num);
strcpy(sex, se);
strcpy(id, i);
}
People(People &p) {
strcpy(name, p.name);
strcpy(number, p.number);
strcpy(sex, p.sex);
strcpy(id, p.id);
birthday = p.birthday;
}
void input() {
cout << "姓名:";
cin >> name;
cout << "编号:";
cin >> number;
cout << "性别(男/女):";
cin >> sex;
cout << "出生日期(年 月 日):";
birthday.setDate();
cout << "身份证号:";
cin >> id;
}
void showPeople() {
cout << endl;
cout << "姓名:" << name << endl;
cout << "编号:" << number << endl;
cout << "性别:" << sex << endl;
cout << "出生日期:";
birthday.showDate();
cout << endl;
cout << "身份证号:" << id;
}
~People() {}
};
int main() {
int n;//员工数
cout << "员工人数:";
cin >> n;
//cout << endl;
People *p;
p = new People[n];
for (int i = 0; i < n; i++) {
p[i].input();
}
People p1(p[0]);
p1.showPeople();
for (int i = 0; i < n; i++) {
p[i].showPeople();
}
return 0;
}