#include <iostream>
#include <string>
using namespace std;
// class Book
// with three private data fields: book title, author, copyright, and price
// four public methods to retrieve fields (called "getters")
// and one public non-default constructor
class Book {
public :
// member function prototypes
void assign ( string, string, int , float , int , string) ; // this is your constructor
string getTitle( ) ;
string getAuthor( ) ;
int getCopyRightYear( ) ;
float getPrice( ) ;
int getPages( ) ;
string getISBN( ) ;
private :
// data members
string title;
string author;
int copyRightYear;
float price;
int pages;
string ISBN;
} ;
// these are the actual member functions
// this member function is a "constructor" that will create a new book
void Book:: assign ( string bookTitle, string bookAuthor, int bookDate, float bookPrice, int numPages, string ISBNcode) {
title = bookTitle;
author = bookAuthor;
copyRightYear = bookDate;
price = bookPrice;
pages = numPages;
ISBN = ISBNcode;
}
// this member function is a "getter" that will retrieve that book title value
string Book:: getTitle ( ) {
return title;
}
// this member function is a "getter" that will retrieve the primary book author value
string Book:: getAuthor ( ) {
return author;
}
// this member function is a "getter" that will retrieve the year the book was copyrighted
int Book:: getCopyRightYear ( ) {
return copyRightYear;
}
// this member function is a "getter" that will retrieve the list price of the book
float Book:: getPrice ( ) {
return price;
}
// this member function is a "getter" that will retrieve the number of pages of the book
int Book:: getPages ( ) {
return pages;
}
// this member function is a "getter" that will retrieve the ISBN number of the book
string Book:: getISBN ( ) {
return ISBN;
}
int main( )
{
cout << "Here are some of my favorite books ...\n " << endl;
// Set up space to create 5 instances of the class Book to use with our constructor
Book b1, b2, b3, b4, b5;
// Use our constructor to create the first book, replace my book below with info on your favorite book, use b1
b1.assign ( "Harry Potter and the Sorcerer's Stone" , "J.K. Rowling" ,1998 , 15.08 , 309 , "0590353403" ) ;
cout << b1.getTitle ( ) << " authored by " << b1.getAuthor ( ) << " in the year " << b1.getCopyRightYear ( ) << endl;
cout << "The price of this book is: $" << b1.getPrice ( ) << endl;
cout << "The number of pages is: " << b1.getPages ( ) << endl;
cout << "The ISBN is: " << b1.getISBN ( ) << endl;
cout << "\n " << endl;
// Use the constructor again to create another book, again, replacing my book below with one your favorite books, use b2
b2.assign ( "Harry Potter and the Chamber of Secrets" , "J.K. Rowling" , 1999 , 20.34 , 360 , "1408865408" ) ;
cout << b2.getTitle ( ) << " authored by " << b2.getAuthor ( ) << " in the year " << b2.getCopyRightYear ( ) << endl;
cout << "The price of this book is: $" << b2.getPrice ( ) << endl;
cout << "The number of pages is: " << b2.getPages ( ) << endl;
cout << "The ISBN is: " << b2.getISBN ( ) << endl;
cout << "\n " << endl;
// use constructor (its called assign) again to create and then print information about book 3, another favorite book of yours ... remember to use b3
b3.assign ( "Harry Potter and the Prisoner of Azkaban" , "J.K. Rowling" , 1999 , 14.58 , 435 , "0439136350" ) ;
cout << b3.getTitle ( ) << " authored by " << b3.getAuthor ( ) << " in the year " << b3.getCopyRightYear ( ) << endl;
cout << "The price of this book is: $" << b3.getPrice ( ) << endl;
cout << "The number of pages is: " << b3.getPages ( ) << endl;
cout << "The ISBN is: " << b3.getISBN ( ) << endl;
cout << "\n " << endl;
// use constructor again to create and then print information about book 4, your fourth favorite book ... remember to use b4
b4.assign ( "Harry Potter and the Goblet of Fire" , "J.K. Rowling" , 2000 , 18.49 , 752 , "0439139597" ) ;
cout << b4.getTitle ( ) << " authored by " << b4.getAuthor ( ) << " in the year " << b4.getCopyRightYear ( ) << endl;
cout << "The price of this book is: $" << b4.getPrice ( ) << endl;
cout << "The number of pages is: " << b4.getPages ( ) << endl;
cout << "The ISBN is: " << b4.getISBN ( ) << endl;
cout << "\n " << endl;
// use constructor again to create and then print information about book 5, your fifth favorite book ... remember to use b5
b5.assign ( "Harry Potter and the Order of the Phoenix" , "J.K. Rowling" , 2003 , 17.29 , 896 , "9780439358064" ) ;
cout << b5.getTitle ( ) << " authored by " << b5.getAuthor ( ) << " in the year " << b5.getCopyRightYear ( ) << endl;
cout << "The price of this book is: $" << b5.getPrice ( ) << endl;
cout << "The number of pages is: " << b5.getPages ( ) << endl;
cout << "The ISBN is: " << b5.getISBN ( ) << endl;
cout << "\n " << endl;
return ( 0 ) ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIGNsYXNzIEJvb2sKLy8gd2l0aCB0aHJlZSBwcml2YXRlIGRhdGEgZmllbGRzOiBib29rIHRpdGxlLCBhdXRob3IsIGNvcHlyaWdodCwgYW5kIHByaWNlCi8vIGZvdXIgcHVibGljIG1ldGhvZHMgdG8gcmV0cmlldmUgZmllbGRzIChjYWxsZWQgImdldHRlcnMiKQovLyBhbmQgb25lIHB1YmxpYyBub24tZGVmYXVsdCBjb25zdHJ1Y3RvcgoKY2xhc3MgQm9vayB7CgogIHB1YmxpYzoKICAgICAKICAgICAgLy8gbWVtYmVyIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgICAgdm9pZCBhc3NpZ24gKHN0cmluZywgc3RyaW5nLCBpbnQsIGZsb2F0LCBpbnQsIHN0cmluZyk7ICAgLy8gdGhpcyBpcyB5b3VyIGNvbnN0cnVjdG9yCiAgICAgIHN0cmluZyBnZXRUaXRsZSgpOwogICAgICBzdHJpbmcgZ2V0QXV0aG9yKCk7CiAgICAgIGludCAgICBnZXRDb3B5UmlnaHRZZWFyKCk7CiAgICAgIGZsb2F0ICBnZXRQcmljZSgpOwoJICBpbnQgZ2V0UGFnZXMoKTsKCSAgc3RyaW5nIGdldElTQk4oKTsKICAKCiAgcHJpdmF0ZToKCiAgICAgIC8vIGRhdGEgbWVtYmVycwogICAgICBzdHJpbmcgdGl0bGU7CiAgICAgIHN0cmluZyBhdXRob3I7CiAgICAgIGludCAgICBjb3B5UmlnaHRZZWFyOwogICAgICBmbG9hdCAgcHJpY2U7CgkgIGludCBwYWdlczsKCSAgc3RyaW5nIElTQk47Cn07CgoKLy8gdGhlc2UgYXJlIHRoZSBhY3R1YWwgbWVtYmVyIGZ1bmN0aW9ucwoKLy8gdGhpcyBtZW1iZXIgZnVuY3Rpb24gaXMgYSAiY29uc3RydWN0b3IiIHRoYXQgd2lsbCBjcmVhdGUgYSBuZXcgYm9vawp2b2lkIEJvb2s6OmFzc2lnbiAoc3RyaW5nIGJvb2tUaXRsZSwgc3RyaW5nIGJvb2tBdXRob3IsIGludCBib29rRGF0ZSwgZmxvYXQgYm9va1ByaWNlLCBpbnQgbnVtUGFnZXMsIHN0cmluZyBJU0JOY29kZSkgewogICAgICAgICAgICB0aXRsZSA9IGJvb2tUaXRsZTsKICAgICAgICAgICAgYXV0aG9yID0gYm9va0F1dGhvcjsKICAgICAgICAgICBjb3B5UmlnaHRZZWFyID0gYm9va0RhdGU7CiAgICAgICAgICAgIHByaWNlID0gYm9va1ByaWNlOyAgICAKCQkJcGFnZXMgPSBudW1QYWdlczsKCQkgICAgSVNCTiA9IElTQk5jb2RlOwp9CgovLyB0aGlzIG1lbWJlciBmdW5jdGlvbiBpcyBhICJnZXR0ZXIiIHRoYXQgd2lsbCByZXRyaWV2ZSB0aGF0IGJvb2sgdGl0bGUgdmFsdWUKc3RyaW5nIEJvb2s6OmdldFRpdGxlKCkgewogICAgICAgICAgICByZXR1cm4gdGl0bGU7Cn0KCi8vIHRoaXMgbWVtYmVyIGZ1bmN0aW9uIGlzIGEgImdldHRlciIgdGhhdCB3aWxsIHJldHJpZXZlIHRoZSBwcmltYXJ5IGJvb2sgYXV0aG9yIHZhbHVlCnN0cmluZyBCb29rOjpnZXRBdXRob3IoKSB7CiAgICAgICAgICAgIHJldHVybiBhdXRob3I7Cn0KCi8vIHRoaXMgbWVtYmVyIGZ1bmN0aW9uIGlzIGEgImdldHRlciIgdGhhdCB3aWxsIHJldHJpZXZlIHRoZSB5ZWFyIHRoZSBib29rIHdhcyBjb3B5cmlnaHRlZAppbnQgQm9vazo6Z2V0Q29weVJpZ2h0WWVhcigpIHsKICAgICAgICAgICAgcmV0dXJuIGNvcHlSaWdodFllYXI7Cn0KCi8vIHRoaXMgbWVtYmVyIGZ1bmN0aW9uIGlzIGEgImdldHRlciIgdGhhdCB3aWxsIHJldHJpZXZlIHRoZSBsaXN0IHByaWNlIG9mIHRoZSBib29rCmZsb2F0IEJvb2s6OmdldFByaWNlKCkgewogICAgICAgICAgICAgIHJldHVybiBwcmljZTsKfQoKCi8vIHRoaXMgbWVtYmVyIGZ1bmN0aW9uIGlzIGEgImdldHRlciIgdGhhdCB3aWxsIHJldHJpZXZlIHRoZSBudW1iZXIgb2YgcGFnZXMgb2YgdGhlIGJvb2sKaW50IEJvb2s6OmdldFBhZ2VzKCkgewoJCQlyZXR1cm4gcGFnZXM7Cn0KCi8vIHRoaXMgbWVtYmVyIGZ1bmN0aW9uIGlzIGEgImdldHRlciIgdGhhdCB3aWxsIHJldHJpZXZlIHRoZSBJU0JOIG51bWJlciBvZiB0aGUgYm9vawpzdHJpbmcgQm9vazo6Z2V0SVNCTigpIHsKCQkJcmV0dXJuIElTQk47Cn0KCgppbnQgbWFpbigpCnsKCiAgICAgIGNvdXQgPDwgIkhlcmUgYXJlIHNvbWUgb2YgbXkgZmF2b3JpdGUgYm9va3MgLi4uXG4iIDw8IGVuZGw7CgogICAgIC8vIFNldCB1cCBzcGFjZSB0byBjcmVhdGUgNSBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzIEJvb2sgdG8gdXNlIHdpdGggb3VyIGNvbnN0cnVjdG9yCiAgICAgIEJvb2sgYjEsIGIyLCBiMywgYjQsIGI1OwoKICAgICAgLy8gVXNlIG91ciBjb25zdHJ1Y3RvciB0byBjcmVhdGUgdGhlIGZpcnN0IGJvb2ssIHJlcGxhY2UgbXkgYm9vayBiZWxvdyB3aXRoIGluZm8gb24geW91ciBmYXZvcml0ZSBib29rLCB1c2UgYjEKICAgICAgYjEuYXNzaWduICgiSGFycnkgUG90dGVyIGFuZCB0aGUgU29yY2VyZXIncyBTdG9uZSIsICJKLksuIFJvd2xpbmciLDE5OTgsIDE1LjA4LCAzMDksICIwNTkwMzUzNDAzIik7CgogICAgICBjb3V0IDw8IGIxLmdldFRpdGxlKCkgPDwgIiBhdXRob3JlZCBieSAiIDw8IGIxLmdldEF1dGhvcigpIDw8ICIgaW4gdGhlIHllYXIgIiA8PCBiMS5nZXRDb3B5UmlnaHRZZWFyKCkgPDwgZW5kbDsKICAgICAgY291dCA8PCAiVGhlIHByaWNlIG9mIHRoaXMgYm9vayBpczogICQiIDw8IGIxLmdldFByaWNlKCkgPDwgZW5kbDsKIAkgIGNvdXQgPDwiVGhlIG51bWJlciBvZiBwYWdlcyBpczogIiA8PCBiMS5nZXRQYWdlcygpIDw8IGVuZGw7CgkgIGNvdXQgPDwiVGhlIElTQk4gaXM6ICIgPDwgYjEuZ2V0SVNCTigpIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlxuIiA8PCBlbmRsOwoKICAgICAgLy8gVXNlIHRoZSBjb25zdHJ1Y3RvciBhZ2FpbiB0byBjcmVhdGUgYW5vdGhlciBib29rLCBhZ2FpbiwgcmVwbGFjaW5nIG15IGJvb2sgYmVsb3cgd2l0aCBvbmUgeW91ciBmYXZvcml0ZSBib29rcywgdXNlIGIyCiAgICAgIGIyLmFzc2lnbiAoIkhhcnJ5IFBvdHRlciBhbmQgdGhlIENoYW1iZXIgb2YgU2VjcmV0cyIsICJKLksuIFJvd2xpbmciLCAxOTk5LCAyMC4zNCwgMzYwLCAiMTQwODg2NTQwOCIpOwoKICAgICAgY291dCA8PCBiMi5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiMi5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjIuZ2V0Q29weVJpZ2h0WWVhcigpIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlRoZSBwcmljZSBvZiB0aGlzIGJvb2sgaXM6ICAkIiA8PCBiMi5nZXRQcmljZSgpIDw8IGVuZGw7CiAJICBjb3V0IDw8IlRoZSBudW1iZXIgb2YgcGFnZXMgaXM6ICIgPDwgYjIuZ2V0UGFnZXMoKSA8PCBlbmRsOwoJICBjb3V0IDw8IlRoZSBJU0JOIGlzOiAiIDw8IGIyLmdldElTQk4oKSA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJcbiIgPDwgZW5kbDsKCgogICAgIC8vIHVzZSBjb25zdHJ1Y3RvciAoaXRzIGNhbGxlZCBhc3NpZ24pIGFnYWluIHRvIGNyZWF0ZSBhbmQgdGhlbiBwcmludCBpbmZvcm1hdGlvbiBhYm91dCBib29rIDMsIGFub3RoZXIgZmF2b3JpdGUgYm9vayBvZiB5b3VycyAuLi4gcmVtZW1iZXIgdG8gdXNlIGIzIAoKICAgICAgYjMuYXNzaWduICgiSGFycnkgUG90dGVyIGFuZCB0aGUgUHJpc29uZXIgb2YgQXprYWJhbiIsICJKLksuIFJvd2xpbmciLCAxOTk5LCAxNC41OCwgNDM1LCAiMDQzOTEzNjM1MCIpOwoKICAgICAgY291dCA8PCBiMy5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiMy5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjMuZ2V0Q29weVJpZ2h0WWVhcigpIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlRoZSBwcmljZSBvZiB0aGlzIGJvb2sgaXM6ICAkIiA8PCBiMy5nZXRQcmljZSgpIDw8IGVuZGw7CiAJICBjb3V0IDw8IlRoZSBudW1iZXIgb2YgcGFnZXMgaXM6ICIgPDwgYjMuZ2V0UGFnZXMoKSA8PCBlbmRsOwoJICBjb3V0IDw8IlRoZSBJU0JOIGlzOiAiIDw8IGIzLmdldElTQk4oKSA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJcbiIgPDwgZW5kbDsKCiAgICAgIC8vIHVzZSBjb25zdHJ1Y3RvciBhZ2FpbiB0byBjcmVhdGUgYW5kIHRoZW4gcHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgYm9vayA0LCB5b3VyIGZvdXJ0aCBmYXZvcml0ZSBib29rIC4uLiByZW1lbWJlciB0byB1c2UgYjQKCiAgICAgIGI0LmFzc2lnbiAoIkhhcnJ5IFBvdHRlciBhbmQgdGhlIEdvYmxldCBvZiBGaXJlIiwgIkouSy4gUm93bGluZyIsIDIwMDAsIDE4LjQ5LCA3NTIsICIwNDM5MTM5NTk3Iik7CgogICAgICBjb3V0IDw8IGI0LmdldFRpdGxlKCkgPDwgIiBhdXRob3JlZCBieSAiIDw8IGI0LmdldEF1dGhvcigpIDw8ICIgaW4gdGhlIHllYXIgIiA8PCBiNC5nZXRDb3B5UmlnaHRZZWFyKCkgPDwgZW5kbDsKICAgICAgY291dCA8PCAiVGhlIHByaWNlIG9mIHRoaXMgYm9vayBpczogICQiIDw8IGI0LmdldFByaWNlKCkgPDwgZW5kbDsKIAkgIGNvdXQgPDwiVGhlIG51bWJlciBvZiBwYWdlcyBpczogIiA8PCBiNC5nZXRQYWdlcygpIDw8IGVuZGw7CgkgIGNvdXQgPDwiVGhlIElTQk4gaXM6ICIgPDwgYjQuZ2V0SVNCTigpIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlxuIiA8PCBlbmRsOwoKICAgICAgLy8gdXNlIGNvbnN0cnVjdG9yIGFnYWluIHRvIGNyZWF0ZSBhbmQgdGhlbiBwcmludCBpbmZvcm1hdGlvbiBhYm91dCBib29rIDUsIHlvdXIgZmlmdGggZmF2b3JpdGUgYm9vayAuLi4gcmVtZW1iZXIgdG8gdXNlIGI1CgogICAgICBiNS5hc3NpZ24gKCJIYXJyeSBQb3R0ZXIgYW5kIHRoZSBPcmRlciBvZiB0aGUgUGhvZW5peCIsICJKLksuIFJvd2xpbmciLCAyMDAzLCAxNy4yOSwgODk2LCAiOTc4MDQzOTM1ODA2NCIpOwoKICAgICAgY291dCA8PCBiNS5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiNS5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjUuZ2V0Q29weVJpZ2h0WWVhcigpIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlRoZSBwcmljZSBvZiB0aGlzIGJvb2sgaXM6ICAkIiA8PCBiNS5nZXRQcmljZSgpIDw8IGVuZGw7CiAJICBjb3V0IDw8IlRoZSBudW1iZXIgb2YgcGFnZXMgaXM6ICIgPDwgYjUuZ2V0UGFnZXMoKSA8PCBlbmRsOwoJICBjb3V0IDw8IlRoZSBJU0JOIGlzOiAiIDw8IGI1LmdldElTQk4oKSA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJcbiIgPDwgZW5kbDsKCiAgICAgIHJldHVybiAoMCk7Cn0K