C++建立一个人员信息管理系统,要求录入人员信息,包括人的姓名,年龄,显示人员信息,根据姓名和年龄可以查询人员信息,多文件程序,按文件给出代码,根据C++设计出一个类
时间: 2024-05-06 21:18:29 浏览: 9
以下是一个简单的人员信息管理系统的示例代码,包含了对人员信息的输入、显示和查询:
Person.h 文件:
```C++
#ifndef PERSON_H
#define PERSON_H
#include <string>
class Person {
public:
Person(std::string name, int age);
std::string getName() const;
int getAge() const;
void display() const;
private:
std::string m_name;
int m_age;
};
#endif
```
Person.cpp 文件:
```C++
#include "Person.h"
#include <iostream>
Person::Person(std::string name, int age)
: m_name(name), m_age(age) {}
std::string Person::getName() const {
return m_name;
}
int Person::getAge() const {
return m_age;
}
void Person::display() const {
std::cout << "Name: " << m_name << ", Age: " << m_age << std::endl;
}
```
PersonManager.h 文件:
```C++
#ifndef PERSONMANAGER_H
#define PERSONMANAGER_H
#include "Person.h"
#include <vector>
class PersonManager {
public:
void addPerson(const Person& p);
void displayAll() const;
std::vector<Person> searchByName(std::string name) const;
std::vector<Person> searchByAge(int age) const;
private:
std::vector<Person> m_persons;
};
#endif
```
PersonManager.cpp 文件:
```C++
#include "PersonManager.h"
void PersonManager::addPerson(const Person& p) {
m_persons.push_back(p);
}
void PersonManager::displayAll() const {
for (const auto& p : m_persons) {
p.display();
}
}
std::vector<Person> PersonManager::searchByName(std::string name) const {
std::vector<Person> result;
for (const auto& p : m_persons) {
if (p.getName() == name) {
result.push_back(p);
}
}
return result;
}
std::vector<Person> PersonManager::searchByAge(int age) const {
std::vector<Person> result;
for (const auto& p : m_persons) {
if (p.getAge() == age) {
result.push_back(p);
}
}
return result;
}
```
main.cpp 文件:
```C++
#include "Person.h"
#include "PersonManager.h"
#include <iostream>
int main() {
PersonManager manager;
manager.addPerson(Person("Alice", 20));
manager.addPerson(Person("Bob", 30));
manager.addPerson(Person("Charlie", 20));
manager.addPerson(Person("David", 25));
std::cout << "All Persons:" << std::endl;
manager.displayAll();
std::cout << "Persons with name 'Bob':" << std::endl;
auto result1 = manager.searchByName("Bob");
for (const auto& p : result1) {
p.display();
}
std::cout << "Persons with age 20:" << std::endl;
auto result2 = manager.searchByAge(20);
for (const auto& p : result2) {
p.display();
}
return 0;
}
```
这个示例程序使用了一个 Person 类来表示每个人的姓名和年龄,还有一个 PersonManager 类来管理所有人员信息。在 main 函数中,我们先创建一个 PersonManager 对象,然后向其中添加几个 Person 对象,最后通过调用 PersonManager 中的不同方法来显示所有人员信息和查询符合条件的人员信息。
注意,这个示例程序只是一个简单的演示,实际的人员信息管理系统可能需要更复杂的功能和更完善的数据结构。