좀 알려줘 형님들 부탁이ㅑ
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <process.h>
#define MAX 100
void printMenu(void);
void InsertMenber(void);
void Search(void);
void Edit(void);
void Delete(void);
void Printer(void);
void Exit(void);
void save(void);
void login(void);
void sort(void);
struct member
{
char name[20]; //여기서 회원번호는 뺐습니다. printf함수 쓸 때 그냥 구조체 배열번호를 이용합니다
char phone[15];
int results;
char grade;
int cnt;
};
struct member group[MAX];
int cnt;
int main(void)
{
int p;
while(1)
{
printMenu();
printf("원하는 번호를 선택하세요 : ");
scanf("%d", &p);
switch(p){
case 1: InsertMenber();
break;
case 2: Search();
break;
case 3: Edit();
break;
case 4: Delete();
break;
case 5: Printer();
break;
case 6: sort();
break;
case 7: login();
break;
case 8: save();
break;
case 9: Exit();
break;
}
}
}
void printMenu()
{
printf("*******MENU*******\n");
printf("***1.회원 등록***\n");
printf("***2.회원 검색***\n");
printf("***3.회원 수정***\n");
printf("***4.회원 삭제***\n");
printf("***5.전체 출력***\n");
printf("***6.정 렬***\n");
printf("***7.불러 오기***\n");
printf("***8.저장 하기***\n");
printf("***9.종 료***\n\n");
}
void InsertMenber()
{
char fname[] = "information.txt"; // p.608
int i;
FILE *f;
group;
if ( (f = fopen(fname, "w")) == NULL) // C언어 입문 p.402
{ //주소 , 모드
printf("파일이 열리지 않습니다.\n");
return;
}
printf("\n[회원 등록]\n");
printf("아이디를 입력하세요 : ");
scanf("%s",group[cnt].name);
for(i=0 ; i<cnt; i++)
{
while(strcmp(group[i].name,group[cnt].name)==0)
{
printf("이미 등록된 회원입니다.\n\n");
printf("아이디를 다시 입력해주세요 : ");
scanf("%s",group[cnt].name);
}
}
while(strlen(group[cnt].name)<4)
{
printf("아이디는 4글자 이상이여야됩니다\n");
printf("아이디를 다시 입력해주세요 : ");
scanf("%s",group[cnt].name);
}
printf("비밀번호를 입력하세요: ");
scanf("%s", group[cnt].phone);
while(strlen(group[cnt].phone)<4)
{
printf("비밀번호는 4글자 이상이여야됩니다\n");
printf("비밀번호를 다시 입력해주세요: ");
scanf("%s", group[cnt].phone);
}
fflush(stdin);
printf("\n");
cnt++;
fprintf(f, "%d\n", cnt);
for (i=0; i<cnt;i++)
{
fprintf(f, "%s %s\n",group[i].name, group[i].phone);
} //파일 출력형식 지정함수
fclose(f);
}
void Search()
{
char ch[20];
int i;
printf("[회원 검색]\n");
printf("검색할 아이디 입력: ");
scanf("%s", ch);
printf("검색 결과\n");
for(i=0; i<cnt; i++)
{
if(strcmp(group[i].name,ch)==0)
{
printf("%d. name: %s / Password: %s \n", i+1, group[i].name, group[i].phone);
return;
}
}
printf("%s님은 회원으로 등록하지 않으셧습니다\n\n",ch);
}
void Edit()
{
int n;
printf("[회원 수정]\n"); // 회원수정은 덮어쓰기 형식입니다. , n-1 은 배열이 0부터 저장되기 때문입니다.
printf("수정할 회원 비밀번호 입력: ");
scanf("%d", &n);
printf("회원 아이디 : ");
scanf("%s", group[n-1].name);
fflush(stdin);
printf("회원 비밀번호 : ");
scanf("%s", group[n-1].phone);
fflush(stdin);
}
void Delete() // 삭제의 경우 NULL값을 대입해서 데이터 값을 없애는 형식으로 만들었습니다.
{
int i,k=0;
printf("[회원 등록]\n");
printf("회원 id : ");
scanf("%s",group[cnt].name);
for(i=0 ; i<cnt ; i++)
{
if(strcmp(group[i].name,group[cnt].name)==0)
{
for(k=0; k<sizeof(group[i].name); k++)
{
group[i].name[k]='\0';
}
for(k=0; k<sizeof(group[i].phone); k++)
{
group[i].phone[k]='\0';
group[i].results='\\\\0'; // 0으로 남아있음
group[i].grade='\\\\0';
}
printf("회원정보가 모두 삭제되었습니다.\n\n");
return;
}
}
printf("회원정보가 존재하지 않습니다.\n\n");
}
void Printer()
{
int i;
printf("[전체 출력]\n");
for(i=0; i<cnt; i++)
{
printf("%d. name: %s / Tel: %s / resluts: %d / grade: %c\n\n", i+1, group[i].name, group[i].phone, group[i].results, group[i].grade);
}
}
void Exit()
{
char fname[] = "information.txt"; // p.608
int i;
FILE *f;
group;
if ( (f = fopen(fname, "w")) == NULL) // C언어 입문 p.402
{ //주소 , 모드
printf("파일이 열리지 않습니다.\n");
return;
}
fprintf(f, "%d\n", cnt);
for (i=0; i<cnt;i++)
{
fprintf(f, "%s %s %d %c\n",group[i].name, group[i].phone, group[i].results, group[i].grade);
} //파일 출력형식 지정함수
fclose(f);
printf("[종료]\n");
printf("프로그램을 종료합니다.\n");
printf("프로그램의 내용은 자동으로 저장됩니다.\n");
exit(1);
}
void login()
{
char fname[] = "information.txt"; // p.608
char id[20];
int i;
FILE *f;
group;
if ( (f = fopen(fname, "r")) == NULL) // C언어 입문 p.402
{ //주소 , 모드
printf("파일이 열리지 않습니다.\n");
return;
}
fscanf(f, "%d", &cnt);
printf("ID를 입력하세요: ");
scanf("%s",id);
for (i=0; i<cnt;i++)
{
fscanf(f, "%s\n",group[i].name);
while(strcmp(id,group[i].name)!=0)
{
printf("존재하지 않는 ID입니다. ID를 다시입력해주세요\n");
printf("ID를 입력하세요: ");
scanf("%s",id);
} //파일 출력형식 지정함수
}
fclose(f);
}
void save()
{
char fname[] = "information.txt"; // p.608
int i;
FILE *f;
group;
if ( (f = fopen(fname, "w")) == NULL) // C언어 입문 p.402
{ //주소 , 모드
printf("파일이 열리지 않습니다.\n");
return;
}
fprintf(f, "%d\n", cnt);
for (i=0; i<cnt;i++)
{
fprintf(f, "%s %s %d %c\n",group[i].name, group[i].phone, group[i].results, group[i].grade);
} //파일 출력형식 지정함수
fclose(f);
}
void sort()//정렬함수
{
int i,j;
int temp;
for(i=0 ; i<cnt-1 ; i++)
{
for(j=i+1; j<cnt ; j++)
{
if( group[i].results > group[j].results)
{
temp = group[i].results;
group[i].results=group[j].results;
group[j].results=temp;
}
}
}
for(i=0; i<cnt ; i++)
{
printf("%d. name: %s / Tel: %s / resluts: %d / grade: %c\n\n", i+1, group[i].name, group[i].phone, group[i].results, group[i].grade);
}
}
댓글 0