Design an Inventory class that can hold information and calculate data for items
ID: 3624985 • Letter: D
Question
Design an Inventory class that can hold information and calculate data for items in a retail store’s inventory. The class should have the following private member variables, defined in the Inventory.h specification file.Variable Name Description
itemNumber An int that holds the item’s item number.
quantity An int for holding the quantity of the items on hand.
cost A double for holding the wholesale per-unit cost of the item
totalCost A double for holding the total inventory cost of the item (calculated as quantity times cost).
Inventory.h should also include prototypes for the following public member functions and constructors.
Member Function Description
Default Constructor Sets all the member variables to 0.
Constructor #2 Accepts an item’s number, cost, and quantity as arguments. The function should copy these values to the appropriate member variables and then call the setTotalCost function.
setItemNumber Accepts an integer argument that is copied to the itemNumber member variable.
setQuantity Accepts an integer argument that is copied to the quantity member variable.
setCost Accepts a double argument that is copied to the cost member variable.
setTotalCost Calculates the total inventory cost for the item (quantity times cost) and stores the result in totalCost.
getItemNumber Returns the value in itemNumber.
getQuantity Returns the value in quantity.
getCost Returns the value in cost.
getTotalCost Returns the value in totalCost.
The implementation file, Inventory.cpp, should contain member function definitions for all of the above functions.
Demonstrate the class in a driver program, the InvClass.cpp file, by completing the following:
1. Create an Inventory object, using the default constructor. Then display its itemNumber, quantity, cost, and totalCost.
2. Create an Inventory object, initializing it with the following:
a. itemNumber = 777
b. cost = 12.50
c. quantity = 10
Then display its itemNumber, quantity, cost, and totalCost.
3. Use the appropriate mutator functions to change the object created in #2 to the following:
a. itemNumber = 555
b. cost = 19.95
c. quantity = 20
Then display its itemNumber, quantity, cost, and totalCost.
Input Validation: Do not accept negative values for item number, quantity, or cost.
Explanation / Answer
//Header file section
#include <iostream>
using namespace std;
// InventoryItem class declaration.
class InventoryItem
{
private:
string description; // The item description
int itemNumber;// item number
double cost; // The item cost
double totalCost;//total cost
int quantity; // Number of units on hand
public:
InventoryItem()
{
description="";
itemNumber=0;
cost=0.0;
totalCost=0.0;
quantity=0;
}
// Constructor
InventoryItem(string desc,int num, double c, int u)
{
// Copy the description to the allocated memory.
description= desc;
itemNumber=num;
// Assign values to cost and units.
cost = c;
quantity = u;}
void setItemNumber(int num)
{
itemNumber=num;
}
int getItemNumber()
{
return itemNumber;
}
// Mutator functions
void setDescription(string des )
{ description= des; }
string getDescription()
{ return description; }
void setCost(double co)
{
cost=co;
setTotalCost();
}
double getCost() const
{ return cost;
}
void setTotalCost()
{
totalCost=cost*quantity;
}
double getTotalCost()
{
return totalCost;
}
void setQuantity(int qu)
{
quantity=qu;
}
int getquantity() const
{ return quantity; }
};
int main()
{
// Create an InventoryItem object and call
// the default constructor.
InventoryItem item1;
item1.setDescription("Hammer"); // Set the description
item1.setItemNumber(2);
item1.setCost(6.95); // Set the cost
item1.setQuantity(12); // Set the units
cout<<"Item 1:"<<endl;
cout<<"Description:"<<item1.getDescription()<<endl;
cout<<"Item Number:"<<item1.getItemNumber()<<endl;
cout<<"Quantity:"<<item1.getCost()<<endl;
cout<<"Cost:"<<item1.getCost()<<endl;
cout<<"Total Cost:"<<item1.getTotalCost()<<endl;
//pause system for a while
system("pause");
}//end main
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.