用c语言写一个图书馆座位预约系统
时间: 2023-11-17 17:06:37 浏览: 271
下面是一个简单的图书馆座位预约系统的C语言代码示例:
```c
#include <stdio.h>
#include <string.h>
#define MAX_SEATS 10 // 座位总数
#define MAX_NAME_LEN 20 // 用户名最大长度
int main() {
int seats[MAX_SEATS]; // 座位状态,0 表示空闲,1 表示已预约
char names[MAX_SEATS][MAX_NAME_LEN]; // 预约用户名
memset(seats, 0, sizeof(seats)); // 初始化所有座位为空闲状态
while (1) {
printf("\n");
printf("请选择操作:\n");
printf("1. 预约座位\n");
printf("2. 取消预约\n");
printf("3. 查看座位状态\n");
printf("4. 退出程序\n");
printf("请输入数字 1-4:");
int option;
scanf("%d", &option);
if (option == 1) {
printf("请输入用户名:");
char name[MAX_NAME_LEN];
scanf("%s", name);
int seat;
printf("请输入要预约的座位号(1-%d):", MAX_SEATS);
scanf("%d", &seat);
if (seat < 1 || seat > MAX_SEATS) {
printf("座位号无效,请重新输入!\n");
} else if (seats[seat - 1] == 1) {
printf("该座位已被预约,请选择其他座位!\n");
} else {
seats[seat - 1] = 1;
strncpy(names[seat - 1], name, MAX_NAME_LEN);
printf("预约成功!\n");
}
} else if (option == 2) {
int seat;
printf("请输入要取消预约的座位号(1-%d):", MAX_SEATS);
scanf("%d", &seat);
if (seat < 1 || seat > MAX_SEATS) {
printf("座位号无效,请重新输入!\n");
} else if (seats[seat - 1] == 0) {
printf("该座位未被预约,无需取消!\n");
} else {
seats[seat - 1] = 0;
memset(names[seat - 1], 0, MAX_NAME_LEN);
printf("取消预约成功!\n");
}
} else if (option == 3) {
printf("座位状态如下:\n");
printf("编号\t状态\t预约人\n");
for (int i = 0; i < MAX_SEATS; i++) {
printf("%d\t%s\t%s\n", i + 1, seats[i] == 0 ? "空闲" : "已预约", names[i]);
}
} else if (option == 4) {
printf("感谢使用本系统!\n");
break;
} else {
printf("选项无效,请重新选择!\n");
}
}
return 0;
}
```
在程序中,使用一个整型数组seats来记录每个座位的状态,0表示空闲,1表示已预约。同时,使用一个二维字符数组names来记录每个座位的预约用户的用户名。然后使用一个无限循环来不断接收用户的输入,根据不同的选项进行相应的操作:预约座位、取消预约、查看座位状态、退出程序。在每个选项的处理中,需要对用户的输入进行验证,确保输入的座位号在有效范围内,并且座位状态是符合要求的。最后,使用break语句退出程序。
阅读全文