Answer to Question #332927 in C++ for qwer

Question #332927

•

searchBook( )

–

for a searching book by name or author. It asks the user to enter the

type of search he/she wants i.e. by Book name or by author name.



1
Expert's answer
2022-04-24T07:03:30-0400


#include <iostream>
#include <string.h>
#include <vector>
#include <iomanip>>
using namespace std;
//Define a class Book wich stored data for Book
class Book
{
private:
char name[25];//Name Book
char author[30];//Author
public:
//Default constructor
Book()
{
  strcpy(this->name,"-");
  strcpy(this->author,"-");
}
//Parametraze constructor
Book(const char*nm,const char*a)
{
  strcpy(this->name,nm);
  strcpy(this->author,a);
}
//Copy Constructor
Book(const Book&bk)
{
  strcpy(this->name,bk.getName());
  strcpy(this->author,bk.getAuthor());
}
const char*getName()const
{
  return name;  
}
const char*getAuthor()const{
  return this->author;
}
void setName(const char*s)
{
  strcpy(this->name,s);
}
void setAuthor(const char*ch)
{
  strcpy(this->author,ch);
}
friend ostream&operator<<(ostream& os,Book& bk)
{
  os<<setw(25)<<bk.getName()<<"|"<<setw(25)<<bk.getAuthor()<<"|\n";
  return os;
}
};
void searchBookByName(vector<Book>&bk,const char*key)
{
  for(int i=0;i<bk.size();i++)
    {
      if(strcmp(bk[i].getName(),key)==0)
        cout<<bk[i]<<endl;
    }
}
void searchBookByAuth(vector<Book>&bk,const char*key)
{
  for(int i=0;i<bk.size();i++)
    {
      if(strcmp(bk[i].getAuthor(),key)==0)
        cout<<bk[i]<<endl;
    }
}
void searchBook(vector<Book>&bk)
{
  cout<<"Please choose menu\n";
  cout<<"1 -search by Name Book\n";
  cout<<"2 -search by Author Book\n";
  int cmd;
  cin>>cmd;
  switch(cmd)
    {
      case 1:
        {
          char nm[25];
          cout<<"Please input keyword:";
          cin>>nm;
          searchBookByName(bk,nm);
          break;
        }
      case 2:
        {
          char nm[25];
          cout<<"Please input keyword:";
          cin>>nm;
          searchBookByAuth(bk,nm);
          break;
        }
      case 3:
        {
          cout<<"OO Sory Doesnt exist command!!\n";
          break;
        }
    }
}
void InputData(vector<Book>&bk,int size)
{
  for(int i=0;i<size;i++)
    {
      cout<<"Please input name Book:";
      char nam[25];//name look for book
      char auth[30];//author look for book
      cin>>nam;
      cout<<"Please input author Book:";
      cin>>auth;
      Book b(nam,auth);
      bk.push_back(b);
    }
}
int main() {
  vector<Book>bks;//Array of books we can use memory array or VLA
  InputData(bks,3);
  searchBook(bks);
  for(auto it:bks)
    cout<<it<<endl;
  return 0;
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS