반응형

시퀀스 다이어그램 20

[C++] 76. 최종 실습 - 학생 생성

[C++] 76. 최종 실습 - 학생 생성 이번에는 학생 생성 기능에 관해 시퀀스 다이어그램을 작성하고 난 후에 구체적인 코드를 구현합시다. 시나리오를 보면 먼저 최종 사용자로부터 학생 유형과 이름을 입력받습니다. 그리고 학생 공장에게 학생을 만들어 줄 것을 요청하면 학생 공장에서 학생을 생성하여 반환합니다.이제 이 부분을 구현해 봅시다. 먼저 EhNara 클래스에 학생을 보관할 수 있는 컬렉션을 멤버 필드로 추가하세요.class EhNara:public IComeBack{ ...중략... SeqArray base; ...중략...}; 이제 EhNara 클래스의 멤버 MakeStudent 메서드를 구현합시다. void EhNara::MakeStudent() //학생 생성{최종 사용자가 생성할 학생 유형을..

[C language] 114. 도서 관리 프로그램 - 로딩

먼저 App에서는 파일을 읽기 모드로 열어야겠죠. 그리고 App의 정보를 파일에서 읽어오세요. 다른 물리 매체에 데이터를 선형으로 읽어와 프로그램 데이터가 되는 과정을 역직렬화라고 불러요. 역직렬화 함수에서는 마지막 부여한 장르 번호와 장르 개수를 로딩해야죠. 그리고 파일을 인자로 장르를 만들어 배열에 보관하세요. 파일로부터 장르를 만드는 함수에서는 역직렬화 과정이 필요해요. 장르번호, 장르명, 마지막 부여한 도서 번호를 파일에서 로딩하고 도서 개수를 로딩하세요. 그리고 파일에서 도서 개체를 만들어 배열에 보관하세요. 파일에서 도서 개체를 만드는 함수에서도 역직렬화를 수행하고 작업을 수행한 후에 App에서는 파일을 닫으세요.먼저 파일에서 데이터를 로딩하여 Book 개체를 생성하는 파일을 헤더 파일에 선언..

[c language] 113. 도서 관리 프로그램 - 저장

이번에는 데이터를 파일에 저장하는 기능의 시퀀스 다이어그램을 작성하기로 해요. 먼저 App에서는 파일을 쓰기 모드로 열어야겠죠. 그리고 App의 정보를 파일에 저장해요. 프로그램의 데이터를 다른 물리 매체에 선형으로 보내는 것을 직렬화라고 불러요. 직렬화 함수에서는 마지막 부여한 장르 번호와 배열에 보관한 장르 개수를 저장하세요 그리고 배열에 보관한 장르들의 정보를 파일에 직렬화하세요. 장르의 정보를 직렬화하는 함수에서도 장르번호, 장르명, 마지막 부여한 도서 번호를 파일에 저장하고 배열에 보관한 도서 개수를 저장하세요.그리고 배열에 보관한 모든 장르를 파일에 직렬화하세요. 파일의 정보를 직렬화하는 함수에서는 자신의 정보를 저장하세요. 이와 같은 작업을 완료하면 App에서는 파일을 닫아야겠죠. 먼저 Bo..

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

장르 삭제 시퀀스 다이어그램을 작성하기로 해요. 여기에서도 장르를 선택하는 부분까지는 같아요. 장르를 선택하였으면 선택한 장르를 소멸하는 함수를 호출하세요. 그리고 장르를 소멸하는 함수에서는 내부에서 생성하여 배열에 보관한 도서도 소멸해야 하는 것을 잊지 마세요. Book을 소멸하는 함수는 이미 구현한 것과 차이가 없어요. Genre를 소멸하는 함수에서는 보관한 모든 도서를 소멸하는 부분을 추가하세요. Genre에서는 소멸할 때 해제화 작업을 GenreTGenre에서 수행하므로 이 함수를 수정하세요. void GenreTGenre(Genre *genre) { Book *book=0; Iterator seek= EHArrayBegin(genre->books); Iterator end= EHArrayEnd(..

[C language] 110. 도서 관리 프로그램 - 도서 번호로 검색

이번에는 도서 번호로 검색 시퀀스 다이어그램을 작성해 보아요. 도서 번호로 검색에서도 장르 목록을 보여주고 장르를 선택하게 하세요. 장르를 선택한 후에 도서 번호를 입력하게 하고 장르의 도서 번호로 검색 기능을 호출하세요. 장르의 도서 번호로 검색 기능에서는 장르 내 배열에 보관한 도서 중에 입력한 도서 번호와 일치하는 도서를 찾아 반환하세요. App에서는 반환받은 도서의 정보 출력 함수를 호출하세요. Book 헤더 파일에 도서 번호를 반환하는 함수를 선언하고 소스 파일에 구현하세요. int BookGetNum(Book *book) { return book->bnum; } Gerne 헤더 파일에 번호로 도서 검색 함수를 선언하고 소스에 구현하세요. 배열에 보관한 도서의 번호가 입력받은 도서 번호와 같은지..

[C language] 109. 도서 관리 프로그램 - 전체보기

전체 보기에서는 App의 배열에 보관한 모든 장르를 순차적으로 접근하여 장르의 전체 도서 보기를 호출하세요.전체 보기 기능은 전체 장르 목록 보기와 논리가 대부분 비슷해요.차이가 있는 부분은 보관한 장르의 장르 정보 보기(View)가 아닌 장르 내 전체 도서 보기(ViewAll) 함수를 호출하는 것이죠. void AppListAll(App *app) { Iterator seek= EHArrayBegin(app->genres); Iterator end= EHArrayEnd(app->genres); Genre *genre=0; for( ;seek != end; ++seek) { genre = (Genre *)(*seek); GenreViewAll(genre); } }

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

특정 장르 내 도서 목록 보기에서는 먼저 장르 목록을 보여주고 최종 사용자가 장르를 선택하게 하세요. 이 부분은 도서 추가 부분을 참고하세요. 그리고 선택한 장르의 모든 도서 정보를 보여주는 함수를 호출하기로 해요.먼저 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 헤더 파일에 선언문을 작성하고 소스 파일에 구현하세요. Vi..

[C language] 107. 도서 관리 프로그램 - 도서 추가

이번에는 도서 추가 시퀀스 다이어그램을 작성하기로 해요. 도서 추가에서는 먼저 모든 장르 정보를 보여주게 하세요. 장르를 선택하고 도서 제목과 작가 이름을 입력받아 도서를 생성한 후에 선택한 장르에 도서를 추가해야겠죠. 장르에서는 새로운 장르를 생성하여 장르에 도서를 보관하게 하세요.먼저 Book 헤더에 동적으로 도서를 생성하는 함수와 소멸하는 함수를 선언하고 소스에 구현하세요. 동적으로 Book 개체를 생성하는 함수에서는 동적으로 Book 형식 크기의 메모리를 할당받으세요. 할당받은 메모리를 초기화하고 반환하세요. void BookBook(Book *book,int bnum,const char *title,const char *author); Book *NewBook(int bnum,const char..

[C language] 106. 도서 관리 프로그램 - 전체 장르 보기

이번에는 전체 장르 보기에 관한 시퀀스 다이어그램을 작성하기로 해요. 전체 장르 보기에서는 App에 보관한 모든 장르를 순차적으로 탐색하여 각 장르의 정보를 출력하면 되겠죠.먼저 Genre에 View 함수를 제공하기로 해요. View 함수에서는 장르 번호와 이름을 출력하게 하세요. void GenreView(Genre *genre) { printf("장르 번호:%d 장르 이름:%s\n",genre->gnum,genre->name); } App 소스에서는 Iterator 이용하여 배열에 보관한 장르를 하나씩 얻어와서 Genre의 View함수를 호출하세요. void AppListGenre(App *app) { Iterator seek= EHArrayBegin(app->genres); Iterator end=..

[C language] 105. 도서 관리 프로그램 - 장르 추가

이제 유즈케이스별로 각 기능을 어떠한 흐름으로 수행해야 하는지 생각해 보기로 해요. 여기서는 최종 사용자, App, Genre, Book사이에 주고 받을 흐름만 정의할게요. 먼저 장르 추가 기능의 시퀀스를 정의해 보세요. 장르 추가 기능에서는 Program에서 최종 사용자에게 추가할 장르 이름을 입력할 것을 요청하게 하세요. 최종 사용자가 장르 이름을 입력하면 Program에서는 같은 이름의 장르가 있는지 확인하겠죠. 그리고 없을 때 장르를 생성하게 하세요. App에서는 Genre에서 제공하는 GetName 기능과 장르를 생성하는 NewGenre 기능을 사용하고 있어요. 따라서 이 두 함수는 Genre에서 제공하세요. New 함수를 제외한 나머지 함수 이름은 형식명으로 시작하고 첫 번째 인자는 형식 포인..

반응형