c语言网吧管理系统具体程序,包含8个功能函数
时间: 2024-03-14 21:45:20 浏览: 97
c语言网吧管理系统
好的,下面是一个简单的 C 语言网吧管理系统,包含8个功能函数的程序示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_COMPUTERS 100 // 网吧最大电脑数量
#define MAX_USERS 1000 // 网吧最大用户数量
#define MAX_NAME 20 // 用户和电脑的最大名称长度
// 用户结构体
typedef struct {
char name[MAX_NAME];
int age;
int id;
int computer_id;
} User;
// 电脑结构体
typedef struct {
char name[MAX_NAME];
int id;
int is_occupied;
} Computer;
// 用户和电脑数组
User users[MAX_USERS];
Computer computers[MAX_COMPUTERS];
int user_count = 0; // 用户数量
int computer_count = 0; // 电脑数量
// 添加用户
void add_user() {
if (user_count >= MAX_USERS) {
printf("用户数量已达上限,无法添加新用户!\n");
return;
}
User user;
printf("请输入要添加的用户姓名:");
scanf("%s", user.name);
printf("请输入用户年龄:");
scanf("%d", &user.age);
user.id = user_count;
user.computer_id = -1;
users[user_count] = user;
user_count++;
printf("添加用户成功!\n");
}
// 查找用户
void find_user() {
char name[MAX_NAME];
printf("请输入要查找的用户姓名:");
scanf("%s", name);
for (int i = 0; i < user_count; i++) {
if (strcmp(users[i].name, name) == 0) {
printf("找到用户:\n");
printf("姓名:%s\n", users[i].name);
printf("年龄:%d\n", users[i].age);
printf("编号:%d\n", users[i].id);
if (users[i].computer_id >= 0) {
printf("正在使用电脑编号:%d\n", users[i].computer_id);
} else {
printf("未正在使用电脑\n");
}
return;
}
}
printf("未找到该用户!\n");
}
// 删除用户
void delete_user() {
int id;
printf("请输入要删除的用户编号:");
scanf("%d", &id);
for (int i = 0; i < user_count; i++) {
if (users[i].id == id) {
// 将该用户从电脑中移除
if (users[i].computer_id >= 0) {
computers[users[i].computer_id].is_occupied = 0;
}
// 将该用户从数组中删除
for (int j = i; j < user_count - 1; j++) {
users[j] = users[j + 1];
}
user_count--;
printf("删除用户成功!\n");
return;
}
}
printf("未找到该用户!\n");
}
// 添加电脑
void add_computer() {
if (computer_count >= MAX_COMPUTERS) {
printf("电脑数量已达上限,无法添加新电脑!\n");
return;
}
Computer computer;
printf("请输入要添加的电脑名称:");
scanf("%s", computer.name);
computer.id = computer_count;
computer.is_occupied = 0;
computers[computer_count] = computer;
computer_count++;
printf("添加电脑成功!\n");
}
// 查找电脑
void find_computer() {
int id;
printf("请输入要查找的电脑编号:");
scanf("%d", &id);
if (id < 0 || id >= computer_count) {
printf("未找到该电脑!\n");
return;
}
printf("找到电脑:\n");
printf("名称:%s\n", computers[id].name);
printf("编号:%d\n", computers[id].id);
if (computers[id].is_occupied) {
printf("正在被用户使用\n");
} else {
printf("未被使用\n");
}
}
// 删除电脑
void delete_computer() {
int id;
printf("请输入要删除的电脑编号:");
scanf("%d", &id);
if (id < 0 || id >= computer_count) {
printf("未找到该电脑!\n");
return;
}
// 如果该电脑正在被用户使用,则无法删除
if (computers[id].is_occupied) {
printf("该电脑正在被用户使用,无法删除!\n");
return;
}
// 将该电脑从数组中删除
for (int i = id; i < computer_count - 1; i++) {
computers[i] = computers[i + 1];
}
computer_count--;
printf("删除电脑成功!\n");
}
// 分配电脑
void assign_computer() {
int user_id, computer_id;
printf("请输入要分配电脑的用户编号:");
scanf("%d", &user_id);
printf("请输入要分配的电脑编号:");
scanf("%d", &computer_id);
if (user_id < 0 || user_id >= user_count) {
printf("未找到该用户!\n");
return;
}
if (computer_id < 0 || computer_id >= computer_count) {
printf("未找到该电脑!\n");
return;
}
if (computers[computer_id].is_occupied) {
printf("该电脑正在被使用,无法分配!\n");
return;
}
// 将该电脑分配给该用户
users[user_id].computer_id = computer_id;
computers[computer_id].is_occupied = 1;
printf("分配电脑成功!\n");
}
// 释放电脑
void release_computer() {
int user_id;
printf("请输入要释放电脑的用户编号:");
scanf("%d", &user_id);
if (user_id < 0 || user_id >= user_count) {
printf("未找到该用户!\n");
return;
}
int computer_id = users[user_id].computer_id;
if (computer_id < 0) {
printf("该用户未在使用电脑!\n");
return;
}
// 将该电脑从该用户中移除
users[user_id].computer_id = -1;
computers[computer_id].is_occupied = 0;
printf("释放电脑成功!\n");
}
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("0. 退出\n");
printf("请选择功能:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_user();
break;
case 2:
find_user();
break;
case 3:
delete_user();
break;
case 4:
add_computer();
break;
case 5:
find_computer();
break;
case 6:
delete_computer();
break;
case 7:
assign_computer();
break;
case 8:
release_computer();
break;
case 0:
printf("感谢使用网吧管理系统!\n");
break;
default:
printf("无效的选择,请重新输入!\n");
break;
}
} while (choice != 0);
return 0;
}
```
该程序实现了以下8个功能函数:
1. 添加用户:输入用户姓名和年龄,自动生成用户编号并添加到用户数组中。
2. 查找用户:输入用户姓名,查找并输出该用户的信息。
3. 删除用户:输入用户编号,将该用户从用户数组中删除,并将该用户从正在使用电脑的电脑中移除。
4. 添加电脑:输入电脑名称,自动生成电脑编号并添加到电脑数组中。
5. 查找电脑:输入电脑编号,查找并输出该电脑的信息。
6. 删除电脑:输入电脑编号,将该电脑从电脑数组中删除,但如果该电脑正在被用户使用,则无法删除。
7. 分配电脑:输入用户编号和电脑编号,将该电脑分配给该用户,但如果该电脑正在被使用,则无法分配。
8. 释放电脑:输入用户编号,将该用户正在使用的电脑从该用户中移除。
阅读全文