Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Calculating Change

 
Tiffany Carra
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey There,

I am taking a Java Class. So far the assignments have been pretty simple and straight forward, smaller programs. Now they want us to create a program to calculate simple change. I am not quite sure where to even start with this one.

Here is the assignment:


You are to create a simple change program. The user enters the amount due and the amount tendered. You are to calculate how much change they should receive. You are then to break down the change in $1 bills, quarters, dimes, nickels, and pennies such that the user will receive the least amount of coins. For example, $0.80 is 3 quarters and a nickel not 8 dimes or 80 pennies.


Ok so based on this it looks like I will need some sort of basic math in there, but I am not sure where to even start on the denominations. Any guidance on where to search or what kind of thought processes I need would be much appreciated.
 
Jeanne Boyarsky
author & internet detective
Marshal
Posts: 34835
369
Eclipse IDE Java VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Tiffany,
Think about how you would do it in real life. If I pay for a $3.88 purchase with $5 what do you give me back? Why? What denomination do you think about first?
 
Tiffany Carra
Greenhorn
Posts: 11
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I understand how to do the basic math functions, but how do I get the information in there? We have covered how to do something basic from the command prompt, but nothing where it asks then you give an answer and you use it.
 
Greg Charles
Sheriff
Posts: 2989
12
Firefox Browser IntelliJ IDE Java Mac Ruby
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Fortuanately, making change with American dominations can use what's called a greedy algorithm. That is, look at how much change you have to make, select the biggest bill or coin less than that, subtract it from the total, and repeat.

With other denominations, the greedy approach may not lead to an optimal solution. For example, if there were no nickels, it would be better to give three dimes for 30 cents than a quarter and five pennies. That becomes a much harder problem to solve.
 
fred rosenberger
lowercase baba
Bartender
Posts: 12180
34
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A basic tip would be to first convert everything into pennies. Floating point arithmetic is NOT what you want to use for money. If the user inputs $4.88, convert this to 488.

Are you supposed to prompt the user and get an input, or are they supposed to enter the values on the command prompt?

I.e. will you run the command

>java Change 4.99 10.00

or will you run

>java Change
and then the programs asks them the sale amount and the amount tendered?
 
Enrique Gonzalez Moore
Greenhorn
Posts: 7
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A java website that I visited suggested using BigDecimal type for money. You may find that it is a good idea to break the dollars and cents into two strings. After validating those strings, you can proceed to break them down into denominations. What happens if you use the / and % for each denomination? For instance, if the amount is greater than 50 and I say amount/50 and amount%50. Let me know if that helps.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic