Java Program

profilelwoooudd3
feedback5creditcardaccount.zip

Feedback5CreditCardAccount.java

Feedback5CreditCardAccount.java

import  java . text . DecimalFormat ;

/**
 * CreditCardAccount
 */

public   class   Feedback5CreditCardAccount
{
     private   double  currentBalance ;
     private   double  rate ;
     private   double  percent ;
        

         /**
     *  @param  balance
     *  @param  interest
     */
         public   Feedback5CreditCardAccount ( double  balance , double  interest )
         {
        currentBalance  =  balance ;
        rate  =  interest ;
        percent  =   0 ;
     }
        
     /**
     *  @param  balance
     *  @param  interest
     *  @param  deduct 
     */
         public   Feedback5CreditCardAccount ( double  balance ,   double  interest ,   double  deduct )
         {
        currentBalance  =  balance ;
        rate  =  interest ;
        percent  =  deduct ;
     }
        
         /**
     * get percent
     *  @return  percent deductions
     */
         public   double  getPercent (){
         return  percent ;
     }
        
     /**
     * minimum pay
     *  @return  minimum pay
     */
         private   double  minimumPay ()
         {
         
         final   double  LOW  =   50.0 ;
         final   double  HIGH  =   0.05 ;
         final   double  LIM  =   1000.0 ;
             double  minPay ;

             if ( currentBalance  <  LIM )
          minPay  =  LOW ;
         else
          minPay  =   ( HIGH  *  currentBalance );
        
             return  minPay ;
     }
        
     /**
     * make pay
     */
         private   void  makePay ()
         {
         double  interest ;
             double  pay ;
             double  min ;
                
         System . out . printf ( "%12.2f" ,  currentBalance );
        
            interest  =   ( currentBalance  *   ( rate  /   12   /   100 ));

             System . out . printf ( "%13.2f" ,  interest );
        
            currentBalance  =  currentBalance  +  interest ;
            
         System . out . printf ( "%15.2f" ,  currentBalance );
            
            pay  =   this . currentBalance  *   this . percent  /   100 ;
        min  =  minimumPay ();
    
             if ( pay  <  min )
          pay  =  min ;
        
             if ( pay  >  currentBalance )
          pay  =  currentBalance ;
        
             System . out . printf ( "%12.2f" ,  pay );
    
            currentBalance  =  currentBalance  -  pay ;
    
             System . out . printf ( "%12.2f\n" ,  currentBalance );
                    
     }
        
        
     /**
     * pay off
     *  @return  number of months
     */
         public   int  payOff ()
         {
         int  month  =   0 ;
            
             System . out . println ();
             if ( percent  ==   0 )
           System . out . println ( "Results when paying minimum required payment per month" );
         else
               System . out . println ( "Results when paying "   +   ( int ) this . getPercent ()   +   "% of the balance per month" );
    
             System . out . println ( "---------------------------------------------------------------------" );
         System . out . println ( "          Initial     Month's      Balance                    End    " );
         System . out . println ( "Month     Balance     Interest     w/Interest     Payment     Balance" );
         System . out . println ( "---------------------------------------------------------------------" );
    
         while ( this . currentBalance  >   0 )
             {
        month ++ ;
         System . out . printf ( "%5d" ,  month );
         this . makePay ();
         }
        
             return  month ;
     }

}