#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef struct book{//book 구조체
 long long int ISBN;
    int booknum;
 char bookname[100];
 char from[100];
 char composer[50];
 char have[200];
 char can;
 struct book * blink;
}Book;

void del_book();

Book * Bookarrange(){                                         //book linkedlist 짜기
 Book * bhead=NULL, *btmp=NULL, *btmp2=NULL;
 FILE * bf =fopen(\"book.txt\",\"rt\");
 btmp= bhead =btmp2=(Book *)malloc(sizeof(Book));
 while(fscanf(bf,\"%lld|%d|%[^|]|%[^|]|%[^|]|%[^|]|%c\\n\",&(btmp->ISBN),&(btmp->booknum),btmp->bookname,btmp->from,btmp->composer,btmp->have,&(btmp->can))!=EOF){
  btmp -> blink = (Book *)malloc(sizeof(Book));
  btmp2 = btmp;
  btmp = btmp->blink;
 }
 btmp2 -> blink=NULL;
 free(btmp);
 fclose(bf);
 return bhead;
}

int main(){
 del_book();
 return 0;
}

void del_book(){
 int num;
 char bookname[50];
 long long int ISBN;
 int books=-1;
 int delete;
 Book *del[100]={NULL};
 Book *head=NULL,*b=NULL,*tmp=NULL;
 printf(\"\\n>> 도서 삭제 <<\\n\");
 printf(\"1. 도서명 검색          2. ISBN 검색\\n\");
 printf(\"\\n검색번호를 입력하세요 : \");
 scanf(\"%d\",&num);
 getchar();
 if(num==1){
  printf(\"도서명을 입력하세요 : \");
  scanf(\"%[^\\n]\",bookname);getchar();/////////요부분 도서명을 입력하고나면.....가만이 깜빡깜빡만하고 진행이 되지 않아요 ㅠㅠ
  b=tmp=Bookarrange();
  while(tmp->blink!=NULL){
   if(strcmp(bookname,b->bookname)==0){
    books++;
    del[books]=b;
   }
   tmp=b;
   b->blink;
  }
 }
 else{
  printf(\"ISBN을 입력하세요 : \");
  scanf(\"%lld\",&ISBN);getchar();
  b=tmp=Bookarrange();
  while(tmp->blink!=NULL){
   if(strcmp(bookname,b->bookname)==0){
    books++;
    del[books]=b;
   }
   tmp=b;
   b->blink;
  }
 }
 
 printf(\">> 검색 결과 <<\");
 printf(\"도서번호 : \");
 int k=0;
 for(k=0;k<books;k++){
  printf(\"%d(삭제 가능여부 : %c) \",del[k]->booknum,del[k]->can);}
 printf(\"도서명 : %s\\n\",b->bookname);
 printf(\"출판사 : %s\\n\",b->from);
 printf(\"저자명 : %s\\n\",b->composer);
 printf(\"ISBN : %lld\\n\",b->ISBN);
 printf(\"소장처 : %s\\n\",b->have);
 printf(\"\\n삭제할 도서의 번호를 입력하세요:\");
 scanf(\"%d\",&delete);
 int i=0;
 while(del[i]->booknum!=delete){
  i++;}
 if(del[i]->can==\'Y\'){
  head=tmp=b=Bookarrange();
  while(tmp->blink!=NULL){
   if(del[i]->booknum==b->booknum){
    tmp->blink=b->blink;
    b->blink=NULL;
    free(b);}
  }
  tmp=b=head;
  FILE * f=fopen(\"book.txt\",\"wt\");
  while(tmp->blink!=NULL){
   fprintf(f,\"%lld|%d|%s|%s|%s|%s|%c\\n\",b->ISBN,b->booknum,b->bookname,b->from,b->composer,b->have,b->can);
   tmp=b;
   b=b->blink;
  }
  fclose(f);
  printf(\"도서가 삭제 되었습니다.\");}
 else
  printf(\"이 도서는 삭제 할 수 업습니다.\");
}