设计一个用于人事管理的People(人员)类。考虑到通用性。这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、 birthday(出生日期)id(身份证号)等。其中"出生日期"定义为一个"日期"类内嵌子对象。用成员画数实现对人员信息的录入和显示。
2设计要求
类中需包括:构造函数、析构函数、拷贝构造函数、内联成员函数、带缺省形参值的成员函数等。
示例程序如下:
#include <iostream>
#include <string>
class People {
private:
int number;
std::string sex;
class Date {
public:
int year;
int month;
int day;
Date(int y = 0, int m = 0, int d = 0) : year(y), month(m), day(d) {}
};
Date birthday;
std::string id;
public:
// 构造函数
People(int num = 0, const std::string& s = "", const std::string& i = "",
int year = 0, int month = 0, int day = 0)
: number(num), sex(s), birthday(year, month, day), id(i) {}
// 拷贝构造函数
People(const People& other)
: number(other.number), sex(other.sex), birthday(other.birthday), id(other.id) {}
// 析构函数
~People() {}
// 成员函数:录入人员信息
void inputInfo() {
std::cout << "请输入编号:";
std::cin >> number;
std::cout << "请输入性别:";
std::cin >> sex;
std::cout << "请输入出生日期(格式:年 月 日):";
std::cin >> birthday.year >> birthday.month >> birthday.day;
std::cout << "请输入身份证号:";
std::cin >> id;
}
// 成员函数:显示人员信息
void displayInfo() const {
std::cout << "编号:" << number << std::endl;
std::cout << "性别:" << sex << std::endl;
std::cout << "出生日期:" << birthday.year << "/" << birthday.month << "/" << birthday.day << std::endl;
std::cout << "身份证号:" << id << std::endl;
}
};
int main() {
People person;
// 录入人员信息
person.inputInfo();
std::cout << "录入的人员信息如下:" << std::endl;
// 显示人员信息
person.displayInfo();
return 0;
}