login.c
上传用户:tamljx
上传日期:2021-06-04
资源大小:60k
文件大小:3k
- /*login.c:家庭成员登录,判断登录名、密码、权限,
- 根据权限调用相应功能选择界面*/
- /*包含家庭成员信息头文件
- 包含创建家庭成员信息、增加、删除、修改、排序的用户处理程序
- 包含管理员、普通用户的功能选择界面处理程序*/
- #include "user.h"
- /*家庭成员(即用户)信息头文件,如用户名、密码等*/
- #include "cuser.c"
- /*初始化家庭成员信息文件,赋以用户名、密码等供登录使用、校验*/
- #include "admin.c"
- /*家长(即管理员)功能选择界面*/
- #include "guest.c"
- /*普通家庭成员功能选择界面*/
- #include "adduser.c"
- /*添加家庭成员(即用户)信息*/
- #include "deluser.c"
- /*删除家庭成员信息*/
- #include "sunum.c"
- /*按家庭成员序号排序浏览*/
- #include "munum.c"
- /*按家庭成员序号修改信息*/
- int main()
- {
- FILE *fp = NULL;
- user Show;
- user TmpS; /*临时存放家庭成员信息的结构体变量*/
- char DataFile[40] = "yonghu";/*存放家庭成员信息的文件名为yonghu*/
- int i;
- char relogin; /*是否重新登录的标志*/
- int success=0; /*登录成功的标志*/
- /*CreatUser();*/
- printf("#===========================================================#n");
- printf("# Welcome to the Family Financial Management System! #n");
- printf("#===========================================================#n");
- again:
- /*输入用户名*/
- printf("please enter the user name:");
- scanf("%s",TmpS.Name);
- /*输入密码,用不带回显的方式保证安全性*/
- printf("password=");
- for(i=0;i<6;i++)
- {
- TmpS.ps[i]=getch();
- }
- TmpS.ps[6]=' ';
- /*printf("nname:%s password:%sn",TmpS.Name,TmpS.ps);*/
- /*打开yonghu文件,用来验证用户名和密码*/
- fp=fopen(DataFile,"rb");
- /*当打开文件失败时提示*/
- if (fp == NULL)
- {
- printf("nOpen file%sfail!End with any key n",DataFile);
- perror("Open file fail");
- getch();
- exit(1);
- }
- /*循环读取文件校验用户名和密码是否正确*/
- while(fread(&Show,sizeof(user),1,fp) != (int)NULL)
- {
- /*如果通过验证,则将success成功登录标记设为1*/
- if((strcmp(TmpS.Name,Show.Name)==0)&&(strcmp(TmpS.ps,Show.ps)==0))
- {
- printf("nlogin successful!n");
- success=1;
- /*判断权限,如power的值为1,则是家长,
- 并调用家长功能选择界面*/
- if(Show.power==1)
- {
- printf("nyour power is administrator!n");
- Admin();/*调用家长功能选择界面*/
- }
- /*判断权限,如power的值为0,则是普通家庭成员,
- 并调用普通家庭成员功能选择界面*/
- if(Show.power==0)
- {
- printf("nyour power is user!n");
- Guest();/*调用普通家庭成员功能选择界面*/
- }
- }
- }
- /*如未能成功登录,让用户选择重新登录或退出*/
- if(success==0)
- {
- getchar();/*获取前次输入数据时遗留下来的回车符*/
- printf("nerror user name or password!input again?(y/n)");
- scanf("%c",&relogin);
- if((relogin=='Y')||(relogin=='y'))
- {
- printf("you choose input again:n");
- goto again;}
- else
- {
- printf("end program");
- getch();
- exit(0);
- }
- }
- }