Saturday, 12 November 2016

Design a class bookType that defines the book as an ADT.  Each object of the class bookType can hold the following information about a book: title, up to four authors, publisher, ISBN, price, and 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.

Assigment #2 Q#3

Q)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 ADT.
  Each object of the class bookType can hold the following information about a book: title, up to four authors, publisher, ISBN, price, and 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 similar operations for the publisher, ISBN, book price, and authors. Add the appropriate constructors and a destructor (if one is needed).

#include<iostream>
#include<string>

usingnamespace std;


classbookType//class to store information about the book
{  
       string title; //stories the title of an oject
       string Authors[4]; //stores the Authors names
       int n_Author; //stores number of Authors
       string publishr; //Stores the name of Publisher
       string ISBN;//store ISBN NUmber
       double price; //Stores the price
       int copies;
public:
       bookType(); //constructor
       void setTitle(string); //function declaration to set the title
       string r_title();   //function declaration to return the title
       void showTitle(); //function declaration to show the title

       void SetAuthors(int); //function declaration to set the Author(s)
       void ShowAuthors()const; //function declaration to show the Autho(s)

       void setPublishr(string); //function declaration to set the Publisher name
       void showPublishr();  //function declaration to show the Publisher name

       void setIBSN(string); //function declaration to set the IBSN No.
       string r_IBSN();  //function declaration to return the IBSN No.
       void showIBSN();   //function declaration to show the IBSN No.

       void setPrice(double); //function declaration to set the price
       double R_price();  //function declaration to return the price
       void showPrice();    //function declaration to show the price

       void setCopies(int); //function declaration to set the No.of Copies
       int r_copies();  //function declaration to return the No.of Copies
       void showCopies();  //function declaration to show the No.of Copies
       void u_Copies(int); //function declaration to update the No.of Copies

       void print(); //function declaration to print the all data about the book

};
void search();
bookType A[3]; //creating object using Aray


int main()
{
              string ti;
       int n,c=1;
       double p;
       char co;
       for (int i = 0; i < 3; i++) //loop to take the data of  multiple books
       {
              cout <<"BOOK No."<< i + 1 << endl;
              cout <<"Enter the Title :";
              getline(cin, ti); //Takes the title from the user
              A[i].setTitle(ti); //set the title in private member of a class
              cout <<"Enter the Numbers of Authors : ";
              while (!(cin >> n) || n<0) { //validation checking of number of authors
                     cin.clear();
                     cin.ignore(999, '\n');
                     cout <<"Invalid data type! \nPlease Enter the Numbers of Authors again :";
              }
              if (n > 4 || n <= 0)
              {
                     cout <<"Enter the Numbers of Authors in the range of 1~4 :";
                     cin >> n;
              }
              A[i].SetAuthors(n); //set the Authors NAme
             
              cout <<"Enter the Name of Publisher :";
              getline(cin, ti); //Takes the Nmae of the publisher from the user
              A[i].setPublishr(ti); //sets the publisher name
              cout <<"Enter the ISBN no : ";
              getline(cin, ti); //Takes the ISBN no. from the user
              A[i].setIBSN(ti); //ststhe ISBN name
              cout <<"Enter the price : ";
              while (!(cin >> p) || p<0) { //validation checking of price entered by the user
                     cin.clear();
                     cin.ignore(999, '\n');
                     cout <<"Invalid data type! \nPlease Enter the Price again :";
              }
              A[i].setPrice(p); //sets the price of the book
              cout <<"Enter the number of copies :";
              while (!(cin >> n) || n<0) { //validation checking of no of copies entered by the user
                     cin.clear();
                     cin.ignore(999, '\n');
                     cout <<"Invalid data type! \nPlease Enter the  number of copies again :";
              }
              A[i].setCopies(n); //set the no. of copies
              cout << endl;
              cin.ignore();
       }
       for (int i = 0; i < 3; i++) //loop to diplay the data of multiple books
       {
              A[i].print();
              cout << endl;
       }
       search(); //calling of search function
       system("pause");
       return 0;
}
voidbookType::setTitle(stringt) //Functon to set the title
{
       title = t;
}
stringbookType::r_title() //Functon to return the title
{
       return title;
}
voidbookType::showTitle() //Functon to show the title
{
       cout <<"\tTitle : "<< r_title() << endl;
}

voidbookType::SetAuthors(intn) //Functon to set the names of author(s)
{
       cin.ignore();
       for (int i = 0; i <n; i++)
       {
              cout <<"\tAuthor #"<< i + 1<<" : ";
              getline(cin, Authors[i]);
       }

}
voidbookType::ShowAuthors() const//Functon to display the names of Authors
{
       cout <<"\tAuthor(s)";
       if (Authors[0] != "")
              cout << Authors[0];
       if (Authors[1] != "")
              cout <<", "<<Authors[1];
       if (Authors[2] != "")
              cout <<", "<< Authors[2];
       if (Authors[3] != "")
              cout <<", "<< Authors[3];
       cout << endl;
}
voidbookType::setPublishr(stringp) //Functon to set the name of publisher
{
       publishr = p;
}
voidbookType::showPublishr() //Functon to show the name of publisher
{
       cout <<"\tPublisher : "<< publishr << endl;
}
voidbookType::setIBSN(stringi) //Functon to set ISBN no.
{
       ISBN = i;
}
stringbookType::r_IBSN() //Functon to return ISBN no.
{
       return ISBN;
}
voidbookType::showIBSN() //Functon to return ISBN no.
{
       cout <<"\tISBN : "<< r_IBSN() << endl;
}
voidbookType::setPrice(doublep//Functon to set the price of a book
{
       price = p;
}
doublebookType::R_price() //Functon to return the price of a book
{
       return price;
}
voidbookType::showPrice() //Functon to show the price of a book
{
       cout <<"\tPrice : "<< R_price() << endl;
}
voidbookType::setCopies(intn) //Functon to set the no. of copies of a book
{
       copies = n;
}
intbookType::r_copies() //Functon to return the no. of copies of a book
{
       return copies;
}
voidbookType::u_Copies(intu) //Functon to update the no. of copies of a book
{
       copies=u;
}
voidbookType::showCopies()
{
       cout <<"\tCopies in Stock : "<< r_copies() << endl;
}
voidbookType::print() ////Functon to print the book information
{
       showTitle();
       ShowAuthors();
       showPublishr();
       showIBSN();
       showPrice();
       showCopies();
}
bookType::bookType() //constructor definition
{
       title = "";
       Authors[0] = "";
       Authors[1] = "";
       Authors[2] = "";
       Authors[3] = "";
       n_Author = 0;
       ISBN = "0-00000-00";
       price = 0.00;
       copies = 0;
}
void search() //function to serach the book by ISBN no. or by title
{
       int ch,c=1,n;
       char co;
       string ti;
       cout <<"Enter 1 for to Search by 'Title' and '2' for to search by IBSN No. : ";
       cin >> ch; //takes the choice
       switch (ch)
       {
       case 1: //executes if user enters 1
       {
              cin.ignore();
              cout <<"Enter the title :";
              getline(cin, ti);
              for (int i = 0; i < 3; i++)
              {
                     string t = A[i].r_title();
                     if (ti == t)
                     {
                           c = 0;
                           A[i].print();
                           cout <<"Did you want of modify the no of copies (y/n) :";
                           cin >> co;
                           switch (co)
                           {
                           case'y':
                           {
                                  cout <<"Enter the nmuber of Copies :";
                                  cin >> n;
                                  A[i].u_Copies(n);
                                  cout << endl <<"Modified DATA "<< endl << endl;
                                  A[i].print();
                                  break;
                           }
                           case'n':
                                  break;
                           default:
                                  cout <<"Invliad Choice"<< endl;
                           }
                     }
                     if (c == 1 && i == 2)
                           cout <<"Not found a book with this title"<< endl;
              }
              break;
       }
       case 2: //executes if user enters 2
       {
              cin.ignore();
              cout <<"Enter the IBSN :";
              getline(cin, ti);
              for (int i = 0; i < 3; i++)
              {
                     string t = A[i].r_IBSN();
                     if (t == ti)
                     {
                           c = 1;
                           A[i].print();
                           cout <<"Did you want of modify the no of copies (y/n) :";
                           cin >> ch;
                           switch (ch)
                           {
                           case'y':
                           {
                                  cout <<"Enter the nmuber of Copies :";
                                  cin >> n;
                                  A[i].u_Copies(n);
                                  cout << endl <<"Modified DATA "<< endl << endl;
                                  A[i].print();
                                  break;
                           }
                           case'n':
                                  break;
                           default:
                                  cout <<"Invliad Choice"<< endl;
                           }
                     }
                     if (c = 1 && c == 2)
                           cout <<"Not found a book with this ISBN NO."<< endl;
              }
              break;
       }
       default: //exectes if user enter invalid choice
              cout <<"Invliad choice"<< endl;
       }

}

2 comments:

  1. There are much errors in this program

    ReplyDelete
    Replies
    1. Jseparate datatypes from names and all The errors will be finished.

      Delete