C++ 人员管理系统:设计 People 类实现人员信息录入和显示
C++ 人员管理系统:设计 People 类实现人员信息录入和显示
本示例展示了如何使用 C++ 语言设计一个名为 People 的类,用于管理人员信息,包括编号、性别、出生日期和身份证号。示例包含类成员函数、构造函数、析构函数、拷贝构造函数、内联函数、类组合和友元函数等内容。
1. 设计 Date 类
首先,设计一个名为 Date 的类来表示日期,它包含年、月、日三个私有成员变量,并提供三个公有成员函数获取年、月、日的值。
class Date {
private:
int year;
int month;
int day;
public:
Date(int y = 0, int m = 0, int d = 0) : year(y), month(m), day(d) {}
inline int getYear() const { return year; }
inline int getMonth() const { return month; }
inline int getDay() const { return day; }
};
2. 设计 People 类
接下来,设计一个名为 People 的类,包含编号、性别、出生日期和身份证号四个成员变量。其中,出生日期使用 Date 类对象作为成员变量,表示类的组合。
class People {
private:
int number;
char sex;
Date birthday;
char* id;
public:
// 构造函数
People(int n = 0, char s = ' ', const Date& b = Date(), const char* i = "") : number(n), sex(s), birthday(b), id(new char[strlen(i) + 1]) {
strcpy(id, i);
}
// 析构函数
~People() { delete[] id; }
// 拷贝构造函数
People(const People& p) : number(p.number), sex(p.sex), birthday(p.birthday), id(new char[strlen(p.id) + 1]) {
strcpy(id, p.id);
}
// 获取编号
inline int getNumber() const { return number; }
// 获取性别
inline char getSex() const { return sex; }
// 获取出生日期
inline const Date& getBirthday() const { return birthday; }
// 获取身份证号
inline const char* getId() const { return id; }
// 显示人员信息
void display() const {
cout << '编号:' << number << endl;
cout << '性别:' << sex << endl;
cout << '出生日期:' << birthday.getYear() << '年' << birthday.getMonth() << '月' << birthday.getDay() << '日' << endl;
cout << '身份证号:' << id << endl;
}
// 重载 << 运算符,实现对人员信息的输出
friend ostream& operator<<(ostream& os, const People& p) {
os << '编号:' << p.number << endl;
os << '性别:' << p.sex << endl;
os << '出生日期:' << p.birthday.getYear() << '年' << p.birthday.getMonth() << '月' << p.birthday.getDay() << '日' << endl;
os << '身份证号:' << p.id << endl;
return os;
}
};
3. 代码解释
-
Date类:- 使用内联函数
getYear()、getMonth()、getDay()获取年、月、日的值。
- 使用内联函数
-
People类:- 使用构造函数初始化成员变量,并使用
new操作符动态分配内存存储身份证号字符串。 - 使用析构函数释放动态分配的内存。
- 使用拷贝构造函数实现对象深拷贝,避免浅拷贝带来的错误。
- 使用内联函数
getNumber()、getSex()、getBirthday()、getId()获取成员变量的值。 - 使用
display()函数输出人员信息。 - 重载
<<运算符,实现对人员信息的输出,使其能够像普通数据类型一样使用cout输出。
- 使用构造函数初始化成员变量,并使用
4. 代码使用示例
int main() {
// 创建 Date 对象,表示出生日期
Date birth(1990, 1, 1);
// 创建 People 对象,初始化人员信息
People p(1, '男', birth, "123456789012345678");
// 使用 << 运算符输出人员信息
cout << p << endl;
// 使用 display() 函数输出人员信息
p.display();
return 0;
}
5. 总结
本示例展示了如何使用 C++ 语言设计一个名为 People 的类,用于管理人员信息,并包含了常见的类成员函数、构造函数、析构函数、拷贝构造函数、内联函数、类组合和友元函数等内容。通过学习本示例,你可以更好地理解 C++ 类和对象的创建和使用。
原文地址: https://www.cveoy.top/t/topic/nizX 著作权归作者所有。请勿转载和采集!