📄 yonghu.c
字号:
#include "bianliang.h"
// // // // // // // // // // 增 加 用 户 // // // // // // // // // //
void add(emploe em1[10],int k)
{
FILE *f;
emploe em2[10];
char name[10],password1[10],password2[10],ch;
int state=-1,i=0,j=0,b=0; //b记录新建用户个数
if ((f=fopen("b.dat","r"))==NULL)
{
printf("File Can't be find!\n");
}
else
{
fread(&b,sizeof(b),1,f);
}
fclose(f);
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
loop1:printf("\n\n\t\t请输入用户名:");
printf("\n\n\t\t[1只能是字母或数字]\t[2用户名长度小于10] ");
fflush(stdin);
gets(name);
if(name[0]=='\0')
{
system("cls");
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\t\t您没有输入用户名,请重新输入!");
goto loop1;
}
if(strlen(name)>10)
{
system("cls");
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\t\t您输入的用户名过长!!");
goto loop1;
}
for(i=0;name[i]!='\0';i++)
{
if(name[i]<48 || (name[i]>57 && name[i]<65) || (name[i]>90 && name[i]<97) || (name[i]>122))
{
system("cls");
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\t\t用户名必须是字母或数字!");
goto loop1;
}
}
for (i=0;i<10;i++)
{
if((strcmp(em1[i].name,name))==0)
{
system("cls");
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\t\t用户名已经被注册!!");
goto loop1;
}
}
loop2:printf("\n\n\t\t请输入您的初始密码:");
i = 0;
while ((ch = getch()) != 13)
{
if (i != 0 || ch != '\b' )
{
if (ch == '\b')
{
putchar('\b');
putchar(' ');
putchar('\b');
i--;
}
else
{
password1[i] = ch;
putchar('*');
i++;
}
}
}
password1[i] = '\0';
if (strlen(password1)>6)
{
printf("您的密码过长,是输入6位以内密码!!");
goto loop2;
}
printf("\n\n\t\t请再次输入您的密码:");
i = 0;
while ((ch = getch()) != 13)
{
if (i != 0 || ch != '\b' )
{
if (ch == '\b')
{
putchar('\b');
putchar(' ');
putchar('\b');
i--;
}
else
{
password2[i] = ch;
putchar('*');
i++;
}
}
}
password2[i] = '\0';
if(strcmp(password1,password2)!=0)
{
system("cls");
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\t\t您两次输入的密码不一致!!");
goto loop2;
}
loop3:printf("\n\n\t\t请输入用户的权限(0.管理员 1.用户):");
fflush(stdin);
scanf("%d",&state);
if(state!=0 && state!=1)
{
system("cls");
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\t\t您的输入有误!!");
goto loop3;
}
if ((f=fopen("b.dat","r+"))==NULL)
{
printf("File Can't be find!\n");
}
else
{
b++;
fwrite(&b,sizeof(b),1,f);
}
fclose(f);
if ((f=fopen("pwd.dat","r"))==NULL)
{
printf("File Can't be find!\n");
}
else
{
fread(&em2,sizeof(em2),1,f);
}
fclose(f);
if ((f=fopen("pwd.dat","r+"))==NULL)
{
printf("File Can't be find!\n");
}
else
{
strcpy(em2[b].name,name);
strcpy(em2[b].pwd,password1);
em2[b].state=state;
em2[b].record=0;
em2[b].first=0;
fwrite(&em2,sizeof(em2),1,f);
}
fclose(f);
}
// // // // // // // // // // 删 除 用 户 // // // // // // // // // //
void del(emploe em1[10],int k)
{
FILE *f;
int i=0,j=0,m=0,b=0;
char name[10],n;
emploe em2[10];
if ((f=fopen("b.dat","r"))==NULL)
{
printf("File Can't be find!\n");
}
else
{
fread(&b,sizeof(b),1,f);
}
fclose(f);
if ((f=fopen("pwd.dat","r"))==NULL) //从文件pwd.dat中读入数据
{
printf("File Can't be find!\n");
}
else
{
fread(&em2,sizeof(em2),1,f);
}
fclose(f);
i=0;
loop1:printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\t\t请输入您要删除的用户:");
fflush(stdin);
gets(name);
if(name[0]=='\0') //判断是否输入用户名
{
printf("\n\n\n\n\n\n\t\t\t您没有输入用户名,请重新输入!");
printf("\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
system("cls");
goto loop1;
}
if (strlen(name)>10) //判断用户名长度
{
printf("\n\n\n\n\n\n\t\t\t用户名不符合要求,请重新输入!");
printf("\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
system("cls");
goto loop1;
}
for(i=0;name[i]!='\0';i++) //判断用户名为字母或数字
{
if(name[i]<48 || (name[i]>57 && name[i]<65) || (name[i]>90 && name[i]<97) || (name[i]>122))
{
printf("\n\n\n\n\n\n\t\t\t用户名必须是字母或数字!!");
printf("\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
system("cls");
goto loop1;
}
}
if (strcmp(name,em1[k].name)==0)
{
printf("\n\n\n\n\n\n\t\t\t您输入的用户名正在登陆中!!");
printf("\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
system("cls");
goto loop1;
}
for (i=0;i<10;i++)
{
if (strcmp(name,em2[i].name)==0)
{
for (j=0;j<10;j++)
{
if (strlen(em2[j].name)>10)
{
break;
}
}
goto loop2;
}
}
printf("\n\n\n\n\n\n\t\t\t没有找到您输入的用户名");
printf("\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
goto loop4;
loop2:printf("\n\n\t\t是否确定要删除 %s 用户(Y/N)?",em2[i].name);
// printf("%d,%d",i,j);
// printf("%d,%d,%d,%d",strlen(em2[0].name),strlen(em2[1].name),strlen(em2[2].name),strlen(em2[3].name));
fflush(stdin);
scanf("%c",&n);
switch(n)
{
case 'y':
case 'Y':
if ((f = fopen("pwd.dat", "w+b")) == NULL)
{
printf("File Can't be find!\n");
}
else
{
for (m=i;m<j;m++)
{
strcpy(em2[m].name,em2[m+1].name);
strcpy(em2[m].pwd,em2[m+1].pwd);
em2[m].state=em2[m].state;
em2[m].record=em2[m].record;
em2[m].first=em2[m].first;
}
fwrite(&em2, sizeof(em2),1 ,f);
}
fclose(f);
if ((f=fopen("b.dat","r+"))==NULL)
{
printf("File Can't be find!\n");
}
else
{
b--;
fwrite(&b,sizeof(b),1,f);
}
fclose(f);
printf("\n\n\n\n\n\t\t\t用户 %s 已成功删除!!",name);
printf("\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
break;
case 'N':
case 'n':
goto loop4;
break;
default:
system("cls");
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\n\n\n\n\n\t\t\t您的输入错误,请重新输入!!");
printf("\n\n\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
system("cls");
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
goto loop2;
}
loop4:;
}
// // // // // // // // // // 修 改 权 限 // // // // // // // // // //
void power(emploe em1[10],int k)
{
FILE *f;
int i=0,j=0;
char name[10],n;
emploe em2[10];
if ((f=fopen("pwd.dat","r"))==NULL) //从文件pwd.dat中读入数据
{
printf("File Can't be find!\n");
}
else
{
fread(&em2,sizeof(em2),1,f);
}
fclose(f);
i=0;
loop1:printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\t\t请输入您要修改权限的用户名:");
fflush(stdin);
gets(name);
if(name[0]=='\0') //判断是否输入用户名
{
printf("\n\n\n\n\n\n\t\t\t您没有输入用户名,请重新输入!");
printf("\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
system("cls");
goto loop1;
}
if (strlen(name)>10) //判断用户名长度
{
printf("\n\n\n\n\n\n\t\t\t用户名不符合要求,请重新输入!");
printf("\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
system("cls");
goto loop1;
}
for(i=0;name[i]!='\0';i++) //判断用户名为字母或数字
{
if(name[i]<48 || (name[i]>57 && name[i]<65) || (name[i]>90 && name[i]<97) || (name[i]>122))
{
printf("\n\n\n\n\n\n\t\t\t用户名必须是字母或数字!!");
printf("\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
system("cls");
goto loop1;
}
}
if (strcmp(name,em1[k].name)==0)
{
printf("\n\n\n\n\n\n\t\t\t您输入的用户名正在登陆中!!");
printf("\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
system("cls");
goto loop1;
}
for (i=0;i<10;i++)
{
if (strcmp(name,em2[i].name)==0)
{
goto loop2;
}
}
printf("\n\n\n\n\n\n\t\t\t没有找到您输入的用户名");
printf("\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
goto loop4;
loop2:printf("\n\n\t\t用户 %s 目前的权限为: ",em2[i].name);
j=0;
if (em2[i].state==0)
{
printf("管理员!!\n\n\n\t\t是否降为普通员工(Y/N)?");
loop3: fflush(stdin);
scanf("%c",&n);
switch(n)
{
case 'y':
case 'Y':
if ((f = fopen("pwd.dat", "w+b")) == NULL)
{
printf("File Can't be find!\n");
}
else
{
em2[i].state=1;
fwrite(&em2, sizeof(em2),1 ,f);
}
fclose(f);
if (j==0)
{
printf("\n\n\n\n\t\t\t用户 %s 已成为普通员工!!",em2[i].name);
printf("\n\n\n\n\n================================================================================");
}
else
{
printf("\n\n\n\n\n\t\t\t用户 %s 已成为普通员工!!",em2[i].name);
printf("\n\n\n\n\n\n\n\n\n================================================================================");
}
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
break;
case 'n':
case 'N':
system("cls");
goto loop1;
break;
default:
system("cls");
j++;
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\n\n\n\n\n\t\t\t您的输入错误,请重新输入!!");
printf("\n\n\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
system("cls");
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\n\t\t是否降为普通员工(Y/N)?");
goto loop3;
}
}
else
{
printf("员工!!\n\n\n\t\t是否升为管理员(Y/N)?");
fflush(stdin);
scanf("%c",&n);
switch(n)
{
case 'y':
case 'Y':
if ((f = fopen("pwd.dat", "w+b")) == NULL)
{
printf("File Can't be find!\n");
}
else
{
em2[i].state=0;
fwrite(&em2, sizeof(em2),1 ,f);
}
fclose(f);
if (j==0)
{
printf("\n\n\n\n\t\t\t用户 %s 已成为管理员!!",em2[i].name);
printf("\n\n\n\n\n================================================================================");
}
else
{
printf("\n\n\n\n\n\t\t\t用户 %s 已成为管理员!!",em2[i].name);
printf("\n\n\n\n\n\n\n\n\n================================================================================");
}
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
break;
case 'n':
case 'N':
goto loop1;
break;
default:
system("cls");
j++;
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\n\n\n\n\n\t\t\t您的输入错误,请重新输入!!");
printf("\n\n\n\n\n\n\n\n\n\n\n================================================================================");
printf("\n\t\t\t\t(按任意键返回)");
fflush(stdin);
n=getch();
system("cls");
printf("\n\t\t\t\t\t\t\t\t\t管理员");
printf("\n________________________________________________________________________________");
printf("\n\n\n\t\t是否降为普通员工(Y/N)?");
goto loop3;
}
}
loop4:;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -