有问题需要解答解惑 求解

构造一个学校在册人员类Person,数据成员包括身份证号(Idperson),姓名(Name),性别(Sex),生日(Birthday)和家庭住址(HomeAddress),实现对人员信息的录入和显示


#include <iostream>
#include <cstring>

using namespace std;
enum Tsex
{
    mid,
    man,
    woman
};

class Person
{
    char IdPerson[19];    //身份证号,18位数字
    char Name[20];        //姓名
    Tsex Sex;             //性别
    int Birthday;         //生日,格式1986年8月18日写作19860818
    char HomeAddress[50]; //家庭地址
public:
    Person(char *, char *, Tsex, int, char *);
    Person(Person &);
    Person();
    ~Person();
    void PrintPersonInfo();
    void inputPerson();
    //其他接口函数
};

Person::Person(char *id, char *name, Tsex sex, int birthday, char *homeadd)
{
    strcpy(IdPerson, id);
    strcpy(Name, name);
    Sex = sex;
    Birthday = birthday;
    strcpy(HomeAddress, homeadd);
}

Person::Person()
{
    IdPerson[0] = '\0';
    Name[0] = '\0';
    Sex = mid;
    Birthday = 0;
    HomeAddress[0] = '\0';
}

Person::Person(Person &Ps)
{
    strcpy(IdPerson, Ps.IdPerson);
    strcpy(Name, Ps.Name);
    Sex = Ps.Sex;
    Birthday = Ps.Birthday;
    strcpy(HomeAddress, Ps.HomeAddress);
}
Person::~Person()
{
}

void Person::inputPerson()
{
    char ch;
    cout << "请输入身份证号,18位数字:" << endl;
    cin.getline(IdPerson, 19);
    cout << "请输入姓名:" << endl;
    cin.getline(Name, 20);
    cout << "请输入性别m或w:" << endl;
    cin >> ch;
    if (ch == 'm')
        Sex = man;
    else
        Sex = woman;
    cout << "请输入生日,格式1986年8月18日写作19860818:" << endl;
    cin >> Birthday;
    cin.get(); //吸收回车符,否则地址输不进去
    cout << "请输入地址:" << endl;
    cin.getline(HomeAddress, 50);
}

void Person::PrintPersonInfo()
{
    int i;
    cout << "身份证号:" << IdPerson << '\n'
         << "姓名:" << Name << '\n'
         << "性别:";
    if (Sex == man)
        cout << "男" << '\n';
    else if (Sex == woman)
        cout << "女" << '\n';
    else
        cout << " " << '\n';
    cout << "出生年月日:";
    i = Birthday;
    cout << i / 10000 << "年";
    i = i % 10000;
    cout << i / 100 << "月" << i % 100 << "日" << '\n'
         << "家庭住址:" << HomeAddress << '\n';
}

int main()
{
    Person ps;
    ps.inputPerson();
    ps.PrintPersonInfo();
    return 0;
}

typedef struct
{
    char id[65];
    char name[25];
    char sex;
    char day[25];
    char address[250]
} Person;

结构体可参考如上