CSCE Project 3 Vending Machine Solution

$35.00 $29.00

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…

5/5 – (2 votes)

You’ll get a: zip file solution

 

Description

5/5 – (2 votes)
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 <item>
  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.)
CSCE Project 3 Vending Machine Solution
$35.00 $29.00