8.5 도서 검색 및 특정 장르 보기
이번에는 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;
};
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();
}
'언어 자료구조 알고리즘 > [C++]디딤돌 자료구조와 알고리즘' 카테고리의 다른 글
9.1 힙 정렬 알고리즘 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
---|---|
9. 기타 이진 트리 및 분할 정복 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
8.7 장르별 도서 관리 프로그램 코드[디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
8.6 도서 삭제 및 소멸 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
8.6 도서 삭제 및 소멸 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
8.4 전체 도서 보기 및 전체 보기 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
8.3 도서 추가 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
8.2 장르 추가 및 전체 장르 보기 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
8. STL 실습 - 장르별 도서 관리 프로그램 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |
7.5 STL의 map 사용 [디딤돌 자료구조와 알고리즘 with C++] (0) | 2016.04.04 |