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;
}