1 import java.util.logging.Logger;
2
3 /**
4 A cash register totals up sales and computes change due.
5 */
6 public class CashRegister
7 {
8 public static final double QUARTER_VALUE = 0.25;
9 public static final double DIME_VALUE = 0.1;
10 public static final double NICKEL_VALUE = 0.05;
11 public static final double PENNY_VALUE = 0.01;
12
13 private double purchase;
14 private double payment;
15
16 /**
17 Constructs a cash register with no money in it.
18 */
19 public CashRegister()
20 {
21 purchase = 0;
22 payment = 0;
23 }
24
25 /**
26 Records the purchase price of an item.
27 @param amount the price of the purchased item
28 */
29 public void recordPurchase(double amount)
30 {
31 purchase = purchase + amount;
32 }
33
34 /**
35 Enters the payment received from the customer.
36 @param dollars the number of dollars in the payment
37 @param quarters the number of quarters in the payment
38 @param dimes the number of dimes in the payment
39 @param nickels the number of nickels in the payment
40 @param pennies the number of pennies in the payment
41 */
42 public void receivePayment(int dollars, int quarters,
43 int dimes, int nickels, int pennies)
44 {
45 payment = dollars + quarters * QUARTER_VALUE + dimes * DIME_VALUE
46 + nickels * NICKEL_VALUE + pennies * PENNY_VALUE;
47 }
48
49 /**
50 Computes the change due and resets the machine for the next customer.
51 @return the change due to the customer
52 */
53 public double giveChange()
54 {
55 double change = payment - purchase;
56 purchase = 0;
57 payment = 0;
58 return change;
59 }
60 }