login.c
上传用户:tamljx
上传日期:2021-06-04
资源大小:60k
文件大小:3k
源码类别:

家庭/个人应用

开发平台:

C/C++

  1. /*login.c:家庭成员登录,判断登录名、密码、权限,
  2.  根据权限调用相应功能选择界面*/
  3. /*包含家庭成员信息头文件
  4. 包含创建家庭成员信息、增加、删除、修改、排序的用户处理程序
  5. 包含管理员、普通用户的功能选择界面处理程序*/
  6. #include "user.h"
  7. /*家庭成员(即用户)信息头文件,如用户名、密码等*/
  8. #include "cuser.c"
  9. /*初始化家庭成员信息文件,赋以用户名、密码等供登录使用、校验*/
  10. #include "admin.c"
  11. /*家长(即管理员)功能选择界面*/
  12. #include "guest.c"
  13. /*普通家庭成员功能选择界面*/
  14. #include "adduser.c"
  15. /*添加家庭成员(即用户)信息*/
  16. #include "deluser.c"
  17. /*删除家庭成员信息*/
  18. #include "sunum.c"
  19. /*按家庭成员序号排序浏览*/
  20. #include "munum.c"
  21. /*按家庭成员序号修改信息*/
  22. int main()
  23. {
  24.     FILE *fp = NULL;
  25.     user Show;
  26.     user TmpS;                   /*临时存放家庭成员信息的结构体变量*/
  27.     char DataFile[40] = "yonghu";/*存放家庭成员信息的文件名为yonghu*/
  28.     int i;
  29.     char relogin;                /*是否重新登录的标志*/
  30.     int success=0;               /*登录成功的标志*/
  31.     /*CreatUser();*/
  32. printf("#===========================================================#n");
  33. printf("#     Welcome to the Family Financial Management System!    #n");
  34. printf("#===========================================================#n");
  35. again:
  36.     /*输入用户名*/
  37.     printf("please enter the user name:");
  38.     scanf("%s",TmpS.Name);
  39.     /*输入密码,用不带回显的方式保证安全性*/
  40.     printf("password=");
  41.     for(i=0;i<6;i++)
  42.         {
  43.         TmpS.ps[i]=getch();
  44.         }
  45.     TmpS.ps[6]='';
  46.     /*printf("nname:%s  password:%sn",TmpS.Name,TmpS.ps);*/
  47.     /*打开yonghu文件,用来验证用户名和密码*/
  48.     fp=fopen(DataFile,"rb");
  49.     /*当打开文件失败时提示*/
  50.     if (fp == NULL)
  51.     {
  52.         printf("nOpen file%sfail!End with any key n",DataFile);
  53.         perror("Open file fail");
  54.         getch();
  55.         exit(1);
  56.     }
  57.     /*循环读取文件校验用户名和密码是否正确*/
  58.     while(fread(&Show,sizeof(user),1,fp) != (int)NULL)
  59.     {
  60.         /*如果通过验证,则将success成功登录标记设为1*/
  61.         if((strcmp(TmpS.Name,Show.Name)==0)&&(strcmp(TmpS.ps,Show.ps)==0))
  62.         {
  63.             printf("nlogin successful!n");
  64.             success=1;
  65.             /*判断权限,如power的值为1,则是家长,
  66.             并调用家长功能选择界面*/
  67.             if(Show.power==1)
  68.                 {
  69.                 printf("nyour power is administrator!n");
  70.                 Admin();/*调用家长功能选择界面*/
  71.                 }
  72.             /*判断权限,如power的值为0,则是普通家庭成员,
  73.             并调用普通家庭成员功能选择界面*/
  74.             if(Show.power==0)
  75.                 {
  76.                 printf("nyour power is user!n");
  77.                 Guest();/*调用普通家庭成员功能选择界面*/
  78.                 }
  79.         }
  80.     }
  81.     /*如未能成功登录,让用户选择重新登录或退出*/
  82.     if(success==0)
  83.         {
  84.             getchar();/*获取前次输入数据时遗留下来的回车符*/
  85.             printf("nerror user name or password!input again?(y/n)");
  86.             scanf("%c",&relogin);
  87.             if((relogin=='Y')||(relogin=='y'))
  88.                 {
  89.                 printf("you choose input again:n");
  90.                 goto again;}
  91.             else
  92.                 {
  93.                     printf("end program");
  94.                     getch();
  95.                     exit(0);
  96.                 }
  97.         }
  98. }