Grocery store


This assignment is to implement your own mini-grocery store in C++. Suppose you have the following Food hierarchy:

        (your choice)
            (three items, also your choice)

Create a program that uses a vector of Food pointers to objects of each concrete class in the hierarchy. The program should print the object to which each vector element points. This program is mostly implemented for you, and is linked below.

The Food class declares and defines the following member functions. Note that the last function (print) is declared virtually. It will be up to the concrete classes (e.g., Apple) to implement the virtual print function.

getPrice: Should return the price of the item, in dollars, as a float (e.g., 1.24).

isOrganic: Should return a boolean value whether or not the food is organic (i.e., true for "is organic" and false for "is not organic").

print: Should output the food's name, price, and other properties as applicable.

Each direct sub-class of the Food class should also have a property common to its group.

Fruit: isSeedless (returns a boolean whether the fruit is seedless or not)

Dairy: isPasteurized (returns a boolean whether the dairy is pasteurized)

<your_choice: (again, your choice)

Definition of base-class Food #ifndef FOOD_H #define FOOD_H #include #include using namespace std; class Food { friend ostream & operator<<( ostream &, Food & ); public: Food(float = 0.0, bool = false); // default constructor float getPrice() const; // returns item price in dollars bool isOrganic() const; // returns true if the item is organic virtual void print() const = 0; // output Food object protected: float _price; // price of the item, in dollars bool _organic; // true if organic, false otherwise }; // end class Food #endif 

The test driver for this assignment, main.cpp is also mostly-implemented. Look for "TO DO:" for the parts of main.cpp that you should modify.

Along with your program, you should also submit an Approach Document for this assignment. This is a short document (two to five pages long) explaining the project’s design and testing. The font size should be 12 point. The page margins should be one inch. The paragraphs can be single- or double-spaced. All figures, tables, equations, and references should be properly labelled, and do not count towards the page count.

This document should address the following points:

How did you approach this assignment?

How did you design your solution?

What difficulties, if any, did you encounter implementing your solution?

How did you test your solution? (Include test data)

What weaknesses, if any, can you identify in the program? How can these weaknesses be addressed?

How can this program be improved?
Powered by