도서 제목으로 검색 기능은 검색에 사용한 키가 도서 번호 대신 도서 제목으로 변경한 것 말고는 차이가 없어요.
Book 헤더 파일에 도서 제목을 반환하는 함수를 선언하고 소스 파일에 구현하세요.
const char
*BookGetTitle(Book *book)
{
return book->title;
}
Genre 헤더 파일에 도서 제목으로 도서 검색 함수를 선언하고 소스 파일에 구현하세요.
Book *GenreFindBookByTitle(Genre *genre,const char
*title)
{
Iterator seek;
Iterator end;
Book *book=0;
const char *stitle = 0;
seek= EHArrayBegin(genre->books);
end= EHArrayEnd(genre->books);
GenreView(genre);
for( ;seek != end; ++seek)
{
book = (Book
*)(*seek);
stitle =
BookGetTitle(book);
if(strcmp(stitle,title)==0)
{
return book;
}
}
return 0;
}
App에 도서 제목으로 검색 기능도 구현하세요.
도서 번호로 검색과 큰 차이가 없으므로 설명은 생략할게요.
void
AppFindBookByTitle(App *app)
{
char gname[MAX_GNAME_LEN+1]="";
char title[MAX_TNAME_LEN+1]="";
Iterator seek = 0;
Genre *genre = 0;
Book *book = 0;
AppListGenre(app);
printf("검색할 장르명을 입력하세요.\n");
gets_s(gname,MAX_GNAME_LEN);
seek = AppFindGenre(app,gname);
if(seek == EHArrayEnd(app->genres))
{
printf("잘못 선택하였습니다.\n");
return;
}
printf("도서 제목을 입력하세요.\n");
gets_s(title,MAX_TNAME_LEN);
genre = (Genre *)(*seek);
book =
GenreFindBookByTitle(genre,title);
if(book)
{
BookView(book);
}
else
{
printf("도서를 찾지 못했습니다.\n");
}
}
'언어 자료구조 알고리즘 > 디딤돌 C언어' 카테고리의 다른 글
[c language] 115. 함수 포인터와 콜백 개요 (0) | 2016.04.24 |
---|---|
[c language] 101~114 도서 관리 프로그램 소스 코드 (0) | 2016.04.24 |
[C language] 114. 도서 관리 프로그램 - 로딩 (0) | 2016.04.24 |
[c language] 113. 도서 관리 프로그램 - 저장 (0) | 2016.04.24 |
[C language] 112. 도서 관리 프로그램 - 장르 삭제 (0) | 2016.04.24 |
[C language] 110. 도서 관리 프로그램 - 도서 번호로 검색 (0) | 2016.04.24 |
[C language] 109. 도서 관리 프로그램 - 전체보기 (0) | 2016.04.24 |
[C language] 108.도서 관리 프로그램-도서 목록 (0) | 2016.04.24 |
[C language] 107. 도서 관리 프로그램 - 도서 추가 (0) | 2016.04.24 |
[C language] 106. 도서 관리 프로그램 - 전체 장르 보기 (0) | 2016.04.24 |