-
명품 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