/** * 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'))); } }