Created
September 15, 2014 16:05
-
-
Save lb7n/91eb433fc222a14cf750 to your computer and use it in GitHub Desktop.
Updated Cash Machine Using JOptionPane & While Loops
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import javax.swing.*; | |
public class Mainclass { | |
public static void main(String[] args){ | |
int periodCounter = 0; | |
double purchaseCost = 0; | |
double cash = 0; | |
String purchaseAmount = ""; | |
String amountGiven = ""; | |
boolean running = true; | |
while (running) { | |
periodCounter=0; | |
purchaseAmount=JOptionPane.showInputDialog("Enter the purchase amount asked for by tender: "); | |
for (int i = 0; i < purchaseAmount.length(); i++) { | |
char buffer = purchaseAmount.charAt(i); | |
if (buffer == '.') { | |
periodCounter++; | |
break; | |
} | |
if (periodCounter > 1) { | |
JOptionPane.showMessageDialog(null, "Your bill must be a valid currency amount (this is not an IP address!)"); | |
running = true; | |
} | |
} | |
try { | |
purchaseCost = Double.parseDouble(purchaseAmount); | |
running = false; | |
} catch (NumberFormatException e) { | |
JOptionPane.showMessageDialog(null, "The amount you entered was NOT a number :( " + purchaseAmount + " is NOT a valid currency value."); | |
running = true; | |
} | |
} | |
String formattedCost1 = String.format("%.2f", purchaseCost); | |
JOptionPane.showMessageDialog(null, "Your bill is " + formattedCost1); | |
running = true; | |
while(running) { | |
periodCounter=0; | |
amountGiven = JOptionPane.showInputDialog("Enter the amount given"); | |
for (int i = 0; i < amountGiven.length(); i++) { | |
char buffer = amountGiven.charAt(i); | |
if (buffer == '.') { | |
periodCounter++; | |
break; | |
} | |
if (periodCounter > 1) { | |
JOptionPane.showMessageDialog(null, "Your bill must be a valid currency amount (this is not an IP address!)"); | |
running = true; | |
} | |
} | |
try { | |
cash = Double.parseDouble(amountGiven); | |
running = false; | |
} catch (NumberFormatException e) { | |
JOptionPane.showMessageDialog(null, "The amount you entered was NOT a number :( " + purchaseAmount + " is NOT a valid currency value."); | |
running = true; | |
} | |
} | |
String formattedCost2 = String.format("%.2f", cash); | |
JOptionPane.showMessageDialog(null, "Your payment amount is " + formattedCost2); | |
double purchaseAmountFinal= Double.parseDouble(purchaseAmount); | |
double amountGivenToTendeFinal= Double.parseDouble(amountGiven); | |
double change = amountGivenToTendeFinal - purchaseAmountFinal; | |
double change2 = amountGivenToTendeFinal - purchaseAmountFinal; | |
System.out.println(String.format( "%.2f", change )); | |
System.out.println("You should receive: "); | |
int singlesCounter = 0; | |
int fivesCounter = 0; | |
int tensCounter = 0; | |
int twentyCounter = 0; | |
int fiftyCounter = 0; | |
int hundredCounter = 0; | |
int pennyCounter = 0; | |
int nickelCounter = 0; | |
int dimeCounter = 0; | |
int quarterCounter = 0; | |
boolean subtracting = true; | |
while (subtracting) { | |
String buffer = String.format("%.2f", change); | |
change = Double.parseDouble(buffer); | |
if (change >= 100 && change - 100 >= 0) { | |
change = change - 100; | |
hundredCounter++; | |
} | |
if (change >= 50 && change - 50 >= 0 && change < 100) { | |
change = change - 50; | |
fiftyCounter++; | |
} | |
if (change >= 20 && change - 20 >= 0 && change < 100 && change < 50) { | |
change = change - 20; | |
twentyCounter++; | |
} | |
if (change >= 10 && change - 10 >= 0 && change < 20 && change < 50 && change < 100) { | |
change = change - 10; | |
tensCounter++; | |
} | |
if (change >= 5 && change - 5 >= 0 && change < 10 && change < 20 && change < 50 && change < 100) { | |
change = change - 5; | |
fivesCounter++; | |
} | |
if (change >= 1 && change - 1 >= 0 && change < 5 && change < 10 && change < 20 && change < 50 && change < 100) { | |
change = change - 1; | |
singlesCounter++; | |
} | |
if (change >= 0.25 && change - 0.25 >= 0 && change < 1 && change < 5 && change < 10 && change < 20 && change < 50 && change < 100) { | |
change = change - 0.25; | |
quarterCounter++; | |
} | |
if (change >= 0.10 && change - 0.10 >= 0 && change < 0.25 && change < 1 && change < 5 && change < 10 && change < 20 && change < 50 && change < 100) { | |
change = change - 0.10; | |
dimeCounter++; | |
} | |
if (change >= 0.05 && change - 0.05 >= 0 && change < 0.10 && change < 0.25 && change < 1 && change < 5 && change < 10 && change < 20 && change < 50 && change < 100) { | |
change = change - 0.05; | |
nickelCounter++; | |
} | |
if (change >= 0.01 && change - 0.01 >= 0 && change < 0.05 && change < 0.10 && change < 0.25 && change < 1 && change < 5 && change < 10 && change < 20 && change < 50 && change < 100) { | |
change = change - 0.01; | |
pennyCounter++; | |
} | |
if (change <= 0) { | |
subtracting = false; | |
} | |
// | |
} | |
String message = ""; | |
if (hundredCounter == 1) { | |
System.out.println("You should receive " + hundredCounter + " hundred dollar bill"); | |
message = message + "\n" + "You should receive " + hundredCounter + " hundred dollar bill"; | |
} else if (hundredCounter > 0) { | |
System.out.println("You should receive " + hundredCounter + " hundred dollar bills"); | |
message = message + "\n" + "You should receive " + hundredCounter + " hundred dollar bills"; | |
} | |
if (fiftyCounter == 1) { | |
System.out.println("You should receive " + fiftyCounter + " fifty dollar bill"); | |
message = message + "\n" + "You should receive " + fiftyCounter + " fifty dollar bill"; | |
} else if (fiftyCounter > 0) { | |
System.out.println("You should receive " + fiftyCounter + " fifty dollar bills"); | |
message = message + "\n" + "You should receive " + fiftyCounter + " fifty dollar bills"; | |
} | |
if (twentyCounter == 1) { | |
System.out.println("You should receive " + twentyCounter + " twenty dollar bill"); | |
message = message + "\n" + "You should receive " + twentyCounter + " twenty dollar bill"; | |
} else if (twentyCounter > 0) { | |
System.out.println("You should receive " + twentyCounter + " twenty dollar bills"); | |
message = message + "\n" + "You should receive " + twentyCounter + " twenty dollar bills"; | |
} | |
if (tensCounter == 1) { | |
System.out.println("You should receive " + tensCounter + " ten dollar bill"); | |
message = message + "\n" + "You should receive " + tensCounter + " ten dollar bill"; | |
} else if (tensCounter > 0) { | |
System.out.println("You should receive " + tensCounter + " ten dollar bills"); | |
message = message + "\n" + "You should receive " + tensCounter + " ten dollar bills"; | |
} | |
if (fivesCounter == 1) { | |
System.out.println("You should receive " + fivesCounter + " five dollar bill"); | |
message = message + "\n" + "You should receive " + fivesCounter + " five dollar bill"; | |
} else if (fivesCounter > 0) { | |
System.out.println("You should receive " + fivesCounter + " five dollar bills"); | |
message = message + "\n" + "You should receive " + fivesCounter + " five dollar bills"; | |
} | |
if (singlesCounter == 1) { | |
System.out.println("You should receive " + singlesCounter + " single dollar bill"); | |
message = message + "\n" + "You should receive " + singlesCounter + " single dollar bill"; | |
} else if (singlesCounter > 0) { | |
System.out.println("You should receive " + singlesCounter + " single dollar bills"); | |
message = message + "\n" + "You should receive " + singlesCounter + " single dollar bills"; | |
} | |
if (quarterCounter == 1) { | |
System.out.println("You should receive " + quarterCounter + " quarter"); | |
message = message + "\n" + "You should receive " + quarterCounter + " quarter"; | |
} else if (quarterCounter > 0) { | |
System.out.println("You should receive " + quarterCounter + " quarters"); | |
message = message + "\n" + "You should receive " + quarterCounter + " quarters"; | |
} | |
if (dimeCounter == 1) { | |
System.out.println("You should receive " + dimeCounter + " dime"); | |
message = message + "\n" + "You should receive " + dimeCounter + " dime"; | |
} else if (dimeCounter > 0) { | |
System.out.println("You should receive " + dimeCounter + " dimes"); | |
message = message + "\n" + "You should receive " + dimeCounter + " dimes"; | |
} | |
if (nickelCounter == 1) { | |
System.out.println("You should receive " + nickelCounter + " nickel"); | |
message = message + "\n" + "You should receive " + nickelCounter + " nickel"; | |
} else if (nickelCounter > 0) { | |
System.out.println("You should receive " + nickelCounter + " nickels"); | |
message = message + "\n" + "You should receive " + nickelCounter + " nickels"; | |
} | |
if (pennyCounter == 1) { | |
System.out.println("You should receive " + pennyCounter + " penny"); | |
message = message + "\n" + "You should receive " + pennyCounter + " penny"; | |
} else if (pennyCounter > 0) { | |
System.out.println("You should receive " + pennyCounter + " pennies"); | |
message = message + "\n" + "You should receive " + pennyCounter + " pennies"; | |
} | |
JOptionPane.showMessageDialog(null, "Your change will be " + change2 + "\n" + message); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment