Question
C++ assignment - I am stuck on code that will pull data from an inventory.dat file and display all items. Below is my code. I
C++ assignment - I am stuck on code that will pull data from an inventory.dat file and display all items.
Below is my code. I have indicated with a comment in the code where I'm having a problem at.
#include
#include
#include
#include
using namespace std;
const int DESC_SIZE = 40;
struct Product
{
long prodNum;
char prodName[DESC_SIZE];
double price;
int qty;
};
//function prototypes
int showMenu();
void printFile(fstream&);
void displayRecord(fstream&);
void modifyRecord(fstream&);
//main function
int main()
{
long choice;
//declare a fstream file object
fstream inventory;
do
{
cjpoce =, emi();
switch choice
{
case 1: //Display product inventory file
printFile(inventory);
break;
case 2: //Display a particular product
displayRecord(inventory);
break;
case 3: //Modify a product
modifyRecord(inventory);
break;
default: //Invalid selection
cout << "Invalid selection." << endl;
}
while (choice != 4);
cout << "Thank you. Good bye." << endl;
inventory.close();
system("pause");
return 0;
}
// function that prompts user to enter choice
int menu()
{
cout << "1. Display product inventory file ";
cout << "2. Display a particular product ";
cout << "3. Modify a product ";
cout << "4. Exit the program. ";
cout << endl;
cout << "Enter Menu Choice: ";
cin >> choice;
while (choice < 1 || choice > 4)
{
cout << "Invalid selection. Please enter your choice (1 - 4): ";
cin >> choice;
}
cout << endl;
return choice;
//function printFile that opens input file in read mode and
//display all items. This is where I am stuck.
void printFile(fstream &file)
{
file.open("Inventory.dat", ios::out | : ios::binary | ios::app);
cout
}
//function displayRecord that opens Inventory file in read mode and
//will prompt user to enter record number and display record.
void displayRecord
{
file.open("Inventory.dat", ios::in | ios::binary);
InventoryItem record;
cin.clear();
cout << "Enter record number to be displayed: ";
cin >> record.partNo;
file.seekp((record.partNo - 1) * sizeof(record), ios::beg);
file.read((char *)(&record), size of(InventoryItem));
cout << "Product Number: " << record.Num << endl;
cout << "Product Name: " << record.Name << endl;
cout << "Price: " << record.Price << endl;
cout << "Quantity: " << recordQuan << endl;
cout << endl;
file.close();
}
//function modifyRecord that will open file in read for reading file
//record and close and open the file and write the user entered record
//items to file to same location
void modifyRecord(fstream &file)
{
file.open("Inventory.dat", ios::in | ios::binary);
InventoryItem record;
fflush(stdin);
cout << "Enter record number to be modified: ";
cin >> record.partNo
//move to the record to read item
file.seekg((record.partNo - 1) * sizeof(InventoryItem), ios::beg);
file.read((char *)(&record), sizeof(InventoryItem));
cout << "Product Number: " << record.Num << endl;
cout << "Product Name: " << record.Name << endl;
cout << "Price: " << record.Price << endl;
cout << "Quantity: " << record.Quan << endl;
cout << endl;
//close file
file.close();
cout << "Enter the new data." << endl;
cin.ingnore();
cin.getline(record.Num);
do
{
cout << "Product Number: ";
cin >> record.Num
if (record.Num < 0)
cout << "Invalid Product Number" << endl;
} while (record.Num < 0);
do
cout << "Product Name: "
cin >> record.Name;
cout << "Price: "
cin >> record.Price;
cout >> "Quantity: "
cin >> record.Quan;
//open file in write mode
file.open("Inventory.dat", ios::out | ios::binary);
// move back to the beginning of the record
file.seekg((record.partNo - 1) * sizeof(InventoryItem), ios::beg);
//write new record on old record
file.write((char*)(&record), sizeof(InventoryItem));
file.close();
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started