Public feed #721250

Unnamed

public text v1 · immutable
Raw Edit
·published 2007-10-01 02:44 UTC
rendered paste body
/**
 * Page 250 #12 Starting Out with Java Early Objects (Gaddis)
 * ISP Cost
 * ***********************************************************************
 * @author Geoffrey Steinman 
 * @version 1.0 final
 */
//import java.util.*;

public class ISPcost
{   private char plan; // plan letter
    private int hours; // number of hours used
    
    public int getHours() //returns hours used
    {   return hours;
    }

    public boolean setHours(int inHours) //sets hours used + returns true
    {   if (inHours < 0)
            return false;
        else
        {   hours = inHours;
            return true;
        }
    }
    
    public char getPlan() 
    {   return plan;
    }
    
    public boolean setPlan (char inPlan)
    {   if (inPlan != 'A' && inPlan != 'B' && inPlan != 'C')
            return false;
        else 
        {   plan = inPlan;
            return true;
        }
    }
    
    public float calcCharges()
    {   
        if (plan == 'A')
        {   if (hours < 10)
                return (float)9.95;
            else
                return (float)(9.95+2*(hours-10));
        }
        else if (plan == 'B')
        {   if (hours < 20)
                return (float)14.95;
            else
                return (float)(14.95+(hours-20));
        }
        else if (plan == 'C')
        {   return (float)19.95;
        }
        else 
        {   return 0; // should never retun 0
        }
    }
    
    public float save(char ifPlan)
    {   if (ifPlan == 'A') //diff between plans A to B
           return (float)((9.95+(2*(hours-10)))-(14.95+(hours-20)));
        if (ifPlan == 'B') //diff between plans A to C
           return (float)((9.95+(2*(hours-10)))-(19.95));
        if (ifPlan == 'C') //diff between plans B to A
           return (float)((14.95)-(9.95+(2*(hours-10))));
        if (ifPlan == 'D') //diff between plans B to C
           return (float)((14.95+(hours-20))-(19.95));
        if (ifPlan == 'E') //diff between plans C to A
           return (float)((19.95)-(9.95+(2*(hours-10))));
        if (ifPlan == 'F') //diff between plans C to B
           return (float)((19.95)-(14.95+(hours-20)));
        else
            return 0;
    }   
}






/**
 * Write a description of class ISPcostComparer here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */

import java.util.*;
        
public class ISPcostComparer
{   public static void main(String[ ]  args)
	{
        Scanner keyboard = new Scanner(System.in);
        ISPcost UUnet = new ISPcost();
        char svc;
        int hoursUsed;
        
        do
        {   System.out.println();
            System.out.print("Enter your Service Plan (A, B, or C): ");
            svc = keyboard.next().charAt(0);
            UUnet.setPlan(svc);
        }
        while ( UUnet.setPlan(svc) == false );

        do
        {   System.out.print("Enter the number of hours used: ");
            hoursUsed = keyboard.nextInt();
            UUnet.setHours(hoursUsed);
        }
        while ( UUnet.setHours(hoursUsed) == false );

        System.out.println("This month you used " + UUnet.getHours() + " hours.");
        System.out.println("You are on Plan " + UUnet.getPlan() + ".");
        System.out.println("This means that you owe $" + UUnet.calcCharges());
        
        if (UUnet.getPlan()=='A'&&UUnet.getHours()>13)
            System.out.println("If you had chosen Plan B, you could have saved $" + (UUnet.save('A')));
        if (UUnet.getPlan()=='A'&&UUnet.getHours()>15)
            System.out.println("If you had chosen Plan C, you could have saved $" + (UUnet.save('B')));
        if (UUnet.getPlan()=='B'&&UUnet.getHours()<12.5)
            System.out.println("If you had chosen Plan A, you could have saved $" + (UUnet.save('C')));
        if (UUnet.getPlan()=='B'&&UUnet.getHours()>25)
            System.out.println("If you had chosen Plan C, you could have saved $" + (UUnet.save('D')));
        if (UUnet.getPlan()=='C'&&UUnet.getHours()<15)
            System.out.println("If you had chosen Plan A, you could have saved $" + (UUnet.save('E')));
        if (UUnet.getPlan()=='C'&&UUnet.getHours()<25)
            System.out.println("If you had chosen Plan B, you could have saved $" + (UUnet.save('F')));
    }
}