用c语言写一个机房预约管理系统
时间: 2023-11-09 22:04:15 浏览: 68
好的,下面是一个简单的机房预约管理系统的 C 语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ROOMS 10 // 最大机房数量
#define MAX_NAME_LEN 20 // 最大名字长度
typedef struct {
int id; // 机房编号
int is_reserved; // 是否已被预约
char reserved_by[MAX_NAME_LEN]; // 预约者名字
} Room;
Room rooms[MAX_ROOMS]; // 机房数组
// 显示菜单
void show_menu() {
printf("1. 预约机房\n");
printf("2. 取消预约\n");
printf("3. 显示机房状态\n");
printf("4. 退出\n");
printf("请选择操作:");
}
// 预约机房
void reserve_room() {
int room_id;
char name[MAX_NAME_LEN];
printf("请输入机房编号(1-%d):", MAX_ROOMS);
scanf("%d", &room_id);
if (room_id < 1 || room_id > MAX_ROOMS) {
printf("无效的机房编号!\n");
return;
}
if (rooms[room_id - 1].is_reserved) {
printf("该机房已被预约!\n");
return;
}
printf("请输入预约者名字:");
scanf("%s", name);
rooms[room_id - 1].id = room_id;
rooms[room_id - 1].is_reserved = 1;
strncpy(rooms[room_id - 1].reserved_by, name, MAX_NAME_LEN);
printf("机房预约成功!\n");
}
// 取消预约
void cancel_reservation() {
int room_id;
printf("请输入机房编号(1-%d):", MAX_ROOMS);
scanf("%d", &room_id);
if (room_id < 1 || room_id > MAX_ROOMS) {
printf("无效的机房编号!\n");
return;
}
if (!rooms[room_id - 1].is_reserved) {
printf("该机房未被预约!\n");
return;
}
rooms[room_id - 1].is_reserved = 0;
printf("机房预约已取消!\n");
}
// 显示机房状态
void show_room_status() {
printf("机房状态如下:\n");
for (int i = 0; i < MAX_ROOMS; i++) {
printf("机房 %d:", i + 1);
if (rooms[i].is_reserved) {
printf("已被 %s 预约。\n", rooms[i].reserved_by);
} else {
printf("未被预约。\n");
}
}
}
int main() {
int choice;
// 初始化机房数组
for (int i = 0; i < MAX_ROOMS; i++) {
rooms[i].id = i + 1;
rooms[i].is_reserved = 0;
memset(rooms[i].reserved_by, 0, MAX_NAME_LEN);
}
while (1) {
show_menu();
scanf("%d", &choice);
switch (choice) {
case 1:
reserve_room();
break;
case 2:
cancel_reservation();
break;
case 3:
show_room_status();
break;
case 4:
printf("谢谢使用!\n");
exit(0);
default:
printf("无效的操作!\n");
}
}
return 0;
}
```
该程序使用了一个 `Room` 结构体来表示一个机房,包括机房编号、是否已被预约以及预约者名字。在 `main` 函数中,我们首先初始化了一个包含 `MAX_ROOMS` 个机房的数组。然后,循环显示菜单,根据用户的选择执行预约、取消预约或显示机房状态操作。最后,用户选择退出时程序结束。