机房预定系统c语言代码
时间: 2023-08-01 22:09:13 浏览: 41
以下是一个简单的机房预定系统的C语言代码示例,仅供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ROOMS 10
#define MAX_NAME_LEN 50
typedef struct {
int room_no;
char name[MAX_NAME_LEN];
int reserved;
} Room;
void print_menu() {
printf("\n");
printf("1. Reserve a room\n");
printf("2. Cancel a reservation\n");
printf("3. List all rooms\n");
printf("4. Quit\n");
printf("Enter your choice: ");
}
int get_choice() {
int choice;
scanf("%d", &choice);
return choice;
}
int reserve_room(Room *rooms, int room_no, char *name) {
if (rooms[room_no - 1].reserved == 0) {
rooms[room_no - 1].reserved = 1;
rooms[room_no - 1].room_no = room_no;
strcpy(rooms[room_no - 1].name, name);
return 1;
} else {
return 0;
}
}
int cancel_reservation(Room *rooms, int room_no) {
if (rooms[room_no - 1].reserved == 1) {
rooms[room_no - 1].reserved = 0;
strcpy(rooms[room_no - 1].name, "");
return 1;
} else {
return 0;
}
}
void list_rooms(Room *rooms) {
printf("\n");
printf("Room No. Name Reserved\n");
printf("=================================\n");
for (int i = 0; i < MAX_ROOMS; i++) {
printf("%-12d%-12s", rooms[i].room_no, rooms[i].name);
if (rooms[i].reserved == 1) {
printf("Yes\n");
} else {
printf("No\n");
}
}
}
int main() {
Room rooms[MAX_ROOMS];
for (int i = 0; i < MAX_ROOMS; i++) {
rooms[i].room_no = i + 1;
rooms[i].reserved = 0;
strcpy(rooms[i].name, "");
}
printf("Welcome to the room reservation system!\n");
while (1) {
print_menu();
int choice = get_choice();
switch (choice) {
case 1:
printf("\nEnter the room number (1-10): ");
int room_no;
scanf("%d", &room_no);
printf("Enter your name: ");
char name[MAX_NAME_LEN];
scanf("%s", name);
if (reserve_room(rooms, room_no, name) == 1) {
printf("Room %d reserved for %s.\n", room_no, name);
} else {
printf("Sorry, room %d is already reserved.\n", room_no);
}
break;
case 2:
printf("\nEnter the room number to cancel the reservation (1-10): ");
int cancel_room_no;
scanf("%d", &cancel_room_no);
if (cancel_reservation(rooms, cancel_room_no) == 1) {
printf("Reservation for room %d cancelled.\n", cancel_room_no);
} else {
printf("Sorry, room %d is not reserved.\n", cancel_room_no);
}
break;
case 3:
list_rooms(rooms);
break;
case 4:
printf("Goodbye!\n");
exit(0);
default:
printf("Invalid choice, please try again.\n");
break;
}
}
return 0;
}
```
该代码使用了一个包含10个房间的结构体数组来表示机房,每个房间包含房间号、预定情况和预定人姓名等信息。主函数中包含一个菜单循环,根据用户的选择执行相应的操作,如预定房间、取消预定和列出所有房间等。