?? login.c
字號:
/*login.c:家庭成員登錄,判斷登錄名、密碼、權(quán)限,
根據(jù)權(quán)限調(diào)用相應功能選擇界面*/
/*包含家庭成員信息頭文件
包含創(chuàng)建家庭成員信息、增加、刪除、修改、排序的用戶處理程序
包含管理員、普通用戶的功能選擇界面處理程序*/
#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; /*臨時存放家庭成員信息的結(jié)構(gòu)體變量*/
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]='\0';
/*printf("\nname:%s password:%s\n",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);
}
/*循環(huán)讀取文件校驗用戶名和密碼是否正確*/
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;
/*判斷權(quán)限,如power的值為1,則是家長,
并調(diào)用家長功能選擇界面*/
if(Show.power==1)
{
printf("\nyour power is administrator!\n");
Admin();/*調(diào)用家長功能選擇界面*/
}
/*判斷權(quán)限,如power的值為0,則是普通家庭成員,
并調(diào)用普通家庭成員功能選擇界面*/
if(Show.power==0)
{
printf("\nyour power is user!\n");
Guest();/*調(diào)用普通家庭成員功能選擇界面*/
}
}
}
/*如未能成功登錄,讓用戶選擇重新登錄或退出*/
if(success==0)
{
getchar();/*獲取前次輸入數(shù)據(jù)時遺留下來的回車符*/
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);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -