Skip to content

Instantly share code, notes, and snippets.

@lb7n
Created September 15, 2014 16:05
Show Gist options
  • Save lb7n/91eb433fc222a14cf750 to your computer and use it in GitHub Desktop.
Save lb7n/91eb433fc222a14cf750 to your computer and use it in GitHub Desktop.
Updated Cash Machine Using JOptionPane & While Loops
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