机房收费管理系统c语言
时间: 2023-09-02 13:14:21 浏览: 173
C语言机房收费管理系统.doc
机房收费管理系统可以分为前台收费和后台管理两部分。下面是一个简单的机房收费管理系统的C语言代码示例,仅供参考:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
//定义机房座位数量和单价
#define SEAT_NUM 30
#define PRICE_PER_HOUR 5
//定义座位结构体
typedef struct {
char id[10];
int status; //0: 空闲 1: 使用中
int start_time; //记录开始使用时间
} Seat;
//定义全局变量
Seat seats[SEAT_NUM];
int balance = 0; //记录机房余额
//函数声明
void initSeats();
void showMenu();
void bookSeat();
void returnSeat();
void checkStatus();
void showStats();
//主函数
int main() {
initSeats(); //初始化座位信息
showMenu(); //显示菜单
return 0;
}
//初始化座位信息
void initSeats() {
for(int i=0; i<SEAT_NUM; i++) {
sprintf(seats[i].id, "S%02d", i+1); //生成座位编号
seats[i].status = 0;
seats[i].start_time = 0;
}
}
//显示菜单
void showMenu() {
while(1) {
printf("\n");
printf("欢迎使用机房收费管理系统\n");
printf("1. 预约座位\n");
printf("2. 退还座位\n");
printf("3. 查询座位状态\n");
printf("4. 显示统计信息\n");
printf("0. 退出系统\n");
printf("请选择功能:");
int choice;
scanf("%d", &choice);
switch(choice) {
case 0:
printf("谢谢使用,再见!\n");
exit(0);
case 1:
bookSeat();
break;
case 2:
returnSeat();
break;
case 3:
checkStatus();
break;
case 4:
showStats();
break;
default:
printf("输入错误,请重新选择!\n");
break;
}
}
}
//预约座位
void bookSeat() {
printf("请输入座位编号:");
char id[10];
scanf("%s", id);
//查找座位
int index = -1;
for(int i=0; i<SEAT_NUM; i++) {
if(strcmp(seats[i].id, id) == 0) {
index = i;
break;
}
}
if(index == -1) {
printf("座位不存在,请重新输入!\n");
return;
}
if(seats[index].status == 1) {
printf("座位已被占用,请重新选择!\n");
return;
}
seats[index].status = 1;
seats[index].start_time = time(NULL); //记录开始使用时间
printf("预约成功!\n");
}
//退还座位
void returnSeat() {
printf("请输入座位编号:");
char id[10];
scanf("%s", id);
//查找座位
int index = -1;
for(int i=0; i<SEAT_NUM; i++) {
if(strcmp(seats[i].id, id) == 0) {
index = i;
break;
}
}
if(index == -1) {
printf("座位不存在,请重新输入!\n");
return;
}
if(seats[index].status == 0) {
printf("座位未被占用,请重新选择!\n");
return;
}
int duration = (time(NULL) - seats[index].start_time) / 3600; //计算使用时长
int cost = duration * PRICE_PER_HOUR; //计算消费金额
balance += cost; //增加机房余额
seats[index].status = 0;
seats[index].start_time = 0; //清空开始使用时间
printf("退还成功,共计%d元!\n", cost);
}
//查询座位状态
void checkStatus() {
printf("请输入座位编号:");
char id[10];
scanf("%s", id);
//查找座位
int index = -1;
for(int i=0; i<SEAT_NUM; i++) {
if(strcmp(seats[i].id, id) == 0) {
index = i;
break;
}
}
if(index == -1) {
printf("座位不存在,请重新输入!\n");
return;
}
if(seats[index].status == 0) {
printf("座位空闲!\n");
} else {
int duration = (time(NULL) - seats[index].start_time) / 3600; //计算使用时长
printf("座位正在使用,已使用%d小时!\n", duration);
}
}
//显示统计信息
void showStats() {
int count_free = 0;
int count_used = 0;
for(int i=0; i<SEAT_NUM; i++) {
if(seats[i].status == 0) {
count_free++;
} else {
count_used++;
}
}
printf("当前机房余额: %d元\n", balance);
printf("当前机房座位使用情况: %d个空闲, %d个使用中\n", count_free, count_used);
}
```
此代码仅为示例,实际上机房收费管理系统需要更多的功能和细节处理。需要根据实际需求进行修改和完善。
阅读全文