C语言数据结构实现酒店管理代码
时间: 2024-09-13 19:12:19 浏览: 72
C语言实现酒店管理系统涉及到多个数据结构的综合应用,包括但不限于链表、栈、队列等。这里我们简单介绍一个基础的酒店管理系统的设计思路:
1. **定义房间结构体**:每个房间可以用一个结构体来表示,包含房间号、房间类型、房价、是否已预订等属性。
```c
typedef struct Room {
int room_number;
char room_type;
double price;
int is_booked; // 0表示未预订,1表示已预订
} Room;
```
2. **使用链表管理房间**:可以使用链表来管理所有的房间,每个节点是一个房间结构体的指针。
```c
typedef struct RoomNode {
Room *room;
struct RoomNode *next;
} RoomNode;
```
3. **定义客户结构体**:用于记录客户信息,包括姓名、入住日期和房间号等。
```c
typedef struct Customer {
char name[100];
char check_in_date[11]; // 格式为YYYY-MM-DD
int room_number;
} Customer;
```
4. **主要功能实现**:包括添加房间、预订房间、退房、查找房间、打印所有房间信息等。
```c
// 示例:添加房间
void addRoom(RoomNode **head, Room room) {
RoomNode *newRoomNode = (RoomNode*)malloc(sizeof(RoomNode));
newRoomNode->room = (Room*)malloc(sizeof(Room));
*newRoomNode->room = room;
newRoomNode->next = *head;
*head = newRoomNode;
}
// 示例:预订房间
int bookRoom(RoomNode *head, int room_number) {
RoomNode *current = head;
while (current != NULL) {
if (current->room->room_number == room_number) {
if (current->room->is_booked == 0) {
current->room->is_booked = 1;
return 1; // 预订成功
} else {
return 0; // 房间已被预订
}
}
current = current->next;
}
return -1; // 房间号不存在
}
```
以上代码只是一个非常基础的示例,实际的酒店管理系统会更加复杂,可能还会涉及多个房间和客户的动态管理、价格调整、日期管理等功能。
阅读全文