宾馆客房管理系统的设计与实现(顺序表实现)
时间: 2023-12-12 14:06:05 浏览: 30
宾馆客房管理系统的设计与实现需要考虑以下几个方面:
1. 客房信息的存储和管理。可以使用顺序表来存储客房的基本信息,例如客房号、客房类型、客房价格等。可以定义一个结构体来表示客房信息,并将结构体作为顺序表的元素。
2. 客房预订和入住管理。可以定义一个函数来实现客房预订和入住的功能。在客房预订时,需要查询客房的空闲情况,并将客房状态设置为“已预订”。在客人入住时,需要查询客房的预订情况,并将客房状态设置为“已入住”。
3. 客房状态的查询和修改。可以定义一个函数来实现客房状态的查询和修改。在查询客房状态时,可以输入客房号进行查询。在修改客房状态时,可以输入客房号和新的状态进行修改。
4. 客房信息的统计和报表。可以定义一个函数来实现客房信息的统计和报表。可以统计客房的总数、空闲数、已预订数和已入住数,并生成报表输出。
下面是一个简单的客房管理系统的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ROOMS 100
typedef struct {
int room_no; // 客房号
char room_type[20]; // 客房类型
float room_price; // 客房价格
int status; // 客房状态:0-空闲,1-已预订,2-已入住
} Room;
Room rooms[MAX_ROOMS]; // 客房信息数组
int room_count = 0; // 客房总数
// 初始化客房信息
void init_rooms() {
Room room1 = {101, "单人间", 300, 0};
Room room2 = {102, "标准间", 500, 0};
Room room3 = {103, "豪华间", 800, 0};
rooms[0] = room1;
rooms[1] = room2;
rooms[2] = room3;
room_count = 3;
}
// 显示客房信息
void show_rooms() {
printf("客房号\t客房类型\t价格\t状态\n");
for (int i = 0; i < room_count; i++) {
printf("%d\t%s\t%.2f\t", rooms[i].room_no, rooms[i].room_type, rooms[i].room_price);
switch (rooms[i].status) {
case 0: printf("空闲\n"); break;
case 1: printf("已预订\n"); break;
case 2: printf("已入住\n"); break;
}
}
}
// 查询客房状态
void query_room_status(int room_no) {
for (int i = 0; i < room_count; i++) {
if (rooms[i].room_no == room_no) {
switch (rooms[i].status) {
case 0: printf("客房空闲\n"); break;
case 1: printf("客房已预订\n"); break;
case 2: printf("客房已入住\n"); break;
}
return;
}
}
printf("客房不存在\n");
}
// 修改客房状态
void modify_room_status(int room_no, int new_status) {
for (int i = 0; i < room_count; i++) {
if (rooms[i].room_no == room_no) {
rooms[i].status = new_status;
printf("客房状态修改成功\n");
return;
}
}
printf("客房不存在\n");
}
// 统计客房信息
void statistics() {
int total = room_count;
int free_count = 0;
int booked_count = 0;
int occupied_count = 0;
for (int i = 0; i < room_count; i++) {
switch (rooms[i].status) {
case 0: free_count++; break;
case 1: booked_count++; break;
case 2: occupied_count++; break;
}
}
printf("客房总数:%d\n", total);
printf("空闲客房数:%d\n", free_count);
printf("已预订客房数:%d\n", booked_count);
printf("已入住客房数:%d\n", occupied_count);
}
int main() {
init_rooms();
while (1) {
printf("1. 显示客房信息\n");
printf("2. 查询客房状态\n");
printf("3. 修改客房状态\n");
printf("4. 统计客房信息\n");
printf("0. 退出\n");
int choice;
printf("请选择:");
scanf("%d", &choice);
switch (choice) {
case 1: show_rooms(); break;
case 2: {
int room_no;
printf("请输入客房号:");
scanf("%d", &room_no);
query_room_status(room_no);
break;
}
case 3: {
int room_no, new_status;
printf("请输入客房号:");
scanf("%d", &room_no);
printf("请输入新状态(0-空闲,1-已预订,2-已入住):");
scanf("%d", &new_status);
modify_room_status(room_no, new_status);
break;
}
case 4: statistics(); break;
case 0: exit(0);
default: printf("无效选择\n"); break;
}
}
return 0;
}
```
在这个简单的客房管理系统中,客房信息使用结构体数组来存储,客房状态使用整数来表示。程序提供了显示客房信息、查询客房状态、修改客房状态和统计客房信息等功能,可以通过菜单进行选择。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)