C++语言程序设计课后习题

C++语言程序设计习题

#4-10 设计一个用于人事管理的“人员”类。由于考虑到通用性,这里只抽象出所有类型
人员都具有的属性:编号、性别、出生日期、身份证号等。其中“出生日期”声明为
一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包
括:构造函数和析构函数、复制构造函数、内联成员函数、带默认形参值的成员函
数、类的组合。

这个代码还有很多不足(但运行是正确的),希望各位大佬可以给点建议

#include <iostream>

using namespace std;

class Date {
public:
   Date( int ayear, int amonth, int aday ) ;
   Date( Date &d );
   int getYear() { return year; }
   int getMonth() { return month; }
   int getDay() { return day; }
   void showDate();
   ~Date(){};
private:
    int year;
    int month;
    int day;
};

//日期
Date::Date( int ayear, int amonth, int aday ) {
    year = ayear;
    month = amonth;
    day = aday;
}
Date::Date( Date &d ) {
    year = d.year;
    month = d.month;
    day = d.day;
}
void Date::showDate() {
    cout << year << '-' << month << '-' <<day;
}

//员工
class People {
public:
    People( int anumber, string asex, Date abirthday, string aid);
    People( People &p );
    void inputInformation( int anumber, string asex, Date abirthday, string aid ); // 录入信息
    void displayInformation( ); //输出信息
    ~People( ){};
private:
    int number; //编号
    string sex; //性别
    Date birthday; //出生日期
    string id; //身份证号
};

People::People( int anumber, string asex, Date abirthday, string aid)
    :number(anumber),sex(asex),birthday(abirthday),id(aid) {};

People::People( People &p):birthday( p.birthday) {
    number = p.number;
    sex = p.sex;
    id = p.id;
}

void People::inputInformation( int anumber, string asex, Date abirthday, string aid ) {
    number = anumber;
    sex = asex;
    birthday = abirthday;
    id = aid;
}

void People::displayInformation( ) {
    cout << number << '\t' << sex << '\t';
    birthday.showDate();
    cout << '\t' << id << endl;
}

int main( ) {
    int year1, month1, day1;
    int number1;
    string sex1, id1;
    int i=1;

    cout << "请输入第1位员工的信息:";
    cin >> number1;
    while( number1!=0 ) {
        cin >> sex1;
        cin >> year1 >> month1 >> day1;
        Date birth1( year1, month1, day1 );

        cin >> id1;
        People employee( number1, sex1, birth1, id1 );

        cout << "输出第" << i <<"位员工的信息: "<<endl;
        employee.displayInformation();

        i++;
        cout << endl << "请输入第" << i <<"位员工的信息: ";
        cin >> number1;
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值