1 Submission Instructions
Submit to Brightspace on or before the due date a compressed le (.tar or .zip) that includes
1. Header and source les for all classes instructed below.
2. A working Makele that compiles and links all code into a single executable. The Makele should be specic to this assignment – do not use a generic Makele.
3. A README le with your name, student number, a list of all les and a brief description of their purpose, compilation and execution instructions, and any additional details you feel are relevant.
2 Learning Outcomes
In this assignment you will learn to
1. Use inheritance.
2. Use linked list type data structures.
3. Make a UML diagram of the application.
In this assignment you will be writing a (vastly simplied) inventory system for a store / warehouse (like Ikea or Costco) using C++.
This store will sell a number of Products. Each product has a StoreLocation. These locations are in the main store area where shoppers shop. Each product may have zero or more overstock locations in the warehouse. These are stored on skids (Figure 1) of all the same Product wrapped in plastic. We will call these WHLocations (warehouse locations). Because WHLocations can only accept skids, they will be treated dierently than StoreLocations, and we will use inheritance to implement to two dierent styles of Locations.
To help us with our inventory system we will use a few dierent data structures. We will use the linked List that we have seen in class, but with some modications. We will also implement a Queue, which is a linked list but with dierent rules for adding and removing. We will also use primitive arrays.
4 Classes Overview
This application will consist of 8 classes. The classes are listed below along with their respective categories.
1. Location (Entity object):
(a) A virtual base class for StoreLocation and WHLocation classes.
2. StoreLocation (Entity object):
(a) Concrete implementation for in-store product locations.
3. WHLocation (Entity object):
(a) Concrete implementation for warehouse product locations.
4. Product (Entity object):
Figure 1: “Skid” by Lee Bennett is licensed under CC BY-NC-SA 2.0 and “Warehouse” by toolstop is licensed under CC BY 2.0
(a) Contains information about the product, including the StoreLocation and WHLocations it is stored in.
5. List (Container object):
(a) A list of Products that can grow arbitrarily large.
6. Queue (Container object):
(a) A rst-in-rst-out (FIFO) data structure for storing WHLocations. The FIFO nature of the data structure ensures that we use older stock rst.
7. Store (Control object):
(a) Provides an interface for interacting with the inventory system.
8. Control (Control object):
(a) Controls the interaction between the inventory system (Store) and the user.
9. View (View object):
(a) Collects user input and provides system output.