#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, string, int , float , int ) ; // this is your constructor
string getTitle( ) ;
string getAuthor( ) ;
string getArtist( ) ;
int getCopyRightYear( ) ;
float getPrice( ) ;
int getPageNumber( ) ;
private :
// data members
string title;
string author;
string artist;
int copyRightYear;
float price;
int pageNumber;
} ;
// 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, string bookArtist, int bookDate, float bookPrice, int bookPageNumber) {
title = bookTitle;
author = bookAuthor;
artist = bookArtist;
copyRightYear = bookDate;
price = bookPrice;
pageNumber = bookPageNumber;
}
// 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 cover artist of the book
string Book:: getArtist ( ) {
return artist;
}
// 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 in the book
int Book:: getPageNumber ( ) {
return pageNumber;
}
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 ( "The Lightning Thief" , "Rick Riordan" , "John Rocco" , 2005 , 7.99 , 377 ) ;
cout << b1.getTitle ( ) << " authored by " << b1.getAuthor ( ) << " in the year " << b1.getCopyRightYear ( ) << " with the cover drawn by " << b1.getArtist ( ) << endl;
cout << "The price of this book is: $" << b1.getPrice ( ) << endl;
cout << "This book has " << b1.getPageNumber ( ) << " pages." << 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 ( "The Lord of the Flies" , "William Golding" , "Anthony Gross" , 1954 , 5.99 , 224 ) ;
cout << b2.getTitle ( ) << " authored by " << b2.getAuthor ( ) << " in the year " << b2.getCopyRightYear ( ) << " with the cover drawn by " << b2.getArtist ( ) << endl;
cout << "The price of this book is: $" << b2.getPrice ( ) << endl;
cout << "This book has " << b2.getPageNumber ( ) << " pages." << 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 ( "The Hunger Games" , "Suzanne Collins" , "Tim O'Brien" , 2008 , 8.89 , 374 ) ;
cout << b3.getTitle ( ) << " authored by " << b3.getAuthor ( ) << " in the year " << b3.getCopyRightYear ( ) << " with the cover drawn by " << b3.getArtist ( ) << endl;
cout << "The price of this book is: $" << b3.getPrice ( ) << endl;
cout << "This book has " << b3.getPageNumber ( ) << " pages." << 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 ( "The Fault in Our Stars" , "John Green" , "Rodrigo Corral" , 2012 , 9.99 , 313 ) ;
cout << b4.getTitle ( ) << " authored by " << b4.getAuthor ( ) << " in the year " << b4.getCopyRightYear ( ) << " with the cover drawn by " << b4.getArtist ( ) << endl;
cout << "The price of this book is: $" << b4.getPrice ( ) << endl;
cout << "This book has " << b4.getPageNumber ( ) << " pages." << 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 ( "Adventures of Huckleberry Finn" , "Mark Twain" , "E.W. Kemble" , 1884 , 10.99 , 400 ) ;
cout << b5.getTitle ( ) << " authored by " << b5.getAuthor ( ) << " in the year " << b5.getCopyRightYear ( ) << " with the cover drawn by " << b5.getArtist ( ) << endl;
cout << "The price of this book is: $" << b5.getPrice ( ) << endl;
cout << "This book has " << b5.getPageNumber ( ) << " pages." << endl;
cout << "\n " << endl;
return ( 0 ) ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIGNsYXNzIEJvb2sKLy8gd2l0aCB0aHJlZSBwcml2YXRlIGRhdGEgZmllbGRzOiBib29rIHRpdGxlLCBhdXRob3IsIGNvcHlyaWdodCwgYW5kIHByaWNlCi8vIGZvdXIgcHVibGljIG1ldGhvZHMgdG8gcmV0cmlldmUgZmllbGRzIChjYWxsZWQgImdldHRlcnMiKQovLyBhbmQgb25lIHB1YmxpYyBub24tZGVmYXVsdCBjb25zdHJ1Y3RvcgoKY2xhc3MgQm9vayB7CgogIHB1YmxpYzoKICAgICAKICAgICAgLy8gbWVtYmVyIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgICAgdm9pZCBhc3NpZ24gKHN0cmluZywgc3RyaW5nLCBzdHJpbmcsIGludCwgZmxvYXQsIGludCk7ICAgLy8gdGhpcyBpcyB5b3VyIGNvbnN0cnVjdG9yCiAgICAgIHN0cmluZyBnZXRUaXRsZSgpOwogICAgICBzdHJpbmcgZ2V0QXV0aG9yKCk7CiAgICAgIHN0cmluZyBnZXRBcnRpc3QoKTsKICAgICAgaW50ICAgIGdldENvcHlSaWdodFllYXIoKTsKICAgICAgZmxvYXQgIGdldFByaWNlKCk7CiAgICAgIGludCAgICBnZXRQYWdlTnVtYmVyKCk7CiAgCgogIHByaXZhdGU6CgogICAgICAvLyBkYXRhIG1lbWJlcnMKICAgICAgc3RyaW5nIHRpdGxlOwogICAgICBzdHJpbmcgYXV0aG9yOwogICAgICBzdHJpbmcgYXJ0aXN0OwogICAgICBpbnQgICAgY29weVJpZ2h0WWVhcjsKICAgICAgZmxvYXQgIHByaWNlOwogICAgICBpbnQgcGFnZU51bWJlcjsKfTsKCgovLyB0aGVzZSBhcmUgdGhlIGFjdHVhbCBtZW1iZXIgZnVuY3Rpb25zCgovLyB0aGlzIG1lbWJlciBmdW5jdGlvbiBpcyBhICJjb25zdHJ1Y3RvciIgdGhhdCB3aWxsIGNyZWF0ZSBhIG5ldyBib29rCnZvaWQgQm9vazo6YXNzaWduIChzdHJpbmcgYm9va1RpdGxlLCBzdHJpbmcgYm9va0F1dGhvciwgc3RyaW5nIGJvb2tBcnRpc3QsIGludCBib29rRGF0ZSwgZmxvYXQgYm9va1ByaWNlLCBpbnQgYm9va1BhZ2VOdW1iZXIpIHsKICAgICAgICAgICAgdGl0bGUgPSBib29rVGl0bGU7CiAgICAgICAgICAgIGF1dGhvciA9IGJvb2tBdXRob3I7CiAgICAgICAgICAgIGFydGlzdCA9IGJvb2tBcnRpc3Q7CiAgICAgICAgICAgIGNvcHlSaWdodFllYXIgPSBib29rRGF0ZTsKICAgICAgICAgICAgcHJpY2UgPSBib29rUHJpY2U7IAogICAgICAgICAgICBwYWdlTnVtYmVyID0gYm9va1BhZ2VOdW1iZXI7Cn0KCi8vIHRoaXMgbWVtYmVyIGZ1bmN0aW9uIGlzIGEgImdldHRlciIgdGhhdCB3aWxsIHJldHJpZXZlIHRoYXQgYm9vayB0aXRsZSB2YWx1ZQpzdHJpbmcgQm9vazo6Z2V0VGl0bGUoKSB7CiAgICAgICAgICAgIHJldHVybiB0aXRsZTsKfQoKLy8gdGhpcyBtZW1iZXIgZnVuY3Rpb24gaXMgYSAiZ2V0dGVyIiB0aGF0IHdpbGwgcmV0cmlldmUgdGhlIHByaW1hcnkgYm9vayBhdXRob3IgdmFsdWUKc3RyaW5nIEJvb2s6OmdldEF1dGhvcigpIHsKICAgICAgICAgICAgcmV0dXJuIGF1dGhvcjsKfQoKLy8gdGhpcyBtZW1iZXIgZnVuY3Rpb24gaXMgYSAiZ2V0dGVyIiB0aGF0IHdpbGwgcmV0cmlldmUgdGhlIGNvdmVyIGFydGlzdCBvZiB0aGUgYm9vawpzdHJpbmcgQm9vazo6Z2V0QXJ0aXN0KCkgewoJCQlyZXR1cm4gYXJ0aXN0Owp9CgovLyB0aGlzIG1lbWJlciBmdW5jdGlvbiBpcyBhICJnZXR0ZXIiIHRoYXQgd2lsbCByZXRyaWV2ZSB0aGUgeWVhciB0aGUgYm9vayB3YXMgY29weXJpZ2h0ZWQKaW50IEJvb2s6OmdldENvcHlSaWdodFllYXIoKSB7CiAgICAgICAgICAgIHJldHVybiBjb3B5UmlnaHRZZWFyOwp9CgovLyB0aGlzIG1lbWJlciBmdW5jdGlvbiBpcyBhICJnZXR0ZXIiIHRoYXQgd2lsbCByZXRyaWV2ZSB0aGUgbGlzdCBwcmljZSBvZiB0aGUgYm9vawpmbG9hdCBCb29rOjpnZXRQcmljZSgpIHsKICAgICAgICAgICAgICByZXR1cm4gcHJpY2U7Cn0KCi8vIHRoaXMgbWVtYmVyIGZ1bmN0aW9uIGlzIGEgImdldHRlciIgdGhhdCB3aWxsIHJldHJpZXZlIHRoZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIGJvb2sKaW50IEJvb2s6OmdldFBhZ2VOdW1iZXIoKSB7CgkJCSAgcmV0dXJuIHBhZ2VOdW1iZXI7Cn0KCgoKaW50IG1haW4oKQp7CgogICAgICBjb3V0IDw8ICJIZXJlIGFyZSBzb21lIG9mIG15IGZhdm9yaXRlIGJvb2tzIC4uLlxuIiA8PCBlbmRsOwoKICAgICAvLyBTZXQgdXAgc3BhY2UgdG8gY3JlYXRlIDUgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcyBCb29rIHRvIHVzZSB3aXRoIG91ciBjb25zdHJ1Y3RvcgogICAgICBCb29rIGIxLCBiMiwgYjMsIGI0LCBiNTsKCiAgICAgIC8vIFVzZSBvdXIgY29uc3RydWN0b3IgdG8gY3JlYXRlIHRoZSBmaXJzdCBib29rLCByZXBsYWNlIG15IGJvb2sgYmVsb3cgd2l0aCBpbmZvIG9uIHlvdXIgZmF2b3JpdGUgYm9vaywgdXNlIGIxCiAgICAgIGIxLmFzc2lnbiAoIlRoZSBMaWdodG5pbmcgVGhpZWYiLCAiUmljayBSaW9yZGFuIiwgIkpvaG4gUm9jY28iLCAyMDA1LCA3Ljk5LCAzNzcpOwoKICAgICAgY291dCA8PCBiMS5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiMS5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjEuZ2V0Q29weVJpZ2h0WWVhcigpIDw8ICIgd2l0aCB0aGUgY292ZXIgZHJhd24gYnkgIiA8PCBiMS5nZXRBcnRpc3QoKSA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgcHJpY2Ugb2YgdGhpcyBib29rIGlzOiAgJCIgPDwgYjEuZ2V0UHJpY2UoKSA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGlzIGJvb2sgaGFzICIgPDwgYjEuZ2V0UGFnZU51bWJlcigpIDw8ICIgcGFnZXMuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJcbiIgPDwgZW5kbDsKCiAgICAgIC8vIFVzZSB0aGUgY29uc3RydWN0b3IgYWdhaW4gdG8gY3JlYXRlIGFub3RoZXIgYm9vaywgYWdhaW4sIHJlcGxhY2luZyBteSBib29rIGJlbG93IHdpdGggb25lIHlvdXIgZmF2b3JpdGUgYm9va3MsIHVzZSBiMgogICAgICBiMi5hc3NpZ24gKCJUaGUgTG9yZCBvZiB0aGUgRmxpZXMiLCAiV2lsbGlhbSBHb2xkaW5nIiwgIkFudGhvbnkgR3Jvc3MiLCAxOTU0LCA1Ljk5LCAyMjQpOwoKICAgICAgY291dCA8PCBiMi5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiMi5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjIuZ2V0Q29weVJpZ2h0WWVhcigpIDw8ICIgd2l0aCB0aGUgY292ZXIgZHJhd24gYnkgIiA8PCBiMi5nZXRBcnRpc3QoKSA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgcHJpY2Ugb2YgdGhpcyBib29rIGlzOiAgJCIgPDwgYjIuZ2V0UHJpY2UoKSA8PCBlbmRsOyAKICAgICAgY291dCA8PCAiVGhpcyBib29rIGhhcyAiIDw8IGIyLmdldFBhZ2VOdW1iZXIoKSA8PCAiIHBhZ2VzLiIgPDwgZW5kbDsKICAgICAgY291dCA8PCAiXG4iIDw8IGVuZGw7CgogICAgIC8vIHVzZSBjb25zdHJ1Y3RvciAoaXRzIGNhbGxlZCBhc3NpZ24pIGFnYWluIHRvIGNyZWF0ZSBhbmQgdGhlbiBwcmludCBpbmZvcm1hdGlvbiBhYm91dCBib29rIDMsIGFub3RoZXIgZmF2b3JpdGUgYm9vayBvZiB5b3VycyAuLi4gcmVtZW1iZXIgdG8gdXNlIGIzIAoJICBiMy5hc3NpZ24gKCJUaGUgSHVuZ2VyIEdhbWVzIiwgIlN1emFubmUgQ29sbGlucyIsICJUaW0gTydCcmllbiIsIDIwMDgsIDguODksIDM3NCk7CgogICAgICBjb3V0IDw8IGIzLmdldFRpdGxlKCkgPDwgIiBhdXRob3JlZCBieSAiIDw8IGIzLmdldEF1dGhvcigpIDw8ICIgaW4gdGhlIHllYXIgIiA8PCBiMy5nZXRDb3B5UmlnaHRZZWFyKCkgPDwgIiB3aXRoIHRoZSBjb3ZlciBkcmF3biBieSAiIDw8IGIzLmdldEFydGlzdCgpIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlRoZSBwcmljZSBvZiB0aGlzIGJvb2sgaXM6ICAkIiA8PCBiMy5nZXRQcmljZSgpIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlRoaXMgYm9vayBoYXMgIiA8PCBiMy5nZXRQYWdlTnVtYmVyKCkgPDwgIiBwYWdlcy4iIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlxuIiA8PCBlbmRsOwoKICAgICAgLy8gdXNlIGNvbnN0cnVjdG9yIGFnYWluIHRvIGNyZWF0ZSBhbmQgdGhlbiBwcmludCBpbmZvcm1hdGlvbiBhYm91dCBib29rIDQsIHlvdXIgZm91cnRoIGZhdm9yaXRlIGJvb2sgLi4uIHJlbWVtYmVyIHRvIHVzZSBiNAoJICBiNC5hc3NpZ24gKCJUaGUgRmF1bHQgaW4gT3VyIFN0YXJzIiwgIkpvaG4gR3JlZW4iLCAiUm9kcmlnbyBDb3JyYWwiLCAyMDEyLCA5Ljk5LCAzMTMpOwoKICAgICAgY291dCA8PCBiNC5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiNC5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjQuZ2V0Q29weVJpZ2h0WWVhcigpIDw8ICIgd2l0aCB0aGUgY292ZXIgZHJhd24gYnkgIiA8PCBiNC5nZXRBcnRpc3QoKSA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgcHJpY2Ugb2YgdGhpcyBib29rIGlzOiAgJCIgPDwgYjQuZ2V0UHJpY2UoKSA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGlzIGJvb2sgaGFzICIgPDwgYjQuZ2V0UGFnZU51bWJlcigpIDw8ICIgcGFnZXMuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJcbiIgPDwgZW5kbDsKCiAgICAgIC8vIHVzZSBjb25zdHJ1Y3RvciBhZ2FpbiB0byBjcmVhdGUgYW5kIHRoZW4gcHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgYm9vayA1LCB5b3VyIGZpZnRoIGZhdm9yaXRlIGJvb2sgLi4uIHJlbWVtYmVyIHRvIHVzZSBiNQoJICBiNS5hc3NpZ24gKCJBZHZlbnR1cmVzIG9mIEh1Y2tsZWJlcnJ5IEZpbm4iLCAiTWFyayBUd2FpbiIsICJFLlcuIEtlbWJsZSIsIDE4ODQsIDEwLjk5LCA0MDApOwoKICAgICAgY291dCA8PCBiNS5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiNS5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjUuZ2V0Q29weVJpZ2h0WWVhcigpIDw8ICIgd2l0aCB0aGUgY292ZXIgZHJhd24gYnkgIiA8PCBiNS5nZXRBcnRpc3QoKSA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgcHJpY2Ugb2YgdGhpcyBib29rIGlzOiAgJCIgPDwgYjUuZ2V0UHJpY2UoKSA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGlzIGJvb2sgaGFzICIgPDwgYjUuZ2V0UGFnZU51bWJlcigpIDw8ICIgcGFnZXMuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJcbiIgPDwgZW5kbDsKCiAgICAgIHJldHVybiAoMCk7Cn0K