/**
 *  A cash register totals up sales and computes change due.
 *    @author  Dave Reed (based on code by Cay Horstmann)
 *    @version 1/20/08
*/
public class CashRegister {
   private double purchase;
   private double payment;
   
   /**
    * Constructs a cash register with no money in it.
    */
   public CashRegister() {
      this.purchase = 0;
      this.payment = 0;
   }

   /**
    * Records the sale of an item.
    * @param amount the price of the item
    */
   public void recordPurchase(double amount) {
      this.purchase = this.purchase + amount;
   }

   /**
    * Enters the payment received from the customer.
    * @param amount the amount of the payment
    */
   public void enterPayment(double amount) {
      this.payment = this.payment + amount;
   }

   /**
    * Computes the change due and resets the machine for the next customer.
    * @return the change due to the customer
    */
   public double giveChange() {   
      double change;
      change = this.payment - this.purchase;
      
      this.purchase = 0;
      this.payment = 0;
      
      return change;
   }
}
