장르 삭제 시퀀스 다이어그램을 작성하기로 해요.
여기에서도 장르를 선택하는 부분까지는 같아요.
장르를 선택하였으면 선택한 장르를 소멸하는 함수를 호출하세요.
그리고 장르를 소멸하는 함수에서는 내부에서 생성하여 배열에 보관한 도서도 소멸해야 하는 것을 잊지 마세요.
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);
}
'언어 자료구조 알고리즘 > 디딤돌 C언어' 카테고리의 다른 글
[c language] 116. 함수 포인터 (0) | 2016.04.24 |
---|---|
[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] 111. 도서 관리 프로그램 - 제목으로 검색 (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 |