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

[C language] 112. 도서 관리 프로그램 - 장르 삭제

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


도서 관리 프로그램 - 장르 삭제

장르 삭제 시퀀스 다이어그램을 작성하기로 해요.
여기에서도 장르를 선택하는 부분까지는 같아요.
장르를 선택하였으면 선택한 장르를 소멸하는 함수를 호출하세요.
그리고 장르를 소멸하는 함수에서는 내부에서 생성하여 배열에 보관한 도서도 소멸해야 하는 것을 잊지 마세요.


도서 관리 프로그램 - 장르 삭제 시퀀스 다이어그램


도서 관리 프로그램 - 장르 삭제.zip


Book 소멸하는 함수는 이미 구현한 것과 차이가 없어요.

Genre
소멸하는 함수에서는 보관한 모든 도서를 소멸하는 부분을 추가하세요.
Genre
에서는 소멸할 해제화 작업을 GenreTGenre에서 수행하므로 함수를 수정하세요.
void GenreTGenre(Genre *genre)
{
    Book *book=0;
    Iterator seek= EHArrayBegin(genre->books);
    Iterator end= EHArrayEnd(genre->books);
   
for(  ;seek != end; ++seek)
    {
        book = (Book *)(*seek);
        DeleteBook(book);
    }
    DeleteEHArray(genre->books);
}
 
App
에서는 장르를 선택하여 Genre 소멸하는 함수를 호출하세요.
그리고 시퀀스 다이어그램에서는 표시하지 않았지만 장르를 보관하는 배열에서 장르를 삭제하세요.
void AppRemoveGenre(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);
    DeleteGenre(genre);
    EHArrayErase(app->genres,seek);
}


반응형