新冠疫情期间严控进入居民小区人员。设计居民类,含有姓名、身份证号、住址、最近进入时间、最近离开时间等数据成员。 (1)建立居民类对象数组,保存本小区所有居民信息;(2)编写一个可以供出入口处门卫调用的查询函数,根据输入的姓名和身份证号查询是否是本小区居民; (3)编写函数实现对指定时间段进入小区居民的查询输出,通过 cout 输出符合条件的居民姓名和编号。时间信息可以用年、月、日、时、分、秒共6个 int 类型数据来表达。
时间: 2024-04-22 19:28:49 浏览: 13
以下是一个简单的实现,包括居民类的定义、居民数组的建立、查询函数和指定时间段进入小区居民的查询输出函数:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Resident {
private:
string name;
string idCard;
string address;
int enterTime[6];
int leaveTime[6];
public:
Resident(string name, string idCard, string address, int enterTime[], int leaveTime[]) {
this->name = name;
this->idCard = idCard;
this->address = address;
for (int i = 0; i < 6; i++) {
this->enterTime[i] = enterTime[i];
this->leaveTime[i] = leaveTime[i];
}
}
string getName() {
return name;
}
string getIdCard() {
return idCard;
}
string getAddress() {
return address;
}
int* getEnterTime() {
return enterTime;
}
int* getLeaveTime() {
return leaveTime;
}
};
bool isResident(Resident residents[], int n, string name, string idCard) {
for (int i = 0; i < n; i++) {
if (residents[i].getName() == name && residents[i].getIdCard() == idCard) {
return true;
}
}
return false;
}
void searchResidentByEnterTime(Resident residents[], int n, int startTime[], int endTime[]) {
for (int i = 0; i < n; i++) {
int* enterTime = residents[i].getEnterTime();
if (enterTime[0] >= startTime[0] && enterTime[1] >= startTime[1] && enterTime[2] >= startTime[2] && enterTime[3] >= startTime[3] && enterTime[4] >= startTime[4] && enterTime[5] >= startTime[5]
&& enterTime[0] <= endTime[0] && enterTime[1] <= endTime[1] && enterTime[2] <= endTime[2] && enterTime[3] <= endTime[3] && enterTime[4] <= endTime[4] && enterTime[5] <= endTime[5]) {
cout << "Name: " << residents[i].getName() << ", ID card: " << residents[i].getIdCard() << endl;
}
}
}
int main() {
Resident residents[3] = {
Resident("Alice", "1234567890", "Building 1, Room 101", new int[6]{2021, 7, 15, 10, 30, 0}, new int[6]{2021, 7, 15, 18, 0, 0}),
Resident("Bob", "2345678901", "Building 2, Room 202", new int[6]{2021, 7, 16, 8, 0, 0}, new int[6]{2021, 7, 16, 20, 0, 0}),
Resident("Charlie", "3456789012", "Building 3, Room 303", new int[6]{2021, 7, 17, 9, 0, 0}, new int[6]{2021, 7, 17, 17, 0, 0})
};
int startTime[6] = {2021, 7, 16, 0, 0, 0};
int endTime[6] = {2021, 7, 17, 0, 0, 0};
searchResidentByEnterTime(residents, 3, startTime, endTime);
return 0;
}
```
以上代码中,我们定义了一个居民类 `Resident`,它包括姓名、身份证号、住址、最近进入时间和最近离开时间等数据成员,以及相关的 getter 函数。我们还编写了两个函数,一个是查询是否是本小区居民的函数 `isResident`,另一个是查询指定时间段进入小区居民的函数 `searchResidentByEnterTime`。在 `main` 函数中,我们首先建立了一个包含三个居民的居民数组,然后调用 `searchResidentByEnterTime` 函数,查询在 7 月 16 日到 7 月 17 日之间进入小区的居民。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![xlsm](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)