Hello id like the implementation for this please thank you i
Hello, i\'d like the implementation for this please thank you.
#ifndef GROCERY_ITEM
#define GROCERY_ITEM
#include <iostream>
#include <string>
using namespace std;
class GroceryItem
{
public:
// constructors
GroceryItem(string, string, float);
GroceryItem();
// copy constructor
GroceryItem(const GroceryItem&);
// mutators
void setItemName(string);
void setItemCode(string);
void setItemPrice(float);
// accessors
string getItemName() const;
string getItemCode() const;
float getItemPrice() const;
void print() const;
private:
string itemName;
string itemCode;
float itemPrice;
};
#endif
bool operator<(const GroceryItem& left, const GroceryItem& right);
bool operator>(const GroceryItem& left, const GroceryItem& right);
ostream& operator<<(ostream& out, const GroceryItem& value);
istream& operator>>(istream& in, GroceryItem& r);
Solution
Hi, Please find my implementation
Please let me know in case of any issue.
######### GroceryItem.h ###########
#ifndef GROCERY_ITEM
#define GROCERY_ITEM
#include <iostream>
#include <string>
using namespace std;
class GroceryItem
{
public:
// constructors
GroceryItem(string, string, float);
GroceryItem();
// copy constructor
GroceryItem(const GroceryItem&);
// mutators
void setItemName(string);
void setItemCode(string);
void setItemPrice(float);
// accessors
string getItemName() const;
string getItemCode() const;
float getItemPrice() const;
void print() const;
private:
string itemName;
string itemCode;
float itemPrice;
};
#endif
bool operator<(const GroceryItem& left, const GroceryItem& right);
bool operator>(const GroceryItem& left, const GroceryItem& right);
ostream& operator<<(ostream& out, const GroceryItem& value);
istream& operator>>(istream& in, GroceryItem& r);
########### GroceryItem.cpp ###############
#include <iostream>
#include \"GroceryItem.h\"
using namespace std;
// constructors
GroceryItem::GroceryItem(string name, string code, float price){
itemName = name;
itemCode = code;
itemPrice = price;
}
GroceryItem::GroceryItem(){
itemName = \"\";
itemCode = \"\";
itemPrice = 0;
}
// copy constructor
GroceryItem::GroceryItem(const GroceryItem& other){
itemName = other.itemName;
itemCode = other.itemCode;
itemPrice = other.itemPrice;
}
// mutators
void GroceryItem::setItemName(string name){
itemName = name;
}
void GroceryItem::setItemCode(string code){
itemCode = code;
}
void GroceryItem::setItemPrice(float price){
itemPrice = price;
}
// accessors
string GroceryItem::getItemName() const{
return itemName;
}
string GroceryItem::getItemCode() const{
return itemCode;
}
float GroceryItem::getItemPrice() const{
return itemPrice;
}
void GroceryItem::print() const{
cout<<\"Item Name: \"<<itemName<<endl;
cout<<\"Item Code: \"<<itemCode<<endl;
cout<<\"Item Price: \"<<itemPrice<<endl;
}
bool operator<(const GroceryItem& left, const GroceryItem& right){
if(left.getItemName().compare(right.getItemName()) < 0){
if(left.getItemCode().compare(right.getItemCode()) < 0){
if(left.getItemPrice() < right.getItemPrice())
return true;
else
return false;
}else{
return false;
}
}else{
return false;
}
}
bool operator>(const GroceryItem& left, const GroceryItem& right){
if(left.getItemName().compare(right.getItemName()) > 0){
if(left.getItemCode().compare(right.getItemCode()) > 0){
if(left.getItemPrice() > right.getItemPrice())
return true;
else
return false;
}else{
return false;
}
}else{
return false;
}
}
ostream& operator<<(ostream& out, const GroceryItem& value){
out<<\"Item Name: \"<<value.getItemName()<<\", Item Code: \"<<value.getItemCode()
<<\", and Item Price: \"<<value.getItemPrice()<<endl;
return out;
}
istream& operator>>(istream& in, GroceryItem& r){
string name, code;
float price;
cout<<\"Enter Item Name: \";
in>>name;
r.setItemName(name);
cout<<\"Enter Item Code: \";
in>>code;
r.setItemCode(code);
cout<<\"Enter Item Price: \";
in>>price;
r.setItemPrice(price);
return in;
}
########## TestGroceryItem.cpp ##############
#include <iostream>
#include \"GroceryItem.h\"
using namespace std;
int main(){
GroceryItem item;
item.print();
cin>>item;
cout<<item;
return 0;
}



