Public feed
#721250
/**
* 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')));
}
}