RedFlix is soon to become the newest way to rent movies and games. RedFlix will carry new-release and popular DVDs and Blu-ray™ Discs across many genres, as well as new-release and family-friendly video games for the PlayStation® 3, Nintendo Wii™ and Xbox 360™.
Featuring up to 100 titles and 400 discs, a RedFlix automated rental store is contained in 12-square feet of retail space. The company plans to have a nationwide network of more than 30,000 locations. RedFlix kiosks will be located where consumers already shop - leading grocery stores, mass merchant retailers, drugstores, restaurants and convenience stores nationwide.
RedFlix has a convenient rent-and-return anywhere policy. A simple touch screen rental process makes movie and game renting easy as each kiosk can query the entire system inventory. Customers are able to perform the following functions at a RedFlix kiosk:
1. Search availability by:
a. title - displays list of all locations where given title is available
b. location - displays a list of all available titles at given location
c. genre - displays a list of all available titles in given genre along with location of item
2. Rent - User enters title and location of item to be rented. System checks availability. If item is available at the given location, the number of available copies is reduced and the user is given an appropriate message. If item is in the system inventory, but not at the given location or all copies at the given location have been rented, then a list of all locations that have the title in stock should be displayed. If item is unavailable (not in system inventory), then the user is given an appropriate error message.
3. Return - User enters title of item to be returned along with current location. System checks to see if an item with that title and at that location is currently in the inventory. If so, then the number of available copies is increased. Otherwise, a new RentalItem object is created and added to the inventory. The member variables of the new object should be initialized appropriately.
For this part of the project, you will design and implement 2 classes. Define a class named, RentalItem that represents an item that a customer can rent. You will need to determine what a RentalItem object should know (member variables) and what responsibilities (member functions) it should have. Define a second class named, Inventory that represents the entire system inventory. In addition to any other member variables you might determine it should have, it must contain a member variable that is a collection of RentalItem objects. You can implement the collection either as an array or a linked list. (If you successfully implement a linked list collection, you will receive 25 bonus points.) NOTE: In order to make the coding simpler, you may make this attribute (only) public so you don't have to use a getter to access the array. The Inventory class should also have member functions that implement all the actions a customer can perform. The Inventory class must also have a constructor that instantiates 10 RentalItem objects (fully initialized with values determined by programmer) and stores them in the collection member variable.
Demonstrate your program in main.cpp by presenting the user with a menu listing all the actions a customer can perform. Display the results of the chosen action and allow the user to perform additional actions until the user wishes to quit.
*Must follow all requirements and please comment code*
|$50.00||no category||hunain60||1 time(s)|