1  /**
  2     A cash register totals up sales and computes change due.
  3  */
  4  public class CashRegister
  5  {
  6     private double taxRate;
  7     private double purchase;
  8     private double taxablePurchase;
  9     private double payment;
 10  
 11     /**
 12        Constructs a cash register with no money in it.
 13        @param rate the tax rate for taxable purchases
 14     */
 15     public CashRegister(double rate)
 16     {
 17        taxRate = rate;
 18        purchase = 0;
 19        payment = 0;
 20     }
 21  
 22     /**
 23        Records the sale of a tax-free item.
 24        @param amount the price of the item
 25     */
 26     public void recordPurchase(double amount)
 27     {
 28        purchase = purchase + amount;
 29     }
 30  
 31     /**
 32        Records the sale of a taxable item.
 33        @param amount the price of the item
 34     */
 35     public void recordTaxablePurchase(double amount)
 36     {
 37        taxablePurchase = taxablePurchase + amount;
 38     }
 39  
 40     /**
 41        Processes a payment received from the customer.
 42        @param amount the amount of the payment
 43     */
 44     public void receivePayment(double amount)
 45     {
 46        payment = payment + amount;
 47     }
 48  
 49     /**
 50        Processes the sales tax due.
 51        @return the sales tax due
 52     */
 53     public double getSalesTax()
 54     {
 55        return taxablePurchase * taxRate / 100;
 56     }
 57  
 58     /**
 59        Computes the change due and resets the machine for the next customer.
 60        @return the change due to the customer
 61     */
 62     public double giveChange()
 63     {   
 64        double change = payment - purchase - get;
 65        purchase = 0;
 66        payment = 0;
 67        return change;
 68     }
 69  }