Question: Can you please write the main function in this code the expert earlier didn't write it. in C++ please #include #include #include using namespace std;

Can you please write the main function in this code the expert earlier didn't write it. in C++ please

#include

#include

#include

using namespace std;

bool readInventory(string fileName, int &numRecords, string *PLU, double *price, string *productName, int *productSalesType, int *inventory) {

ifstream file(fileName);

if (!file) {

return false;

}

string line;

numRecords = 0;

while (getline(file, line)) {

++numRecords;

}

file.clear();

file.seekg(0, ios::beg);

PLU = new string[numRecords];

price = new double[numRecords];

productName = new string[numRecords];

productSalesType = new int[numRecords];

inventory = new int[numRecords];

int index = 0;

while (file >> PLU[index] >> productName[index] >> productSalesType[index] >> price[index] >> inventory[index]) {

++index;

}

file.close();

return true;

}

double checkout(int numRecords, string *PLU, double *price, int *inventory) {

double totalCost = 0;

string pluCode;

int quantity;

while (true) {

cout << "Enter PLU code (0 to end): ";

cin >> pluCode;

if (pluCode == "0") {

break;

}

int index = -1;

for (int i = 0; i < numRecords; ++i) {

if (PLU[i] == pluCode) {

index = i;

break;

}

}

if (index == -1) {

cout << "Invalid PLU code. Try again." << endl;

continue;

}

cout << "Enter quantity: ";

cin >> quantity;

while (quantity <= 0) {

cout << "Invalid quantity. Try again." << endl;

cout << "Enter quantity: ";

cin >> quantity;

}

if (inventory[index] < quantity) {

cout << "Not enough inventory. Selling only " << inventory[index] << endl;

quantity = inventory[index];

}

totalCost += quantity * price[index];

inventory[index] -= quantity;

}

return totalCost;

}

void printInventory(int numRecords, string *PLU, string *productName, int *productSalesType, double *price, int *inventory) {

cout << "PLU\tProduct Name\tSales Type\tPrice\tInventory" << endl;

for (int i = 0; i < numRecords; ++i) {

cout << PLU[i] << "\t" << productName[i] << "\t\t";

if (productSalesType[i] == 0) {

cout << "Unit\t";

} else {

cout << "Pound\t";

}

cout << price[i] << "\t" << inventory[i] << endl;

}

}

int main() {

int numRecords;

string *PLU = nullptr;

double *price = nullptr;

string *productName = nullptr;

int *productSalesType = nullptr;

int *inventory = nullptr;

string fileName = "inventory.txt";

if (!readInventory(fileName, numRecords, PLU, price, productName, productSalesType, inventory)) {

cout << "Error opening file: " << fileName << endl;

return 1;

}

cout << "Inventory:" << endl;

printInventory(numRecords, PLU, productName, productSalesType, price, inventory);

double totalCost = checkout(numRecords, PLU, price, inventory);

cout << "Total cost: $" << totalCost << endl;

return 0;

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!