이번에는 ISBN으로 도서 검색과 특정 장르 선택 후 도서 검색과 특정 장르 보기 기능을 구현합시다.
먼저 ISBNㅇ로 도서 검색 기능을 구현하세요.
void App::FindBookByISBN() //ISBN으로 도서 검색 { 먼저 검색할 도서의 ISBN을 입력받으세요. cout<<"검색할 도서의 ISBN:"; string isbn = ehglobal::getstr(); if(bookdic[isbn]==0) {
입력한 ISBN의 도서가 없으면 메시지를 출력하고 종료합니다.
cout<<"없는 도서의 ISBN입니다."<<endl; return; }
도서 정보를 출력하세요.
bookdic[isbn]->View(); }
특정 장르 선택 후 도서 검색을 구현합시다.
void App::FindBookAtAGenre() //특정 장르 선택 후 도서 검색 {
먼저 장르를 선택하세요.
Genre *genre = SelectGenre();
잘못 선택하였으면 메시지를 출력하고 종료합니다.
if(genre == 0) { cout<<"잘못 선택하였습니다."<<endl; return; }
선택한 장르에서 도서 검색 메서드를 호출하세요. 아직 추가하지 않은 메서드입니다.
genre->FindBook(); }
Genre 클래스에 FindBook 메서드를 추가하세요.
class Genre { ...중략... void FindBook()const; };
Genre 클래스에 FindBook 메서드를 구현합시다.
void Genre::FindBook()const {
검색할 도서 구분자를 입력받으세요.
cout<<"장르 내 도서 구분자(1~100):"; int bnum = ehglobal::getnum(); if((bnum<1)||(bnum>100)) {
유효한 도서 구분자가 아니면 메시지를 출력하고 종료하세요.
cout<<"범위를 벗어난 도서 구분자입니다."<<endl; return; }
입력한 도서가 있으면 도서 정보를 출력하세요.
if(books[bnum-1]) { books[bnum-1]->View(); }
입력한 도서가 없으면 메시지를 출력하세요.
else { cout<<"없는 도서입니다."<<endl; } }
이제 특정 장르 보기 기능을 구현합시다.
void App::ViewAGenre() //특정 장르 보기 {
장르를 선택합니다.
Genre *genre = SelectGenre(); if(genre == 0) {
잘못 선택하였으면 메시지를 출력하고 종료합니다.
cout<<"잘못 선택하였습니다."<<endl; return; }
장르의 ViewAll 메서드를 호출하여 장르 정보 및 장르 내 보관 도서 정보를 출력합니다.
genre->ViewAll(); }