//*******************************************************
//
// Homework: 3
//
// Name: Naomi Jones
//
// Class: Survey, Summer 2025
//
// Date: June 15, 2025
//
// Description: Program which prints "my five
// favorite books".
//
//
//********************************************************
#include <iostream>
#include <string>
using namespace std;
// class Book
// with six private data fields: book title, author, copyright, price, binding, and pages
// six 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 , string, int ) ; // this is your constructor
string getTitle( ) ; // these are getter functions
string getAuthor( ) ;
int getDate( ) ;
float getPrice( ) ;
string getBinding( ) ;
int getPages( ) ;
private :
// data members
string title;
string author;
int date;
float price;
string binding;
int pages;
} ;
// 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, string bookBinding, int bookPages) {
title = bookTitle;
author = bookAuthor;
date = bookDate;
price = bookPrice;
binding = bookBinding;
pages = bookPages;
}
// 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:: getDate ( ) {
return date;
}
// 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 binding
string Book:: getBinding ( ) {
return binding;
}
// this member function is a "getter" that will retrieve the number of pages
int Book:: getPages ( ) {
return pages;
}
int main( )
{
// Set up space to create 5 instances of the class Book to use with our constructor
Book b1, b2, b3, b4, b5;
// TODO: Step 1) Use our assign constructor to create the first book, use b1
b1.assign ( "Reading Jackie" , "William Kuhn" , 2010 , 27.95 , "hardcover" , 368 ) ;
// TODO: Step 2) Use assign constructor again to create another book, again, use b2
b2.assign ( "Camera Girl" , "Carl Sferrazza Anthony" , 2023 , 29.99 , "hardcover" , 400 ) ;
// TODO: Step 3) Use constructor (its called assign) again to create and print book 3 information, use b3
b3.assign ( "The Estate of Jacqueline Kennedy Onassis" , "Sotheby's" , 1996 , 45.00 , "paperback" , 584 ) ;
// TODO: Step 4) Use constructor again to create and then print information about book 4, use b4
b4.assign ( "Jackie, Janet & Lee" , "J. Randy Taraborrelli" , 2018 , 19.99 , "paperback" , 576 ) ;
// TODO: Step 5) Use constructor again to create and then print information about book 5, use b5
b5.assign ( "Ask Not" , "Maureen Callahan" , 2024 , 32.99 , "hardcover" , 400 ) ;
cout << "Here are some of my favorite books ...\n " << endl;
// print book details
cout << b1.getTitle ( ) << " authored by " << b1.getAuthor ( ) << " in the year " << b1.getDate ( ) << "." << endl;
cout << "The price of this book is: $" << b1.getPrice ( ) << "." << endl;
cout << "The binding is " << b1.getBinding ( ) << "." << endl;
cout << "The number of pages is " << b1.getPages ( ) << "." << endl;
cout << "\n " << endl;
cout << b2.getTitle ( ) << " authored by " << b2.getAuthor ( ) << " in the year " << b2.getDate ( ) << "." << endl;
cout << "The price of this book is: $" << b2.getPrice ( ) << "." << endl;
cout << "The binding is " << b2.getBinding ( ) << "." << endl;
cout << "The number of pages is " << b2.getPages ( ) << "." << endl;
cout << "\n " << endl;
cout << b3.getTitle ( ) << " authored by " << b3.getAuthor ( ) << " in the year " << b3.getDate ( ) << "." << endl;
cout << "The price of this book is: $" << b3.getPrice ( ) << "." << endl;
cout << "The binding is " << b3.getBinding ( ) << "." << endl;
cout << "The number of pages is " << b3.getPages ( ) << "." << endl;
cout << "\n " << endl;
cout << b4.getTitle ( ) << " authored by " << b4.getAuthor ( ) << " in the year " << b4.getDate ( ) << "." << endl;
cout << "The price of this book is: $" << b4.getPrice ( ) << "." << endl;
cout << "The binding is " << b4.getBinding ( ) << "." << endl;
cout << "The number of pages is " << b4.getPages ( ) << "." << endl;
cout << "\n " << endl;
cout << b5.getTitle ( ) << " authored by " << b5.getAuthor ( ) << " in the year " << b5.getDate ( ) << "." << endl;
cout << "The price of this book is: $" << b5.getPrice ( ) << "." << endl;
cout << "The binding is " << b5.getBinding ( ) << "." << endl;
cout << "The number of pages is " << b5.getPages ( ) << "." << endl;
cout << "\n " << endl;
return ( 0 ) ;
}
Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIAovLyAKLy8gSG9tZXdvcms6IDMKLy8gCi8vIE5hbWU6IE5hb21pIEpvbmVzCi8vIAovLyBDbGFzczogU3VydmV5LCBTdW1tZXIgMjAyNQovLyAKLy8gRGF0ZTogSnVuZSAxNSwgMjAyNQovLyAKLy8gRGVzY3JpcHRpb246IFByb2dyYW0gd2hpY2ggcHJpbnRzICJteSBmaXZlCi8vIGZhdm9yaXRlIGJvb2tzIi4KLy8gCi8vIAovLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIAoKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIGNsYXNzIEJvb2sKLy8gd2l0aCBzaXggcHJpdmF0ZSBkYXRhIGZpZWxkczogYm9vayB0aXRsZSwgYXV0aG9yLCBjb3B5cmlnaHQsIHByaWNlLCBiaW5kaW5nLCBhbmQgcGFnZXMKLy8gc2l4IHB1YmxpYyBtZXRob2RzIHRvIHJldHJpZXZlIGZpZWxkcyAoY2FsbGVkICJnZXR0ZXJzIikKLy8gYW5kIG9uZSBwdWJsaWMgbm9uLWRlZmF1bHQgY29uc3RydWN0b3IKCmNsYXNzIEJvb2sgewoKICBwdWJsaWM6CiAgICAgCiAgICAgIC8vIG1lbWJlciBmdW5jdGlvbiBwcm90b3R5cGVzCiAgICAgIHZvaWQgYXNzaWduIChzdHJpbmcsIHN0cmluZywgaW50LCBmbG9hdCwgc3RyaW5nLCBpbnQpOyAgIC8vIHRoaXMgaXMgeW91ciBjb25zdHJ1Y3RvcgogICAgICBzdHJpbmcgZ2V0VGl0bGUoKTsgIC8vIHRoZXNlIGFyZSBnZXR0ZXIgZnVuY3Rpb25zCiAgICAgIHN0cmluZyBnZXRBdXRob3IoKTsKICAgICAgaW50ICAgIGdldERhdGUoKTsKICAgICAgZmxvYXQgIGdldFByaWNlKCk7CiAgICAgIHN0cmluZyBnZXRCaW5kaW5nKCk7CiAgICAgIGludCAgICBnZXRQYWdlcygpOwogIAoKICBwcml2YXRlOgoKICAgICAgLy8gZGF0YSBtZW1iZXJzCiAgICAgIHN0cmluZyB0aXRsZTsKICAgICAgc3RyaW5nIGF1dGhvcjsKICAgICAgaW50ICAgIGRhdGU7CiAgICAgIGZsb2F0ICBwcmljZTsKICAgICAgc3RyaW5nIGJpbmRpbmc7CiAgICAgIGludCAgICBwYWdlczsKfTsKCgovLyB0aGVzZSBhcmUgdGhlIGFjdHVhbCBtZW1iZXIgZnVuY3Rpb25zCgovLyB0aGlzIG1lbWJlciBmdW5jdGlvbiBpcyBhICJjb25zdHJ1Y3RvciIgdGhhdCB3aWxsIGNyZWF0ZSBhIG5ldyBib29rCnZvaWQgQm9vazo6YXNzaWduIChzdHJpbmcgYm9va1RpdGxlLCBzdHJpbmcgYm9va0F1dGhvciwgaW50IGJvb2tEYXRlLCBmbG9hdCBib29rUHJpY2UsIHN0cmluZyBib29rQmluZGluZywgaW50IGJvb2tQYWdlcykgewogICAgICAgICAgICB0aXRsZSA9IGJvb2tUaXRsZTsKICAgICAgICAgICAgYXV0aG9yID0gYm9va0F1dGhvcjsKICAgICAgICAgICAgZGF0ZSA9IGJvb2tEYXRlOwogICAgICAgICAgICBwcmljZSA9IGJvb2tQcmljZTsgCiAgICAgICAgICAgIGJpbmRpbmcgPSBib29rQmluZGluZzsKICAgICAgICAgICAgcGFnZXMgPSBib29rUGFnZXM7Cn0KCi8vIHRoaXMgbWVtYmVyIGZ1bmN0aW9uIGlzIGEgImdldHRlciIgdGhhdCB3aWxsIHJldHJpZXZlIHRoYXQgYm9vayB0aXRsZSB2YWx1ZQpzdHJpbmcgQm9vazo6Z2V0VGl0bGUoKSB7CiAgICAgICAgICAgIHJldHVybiB0aXRsZTsKfQoKLy8gdGhpcyBtZW1iZXIgZnVuY3Rpb24gaXMgYSAiZ2V0dGVyIiB0aGF0IHdpbGwgcmV0cmlldmUgdGhlIHByaW1hcnkgYm9vayBhdXRob3IgdmFsdWUKc3RyaW5nIEJvb2s6OmdldEF1dGhvcigpIHsKICAgICAgICAgICAgcmV0dXJuIGF1dGhvcjsKfQoKLy8gdGhpcyBtZW1iZXIgZnVuY3Rpb24gaXMgYSAiZ2V0dGVyIiB0aGF0IHdpbGwgcmV0cmlldmUgdGhlIHllYXIgdGhlIGJvb2sgd2FzIGNvcHlyaWdodGVkCmludCBCb29rOjpnZXREYXRlKCkgewogICAgICAgICAgICByZXR1cm4gZGF0ZTsKfQoKLy8gdGhpcyBtZW1iZXIgZnVuY3Rpb24gaXMgYSAiZ2V0dGVyIiB0aGF0IHdpbGwgcmV0cmlldmUgdGhlIGxpc3QgcHJpY2Ugb2YgdGhlIGJvb2sKZmxvYXQgQm9vazo6Z2V0UHJpY2UoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHByaWNlOwp9CgovLyB0aGlzIG1lbWJlciBmdW5jdGlvbiBpcyBhICJnZXR0ZXIiIHRoYXQgd2lsbCByZXRyaWV2ZSB0aGUgYmluZGluZwpzdHJpbmcgQm9vazo6Z2V0QmluZGluZygpIHsKICAgICAgICAgICAgICByZXR1cm4gYmluZGluZzsKfQoKLy8gdGhpcyBtZW1iZXIgZnVuY3Rpb24gaXMgYSAiZ2V0dGVyIiB0aGF0IHdpbGwgcmV0cmlldmUgdGhlIG51bWJlciBvZiBwYWdlcwppbnQgQm9vazo6Z2V0UGFnZXMoKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHBhZ2VzOwp9CgoKCmludCBtYWluKCkKCnsKCiAgICAgIC8vIFNldCB1cCBzcGFjZSB0byBjcmVhdGUgNSBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzIEJvb2sgdG8gdXNlIHdpdGggb3VyIGNvbnN0cnVjdG9yCiAgICAgIEJvb2sgYjEsIGIyLCBiMywgYjQsIGI1OwoKICAgICAgLy8gVE9ETzogU3RlcCAxKSBVc2Ugb3VyIGFzc2lnbiBjb25zdHJ1Y3RvciB0byBjcmVhdGUgdGhlIGZpcnN0IGJvb2ssIHVzZSBiMQoKICAgICAgYjEuYXNzaWduICgiUmVhZGluZyBKYWNraWUiLCAiV2lsbGlhbSBLdWhuIiwgMjAxMCwgMjcuOTUsICJoYXJkY292ZXIiLCAzNjgpOwoKICAgICAgLy8gVE9ETzogU3RlcCAyKSBVc2UgYXNzaWduIGNvbnN0cnVjdG9yIGFnYWluIHRvIGNyZWF0ZSBhbm90aGVyIGJvb2ssIGFnYWluLCB1c2UgYjIKCiAgICAgIGIyLmFzc2lnbiAoIkNhbWVyYSBHaXJsIiwgIkNhcmwgU2ZlcnJhenphIEFudGhvbnkiLCAyMDIzLCAyOS45OSwgImhhcmRjb3ZlciIsIDQwMCk7CgogICAgICAvLyBUT0RPOiBTdGVwIDMpIFVzZSBjb25zdHJ1Y3RvciAoaXRzIGNhbGxlZCBhc3NpZ24pIGFnYWluIHRvIGNyZWF0ZSBhbmQgcHJpbnQgYm9vayAzIGluZm9ybWF0aW9uLCB1c2UgYjMKCiAgICAgIGIzLmFzc2lnbiAoIlRoZSBFc3RhdGUgb2YgSmFjcXVlbGluZSBLZW5uZWR5IE9uYXNzaXMiLCAiU290aGVieSdzIiwgMTk5NiwgNDUuMDAsICJwYXBlcmJhY2siLCA1ODQpOwoKICAgICAgLy8gVE9ETzogU3RlcCA0KSBVc2UgY29uc3RydWN0b3IgYWdhaW4gdG8gY3JlYXRlIGFuZCB0aGVuIHByaW50IGluZm9ybWF0aW9uIGFib3V0IGJvb2sgNCwgdXNlIGI0CiAgICAgIAogICAgICBiNC5hc3NpZ24gKCJKYWNraWUsIEphbmV0ICYgTGVlIiwgIkouIFJhbmR5IFRhcmFib3JyZWxsaSIsIDIwMTgsIDE5Ljk5LCAicGFwZXJiYWNrIiwgNTc2KTsKCiAgICAgIC8vIFRPRE86IFN0ZXAgNSkgVXNlIGNvbnN0cnVjdG9yIGFnYWluIHRvIGNyZWF0ZSBhbmQgdGhlbiBwcmludCBpbmZvcm1hdGlvbiBhYm91dCBib29rIDUsIHVzZSBiNQoKICAgICAgYjUuYXNzaWduICgiQXNrIE5vdCIsICJNYXVyZWVuIENhbGxhaGFuIiwgMjAyNCwgMzIuOTksICJoYXJkY292ZXIiLCA0MDApOwoKCiAgICAgIGNvdXQgPDwgIkhlcmUgYXJlIHNvbWUgb2YgbXkgZmF2b3JpdGUgYm9va3MgLi4uXG4iIDw8IGVuZGw7CgogICAgICAvLyBwcmludCBib29rIGRldGFpbHMKICAgICAgY291dCA8PCBiMS5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiMS5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjEuZ2V0RGF0ZSgpIDw8ICIuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgcHJpY2Ugb2YgdGhpcyBib29rIGlzOiAkIiA8PCBiMS5nZXRQcmljZSgpIDw8ICIuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgYmluZGluZyBpcyAiIDw8IGIxLmdldEJpbmRpbmcoKSA8PCAiLiIgPDwgZW5kbDsKICAgICAgY291dCA8PCAiVGhlIG51bWJlciBvZiBwYWdlcyBpcyAiIDw8IGIxLmdldFBhZ2VzKCkgPDwgIi4iIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlxuIiA8PCBlbmRsOwoKICAgY291dCA8PCBiMi5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiMi5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjIuZ2V0RGF0ZSgpIDw8ICIuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgcHJpY2Ugb2YgdGhpcyBib29rIGlzOiAkIiA8PCBiMi5nZXRQcmljZSgpIDw8ICIuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgYmluZGluZyBpcyAiIDw8IGIyLmdldEJpbmRpbmcoKSA8PCAiLiIgPDwgZW5kbDsKICAgICAgY291dCA8PCAiVGhlIG51bWJlciBvZiBwYWdlcyBpcyAiIDw8IGIyLmdldFBhZ2VzKCkgPDwgIi4iIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlxuIiA8PCBlbmRsOwoKICAgY291dCA8PCBiMy5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiMy5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjMuZ2V0RGF0ZSgpIDw8ICIuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgcHJpY2Ugb2YgdGhpcyBib29rIGlzOiAkIiA8PCBiMy5nZXRQcmljZSgpIDw8ICIuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgYmluZGluZyBpcyAiIDw8IGIzLmdldEJpbmRpbmcoKSA8PCAiLiIgPDwgZW5kbDsKICAgICAgY291dCA8PCAiVGhlIG51bWJlciBvZiBwYWdlcyBpcyAiIDw8IGIzLmdldFBhZ2VzKCkgPDwgIi4iIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlxuIiA8PCBlbmRsOwoKICAgY291dCA8PCBiNC5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiNC5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjQuZ2V0RGF0ZSgpIDw8ICIuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgcHJpY2Ugb2YgdGhpcyBib29rIGlzOiAkIiA8PCBiNC5nZXRQcmljZSgpIDw8ICIuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgYmluZGluZyBpcyAiIDw8IGI0LmdldEJpbmRpbmcoKSA8PCAiLiIgPDwgZW5kbDsKICAgICAgY291dCA8PCAiVGhlIG51bWJlciBvZiBwYWdlcyBpcyAiIDw8IGI0LmdldFBhZ2VzKCkgPDwgIi4iIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlxuIiA8PCBlbmRsOwoKICAgY291dCA8PCBiNS5nZXRUaXRsZSgpIDw8ICIgYXV0aG9yZWQgYnkgIiA8PCBiNS5nZXRBdXRob3IoKSA8PCAiIGluIHRoZSB5ZWFyICIgPDwgYjUuZ2V0RGF0ZSgpIDw8ICIuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgcHJpY2Ugb2YgdGhpcyBib29rIGlzOiAkIiA8PCBiNS5nZXRQcmljZSgpIDw8ICIuIiA8PCBlbmRsOwogICAgICBjb3V0IDw8ICJUaGUgYmluZGluZyBpcyAiIDw8IGI1LmdldEJpbmRpbmcoKSA8PCAiLiIgPDwgZW5kbDsKICAgICAgY291dCA8PCAiVGhlIG51bWJlciBvZiBwYWdlcyBpcyAiIDw8IGI1LmdldFBhZ2VzKCkgPDwgIi4iIDw8IGVuZGw7CiAgICAgIGNvdXQgPDwgIlxuIiA8PCBlbmRsOwoKICAgICAgcmV0dXJuICgwKTsKfQ==