C语言酒店管理设计怎么实现客人按时间查询房间
时间: 2024-02-26 17:57:45 浏览: 26
要实现客人按时间查询房间的功能,可以考虑以下步骤:
1. 定义房间结构体:可以定义一个包含房间号、房间类型、房间价格、房间状态(是否被预订或入住)等信息的结构体,并使用数组存储所有房间信息。
2. 定义预订结构体:可以定义一个包含预订编号、客人姓名、预订时间、入住时间、离店时间等信息的结构体,并使用数组存储所有预订信息。
3. 实现查询功能:可以通过循环遍历所有预订信息,找到符合查询时间范围内的预订信息,并输出对应的房间信息。
下面是一个简单的示例代码:
```
#include <stdio.h>
#include <string.h>
// 房间结构体
struct Room {
int roomNo; // 房间号
char roomType[20]; // 房间类型
float roomPrice; // 房间价格
int isBooked; // 是否被预订
int isOccupied; // 是否被入住
};
// 预订结构体
struct Reservation {
int resNo; // 预订编号
char customer[20]; // 客人姓名
char resDate[20]; // 预订时间
char checkInDate[20]; // 入住时间
char checkOutDate[20]; // 离店时间
int roomNo; // 预订的房间号
};
// 初始化房间信息
void initRooms(struct Room rooms[], int n) {
// 假设共有n个房间
for (int i = 0; i < n; i++) {
rooms[i].roomNo = i + 1; // 房间号从1开始
sprintf(rooms[i].roomType, "标准间"); // 房间类型
rooms[i].roomPrice = 200.0; // 房间价格
rooms[i].isBooked = 0; // 初始状态为未预订
rooms[i].isOccupied = 0; // 初始状态为未入住
}
}
// 初始化预订信息
void initReservations(struct Reservation reservations[], int n) {
// 假设共有n个预订
for (int i = 0; i < n; i++) {
reservations[i].resNo = i + 1; // 预订编号从1开始
sprintf(reservations[i].customer, "客人%d", i+1); // 客人姓名
sprintf(reservations[i].resDate, "2021-01-%02d", i+1); // 预订时间
sprintf(reservations[i].checkInDate, "2021-02-%02d", i+1); // 入住时间
sprintf(reservations[i].checkOutDate, "2021-02-%02d", i+1+rand()%3); // 离店时间
reservations[i].roomNo = i%10 + 1; // 预订的房间号
}
}
// 按时间查询房间
void searchRoomByDate(struct Reservation reservations[], int n, char startDate[], char endDate[]) {
printf("查询结果:\n");
for (int i = 0; i < n; i++) {
if (strcmp(reservations[i].checkInDate, startDate) >= 0 && strcmp(reservations[i].checkOutDate, endDate) <= 0) {
printf("房间号:%d,类型:%s,价格:%.2f\n", reservations[i].roomNo, "标准间", 200.0);
}
}
}
// 测试函数
int main() {
const int nRooms = 10; // 假设有10个房间
struct Room rooms[nRooms];
initRooms(rooms, nRooms);
const int nReservations = 20; // 假设有20个预订
struct Reservation reservations[nReservations];
initReservations(reservations, nReservations);
// 按时间查询
searchRoomByDate(reservations, nReservations, "2021-02-02", "2021-02-04");
return 0;
}
```
在上面的示例代码中,我们定义了房间结构体和预订结构体,并在初始化函数中初始化了所有房间和预订信息。然后,我们通过调用 `searchRoomByDate()` 函数实现了按时间查询房间的功能。最后,将符合条件的房间信息输出到控制台。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)