import java.io.*;

/**
 *  Keeps track of simple credit card account data.
 *  
 *  @author  Nicholas R. Howe
 *  @version January 12, 2006
 */

public class CreditCard {
    /** Total outstanding balance on all existing cards. */
    private static double totalBalanceOwed = 0;

    /** Total credit available on all existing cards. */
    private static double totalCreditLimit = 0;

    /** Outstanding balance on this card. */
    private double balanceOwed = 0;

    /** Credit available on this card. */
    private double creditLimit = 0;

    /** Rate to charge at each interest period. */
    private double interestRate = (double)0.20;


    /** Constructor to open a new account with zero balance.
     *
     *  @param newCreditLimit   Maximum credit available
     *  @param newInterestRate  Interest rate for the new account
     */
    CreditCard(double newCreditLimit, double newInterestRate) {
	// not yet filled in
    }


    /** Accessor for totalBalanceOwed */
    public static double getTotalBalanceOwed() {
	// not yet filled in
    }

    /** Accessor for totalCreditLimit */
    public static double getTotalCreditLimit() {
	// not yet filled in
    }

    /** Accessor for balanceOwed */
    public double getBalanceOwed() {
	// not yet filled in
    }

    /** Accessor for creditLimit */
    public double getCreditLimit() {
	// not yet filled in
    }

    /** Accessor for interestRate */
    public double getInterestRate() {
 	// not yet filled in
    }


    /** Manipulator for interestRate */
    public void setInterestRate(double newInterestRate) {
	// not yet filled in
    }

    /** Manipulator for creditLimit */
    public void setCreditLimit(double newCreditLimit) {
	// not yet filled in
    }


    /**
     *  Charges a purchase to the account.
     *  An exception occurs if insufficient credit is available.
     *
     *  @param amount  balanceOwed goes down by this much.
     *  @throws Exception
     */    
    public void makePurchase(double amount) throws Exception {
	// not yet filled in
    }

    /**
     *  Credits a payment to the account.
     *
     *  @param amount  balanceOwed goes down by this much.
     */    
    public void makePayment(double amount) {
	// not yet filled in
    }

    /**
     *  Increases balanceOwed by the interest.
     *  Note that this can cause the balanceOwed to
     *  surpass the creditLimit without causing an exception.
     */    
    public void chargeInterest() {
	// not yet filled in
    }

    /**
     *  Closes the account by setting the credit limit to zero.
     *  The balance can still be paid off over time.
     */    
    public void closeAccount() {
	// not yet filled in
    }

    /**
     *  Prints information about the account to the system console.
     */
    public void print() {
	// not yet filled in
    }
}

//////////////////////////////////////////////////////////////
