반응형

언어 자료구조 알고리즘/[C++]디딤돌 자료구조와 알고리즘 72

8.7 장르별 도서 관리 프로그램 코드[디딤돌 자료구조와 알고리즘 with C++]

8.7 장르별 도서 관리 프로그램 코드 다음은 이번 실습에서 작성한 장르별 도서 관리 프로그램의 소스입니다. //ehglobal.h#pragma once#pragma warning(disable:4996)#include #include using namespace std; #include #include enum keydata{ NO_DEFINED,F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,ESC}; //공통적으로 사용할 정적 메서드를 캡슐화한 클래스class ehglobal{public: static void clrscr();//화면을 지우는 메서드 static void timeflow(int millisecond); //원하는 시간동안 지연시키는 메서드 static int getnum()..

8.5 도서 검색 및 특정 장르 보기 [디딤돌 자료구조와 알고리즘 with C++]

8.5 도서 검색 및 특정 장르 보기이번에는 ISBN으로 도서 검색과 특정 장르 선택 후 도서 검색과 특정 장르 보기 기능을 구현합시다. 먼저 ISBNㅇ로 도서 검색 기능을 구현하세요.void App::FindBookByISBN() //ISBN으로 도서 검색{먼저 검색할 도서의 ISBN을 입력받으세요. cout

8.4 전체 도서 보기 및 전체 보기 [디딤돌 자료구조와 알고리즘 with C++]

8.4 전체 도서 보기 및 전체 보기이번에는 전체 도서 보기와 전체 보기 기능을 구현합시다. 앞에서 도서 추가 기능을 구현하였는데 이를 확인할 수 있기 때문에 먼저 구현하는 것이 개발하기 편합니다. 먼저 정체 도서 보기 기능을 구현합시다.void App::ListBook() //전체 도서 보기{isbn을 키, 도서 개체를 값으로하는 bookdic의 반복자를 이용하여 전체를 순회합니다. BDIter seek = bookdic.begin(); BDIter last = bookdic.end(); Book *book=0; for( ;seek != last; ++seek) {map에 보관한 것은 isbn키와 도서 개체를 값으로 하는 pair입니다. 도서 개체를 구하려면 반복자에 간접 연산하여 보관한 pair에 접..

8.3 도서 추가 [디딤돌 자료구조와 알고리즘 with C++]

8.3 도서 추가이번에는 도서 추가 기능을 구현합시다. void App::AddBook() //도서 추가{먼저 추가할 도서의 ISBN을 입력받습니다. coutGetGNum() == gnum) {장르의 번호와 사용자가 입력한 장르 번호가 같으면 장르를 반환하세요. return genre; } }사용자가 입력한 장르 번호를 갖는 장르 개체가 없으면 0을 반환하세요. return 0;} Genre 클래스에 도서 추가 AddBook 메서드와 장르 번호 접근자 GetGNum을 추가하세요.class Genre{ ...중략... Book *AddBook(string isbn); int GetGNum()const;}; Book *Genre::AddBook(string isbn){사용자에게 장르 내 도서 구분자를 입력받..

8.2 장르 추가 및 전체 장르 보기 [디딤돌 자료구조와 알고리즘 with C++]

8.2 장르 추가 및 전체 장르 보기이번에는 장르 추가 및 전체 장르 보기를 구현합시다. 시나리오를 보면 장르 추가에서 장르의 일련 번호는 1부터 순차 부여합니다. 이를 위해 App 개체는 가장 최근에 생성한 장르 번호를 기억하고 있어야 합니다. 멤버 필드로 가장 최근에 장르 번호를 추가하세요.class App{ ...중략... int last_gnum; ...중략...}; App 생성자에서는 last_gnum을 초기값을 설정하세요.App::App(void){ last_gnum = 0;}void App::AddGenre() //장르 추가{장르 추가에서는 부여할 장르 번호를 위해 last_gnum을 1 증가하세요. last_gnum++;사용자로부터 추가할 장르 이름을 입력받습니다. cout

8. STL 실습 - 장르별 도서 관리 프로그램 [디딤돌 자료구조와 알고리즘 with C++]

8. STL 실습 - 장르별 도서 관리 프로그램 이번 장에서는 STL에서 제공하는 vector, list, map을 사용하여 장르별 도서 관리 프로그램을 만들어 보아요. 실습할 프로그램에서는 도서를 장르별로 관리합니다. 장르에 도서는 vector를 이용하여 보관합니다. 응용에서는 장르를 list에 보관합니다. 그리고 App에는 모든 도서를 isbn(문자열 형식으로 정의)을 키로 값을 도서인 map에 보관합시다. 주의할 점은 하나의 도서 개체를 장르와 App에 보관할 것입니다. 똑같은 정보를 갖는 두 개의 도서 개체를 만들어서 보관할 것이 아님을 주의합시다. 시나리오는 다음과 같습니다. 주제: 장르별 도서 관리 프로그램장르별 도서 관리 프로그램은 콘솔에서 동작하는 응용 프로그램입니다. 프로그램은 크게 초기..

7.5 STL의 map 사용 [디딤돌 자료구조와 알고리즘 with C++]

7.5 STL의 map 사용이번에는 STL의 map 사용 방법을 알아보기로 합시다. map은 key와 value를 쌍으로 구성하는 pair를 보관하는 구조입니다. key를 기준으로 자료를 보관하고 검색하며 실질적으로 보관할 자료를 value입니다. 이처럼 키와 값을 쌍으로 보관하는 자료구조를 사전 컬렉션이라고도 부릅니다. 만약 회원 관리 프로그램에서 회원의 id를 기준으로 map에 보관하면 다음처럼 string을 키로 하고 Member *를 value로 하는 pair를 보관합니다.#include using std::map;using std::pair;typedef map Mdic; 여기에서는 map을 사용하는 방법을 두 가지 방법으로 나누어 설명할게요. 첫 번째 방법은 insert, find, erase..

7.4 이진 탐색 트리 구현 [디딤돌 자료구조와 알고리즘 with C++]

7.4 이진 탐색 트리 구현이제 앞에서 설계한 이진 탐색 트리를 구체적으로 구현합시다. 먼저 이진 탐색 트리의 추가 기능인 AddBook 메서드를 구현하기로 해요.bool BinSearchTree::AddBook(int bnum,string title){먼저 주요 키인 도서 번호로 부모 노드를 검색하기로 해요. Node *parent = Find(root,bnum); if(parent) {검색한 부모의 키가 입력한 도서 번호와 일치하였는지 확인하세요. Book *sbook = parent->book; if(sbook->GetBNum() == bnum) {일치하면 도서를 보관하지 않고 추가 실패를 반환하세요. return false; } }입력받은 인자로 도서 개체를 생성하세요. Book *book = n..

반응형