28 May Programming Assignment #6
Programming Assignment #6
Small Store Inventory using a Linked List
CS 2308.251, 252, and 257
You will implement the ProductInventory class from Programming Assignment #5 using a linked list to represent the product inventory. You will be provided with the following files on the Resources tab on the TRACS site:
Product.h and Product.cpp from the Assignment 5 solution
ProductDriver.cpp nearly identical to the one from Assignment 5
ProductInventory.h containing a modified ProductInventory class declaration, set up for the linked list representation.
You will be responsible for providing the ProductInventory.cpp file, including the implementation of the ProductInventory member functions (described below):
ProductInventory and ~ProductInventory: creates an empty list, and deallocates all the nodes in the list, respectively.
addProduct(Product) ensures the product is unique, and price and quantity are valid.
If so, adds a new node containing the product to either the beginning OR the end of the list. Returns true if successful, otherwise false.
removeProduct(string,string) removes a node with the given product name and locator from the linked list. Returns true if successful, otherwise false.
showInventory: displays a listing of the product inventory to the screen, nicely formatted, one product entry per line. Output locator, then quantity, then price, then product name.
getTotalQuantity: returns the total number of units of all of the products in the inventory.
findMinimum: returns the minimum product in the list, using the greaterThan() function over the products.
NOTE: if the list is empty, it should return a product made using the default constructor.
sortInventory: reorders the products in the list, using findMinimum.
Here is the algorithm you must use for implementing the sort function. It is a form of the selection sort. It uses a temporary head pointer variable to point to a new list. It repeatedly selects the next (minimum) element from the original list, appends a copy of it to the new list, and removes it from the original list. When it has removed all the nodes from the original list, it makes the old head pointer point to the new list.
Hints: call findMinimum() and removeProduct(). Incorporate the appendNode code to add the new node to the end of the new list (do not call addProduct).
I will go over this algorithm in more detail in class.
DO NOT create another ProductInventory local to the sortInventory function. I want you to use a ProductNode pointer that is local to the sortInventory function!
Input/Output:
Use the ProductDriver.cpp file on Tracs. Your solution should give the same results as running it with the Assignment 5 solution. I recommend adding some calls to the findMinimum() function to test it.
NOTES:
This program should be done in a Linux/Unix environment. Use the PA5 makefile.
DO NOT change the names of the classes, functions or files.
Your ProductInventory.cpp file must compile with the files provided on TRACS (unchanged), otherwise you will receive a score of 0.
Your program must pass Test Case 0 or you will receive a score of 30 or less with no credit for the other grading categories (correctness/constraints/style). We will use basically the same Test Case 0 as we did for Programming Assignment 5. I have modified it to work with the ProductInventory.h file for this Assignment.
Logistics:
For this assignment you need to submit only the roductInventory.cpp file. You do not need a zip file, you do not need a makefile, you do not need to provide your driver.
There are two steps to the turn-in process:
1. Submit an electronic copy using the Assignments tool on the TRACS website for this class.
2. Submit a printout of the source files at the beginning of class, the day the assignment is due. Please print your name on the front page, staple if there is more than one page.
See the assignment turn-in policy on the course website for more details.
Our website has a team of professional writers who can help you write any of your homework. They will write your papers from scratch. We also have a team of editors just to make sure all papers are of HIGH QUALITY & PLAGIARISM FREE. To make an Order you only need to click Ask A Question and we will direct you to our Order Page at WriteDemy. Then fill Our Order Form with all your assignment instructions. Select your deadline and pay for your paper. You will get it few hours before your set deadline.
Fill in all the assignment paper details that are required in the order form with the standard information being the page count, deadline, academic level and type of paper. It is advisable to have this information at hand so that you can quickly fill in the necessary information needed in the form for the essay writer to be immediately assigned to your writing project. Make payment for the custom essay order to enable us to assign a suitable writer to your order. Payments are made through Paypal on a secured billing page. Finally, sit back and relax.
About Writedemy
We are a professional paper writing website. If you have searched a question and bumped into our website just know you are in the right place to get help in your coursework. We offer HIGH QUALITY & PLAGIARISM FREE Papers.
How It Works
To make an Order you only need to click on “Order Now” and we will direct you to our Order Page. Fill Our Order Form with all your assignment instructions. Select your deadline and pay for your paper. You will get it few hours before your set deadline.
Are there Discounts?
All new clients are eligible for 20% off in their first Order. Our payment method is safe and secure.
