写一份c语言自助台球管理系统程序设计
时间: 2023-07-13 15:17:32 浏览: 97
下面是一个简单的C语言自助台球管理系统程序设计示例,包括用户注册、登录、注销、场馆信息管理、场馆预约管理和查询等功能。
代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 场馆结构体
typedef struct venue {
char name[20]; // 场馆名称
char address[50]; // 场馆地址
int size; // 场馆规模
float price; // 场馆价格
int reserved; // 是否已被预约,0表示未被预约,1表示已被预约
} Venue;
// 用户结构体
typedef struct user {
char name[20]; // 用户名
char password[20]; // 密码
int type; // 用户类型,0表示普通用户,1表示管理员
} User;
// 全局变量
User users[100]; // 用户数组
int userCount = 0; // 用户数量
Venue venues[10]; // 场馆数组
int venueCount = 0; // 场馆数量
// 函数声明
void registerUser(); // 用户注册
void loginUser(); // 用户登录
void logoutUser(); // 用户注销
void addVenue(); // 添加场馆
void editVenue(); // 修改场馆信息
void deleteVenue(); // 删除场馆
void reserveVenue(); // 预约场馆
void cancelReservation(); // 取消预约
void showAvailableVenues(); // 显示可用场馆
void showReservedVenues(); // 显示已预约场馆
void showAllVenues(); // 显示所有场馆
int findUser(char[]); // 查找用户
int findVenue(char[]); // 查找场馆
// 主函数
int main() {
int choice;
do {
printf("\n---- 自助台球管理系统 ----\n");
printf("1. 用户注册\n");
printf("2. 用户登录\n");
printf("3. 用户注销\n");
printf("4. 添加场馆\n");
printf("5. 修改场馆信息\n");
printf("6. 删除场馆\n");
printf("7. 预约场馆\n");
printf("8. 取消预约\n");
printf("9. 显示可用场馆\n");
printf("10. 显示已预约场馆\n");
printf("11. 显示所有场馆\n");
printf("0. 退出\n");
printf("请输入数字选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
registerUser();
break;
case 2:
loginUser();
break;
case 3:
logoutUser();
break;
case 4:
addVenue();
break;
case 5:
editVenue();
break;
case 6:
deleteVenue();
break;
case 7:
reserveVenue();
break;
case 8:
cancelReservation();
break;
case 9:
showAvailableVenues();
break;
case 10:
showReservedVenues();
break;
case 11:
showAllVenues();
break;
case 0:
printf("谢谢使用自助台球管理系统,再见!\n");
break;
default:
printf("输入错误,请重新输入!\n");
break;
}
} while (choice != 0);
return 0;
}
// 用户注册
void registerUser() {
if (userCount >= 100) {
printf("用户数量已达上限,无法继续注册!\n");
return;
}
char name[20], password[20];
printf("请输入用户名:");
scanf("%s", name);
if (findUser(name) != -1) {
printf("用户名已存在,请重新输入!\n");
return;
}
printf("请输入密码:");
scanf("%s", password);
User user;
strcpy(user.name, name);
strcpy(user.password, password);
user.type = 0;
users[userCount] = user;
userCount++;
printf("用户注册成功!\n");
}
// 用户登录
void loginUser() {
char name[20], password[20];
printf("请输入用户名:");
scanf("%s", name);
int index = findUser(name);
if (index == -1) {
printf("用户名不存在,请重新输入!\n");
return;
}
printf("请输入密码:");
scanf("%s", password);
if (strcmp(users[index].password, password) != 0) {
printf("密码错误,请重新输入!\n");
return;
}
printf("登录成功!");
if (users[index].type == 0) {
printf("欢迎普通用户 %s 使用自助台球管理系统!\n", name);
} else {
printf("欢迎管理员 %s 使用自助台球管理系统!\n", name);
}
}
// 用户注销
void logoutUser() {
char name[20];
printf("请输入用户名:");
scanf("%s", name);
int index = findUser(name);
if (index == -1) {
printf("用户名不存在,请重新输入!\n");
return;
}
users[index].type = -1;
printf("用户注销成功!\n");
}
// 添加场馆
void addVenue() {
if (venueCount >= 10) {
printf("场馆数量已达上限,无法继续添加!\n");
return;
}
char name[20], address[50];
int size;
float price;
printf("请输入场馆名称:");
scanf("%s", name);
if (findVenue(name) != -1) {
printf("场馆已存在,请重新输入!\n");
return;
}
printf("请输入场馆地址:");
scanf("%s", address);
printf("请输入场馆规模:");
scanf("%d", &size);
printf("请输入场馆价格:");
scanf("%f", &price);
Venue venue;
strcpy(venue.name, name);
strcpy(venue.address, address);
venue.size = size;
venue.price = price;
venue.reserved = 0;
venues[venueCount] = venue;
venueCount++;
printf("场馆添加成功!\n");
}
// 修改场馆信息
void editVenue() {
char name[20];
printf("请输入场馆名称:");
scanf("%s", name);
int index = findVenue(name);
if (index == -1) {
printf("场馆不存在,请重新输入!\n");
return;
}
printf("请输入新的场馆地址:");
scanf("%s", venues[index].address);
printf("请输入新的场馆规模:");
scanf("%d", &venues[index].size);
printf("请输入新的场馆价格:");
scanf("%f", &venues[index].price);
printf("场馆信息修改成功!\n");
}
// 删除场馆
void deleteVenue() {
char name[20];
printf("请输入场馆名称:");
scanf("%s", name);
int index = findVenue(name);
if (index == -1) {
printf("场馆不存在,请重新输入!\n");
return;
}
if (venues[index].reserved == 1) {
printf("场馆已被预约,无法删除!\n");
return;
}
for (int i = index; i < venueCount - 1; i++) {
venues[i] = venues[i + 1];
}
venueCount--;
printf("场馆删除成功!\n");
}
// 预约场馆
void reserveVenue() {
char name[20];
printf("请输入场馆名称:");
scanf("%s", name);
int index = findVenue(name);
if (index == -1) {
printf("场馆不存在,请重新输入!\n");
return;
}
if (venues[index].reserved == 1) {
printf("场馆已被预约,请选择其他场馆!\n");
return;
}
printf("请输入预约日期(例如:20190101):");
scanf("%d", &venues[index].reserved);
printf("请输入预约时间(例如:1200):");
scanf("%d", &venues[index].reserved);
printf("场馆预约成功!\n");
}
// 取消预约
void cancelReservation() {
char name[20];
printf("请输入场馆名称:");
scanf("%s", name);
int index = findVenue(name);
if (index == -1) {
printf("场馆不存在,请重新输入!\n");
return;
}
if (venues[index].reserved == 0) {
printf("场馆未被预约,无法取消预约!\n");
return;
}
venues[index].reserved = 0;
printf("场馆预约已取消!\n");
}
// 显示可用场馆
void showAvailableVenues() {
printf("---- 可用场馆列表 ----\n");
for (int i = 0; i < venueCount; i++) {
if (venues[i].reserved == 0) {
printf("%s %s %d %.2f\n", venues[i].name, venues[i].address, venues[i].size, venues[i].price);
}
}
printf("----------------------\n");
}
// 显示已预约场馆
void showReservedVenues() {
printf("---- 已预约场馆列表 ----\n");
for (int i = 0; i < venueCount; i++) {
if (venues[i].reserved == 1) {
printf("%s %s %d %.2f\n", venues[i].name, venues[i].address, venues[i].size, venues[i].price);
}
}
printf("------------------------\n");
}
// 显示所有场馆
void showAllVenues() {
printf("---- 场馆列表 ----\n");
for (int i = 0; i < venueCount; i++) {
printf("%s %s %d %.2f\n", venues[i].name, venues[i].address, venues[i].size, venues[i].price);
}
printf("-------------------\n");
}
// 查找用户
int findUser(char name[]) {
for (int i = 0; i < userCount; i++) {
if (strcmp(users[i].name, name) == 0) {
return i;
}
}
return -1;
}
// 查找场馆
int findVenue(char name[]) {
for (int i = 0; i < venueCount; i++) {
if (strcmp(venues[i].name, name) == 0) {
return i;
}
}
return -1;
}
```
该程序实现了用户注册、登录、注销、场馆信息管理、场馆预约管理和查询等功能,具体实现细节见注释。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://img-home.csdnimg.cn/images/20210720083646.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)
![](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)