?? 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 + -