ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 10장 11번
    C++ 2018. 11. 17. 04:44

    11. 책의 년도, 책이름, 저자 이름을 담은 Book 클래스를 만들고, vector<Book> v;로 생성한 벡터를 이요하여 책을 입고하고, 저자와 년도로 검색하는 프로그램을 작성하라.


    소스코드


    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    class Book {
        int year;
        string title;
        string author;
    public:
        Book() {}
        Book(int year, string title, string author) {
            this->year = year;
            this->title = title;
            this->author = author;
        }
        int getYear() { return year; }
        string getTitle() { return title; }
        string getAuthor() { return author; }
    };
    int main() {
        int year; string title, author;
        vector<Book> v;
        cout << "입고할 책을 입력하세요. 년도에 -1을 입력하면 입고를 종료합니다." << endl;
        for (;;) {
            cout << "년도>>"; cin >> year; cin.ignore();
            if (year == (-1)) break;
            cout << "책이름>>"; getline(cin, title);
            cout << "저자>>"; getline(cin, author);
            Book b(year, title, author);
            v.push_back(b);
        }
        cout << "총 입고된 책은 " << v.size() << "권 입니다." << endl;
        cout << "검색하고자 하는 저자 이름을 입력하세요>>";
        string text; getline(cin, text);
        for (int i = 0; i < v.size(); ++i) {
            if (v[i].getAuthor() == text)
                cout << v[i].getYear() << "년도, " << v[i].getTitle() << ", " << v[i].getAuthor() << endl;
        }
        cout << "검색하고자 하는 년도를 입력하세요";
        int num; cin >> num;
        for (int i = 0; i < v.size(); ++i) {
            if (v[i].getYear() == num)
                cout << v[i].getYear() << "년도, " << v[i].getTitle() << ", " << v[i].getAuthor() << endl;
        }
    }


    실행결과



    매개변수가 있는 생성자를 통해 멤버 값을 초기화하고, vector 객체인 v에 삽입합니다. 책이름과 저자는 공백이 있을 수 있으므로 getline을 통해 입력 받습니다.

    'C++' 카테고리의 다른 글

    명품 C++ 10장 13번  (0) 2018.11.17
    명품 C++ 10장 12번  (0) 2018.11.17
    명품 C++ 10장 10번  (0) 2018.11.17
    명품 C++ 10장 9번  (0) 2018.11.17
    명품 C++ 10장 8번  (0) 2018.11.17

    댓글

© 2018 TISTORY. All rights reserved.