//your basic change drawer //drawer counts set by user entered data //change made in order of decreasing coin value //if change cannot be made error message prints and drawer values are unchanged import cs1.Keyboard; public class Lab3Prog2 { public static final int QUARTER_SIZE = 25, DIME_SIZE = 10, NICKEL_SIZE = 5; public static void main(String[] args) { int numQ, numD, numN, numP, drawer, change, quarters, dimes, nickels, pennies, altQ, altD, altN, altP; System.out.print("Enter change drawer counts (Q, D, N, P): "); numQ = Keyboard.readInt(); numD = Keyboard.readInt(); numN = Keyboard.readInt(); numP = Keyboard.readInt(); while (numQ < 0 || numD < 0 || numN < 0 || numP < 0) { System.out.println("No negative values allowed"); System.out.print("Enter change drawer counts (Q, D, N, P): "); numQ = Keyboard.readInt(); numD = Keyboard.readInt(); numN = Keyboard.readInt(); numP = Keyboard.readInt(); } System.out.println(); while (numQ + numD + numN + numP > 0) { System.out.print("Enter change to make: "); change = Keyboard.readInt(); quarters = 0; dimes = 0; nickels = 0; pennies = 0; drawer = 0; altQ = numQ; altD = numD; altN = numN; altP = numP; while (change < 0) { System.out.print("Change must be a nonnegative number: "); change = Keyboard.readInt(); } if (change > 0) { while (change >= QUARTER_SIZE && numQ > 0) { change = change - QUARTER_SIZE; numQ--; quarters++; } while (change >= DIME_SIZE && numD > 0) { change = change - DIME_SIZE; numD--; dimes++; } while (change >= NICKEL_SIZE && numN > 0) { change = change - NICKEL_SIZE; numN--; nickels++; } while (change >= 1 && numP > 0) { change = change - 1; numP--; pennies++; } } if (change > 0) { numQ = altQ; numD = altD; numN = altN; numP = altP; quarters = 0; dimes = 0; nickels = 0; pennies = 0; System.out.println("Cannot make that amount of change."); System.out.println("Left in drawer: " + numQ + " quarters, " + numD + " dimes, " + numN + " nickels and " + numP + " pennies"); System.out.println(); } if (change == 0) { System.out.println("Quarters: " + quarters + " Dimes: " + dimes + " Nickels: " + nickels + " Pennies: " + pennies); System.out.println("Left in drawer: " + numQ + " quarters, " + numD + " dimes, " + numN + " nickels and " + numP + " pennies"); System.out.println(); } } } }