--------------------- CSCE 121H - Fall 2019 Project 3 - Vending Machine due: Fri, 10/4/19, 8:00am --------------------- Write a simulation of a vending machine. This will be an interactive program, where the user will enter commands on the console. For example, the user could enter several coins, and then select an item by saying 'press', like this: > vending quarter // user input balance: 0.25 // response printed out nickel // input balance: 0.30 // response quarter quarter dime // put in several coins on one line balance: 0.90 press coke Suppose that a coke costs $0.70. Since the user entered $0.90, the change would be $0.20, which would be dispensed as 2 dimes, hence the following would print out: dispensing: coke change: dime change: dime The input from the user should consist of the following commands (and anything else should be rejected): [quarter|nickel|dime]+ press change quit The 'change' command simply returns coins adding up to the current balance. Part of the challenge of this assignment is figuring out the algorithm for making changes. For example, if the user has put in $1.00, and an item costs $0.65, which coins should be dispensed? Of course, like a real vending machine, your simulated machine has only a finite supply of each item. If an item is (or goes) out of stock, your program should say something like "Item not available." Similarly, there is a finite supply of coins in the machine. If you are out of dimes, you should dispense nickels in their place, and so on. In order to specify the contents of the vending machine, this will be done by reading in a database (flat file) that defines the name, count, and cost/price/value of all items in the machine, including coins. You will read in this file at the beginning of each run to initialize the state of the machine. You do NOT have to write out this file after each run (i.e. to update the state based on the items that have been purchased). Here is an example of the vending database (save it as something like 'vending1.txt'): vending1.txt: --------------- quarter 10 0.25 nickel 20 0.05 dime 20 0.10 coke 10 1.00 gum 5 0.50 chips 15 0.75 You may make up any items you want to put in your machine. Doritos, snickers, toys... :-) (Hint: since the contents of the vending machine could be arbitrary, you will probably want to use vectors to store the information (names, counts, cost). You will probably want to write a get_change() function, and maybe a function for searching the vector of item names to find its index.)