m0_65892951 2022-01-01 23:21 采纳率: 85.7%
浏览 26
已结题

有问题需要解答解惑 求解

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

  • 写回答

2条回答 默认 最新

  • 南七灵 2022-01-01 23:38
    关注
    
    #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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月10日
  • 已采纳回答 1月2日
  • 创建了问题 1月1日

悬赏问题

  • ¥15 关于#c语言#的问题:我在vscode和codeblocks中编写c语言时出现打不开源文件该怎么办
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询
  • ¥15 校内二手商品转让网站