Write program in C++ Some of the characteristics of a book are the title , autho
ID: 3837269 • Letter: W
Question
Write program in C++
Some of the characteristics of a book are the title, author(s), publisher, ISBN, price, and year of publication. Design a class bookType that
defines the book as an abstract data type.
Each object of the class bookType can hold the following information about a book: title up to 4 authors, publisher, ISBN, price, and the number of copies in stock. To keep track of the number of authors, add another member variable.
Include the member functions to perform the various operations on objects of type bookType. For example, the usual operations that can be performed on the title are to show the title, set the title, and check whether a title is the same as the actual title of the book. Similarly, the typical operations that can be performed on the number of copies in stock are to show the number of copies in stock. Set the number of copies in stock, update the number of copies in stock, and return the number of copies in stock. Add 1 similar operations for the publisher, ISBN, book price, and authors. Add the appropriate constructors and a destructor (if one is needed).
Write the definitions of the member functions of the class bookType.
Write a program that uses the class bookType and tests various operations on the objects of the class bookType. Declare an array of 100 components of type bookType. Some of the operations that you should perform are to search for a book by its title, search by ISBN, and update the number of copies in stock.
Each object of memberType can hold the name of a person, member ID, the number of books bought, and amount spent.
Include the member functions to perform the various operations on the objects of memberType—for example, modify, set, and show a person’s
name. Similarly, update, modify, and show the number of books bought and the amount spent.
Add the appropriate constructors.
Write the definitions of the member functions of memberType.
Write a program to test various operations of your class memberType.
Using the classes designed above to write a program to simulate a bookstore. The bookstore has 2 types of customers: those who are members of the bookstore and those who buy books from the bookstore only occasionally. Each member has to pay a $10 yearly membership fee and receives a 5% discount on each book purchased.
For each member, the bookstore keeps track of the number of books purchased and the total amount spent. For every 11th book that a
member buys, the bookstore takes the average of the total amount of the last 10 books purchased, applies this amount as a discount, and then resets the total amount spent to 0.
Write a program that can process up to 100 book titles and 50 members. Your program should contain a menu that gives the user different choices to effectively run the program; in other words, your program should be user-driven.
Explanation / Answer
book.cpp
// book.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
//! Main class of BookType.
class bookType {
private:
//! Data members.
string title;
string authors[4];
int n_authors;
string ISBN;
string publisher;
int year;
double price;
int copies;
public:
//! Constructor of objects.
bookType();
//! Destructor.
~bookType();
//! Set and get values.
void set_title(string str);
string get_title();
void clear_authors();
void add_author(string str);
string get_author(int number);
void set_ISBN(string str);
string get_ISBN();
void set_publisher(string str);
string get_publisher();
void set_year(int n);
int get_year();
void set_price(double n);
double get_price();
void set_copies(int n);
int get_copies();
void update_copies(int n);
//! Actions.
void show_title();
void show_copies();
void show_ISBN();
void show_publisher();
void show_price();
void show_authors();
void show_year();
//! 1 - equal, 0 - non-equal.
int compare_title(string str);
};
bookType::bookType() {
title = "";
authors[0] = "";
authors[1] = "";
authors[2] = "";
authors[3] = "";
n_authors = 0;
ISBN = "";
publisher = "";
year = 0;
price = 0;
copies = 0;
}
bookType::~bookType() {
}
void bookType::set_title(string str) {
title = str;
}
string bookType::get_title() {
return title;
}
void bookType::clear_authors() {
n_authors = 0;
}
void bookType::add_author(string str) {
if (n_authors < 4) {
authors[n_authors] = str;
n_authors++;
}
}
string bookType::get_author(int number) {
if (n_authors < number) {
return authors[number - 1];
}
else {
return "";
}
}
void bookType::set_ISBN(string str) {
ISBN = str;
}
string bookType::get_ISBN() {
return ISBN;
}
void bookType::set_publisher(string str) {
publisher = str;
}
string bookType::get_publisher() {
return publisher;
}
void bookType::set_year(int n) {
year = n;
}
int bookType::get_year() {
return year;
}
void bookType::set_copies(int n) {
if (n >= 0) copies = n;
}
int bookType::get_copies() {
return copies;
}
void bookType::set_price(double n) {
if (n >= 0) price = n;
}
double bookType::get_price() {
return price;
}
void bookType::update_copies(int n) {
if (n >= 0) copies += n;
}
void bookType::show_title() {
cout
<< "Title:"
<< title
<< endl;
}
void bookType::show_copies() {
cout
<< "Copies in stock:"
<< copies
<< endl;
}
void bookType::show_ISBN() {
cout
<< "ISBN:"
<< ISBN
<< endl;
}
void bookType::show_publisher() {
cout
<< "Publisher:"
<< publisher
<< endl;
}
void bookType::show_price() {
cout
<< "Price:"
<< setprecision(2)
<< fixed
<< price
<< endl;
}
void bookType::show_year() {
cout
<< "Year of publish:"
<< year
<< endl;
}
void bookType::show_authors() {
int i = 0;
cout
<< "Author(s):"
<< n_authors
<< endl;
for(i = 0;i < n_authors; i++) {
cout << authors[i] << " ";
}
cout << endl;
}
int bookType::compare_title(string str) {
int x = (str == title);
return x;
}
int main()
{
bookType a[100];
int i;
for(i = 0; i < 5; i++) {
a[i].add_author("Newton");
a[i].add_author("Kepler");
a[i].set_copies(100-i);
a[i].set_ISBN("123-123-123");
a[i].set_price(100.01+i*i);
a[i].set_publisher("Piter");
a[i].set_title("Star moving");
a[i].set_year(1660+i);
}
for(i = 0; i < 5; i++) {
a[i].show_authors();
a[i].show_copies();
a[i].show_ISBN();
a[i].show_price();
a[i].show_publisher();
a[i].show_title();
a[i].show_year();
}
cout << "Compare(one) " << a[0].compare_title("No one") << endl;
cout << "Compare(two) " << a[0].compare_title("Star moving") << endl;
return 0;
}
Output.txt
Author(s):2
Newton Kepler
Copies in stock:100
ISBN:123-123-123
Price:100.01
Publisher:Piter
Title:Star moving
Year of publish:1660
Author(s):2
Newton Kepler
Copies in stock:99
ISBN:123-123-123
Price:101.01
Publisher:Piter
Title:Star moving
Year of publish:1661
Author(s):2
Newton Kepler
Copies in stock:98
ISBN:123-123-123
Price:104.01
Publisher:Piter
Title:Star moving
Year of publish:1662
Author(s):2
Newton Kepler
Copies in stock:97
ISBN:123-123-123
Price:109.01
Publisher:Piter
Title:Star moving
Year of publish:1663
Author(s):2
Newton Kepler
Copies in stock:96
ISBN:123-123-123
Price:116.01
Publisher:Piter
Title:Star moving
Year of publish:1664
Compare(one) 0
Compare(two) 1
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.