c语言网吧管理系统具体程序
时间: 2023-08-05 11:09:05 浏览: 54
网吧管理系统是一个比较复杂的系统,需要涉及到多个模块。下面是一个简单的 C 语言网吧管理系统的程序示例,仅供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义一个结构体,表示网吧机器
struct Computer {
char id[10]; // 机器编号
int status; // 机器状态,0 表示空闲,1 表示正在使用
char user[20]; // 当前使用者姓名
int time; // 当前使用时间,单位为分钟
};
// 定义一个结构体,表示网吧会员
struct Member {
char name[20]; // 会员姓名
char id[20]; // 会员编号
int balance; // 会员账户余额,单位为元
};
// 定义一个全局变量,表示网吧机器的数量
#define COMPUTER_NUM 20
// 定义一个全局变量,表示网吧会员的数量
#define MEMBER_NUM 100
// 定义一个全局变量,表示网吧机器数组
struct Computer computers[COMPUTER_NUM];
// 定义一个全局变量,表示网吧会员数组
struct Member members[MEMBER_NUM];
// 初始化网吧机器
void init_computers() {
int i;
for (i = 0; i < COMPUTER_NUM; i++) {
sprintf(computers[i].id, "%03d", i + 1);
computers[i].status = 0;
strcpy(computers[i].user, "");
computers[i].time = 0;
}
}
// 初始化网吧会员
void init_members() {
int i;
for (i = 0; i < MEMBER_NUM; i++) {
sprintf(members[i].id, "%03d", i + 1);
strcpy(members[i].name, "");
members[i].balance = 0;
}
}
// 显示网吧机器状态
void show_computers() {
int i;
printf("编号\t状态\t使用者\t使用时间\n");
for (i = 0; i < COMPUTER_NUM; i++) {
printf("%s\t%s\t%s\t%d\n", computers[i].id, computers[i].status == 0 ? "空闲" : "正在使用", computers[i].user, computers[i].time);
}
}
// 显示网吧会员信息
void show_members() {
int i;
printf("编号\t姓名\t余额\n");
for (i = 0; i < MEMBER_NUM; i++) {
printf("%s\t%s\t%d\n", members[i].id, members[i].name, members[i].balance);
}
}
// 登录网吧
void login() {
char id[10];
int i;
printf("请输入机器编号:");
scanf("%s", id);
for (i = 0; i < COMPUTER_NUM; i++) {
if (strcmp(computers[i].id, id) == 0) {
if (computers[i].status == 1) {
printf("该机器正在使用中,请换一个机器!\n");
return;
}
computers[i].status = 1;
printf("请输入您的姓名:");
scanf("%s", computers[i].user);
printf("请输入使用时间(分钟):");
scanf("%d", &computers[i].time);
printf("登录成功!\n");
return;
}
}
printf("机器编号输入错误!\n");
}
// 注销网吧
void logout() {
char id[10];
int i, time, cost;
printf("请输入机器编号:");
scanf("%s", id);
for (i = 0; i < COMPUTER_NUM; i++) {
if (strcmp(computers[i].id, id) == 0) {
if (computers[i].status == 0) {
printf("该机器未被使用,无需注销!\n");
return;
}
time = computers[i].time;
cost = time / 60 * 5;
printf("您本次使用的时间是 %d 分钟,需要支付 %d 元。\n", time, cost);
computers[i].status = 0;
strcpy(computers[i].user, "");
computers[i].time = 0;
return;
}
}
printf("机器编号输入错误!\n");
}
// 会员充值
void recharge() {
char id[20];
int i, amount;
printf("请输入会员编号:");
scanf("%s", id);
for (i = 0; i < MEMBER_NUM; i++) {
if (strcmp(members[i].id, id) == 0) {
printf("请输入充值金额:");
scanf("%d", &amount);
members[i].balance += amount;
printf("充值成功,当前余额为 %d 元。\n", members[i].balance);
return;
}
}
printf("会员编号输入错误!\n");
}
// 会员消费
void consume() {
char id[20];
int i, time, cost;
printf("请输入会员编号:");
scanf("%s", id);
for (i = 0; i < MEMBER_NUM; i++) {
if (strcmp(members[i].id, id) == 0) {
printf("请输入使用时间(分钟):");
scanf("%d", &time);
cost = time / 60 * 3;
if (members[i].balance < cost) {
printf("余额不足,请充值后再使用!\n");
return;
}
members[i].balance -= cost;
printf("使用成功,消费 %d 元,当前余额为 %d 元。\n", cost, members[i].balance);
return;
}
}
printf("会员编号输入错误!\n");
}
int main() {
int choice;
init_computers();
init_members();
while (1) {
printf("\n");
printf("1. 显示机器状态\n");
printf("2. 显示会员信息\n");
printf("3. 登录网吧\n");
printf("4. 注销网吧\n");
printf("5. 会员充值\n");
printf("6. 会员消费\n");
printf("7. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
show_computers();
break;
case 2:
show_members();
break;
case 3:
login();
break;
case 4:
logout();
break;
case 5:
recharge();
break;
case 6:
consume();
break;
case 7:
exit(0);
default:
printf("输入错误,请重新选择!\n");
break;
}
}
return 0;
}
```
上述程序的功能包括:
1. 显示网吧机器状态
2. 显示网吧会员信息
3. 登录网吧
4. 注销网吧
5. 会员充值
6. 会员消费
在实际开发中,还需要添加错误处理、日志记录、数据存储等功能。