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