login.c

来自「家庭财务管理系统应用软件给家庭成员提供了一个在Windows操作系统上运行的管理」· C语言 代码 · 共 96 行

C
96
字号
/* login.h用户登陆,判断登录名、密码、权限,根据权限调用相应功能选择界面
 包含用户信息头文件 、管理员、普通用户的功能选择界面*/
 #include "stdio.h"
 #include "admin.c"
 #include "guest.c"
 #include"cuser.c"
 void main()
 {
  FILE * fp=NULL;
  user Show;
  user TempS;
  char DataFile[10]="yonghu";/* 存放用户文件 */
  /*CreatUser();*/
  printf("\n");
  int i;
  char relogin;           /* 是否重新登录 */
  int success=0;          /* 登录成功的标志 */
  printf("#===================================================#\n");
  printf("#      Welcome to the Family Management System      #\n");
  printf("#===================================================#\n");
  again:
        /* 输入用户名 */
        printf("Please enter the user name:");
        scanf("%s",TempS.Name);
        TempS.Name[19]='\0';
        /* 输入密码 */
        printf("Please enter the password:");
        fflush(stdin);/* 清除输入缓冲区中的字符 */
        for(i=0;i<7;i++)
        {
         TempS.ps[i]=getch();
         TempS.ps[i+1]='\0';/* 字符要以'\0'结尾 */
         if(TempS.ps[i]=='\b')
         {
          i--;
          TempS.ps[i]='\0';/* 清除前一个字符 */
          i--;/* 接收前一个字符 */
          printf("\b ");
          printf("\b");
          continue;
         }
         if(TempS.ps[i]=='\r')
         {
            TempS.ps[i]='\0';
            break;
         }
         printf("*");
       }
       fp=fopen(DataFile,"rb");
       if(fp==NULL) /* 打开文件失败时提示 */
       {
        printf("\nOpen file %s fail!End with any key\n",DataFile);
        perror("Open file fail");
        getch();
        return;
       }

       while(fread(&Show,sizeof(user),1,fp)!=(int)NULL)
       {
        if(strcmp(TempS.Name,Show.Name)==0&&strcmp(TempS.ps,Show.ps)==0)
        {
        printf("\nlogin successful!\n");
        success=1;
        break;
        }
       }
       fclose(fp);
       if(success==1) /* 登录成功 */
       {
        if(Show.power==1)
        {
         Admin(Show);/*家长(管理员)功能的界面*/
        }
        else
        {
         Guest(Show);
        }
       }/* 未登录成功 */
       else
       {
        fflush(stdin);/* 清除输入缓冲区中的字符 */
        printf("\nError user name or password!input again(y/n):");
        relogin=getchar();
        if(relogin=='y'||relogin=='Y')
        {
         goto again;
        }
        else
        {
         printf("End program!");
         getch();
         exit(0);
        }
       }
 }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?