#define _CRT_SECURE_NO_WARINGS

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <string.h>

#include <conio.h>



typedef struct person

{

char Name[20];

int AGE;

char ID[20];

char PW[20];

}PI;


void Input(PI *pMember,int *count); // 1번

void Output(PI *pMember,int *cont); // 2번

void FileSave(PI *pMember, int *count); //3번

void FileRead(PI *pMember,int *count); //4번 

void Login(PI *pMember); // 5번

//6번


//──────────────────────────────────────────────────────────────


void main()

{

int check;

int count=0;


printf("회원 수 입력 하세요");

scanf("%d",&count);


PI *member=(PI *)malloc(count*sizeof(PI) );


for(;;)

{

printf("1.회원 입력 | 2.회원 출력 | 3. 파일 저장 | 4. 파일 출력 | 5.로그인 | 7.종료\n\n");

scanf("%d",&check);


if(check==1)// 회원 입력

{Input(member,&count);}

else if (check==2)// 회원 출력

{Output(member,&count);}

else if (check==3) // 파일 저장

{FileSave(member,&count);}

// else if (check==4) // 파일 정보 출력

// {--}

else if (check==5) // 로그인

{Login(member);}

else if (check==7)

{break;} // 종료

}

}

//──────────────────────────────────────────────────────────────




//──────────────────────────────────────────────────────────────

void Input(PI *pMember,int *count)

{

int i;

for(i=0;i<*count;i++)

{

printf("\n이름을 입력하세요 : \n");

scanf("%s", pMember[i].Name);getchar();

printf("나이를 입력하세요 : \n");

scanf("%d", &pMember[i].AGE);getchar();

printf("아이디를 입력하세요 : \n");

scanf("%s", pMember[i].ID);getchar();

printf("패스워드를 입력하세요 : \n");

scanf("%s", &pMember[i].PW);getchar();

}

}

//──────────────────────────────────────────────────────────────




//──────────────────────────────────────────────────────────────

void Output(PI *pMember,int *count)

{

int i;

for(i=0;i<*count;i++)

{

printf("이름 : %s \n", pMember[i].Name);

printf("나이 : %d \n", pMember[i].AGE);

printf("아이디 : %s \n", pMember[i].ID);

printf("패스워드 : **** \n\n", &pMember[i].PW);

}

}

//──────────────────────────────────────────────────────────────




//──────────────────────────────────────────────────────────────

void Login(PI *pMember)

{

int i;

int IDCheck = 0;

int PassCheck = 0;

int LogCheck = 0;

person Log;


printf("입력하세요. 아이디\n");

scanf("%s",Log.ID);

printf("입력하세요. 비밀번호\n");

scanf("%s",Log.PW);

for(i=0;i<3;i++)

{

if(0==strcmp(Log.ID,pMember[i].ID))

{IDCheck = 1;}


if((strcmp(Log.PW,pMember[i].PW) ==0) && (0== strcmp(Log.ID,pMember[i].ID)) )

{PassCheck = 1;}


if((IDCheck==1)&&(1==PassCheck))

{LogCheck = 1;}

}


if(0==IDCheck)

{printf("아이디가 맞지 않습니다.\n");}

else if(0==PassCheck)

{printf("비밀번호가 맞지 않습니다.\n");}

else if(1==LogCheck)

{printf("로그인 성공!\n");}

}

//──────────────────────────────────────────────────────────────



//──────────────────────────────────────────────────────────────

void FileSave(PI *pMember,int *count)

{

FILE *pFile = fopen("..\\data.txt","wb");

if (pMember==NULL)

{printf("파일을 생성하지 못함\n");}

else 

{

fwrite(pMember, sizeof(PI),*count,pFile);

fclose(pFile);

printf("저장 되었습니다\n");

}

}

//──────────────────────────────────────────────────────────────



//──────────────────────────────────────────────────────────────

void FileRead(PI *pMember,int *count)

{

int i;

FILE *pFile = fopen("..\\data.txt","rb");

if (pMember==NULL)

{printf("파일이 없음\n");}

else

{

fread(pMember, sizeof(PI),*count,pFile);

fclose(pFile);

}


for(i=0;i<*count;i++)

{

printf("i번 회원 이름 : %s\n",i,pMember[i].Name);

printf("i번 회원 나이 : %d\n",i,pMember[i].AGE);

}



}

//──────────────────────────────────────────────────────────────



머가 문제애여...