📄 网络会所管理系统.cpp
字号:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct machine
{
int id;
int type;
char morle[10];
char player[20];
};
struct user
{
int id;
char name[20];
char pwd[10];
};
void adduser()
{
system("cls");
struct user p;
FILE *fp;
if((fp=fopen("user.tex","ab"))==NULL)
{
printf("无法打开文件!");
exit(0);
}
printf("\n请输入该会员的编号(数字):");
scanf("%d",&p.id);
printf("\n输入该会员的真实姓名(中文):");
scanf("%s",p.name);
printf("\n请输入该用户名的密码:");
scanf("%s",p.pwd);
fwrite(&p,sizeof(struct user),1,fp);
fclose(fp);
}
void deluser()
{
system("cls");
int a,i=-1,j=0;
struct user b,*p;
FILE *fp;
printf("请输入你要删除用户的编号");
scanf("%d",&a);
if((fp=fopen("user.tex","rb"))==NULL)
{
printf("无法打开文件!");
exit(0);
}
rewind(fp);
while(!feof(fp))
{
fread(&b,sizeof(struct user),1,fp);
i++;
}
p=(struct user *)calloc(i-1,sizeof(struct user));
rewind(fp);
while(!feof(fp))
{
fread(&p[j],sizeof(struct user),1,fp);
if(p[j].id==a)
j--;
j++;
if(j==i-1)
break;
}
fclose(fp);
if((fp=fopen("user.tex","wb"))==NULL)
{
printf("无法打开文件!");
exit(0);
}
rewind(fp);
for(i=0;i<j;i++)
fwrite(&p[i],sizeof(struct user),1,fp);
fclose(fp);
}
void displayuser()
{
system("cls");
FILE *fp;
struct user p;
if((fp=fopen("user.tex","rb"))==NULL)
{
printf("无法打开文件!");
exit(0);
}
fseek(fp,0,2);
int u=ftell(fp);
rewind(fp);
printf("会员编号\t用户名\t密码\n");
while(!feof(fp))
{
fread(&p,sizeof(struct user),1,fp);
printf("%d\t%s\t%s\n",p.id,p.name,p.pwd);
if(u-ftell(fp)<sizeof(struct user))
break;
}
fclose(fp);
}
int findmach()
{
FILE *fp;
int a;
struct machine p;
printf("请输入需要机器的类型:1.普通型 2.贵宾型\n");
scanf("%d",&a);
if((fp=fopen("mach.tex","rb"))==NULL)
{
printf("无法打开文件!");
exit(0);
}
fseek(fp,0,2);
int u=ftell(fp);
rewind(fp);
while(!feof(fp))
{
fread(&p,sizeof(struct machine),1,fp);
if(p.type==a&&strcmp(p.morle,"close")==0)
return p.id;
if(u-ftell(fp)<sizeof(struct machine))
break;
}
fclose(fp);
printf("\n抱歉!没有适合的机器!");
return 0;
}
void openmach()
{
FILE *fp;
struct machine p;
int n;
n=findmach();
if(n==0)
exit(0);
if((fp=fopen("mach.tex","rb+"))==NULL)
{
printf("无法打开文件!");
exit(0);
}
fseek(fp,0,2);
int u=ftell(fp);
rewind(fp);
while(!feof(fp))
{
fread(&p,sizeof(struct machine),1,fp);
if(p.id==n)
{
fseek(fp,-sizeof(struct machine),1);
strcpy(p.morle,"open");
printf("第%d号机已经打开,欢迎使用",p.id);
fwrite(&p,sizeof(struct machine),1,fp);
break;
}
if(u-ftell(fp)<sizeof(struct user))
break;
}
fclose(fp);
}
void closemach()
{
FILE *fp;
int n;
struct machine p;
printf("输入你要关闭的机器:");
scanf("%d",&n);
if((fp=fopen("mach.tex","rb+"))==NULL)
{
printf("无法打开文件!");
exit(0);
}
fseek(fp,-1,2);
int u=ftell(fp);
rewind(fp);
while(!feof(fp))
{
fread(&p,sizeof(struct machine),1,fp);
if(p.id==n)
{
fseek(fp,-sizeof(struct machine),1);
strcpy(p.morle,"close");
fwrite(&p,sizeof(struct machine),1,fp);
break;
}
if(u-ftell(fp)<sizeof(struct machine))
break;
}
fclose(fp);
}
void addmach()
{
system("cls");
struct machine p;
FILE *fp;
if((fp=fopen("mach.tex","ab"))==NULL)
{
printf("无法打开文件!");
exit(0);
}
fflush(stdin);
printf("\n请输入该机器的编号(数字):");
scanf("%d",&p.id);
printf("\n请输入该机器的类型:");
scanf("%d",&p.type);
printf("%d",p.id);
strcpy(p.morle,"close");
strcpy(p.player,"guest");
fwrite(&p,sizeof(struct machine),1,fp);
fclose(fp);
}
void delmach()
{
int n;
system("cls");
struct machine p;
FILE *fp,*fp1;
printf("请输入你要删除的机器的编号:");
scanf("%d",&n);
if((fp=fopen("mach.tex","rb"))==NULL)
{
printf("无法打开文件!");
exit(0);
}
fseek(fp,-1,2);
int u=ftell(fp);
rewind(fp);
while(!feof(fp))
{
fread(&p,sizeof(struct machine),1,fp);
if(p.id==n)
break;
if(u-ftell(fp)<sizeof(struct machine))
{
printf("没有这个编号的机器!");
exit(0);
}
}
fp1=fp-sizeof(struct machine);
while(!feof(fp))
{
fread(&p,sizeof(struct machine),1,fp);
fwrite(&p,sizeof(struct machine),1,fp1);
if(u-ftell(fp)<sizeof(struct machine))
break;
}
fclose(fp);
fclose(fp1);
}
void displaymach()
{
system("cls");
FILE *fp;
struct machine p;
if((fp=fopen("mach.tex","rb"))==NULL)
{
printf("无法打开文件!");
exit(0);
}
fseek(fp,0,2);
int u=ftell(fp);
rewind(fp);
printf("机器编号\t机器类型\t状态\t使用者\n");
while(!feof(fp))
{
fread(&p,sizeof(struct machine),1,fp);
printf("%d\t\t%d\t\t%s\t%s\n",p.id,p.type,p.morle,p.player);
if(u-ftell(fp)<sizeof(struct machine))
break;
}
fclose(fp);
}
void main()
{
char ch;
int choice;
printf("\n\n\n ■■■■■■■■■■■■■■■■■■■\n");
printf(" ■ ■\n");
printf(" ■ ■\n");
printf(" ■ ★★ 欢迎使用网吧操作系统 ★★ ■\n");
printf(" ■ ■\n");
printf(" ■ ■\n");
printf(" ■ →冰河木马小组← ■\n");
printf(" ■ ■\n");
printf(" ■小组成员:柳旺.胡杨.王博之. 王雅瑾■\n");
printf(" ■ ■\n");
printf(" ■■■■■■■■■■■■■■■■■■■\n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" 请任意按键进入操作系统........................\n");
getchar();
do{
system("cls");
printf("\n\n\n\n §☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆§\n");
printf(" ※ 用户操作 ※\n");
printf(" ※ 1、 添加会员 ※\n");
printf(" ※ 2、 删除会员 ※\n");
printf(" ※ 3、 查询会员名单 ※\n");
printf(" ※〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓※\n");
printf(" ※ 计算机操作 ※\n");
printf(" ※ 4、 开启使用机器 ※\n");
printf(" ※ 5、 关闭使用机器 ※\n");
printf(" ※ 6、 添加机器 ※\n");
printf(" ※ 7、 删除机器 ※\n");
printf(" ※ 8、 查询机器使用状况 ※\n");
printf(" §☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆§\n");
printf("\n ①用户操作:1-3\t②计算机操作:4-8\n\t\t\t\t\t");
scanf("%d",&choice);
switch(choice)
{
case 1:adduser();break;
case 2:deluser();break;
case 3:displayuser();break;
case 4:openmach();break;
case 5:closemach();break;
case 6:addmach();break;
case 7:delmach();break;
case 8:displaymach();break;
default:printf("没有这个功能!");
break;
}
printf("是否继续(Y)");
fflush(stdin);
ch=getchar();
}while(ch=='y'||ch=='Y');
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -