Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ Book organization and entry So This is what I have so far, and it compiles a

ID: 3781973 • Letter: C

Question

C++ Book organization and entry

So This is what I have so far, and it compiles and runs, but it messes up after the second isbn under "Fuzzy Discrete Structures". Please reply with code structure, I'm still learning this and examples are better than reading full examples because I am a bit disabled when it comes to forming structured in sentences. Thank you!

main.cpp

Edit & Run





bookType.h


book.dat
5
C++Programing: From Problem Analysis to Program Design
5-17-525281-3
ABC
2000
52.50
20
1
Malik, D.S.
Fuzzy Discrete Structures
3-7908-1335-4
Physica-Verlag
2000
89.00
10
2
Malik, Davender
Mordeson, John
Fuzzy Mathematic in Medicine
3-7908-1325-7
Physica-Verlag
2000
89.00
10
3
Mordeson, John
Malik, Davender
Cheng, Shih-Chung
Harry John and The Magician
0-239-23635-0
McArthur A. Devine Books
1999
19.95
10
3
Goof, Goofy
Pluto, Peter
Head, Mark
Dynamic InterWeb Programming
22-99521-453-1
GNet
1998
39.99
25
1

  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  
  #include "bookType.h"  #include   #include       int main()  {          bookType books[5];          ifstream theFile("book.dat");          string line;          string line2;          double number;          for (int i = 0; i < 5; i++)          {            getline(theFile, line);          books[i].set_title(line);          getline(theFile, line);          books[i].set_ISBN(line);          getline(theFile, line);          books[i].set_publisher(line);          getline(theFile, line);          books[i].set_year(line);          theFile >> number;          theFile.ignore(numeric_limits::max(), ' ');          books[i].set_price(number);          theFile >> number;          theFile.ignore(numeric_limits::max(), ' ');          books[i].set_numOfcopies(number);          theFile >> number;          theFile.ignore(numeric_limits::max(), ' ');          books[i].set_numOfAuthors(number);          //theFile >> line;          //books[i].add_author(line);                    }                    for (int i = 0; i < 5; i++)          {                  cout << books[i].get_title();                  cout << endl;                  cout << books[i].get_ISBN();                  cout << endl;                  cout << books[i].get_publisher();                  cout << endl;                  cout << books[i].get_year();                  cout << endl;                  cout << books[i].get_price();                  cout << endl;                  cout << books[i].get_numOfcopies();                  cout << endl;                  cout << books[i].get_numOfAuthors();                  cout << endl;                  //books[i].list_authors();          }                    //a[2].list_authors();          cout << endl;          //a[0].get_authors(1);          std::cin.get();          return 0;    }   

Edit & Run

Explanation / Answer

// Here is the fixed program

// book.cpp

#include "bookType.h"
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
bookType books[5];
ifstream theFile("book.dat");
string line;
string line2;
double number;
int number_of_line;
theFile >> number_of_line;
cout << "Number of line is "<< number_of_line<< endl;
getline(theFile, line);
for (int i = 0; i < number_of_line; i++)
{

getline(theFile, line);
books[i].set_title(line);
getline(theFile, line);
books[i].set_ISBN(line);
getline(theFile, line);
books[i].set_publisher(line);
getline(theFile, line);
books[i].set_year(line);
theFile >> number;
books[i].set_price(number);
theFile >> number;
books[i].set_numOfcopies(number);
theFile >> number;
books[i].set_numOfAuthors(number);
getline(theFile, line);
for (int j = 0; j < number; j++)
{
getline(theFile, line);
books[i].add_author(line);
}

}
  
for (int i = 0; i < 5; i++)
{
cout << books[i].get_title();
cout << endl;
cout << books[i].get_ISBN();
cout << endl;
cout << books[i].get_publisher();
cout << endl;
cout << books[i].get_year();
cout << endl;
cout << books[i].get_price();
cout << endl;
cout << books[i].get_numOfcopies();
cout << endl;
cout << books[i].get_numOfAuthors();
cout << endl;
books[i].list_authors();
}
  
//a[2].list_authors();
cout << endl;
//a[0].get_authors(1);
std::cin.get();
return 0;

}

// bookType.h

#include <string>
#include <iostream>

using namespace std;
class bookType
{
private:
string _title;
string _authors[4];
string _publisher;
string _ISBN;
double _price;
int _numOfcopies;
int _numOfAuthor;
string _year;
public:
bookType();
~bookType();
void set_title(string title);
string get_title();
int compare_titles(string title);
void list_authors();
void set_numOfcopies(int num);
int get_numOfcopies();
void updateNumOfcopies(int num);
//void show_numOfcopies();
void set_publisher(string pub);
string get_publisher();
// void show_publisher();
void set_ISBN(string isbn);
string get_ISBN();
//void show_ISBN();
void set_price(double price);
double get_price();
//void show_price();
void add_author(string author);
string get_authors(int num);
//void show_authors();
void set_year(string year);
string get_year();
//void show_year();
void clear_authors();
void set_numOfAuthors(int num);
int get_numOfAuthors();

  

  
};

bookType::bookType(){
_title = "";
_authors[0] = "";
_authors[1] = "";
_authors[2] = "";
_authors[3] = "";
_publisher = "";
_price = 0;
_ISBN = "";
_numOfAuthor = 0;
_numOfcopies = 0;
_year = "";
}
bookType::~bookType()
{
_title = "";
_authors[0] = "";
_authors[1] = "";
_authors[2] = "";
_authors[3] = "";
_publisher = "";
_price = 0;
_ISBN = "";
_numOfAuthor = 0;
_numOfcopies = 0;
_year = "";
}

void bookType::set_title(string title){
_title = title;
}
string bookType::get_title(){
return _title;
}
void bookType::clear_authors(){
_numOfAuthor = 0;
}
void bookType::set_publisher(string pub){
_publisher = pub;
}
string bookType::get_publisher(){
return _publisher;
}

void bookType::add_author(string author)
{
  
_authors[_numOfAuthor] = author;
  
  
}
void bookType::set_numOfAuthors(int num)
{
_numOfAuthor = num;
}
int bookType:: get_numOfAuthors()
{
return _numOfAuthor;
}
void bookType::list_authors()
{
int i = 0;
cout << "Authors are" << endl;
for (int i = 0; i < 4; i++)
if (_authors[i] != "")
{
cout << _authors[i] << endl;
}
  

}
void bookType::set_numOfcopies(int num)
{
_numOfcopies = num;
}
void bookType::updateNumOfcopies(int num)
{
_numOfcopies = _numOfcopies + num;
}
int bookType::get_numOfcopies()
{
return _numOfcopies;
}

void bookType::set_ISBN(string isbn)
{
_ISBN = isbn;
}
string bookType::get_ISBN()
{
return _ISBN;
}
void bookType::set_price(double price)
{
_price = price;
}
double bookType::get_price()
{
return _price;
}
void bookType::set_year(string year)
{
_year = year;
}
string bookType::get_year()
{
return _year;
}
int bookType::compare_titles(string title)//check this
{
int i = (title == _title);
return i;

}