- 题目描述
/*设计一个用于人事管理的People(人员)类。*//*考虑到通用性,这里只抽象所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。*/
- 代码如下
#include#include using namespace std;class Data {public: Data() {} Data(int yy, int mm, int dd); Data(Data &ap); ~Data(); int get_year(); int get_month(); int get_day(); void set_year(int y); void set_month(int m); void set_day(int d);private: int year; int month; int day;};Data::Data(int yy, int mm, int dd) { year = yy; month = mm; day = dd;}Data::Data(Data &ap) { year = ap.year; month = ap.month; day = ap.day;}Data::~Data() {}int Data::get_day() { return day;}int Data::get_month() { return month;}int Data::get_year() { return year;}void Data::set_day(int d) { day = d;}void Data::set_month(int m) { month = m;}void Data::set_year(int y) { year = y;}class People {public: People(int num, string se, Data birthd, string iid); People(People &tp); People(){} People get_People(); ~People() { } void set_number(int num) { number = num; } void set_sex(string se) { sex = se; } void set_birthday(Data birth) { birthday = birth; } void set_id(string iidd) { id = iidd; } int get_number(); string get_sex(); Data get_birthday(); string get_id(); void details();private: int number; string sex; Data birthday; string id;};inline int People::get_number() { return number;}inline string People::get_sex() { return sex;}inline string People::get_id() { return id;}Data People::get_birthday() { return birthday;}void People::details() { cout << "Number:"< << endl; cout << "Sex:" << sex << endl; cout << "Birhtday:" << birthday.get_year() << "/" << birthday.get_month() << "/" << birthday.get_day() << endl; cout << "ID:" << id << endl;}People::People(int num, string se, Data birth, string iid):birthday(birth){ number = num; sex = se; id = iid;}People People::get_People() { int num, yy, mm, dd; string ID, se; cout << "Please enter the number of the people:"; cin >> num; cout << "Please enter the sex of the people:(male or female)"; cin >> se; cout << "Please enter the birthday of the people:" << endl << "(Warnning:The format is similar to 1998 8 3)" << endl; cin >> yy >> mm >> dd; cout << "Please enter the id of the people:"; cin >> ID; Data birth(yy, mm, dd); id = ID; number = num; sex = se; birthday = birth; return *this;}People::People(People &tp) { number = tp.get_number(); sex = tp.get_sex(); id = tp.get_id(); birthday = tp.get_birthday();}int main(){ People asp; asp.get_People(); asp.details(); return 0;}
- 测试截图