File yuanh include include include include using namespace

// File: yuan.h

#include <iostream>

#include <fstream>

#include <string>

#include <iomanip>

using namespace std;

struct book

{

int ISBN;

string Author;

string Title;

string publisher;

int Quantity;

double price;

};

void choice1(book books[], int& size, int MAX_SIZE)

{

ifstream inFile;

inFile.open(\"inventory.txt\");

if (inFile.fail())

cout <<\"file could not open\"<<endl;

string str;

  

while(inFile && size < MAX_SIZE)

{

getline(inFile, str);

books[size].ISBN = atoi(str.c_str());

getline(inFile, books[size].Title);

  

getline(inFile, books[size].Author);

getline(inFile, books[size].publisher);

  

  

  

getline(inFile, str);

books[size].Quantity = atoi(str.c_str());

  

getline(inFile, str);

books[size].price = atoi(str.c_str());

  

getline(inFile, str);

size++;

}

  

cout << \"You have successfully read the file.\" << endl;

inFile.close();

}

void choice2(book books[], int& size, int MAX_SIZE)

{

if(size < MAX_SIZE)

{

string str;

  

cout << \"\ Enter the book ISBN: \";

cin >> books[size].ISBN;

  

cout << \"Enter the author name: \";

cin >> books[size].Author;

  

cout << \"Enter the book tile: \";

cin >> books[size].Title;

cin.get();

  

cout << \"Enter the books quantity: \";

cin >> books[size].Quantity;

  

cout << \"Enter the book price: $\";

cin >> books[size].price;

  

size++;

cout << \"You have successfully inserted an entry.\" << endl;

}

}

void choice3(book books[], int& size)

{

if(size == 0)

cout << \"Array is empty. Read the data first.\" << endl;

else

{

int isbn;

  

cout << \"\ Enter the ISBN of the book: \";

cin >> isbn;

  

for(int i = 0; i < size; i++)

{

if(books[i].ISBN == isbn)

{

int j = i;

while(j < size - 1)

{

books[j] = books[j + 1];

j++;

}

  

size--;

break;

}

}

  

cout << \"You have successfully deleted an entry.\" << endl;

}

}

void choice4(book books[], int size)

{

if(size == 0)

cout << \"Array is empty. Read the data first.\" << endl;

else

{

int isbn;

int option;

int qty;

  

cout << \"\ Enter the ISBN of the book: \";

cin >> isbn;

  

cout << \"1. Increment\" << endl;

cout << \"2. Decrement\" << endl;

cout << \"3. Add New\" << endl;

cout << \"Enter your option: \";

cin >> option;

  

cout << \"Enter the quantity: \";

cin >> qty;

  

for(int i = 0; i < size; i++)

{

if(books[i].ISBN == isbn)

{

if(option == 1)

books[i].Quantity += qty;

else if(option == 2)

{

books[i].Quantity -= qty;

  

if(books[i].Quantity)

books[i].Quantity = 0;

}

else if(option == 3)

books[i].Quantity = qty;

  

break;

}

}

  

cout << \"You have successfully updated the array.\" << endl;

}

}

void choice5(book books[], int size)

{

for(int i = 1; i < size; i++)

{

book current = books[i];

int j = i;

while(j > 0 && (books[j - 1].Title).compare(current.Title) > 0)

{

books[j] = books[j - 1];

j--;

}

books[j] = current;

}

  

if(size != 0)

cout << \"You have successfully sorted the array.\" << endl;

else

cout << \"Array is empty. Read the data first.\" << endl;

}

void choice6(book books[], int size)

{

for(int i = 0; i < size; i++)

{

cout << endl;

cout << \"Book Number: \" << (i + 1) << endl;

cout << \"ISBN: \" << books[i].ISBN << endl;

cout << \"Author: \" << books[i].Author << endl;

cout << \"Title: \" << books[i].Title << endl;

cout << \"Quantity: \" << books[i].Quantity << endl;

cout << \"Price: $\" << books[i].price << endl;

}

  

if(size != 0)

cout << \"You have successfully printed the array.\" << endl;

else

cout << \"Array is empty. Read the file first.\" << endl;

}

void choice7(book books[], int size)

{

ofstream outFile;

outFile.open(\"finalData.dat\");

  

for(int i = 0; i < size; i++)

{

outFile << \"Book Number: \" << (i + 1) << endl;

outFile << \"ISBN: \" << books[i].ISBN << endl;

outFile << \"Author: \" << books[i].Author << endl;

outFile << \"Title: \" << books[i].Title << endl;

outFile << \"Quantity: \" << books[i].Quantity << endl;

outFile << \"Price: $\" << books[i].price << endl << endl;

}

  

if(size != 0)

cout << \"You have successfully printed the array.\" << endl;

else

cout << \"Array is empty. Read the file first.\" << endl;

  

outFile.close();

}

// File: Boookstore.cpp

#include<iostream>

#include\"yuan.h\"

using namespace std;

int main()

{

const int MAX_SIZE=100;

int size = 0;

int choice;

book books[MAX_SIZE];

  

do

{

cout << \"1: Read inventory forn file\" << endl;

cout << \"2: Add an entry\" << endl;

cout << \"3: Delete an entry\" << endl;

cout << \"4: Update an entry\" << endl;

cout << \"5: Sort inventory\" << endl;

cout << \"6: Display Inventory\" << endl;

cout << \"7: Write inventory to file and exit\" << endl;

cout << \"Enter your choice: \";

cin >> choice;

  

switch(choice)

{

case 1:

choice1(books, size, MAX_SIZE);

break;

case 2:

choice2(books, size, MAX_SIZE);

break;

case 3:

choice3(books, size);

break;

case 4:

choice4(books, size);

break;

case 5:

choice5(books, size);

break;

case 6:

choice6(books, size);

break;

  

case 7:

choice7(books, size);

cout << \"Thank you.\" << endl;

break;

default:

cout << \"Invalid choice!\" << endl;

}

cout << endl;

}while(choice != 7);

  

return 0;

}

need comments cuase im bad at English ty

Solution

// File: yuan.h

#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;

// declare book structure
struct book
{
    int ISBN;
    string Author;
    string Title;
    string publisher;
    int Quantity;
    double price;
};


/*function1: taking in input book structure array, size as pass by reference and the maximum size as input
return type: void
This function open the inventory file, reads the file line by line and fill the book
structure till maximum size of book structure array
*/
void choice1(book books[], int& size, int MAX_SIZE)
{
    // open file
    ifstream inFile;
    inFile.open(\"inventory.txt\");

    // check if file is opened
    if (inFile.fail())
        cout <<\"file could not open\"<<endl;

    string str;

    // read from file while maxi mum size is reached or there are no lines to read from file
    while(inFile && size < MAX_SIZE)
    {
        // read the corresponding values of book structure
        // and fill the book structure array
        getline(inFile, str);
        // convert string to integer using atoi and fill in the ISBN
        // for corresponding array index
        books[size].ISBN = atoi(str.c_str());
        getline(inFile, books[size].Title);
        getline(inFile, books[size].Author);
        getline(inFile, books[size].publisher);
        getline(inFile, str);
        books[size].Quantity = atoi(str.c_str());
        getline(inFile, str);
        books[size].price = atoi(str.c_str());
        getline(inFile, str);
        // increment the size to fill the array for next index
        size++;

    }
    cout << \"You have successfully read the file.\" << endl;
    // close file
    inFile.close();

}

/*function1: taking in input book structure array, size as pass by reference and the maximum size as input
return type: void
This function asks for the user input fill the book
structure till maximum size of book structure array
*/
void choice2(book books[], int& size, int MAX_SIZE)

{

    if(size < MAX_SIZE)

    {

        string str;
        // user input
        cout << \"\ Enter the book ISBN: \";
        // fille array
        cin >> books[size].ISBN;

        cout << \"Enter the author name: \";
        cin >> books[size].Author;
      
        cout << \"Enter the book tile: \";
        cin >> books[size].Title;
        cin.get();

        cout << \"Enter the books quantity: \";
        cin >> books[size].Quantity;

        cout << \"Enter the book price: $\";
        cin >> books[size].price;

        size++;
        cout << \"You have successfully inserted an entry.\" << endl;

    }

}


/*function1: taking in input book structure array, size as pass by reference
return type: void
This function asks the user for ISBN number of the book, finds the book and delete the record
*/
void choice3(book books[], int& size)

{

    if(size == 0)
        cout << \"Array is empty. Read the data first.\" << endl;
    else
    {
        int isbn;

        // get isbn from user
        cout << \"\ Enter the ISBN of the book: \";
        cin >> isbn;

        // search for isbn in structure array
        for(int i = 0; i < size; i++)
        {
            // if book is found
            if(books[i].ISBN == isbn)
            {
                int j = i;
                while(j < size - 1)
                {
                    // delete book
                    books[j] = books[j + 1];
                    j++;
                }

                // decrement size
                size--;
                break;
            }
        }
        cout << \"You have successfully deleted an entry.\" << endl;
    }

}


/*function1: taking in input book structure array, size as pass by reference
return type: void
This function allows the user to increment, decrement or add new new quantity
for a particular book by entering its ISBN
*/
void choice4(book books[], int size)
{
    if(size == 0)
        cout << \"Array is empty. Read the data first.\" << endl;
    else
    {
        int isbn;
        int option;
        int qty;

        // input isbn
        cout << \"\ Enter the ISBN of the book: \";
        cin >> isbn;

        // ask for user choice
        cout << \"1. Increment\" << endl;
        cout << \"2. Decrement\" << endl;
        cout << \"3. Add New\" << endl;
        cout << \"Enter your option: \";
        cin >> option;

        // input quantity
        cout << \"Enter the quantity: \";
        cin >> qty;

        // iterate array, find the isbn
        for(int i = 0; i < size; i++)
        {
            if(books[i].ISBN == isbn)
            {
                // increment, decrement or set new quantity
                if(option == 1)
                    books[i].Quantity += qty;
                else if(option == 2)
                {
                    books[i].Quantity -= qty;
                    if(books[i].Quantity)
                        // if quantity is less than 0, set the quantity to zero.
                        books[i].Quantity = 0;
                }
                else if(option == 3)
                    books[i].Quantity = qty;
                break;
            }
        }

        cout << \"You have successfully updated the array.\" << endl;

    }

}


/*function1: taking in input book structure array, and size of array
return type: void
this function sorts the book array by comparing titles of books
*/
void choice5(book books[], int size)
{
    // iterate the array
    for(int i = 1; i < size; i++)
    {
        book current = books[i];
        int j = i;
        // compare the titles of book and sort on basis of that
        while(j > 0 && (books[j - 1].Title).compare(current.Title) > 0)
        {
            books[j] = books[j - 1];
            j--;
        }
        books[j] = current;
    }
  
    if(size != 0)
        cout << \"You have successfully sorted the array.\" << endl;
    else
        cout << \"Array is empty. Read the data first.\" << endl;

}


/*function1: taking in input book structure array, and size of array
return type: void
This function prints data in array to the output console
*/
void choice6(book books[], int size)
{
    // itearte the book array
    for(int i = 0; i < size; i++)
    {
        // output the data in array
        cout << endl;
        cout << \"Book Number: \" << (i + 1) << endl;
        cout << \"ISBN: \" << books[i].ISBN << endl;
        cout << \"Author: \" << books[i].Author << endl;
        cout << \"Title: \" << books[i].Title << endl;
        cout << \"Quantity: \" << books[i].Quantity << endl;
        cout << \"Price: $\" << books[i].price << endl;

    }

    if(size != 0)
        cout << \"You have successfully printed the array.\" << endl;
    else
        cout << \"Array is empty. Read the file first.\" << endl;

}

/*function1: taking in input book structure array, and size of array
return type: void
This function open the output file, and puts the data in array to the output file
*/
void choice7(book books[], int size)
{
    // open file
    ofstream outFile;
    outFile.open(\"finalData.dat\");

    // iterate the book array and put data in file
    for(int i = 0; i < size; i++)
    {
        outFile << \"Book Number: \" << (i + 1) << endl;
        outFile << \"ISBN: \" << books[i].ISBN << endl;
        outFile << \"Author: \" << books[i].Author << endl;
        outFile << \"Title: \" << books[i].Title << endl;
        outFile << \"Quantity: \" << books[i].Quantity << endl;
        outFile << \"Price: $\" << books[i].price << endl << endl;
    }

    if(size != 0)
        cout << \"You have successfully printed the array.\" << endl;
    else
        cout << \"Array is empty. Read the file first.\" << endl;

    // close the file
    outFile.close();

}


// File: Boookstore.cpp
#include <iostream>
#include \"yuan.h\" // include header file

using namespace std;

int main()
{
    // declare cosntant variable maxsize
    const int MAX_SIZE=100;
    // declare and initialize variables
    int size = 0;
    // choice variable for user input
    int choice;
    // book structure array
    book books[MAX_SIZE];

  

    do

    {
        // display menu
        cout << \"1: Read inventory forn file\" << endl;
        cout << \"2: Add an entry\" << endl;
        cout << \"3: Delete an entry\" << endl;
        cout << \"4: Update an entry\" << endl;
        cout << \"5: Sort inventory\" << endl;
        cout << \"6: Display Inventory\" << endl;
        cout << \"7: Write inventory to file and exit\" << endl;
        cout << \"Enter your choice: \";
        // user input choice
        cin >> choice;

      
        // call function of basis of choice
        switch(choice)
        {
            case 1:
                choice1(books, size, MAX_SIZE);
                break;

            case 2:
                choice2(books, size, MAX_SIZE);
                break;

            case 3:
                choice3(books, size);
                break;

            case 4:
                choice4(books, size);
                break;

            case 5:
                choice5(books, size);
                break;

            case 6:
                choice6(books, size);
                break;

            case 7:
                choice7(books, size);
                cout << \"Thank you.\" << endl;
                break;

            default:
                cout << \"Invalid choice!\" << endl;

        }
        cout << endl;
    // get user choice until it wasnts to exit
    }while(choice != 7);

  

    return 0;

}

// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;
// File: yuan.h #include <iostream> #include <fstream> #include <string> #include <iomanip> using namespace std; struct book { int ISBN;

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site