#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct regis //책 등록
{
char name[100]; //책 제목
char person[100]; //저자
char position[100]; //위치
}regis[300]; //300개 책등록가능
struct member //회원등록
{
char name1[20]; //이름
char grade[20]; //학년
} member[100]; //100명 회원등록가능
int size=0; //파일에서 데이터 불러올때 씀
int i=0;
void prog(); //프로그램 메인
void add(); //책등록
void list(); //책 목록
void memberadd(); //회원등록
void revise(); //수정
void del(); //삭제
int main(void)
{
prog();
}
void prog() //프로그램 메인
{
int a=0;
while(1) //무한 반복 루프
{
printf("\n\n ======UBS 도서 관리 프로그램======\n\n\n");
printf("\t메뉴 \n\n");
printf("\t1. 책등록 \n");
printf("\t2. 책 검색 \n");
printf("\t3. 회원 등록 \n");
printf("\t4. 회원 수정 \n");
printf("\t5. 삭제 \n");
printf("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ\n");
printf("\t원하는 목록를 입력하세요 : ");
scanf("%d", &a); //원하는 목록
if(a>5) //목록에 없는 숫자를 눌렸을때
{
printf("목록이 없습니다.\n");
do
{
printf("다시 원하는 숫자를 입력하세요 : ");
scanf("%d", &a);
}while (a>5);
}
switch(a) //원하는 목록으로 들어갈때
{
case 1 :
add();
break;
case 2 :
list();
break;
case 3 :
memberadd();
break;
case 4 :
revise();
break;
case 5 :
del();
break;
}
}
}
void add() //책등록
{
system("cls");
printf("등록 권수 : ");
scanf("%d", &size);
for(i=1; i<=size; i++)
{
FILE *re = fopen("reg.txt", "at"); //데이터 추가
printf("1. 책 등록\n");
printf("책 제목 : ");
scanf("%s", regis[i].name);
printf("저자 : ");
scanf("%s", regis[i].person);
printf("위치 : ");
scanf("%s", regis[i].position);
fprintf(re, "%s\t%s\t%s\n", regis[i].name, regis[i].person, regis[i].position); //텍스트에 저장
fclose(re); //데이터 추가 끝
system("cls"); //화면창만 지움
}
}
void list() //책 목록
{
FILE *re = fopen("reg.txt", "r");
system("cls");
if(re==NULL)
{
printf("ERROR!");
}
while(!feof(re)) //파일의 끝을 확인 하는 문구
{
fscanf(re,"%d %s %s %s %d\n", regis[i].name, regis[i].person, regis[i].position);
i++;
for(i=1; i<=size; i++)
{
printf("책 제목 : %s\n", regis[i].name);
printf("저자 : %s\n", regis[i].person);
printf("위치 : %s\n", regis[i].position);
printf("아무키나 눌러주세요.");
break;
}
}
fclose(re);
}
void memberadd() //회원 등록
{
int j=0;
int a=0;
FILE *me = fopen("member.txt", "at"); //데이터 추가
printf("이름 : ");
scanf("%s", member[j].name1);
printf("학년 : ");
scanf("%s", member[j].grade);
fprintf(me, "%s\t%s\n", member[j].name1, member[j].grade); //텍스트에 저장
fclose(me); //데이터 추가 끝
printf("아무키나 눌러주세요.==>");
scanf("%d", a);
system("cls"); //화면창만 지움
}
void revise() //회원 수정
{
char *memre;
int i;
int j;
char name2[100];
char grade1[100];
FILE *re = fopen("member.txt", "r");
while(!feof(re))
{
fscanf(re, "%s %s", member[i].name1, member[i].grade);
}
fclose(re);
re = fopen("member.txt", "wt");
printf("회원 이름 : ");
scanf("%s", memre);
for(i=0; i<size; i++)
{
if (strcmp(member[i].name1, memre) == 0)
{
printf("이름 : %s\t학년 : %s", member[i].name1, member[i].grade);
printf("이름 : ");
scanf("%s", name2);
strcpy(member[i].name1, name2);
printf("이름 : ");
scanf("%s", grade1);
strcpy(member[i].grade, grade1);
}
}
for(j=0; j<size; j++)
{
fprintf(re, "%s %s\n", member[i].name1, member[i].grade);
}
system("cls");
}
void del() //삭제
{
char delbook = 0;
char name1 = NULL;
char person1 = NULL;
char position1 = NULL;
int i;
FILE *re = fopen("reg.txt", "r");
while (!feof(re))
{
fscanf(re, "%s %s %s", regis[i].name, regis[i].person, regis[i].position);
}
fclose(re);
re = fopen("reg.txt", "wt");
printf("삭제할 책 제목을 입력하세요 : ");
scanf("%s", delbook);
for(i=1;i<size;i++)
{
if(strcmp(delbook,regis[i].name)==0)
{
strcpy(name1, regis[i].name);
strcpy(person1, regis[i].person);
strcpy(position1, regis[i].position);
printf("삭제되었습니다.\n");
}
}
system("cls");
}
여기서 제가 안되는거는요
텍스트파일에 저장되어있는 리스트 안불러와져요....
그리고 삭제 부분이 빌드가 안되고요...
삭제부분에서 중복된 도서가 있으면 중복된도서중 한권만 삭제되고 만들어주시면 감사해요~~~
다른곳도 갠찬게했는지 봐주세요~~~
조까