언어 자료구조 알고리즘/디딤돌 C언어

[C language] 108.도서 관리 프로그램-도서 목록

언제나휴일 2016. 4. 24. 16:58
반응형



도서 관리 프로그램 - 도서 목록.zip


특정 장르 도서 목록 보기에서는 먼저 장르 목록을 보여주고 최종 사용자가 장르를 선택하게 하세요.
부분은 도서 추가 부분을 참고하세요.
그리고 선택한 장르의 모든 도서 정보를 보여주는 함수를 호출하기로 해요.

도서 관리 프로그램-도서 목록 시퀀스 다이어그램

먼저 Book View 함수를 구현하세요.
Genre
에서 호출해서 사용하므로 Book 헤더 파일에 선언문을 작성하고 소스 파일에 함수를 구현하세요.
void BookView(Book *book)
{
    printf(
"제목:%s\n",book->title);
    printf(
"\t도서번호:%d 저자명:%s\n",book->bnum,book->author);
}

Genre
ViewAll 구현하세요.
App
에서 호출해서 사용하므로 Genre 헤더 파일에 선언문을 작성하고 소스 파일에 구현하세요.
ViewAll
함수에서는 먼저 자신의 정보를 출력하는 View 함수를 호출하세요.
그리고 배열에 보관하고 있는 모든 도서를 순차적으로 얻어와서 도서 정보를 출력하는 Book View 함수를 호출하세요.
void GenreViewAll(Genre *genre)
{
    Iterator seek= EHArrayBegin(genre->books);
    Iterator end= EHArrayEnd(genre->books);
    Book *sbook=0;
    GenreView(genre);
   
for(  ;seek != end; ++seek)
    {
        sbook = (Book *)(*seek);
        BookView(sbook);
    }
}
 
App
특정 장르 도서 보기를 구현하세요.
여기에서는 장르를 선택한 후에 선택한 장르의 ViewAll 함수를 호출하세요.
장르를 선택하는 부분은 도서 추가와 같은 논리예요.
void AppListBookAtGenre(App *app)
{
   
char gname[MAX_GNAME_LEN+1]="";
    Iterator seek = 0;
    Genre *genre = 0;
    AppListGenre(app);
    printf(
"도서 목록을 확인할 장르명을 입력하세요.\n");
    gets_s(gname,MAX_GNAME_LEN);
    seek = AppFindGenre(app,gname);
   
if(seek == EHArrayEnd(app->genres))
    {
        printf(
"잘못 선택하였습니다.\n");
       
return;
    }
    genre = (Genre *)(*seek);
    GenreViewAll(genre);
}


반응형