Reputation: 1
Main.cpp file
#include <iostream>
#include "RetailItem.h"
#include <iomanip>
using namespace std;
//getData function prototype
void getData(string &desc1, string &desc2, string &desc3, int &units1, int &units2, int &units3, double &price1, double &price2, double &price3);
//setData function prototype
void setData(RetailItem& item1, RetailItem& item2, RetailItem& item3, string desc1, string desc2, string desc3, int units1, int units2, int units3, double price1, double price2, double price3);
//displayData function prototype
void displayData(RetailItem &item1, RetailItem &item2, RetailItem &item3);
int main ()
{
//Declares desc1,desc2, desc 3 as string variables
string desc1,desc2, desc3;
//Declares units1, units2, units3 as int variables
int units1, units2, units3;
//Declares price1, price2, price3 as double variables
double price1, price2, price3;
//Declares 3 RetailItem objects to store information for 3 items
//item1, item2, and item3 of type RetailItem
RetailItem item1;
RetailItem item2;
RetailItem item3;
//getData function call
getData(desc1, desc2, desc3, units1, units2, units3, price1, price2, price3);
//setData function call
setData(item1, item2, item3, desc1, desc2, desc3, units1, units2, units3, price1, price2, price3);
//display Data function call
displayData(item1, item2, item3);
//RetailItem item1(" ", 0, 0.0);
return 0;
}
/*-----------------------------------------------------------------
>> Author : Luis Munoz Llamas
>> Date last modified : 2/27/25
>> Assumptions: valid user input
>> Purpose: Collects information of three retail items such as description, units on hand, and price
>> Relationships (Arguments to Parameters):
a) In parameters : None
b) Out parameters: None
c) In/Out parameters (serve as both -- i.e., in & out)
- string& desc1, string& desc2, string& desc3 (item descriptions)
- int& units1, int& units2, int& units3 (units on hand)
- double& price1, double& price2, double& price3 (item prices)
-----------------------------------------------------------------*/
//getData function definition. This function gathers the description, units on hand, and the price of the 3 retail items
void getData(string &desc1, string &desc2, string &desc3, int &units1, int &units2, int &units3, double &price1, double &price2, double &price3)
{
//gets description of item1 and stores it in desc1
cout << "Enter the description of Item 1: ";
getline(cin, desc1);
//gets units of item1 and stores it in units1
cout << "Enter the units on Hand: ";
cin >> units1;
//gets price of item1 and stores it in price1
cout << "Enter the price: ";
cin >> price1;
cin.ignore();
cout << endl;
//gets description of item2 and stores it in desc2
cout << "Enter the description of the Item 2: ";
getline(cin, desc2);
//get units of item2 and stores it in units2
cout << "Enter the units on Hand: ";
cin >> units2;
//gets price of item2 and stores it in price2
cout << "Enter the price: ";
cin >> price2;
cin.ignore();
cout << endl;
//gets description of item3 and stores it in desc3
cout << "Enter the description of the Item 3: ";
getline(cin, desc3);
//gets units of item3 and stores it in units3
cout << "Enter the units on Hand: ";
cin >> units3;
//gets price of item3 and stores it in price3
cout << "Enter the price: ";
cin >> price3;
//item3.setPrice(price);
}
/*-----------------------------------------------------------------
>> Author : Luis Munoz Llamas
>> Date last modified : 2/27/25
>> Assumptions: the three objects exist and the data passed in is valid
>> Purpose: Stores the information provided by the user of the item into their respective object
>> Relationships (Arguments to Parameters):
a) In parameters :
- string desc1, string desc2, string desc3 (item descriptions)
- int units1, units2, units3 (units on hand)
- double price1, price2, price3 (item prices)
b) Out parameters: None
c) In/Out parameters (serve as both -- i.e., in & out)
RetailItem& item1, RetailItem& item2, RetailItem& item3
-----------------------------------------------------------------*/
//Function definition of the setData function
//This function stores information of the retail items into their respective objects
void setData(RetailItem& item1, RetailItem& item2, RetailItem& item3, string desc1, string desc2, string desc3, int units1, int units2, int units3, double price1, double price2, double price3)
{
//sets information of item1
item1.setDescription(desc1);
item1.setUnits(units1);
item1.setPrice(price1);
//sets information of item2
item2.setDescription(desc2);
item2.setUnits(units2);
item2.setPrice(price2);
//sets information og item3
item3.setDescription(desc3);
item3.setUnits(units3);
item3.setPrice(price3);
}
/*-----------------------------------------------------------------
>> Author : Luis Munoz Llamas
>> Date last modified : 2/27/25
>> Assumptions: the objects have been initialized with valid data before being called
>> Purpose: Displays item description, units on hand, and price in a table
>> Relationships (Arguments to Parameters):
a) In parameters : RetailItem& item1, RetailItem& item2, RetailItem& item3
b) Out parameters: None
c) In/Out parameters (serve as both -- i.e., in & out) None
-----------------------------------------------------------------*/
//Function definition for the displayData function. This function displays information of the 3 items in a table
void displayData(RetailItem &item1, RetailItem &item2, RetailItem &item3)
{
cout << setprecision(2) << fixed << endl;
cout << setw(27) << "Description" << setw(24) << "Units on Hand" << setw(15) << "Price" << endl;
cout << "_________________________________________________________________________" << endl;
cout << left << setw(16) << "Item #1" << left << setw(22) << item1.getDescription() << setw(23) << item1.getUnits() << "$" << setw(5) << item1.getPrice()<< endl;
cout << endl;
cout << left << setw(16) << "Item #2" << left << setw(22) << item2.getDescription() << setw(23) << item2.getUnits() << "$" << setw(5) << item2.getPrice() << endl;
cout << endl;
cout << left << setw(16) << "Item #3" << left << setw(22) << item3.getDescription() << setw(23) << item3.getUnits() << "$" << setw(5) << item3.getPrice() << endl;
cout << "_________________________________________________________________________" << endl;
}
RetailItem.cpp file
#include "RetailItem.h"
#include <iostream>
using namespace std;
//Default Constructor
//Sets memeber variables to 0
RetailItem::RetailItem()
{
description = "";
unitsOnHand = 0;
price = 0.0;
}
//Constructor that allows for 3 parameters
//sets the member variables to the passed parameters
RetailItem::RetailItem( string desc, int units, double itemPrice)
{
description = desc;
unitsOnHand = units;
price = itemPrice;
}
//setDescription member function and definition
//sets description to desc
void RetailItem::setDescription(string desc)
{
description = desc;
}
//setUnits member function and definition
//sets UnitsOnHand to units
void RetailItem::setUnits(int units)
{
unitsOnHand = units;
}
//setPrice member function and definition
//sets price to itemPrice;
void RetailItem::setPrice(double itemPrice)
{
price = itemPrice;
}
//getDescription accessor function and definition
//returns description
string RetailItem::getDescription()
{
return description;
};
//getUnits accessor function and defintion
//returns unitsOnHand
int RetailItem::getUnits()
{
return unitsOnHand;
}
//getPrice accessor function and definition
//returns price
double RetailItem::getPrice()
{
return price;
}
RetailItem.h file
#ifndef RETAILITEM_H
#define RETAILITEM_H
#include <iostream>
using namespace std;
//creates a class RetailItem
class RetailItem
{
private:
//declares description as a private string variable
string description;
//declares UnitsOnHand as a private int variable
int unitsOnHand;
//declares price as a private double variable
double price;
public:
//default constructor
RetailItem();
//constructor that allows for 3 parameters
RetailItem( string desc, int units, double itemPrice);
//setDescription member function prototype
void setDescription(string desc);
//setUnits member function prototype
void setUnits(int units);
//setPrice member funtion prototype
void setPrice(double itemPrice);
//getDescription accessor function protype;
string getDescription();
//getUnits accessor function prototype
int getUnits();
//getPrice accessor function prototype
double getPrice();
};
#endif
I've looked on Google and Youtube and I have found no help. When I try to compile my main.cpp file I get multiple errors saying "undefined reference to ______" and in the blanks are all my functions and constructors from my RetailItem.cpp file. Any help would be appreciated.
Upvotes: 0
Views: 31