The world’s Largest Sharp Brain Virtual Experts Marketplace Just a click Away
Levels Tought:
Elementary,Middle School,High School,College,University,PHD
| Teaching Since: | Apr 2017 |
| Last Sign in: | 103 Weeks Ago, 2 Days Ago |
| Questions Answered: | 4870 |
| Tutorials Posted: | 4863 |
MBA IT, Mater in Science and Technology
Devry
Jul-1996 - Jul-2000
Professor
Devry University
Mar-2010 - Oct-2016
Cannot use transform or loc. Main issue is comparing the product string.Â
Â
Â
It will have three classes: Product, Customer and Store. To make things a little simpler for you, I
am supplying you with the three .hpp files. You will write the three implementation files. You
should not alter the provided .hpp files.
Here are descriptions of methods for the three classes:
Product:
A Product object represents a product with an ID code, title, description, price and quantity
available. constructor - takes as parameters five values with which to initialize the Product's
idCode, title, description, price, and quantity available get methods - return the value of the corresponding data member decreaseQuantity - decreases the quantity available by one
Customer:
A Customer object represents a customer with a name and account ID. Customers must be
members of the Store to make a purchase. Premium members get free shipping. constructor - takes as parameters three values with which to initialize the Customer's
name, account ID, and whether the customer is a premium member get methods - return the value of the corresponding data member isPremiumMember - returns whether the customer is a premium member addProductToCart - adds the product ID code to the Customer's cart emptyCart - empties the Customer's cart
Store:
A Store object represents a store, which has some number of products in its inventory and some
number of customers as members. addProduct - adds a product to the inventory addMember - adds a customer to the members getProductFromID - returns pointer to product with matching ID. Returns NULL if no
matching ID is found. getMemberFromID - returns pointer to customer with matching ID. Returns NULL if no
matching ID is found. productSearch - for every product whose title or description contains the search string,
prints out that product's title, ID code, price and description. The first letter of the search
string should be case-insensitive, i.e. a search for "wood" should match Products that
have "Wood" in their title or description, and a search for "Wood" should match Products
that have "wood" in their title or description. addProductToMemberCart - If the product isn't found in the inventory, print
"Product #[idCode goes here] not found." If the member isn't found in the members,
print "Member #[accountID goes here] not found." If both are found and the product is
still available, calls the member's addProductToCart method. Otherwise it prints "Sorry, product #[idCode goes here] is currently out of stock." The same product can be added
multiple times if the customer wants more than one of something.
checkOutMember - If the member isn't found in the members, print "Member
#[accountID goes here] not found." Otherwise prints out the title and price for each
product in the cart and decreases the available quantity of that product by 1. If any
product has already sold out, then on that line it should print 'Sorry, product #[idCode
goes here], "[product name goes here]", is no longer available.' At the bottom it should
print out the subtotal for the cart, the shipping cost ($0 for premium members, 7% of the
cart cost for normal members), and the final total cost for the cart (subtotal plus
shipping). If the cart is empty, it should just print "There are no items in the cart." When
the calculations are complete, the member's cart should be emptied. Here is an example of how the output of the Store::productSearch method might look (searching
for "red"):
red blender
ID code: 123
price: $350
sturdy blender perfect for making smoothies and sauces
hot air balloon
ID code: 345
price: $700
fly into the sky in your own balloon - comes in red, blue or chartreuse Here is an example of how the output of the Store::checkOutMember method might look:
giant robot - $7000
Sorry, product #345, "live goat", is no longer available.
oak and glass coffee table - $250
Subtotal: $7250
Shipping Cost: $0
Total: $7250 #ifndef PRODUCT_HPP
#define PRODUCT_HPP
#include <string>
class Product
{
private:
std::string idCode;
std::string title;
std::string description;
double price;
int quantityAvailable;
public: Product(std::string id, std::string t, std::string d, double p, int qa);
std::string getIdCode();
std::string getTitle();
std::string getDescription();
double getPrice();
int getQuantityAvailable();
void decreaseQuantity();
};
#endif
#ifndef CUSTOMER_HPP
#define CUSTOMER_HPP
#include <vector>
#include "Product.hpp"
class Customer
{
private:
std::vector<std::string> cart;
std::string name;
std::string accountID;
bool premiumMember;
public:
Customer(std::string n, std::string a, bool pm);
std::string getAccountID();
std::vector<std::string> getCart();
void addProductToCart(std::string);
bool isPremiumMember();
void emptyCart();
};
#endif
#ifndef STORE_HPP
#define STORE_HPP
#include <string>
#include "Customer.hpp"
class Store {
private:
std::vector<Product*> inventory;
std::vector<Customer*> members;
public:
void addProduct(Product* p);
void addMember(Customer* c);
Product* getProductFromID(std::string);
Customer* getMemberFromID(std::string);
void productSearch(std::string str);
void addProductToMemberCart(std::string pID, std::string mID);
void checkOutMember(std::string mID);
};
#endif
-----------