Problem Statement Modern grocery stores now often have a "U-Scan" checkout lane, allowing the customer to scan and check out their own groceries, without the need of a human checker. These lanes require that change be provided automatically, after the customer sticks their cash in a slot. You are to write a program that computes the bills and coins to be dispensed, minimizing the total number of bills and coins. (That is, for change totaling $5.50, you should not dispense 5 ones and 50 pennies, but a $5 bill and a 50-cent piece instead.) The bills and coins available for you to dispense are as follows: $100 bill, $50 bill, $20 bill, $10 bill, $5 bill, $1 bill, 50-cent coin, 25-cent coin, 10-cent coin, 5-cent coin, 1-cent coin. The console-based program, which can easily be converted to an internet CGI program (Links to an external site.) at some future date, prompts the user to input 2 numbers. The first number is the amount of the purchase, and the second one is the amount tendered by the customer. You may assume that the amount tendered is greater than or equal to the amount of purchase. The console output will be a series of lines showing the amount of change returned and detailing the number of bills and coins that will be dispensed as change, in descending order of monetary amount, one unit per line. If a bill/coin is not needed in the change returned, no output is produced for that bill/coin. (In other words, do not display "0 $1 bills".) Plural logic. Proper use of plurals is required, as shown in the sample below. This will require some if-else logic to decide whether or not to append an "s" to the end of a denomination name. Here the sample -- for a purchase of 42.15, the amount tendered is 50. There are no $'s or commas in the input -- just positive real numbers that may or may not contain a decimal. |
|
|
change = tendered - total;
changeLeftToGive = change;
|
|
Enter Purchase, Tendered : 179.92 200 Change: 27.08 1 20 1 5 2 1's 1 0.05 3 0.01's Done |
|
|