Control Statements
if/else and switch
Application
The console for the Bill for a cellular telephone company application
The code for the Bill for a cellular telephone company application
import java.util.*;
public class BillCell
{
static final double R_SERVICE_CHARGE = 10.00;
static final int R_FREE_MINUTES = 50;
static final double R_RATE_OVER_50 = 0.20;
static final double P_SERVICE_CHARGE = 25.00;
static final int P_FREE_DAY = 75;
static final double P_DAY_RATE_OVER_75 = 0.10;
static final int P_FREE_NIGHT = 100;
static final double P_NIGHT_RATE_OVER_100 = 0.05;
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{
String accountNo;
char serviceType;
int minutesUsed;
int minutesUsedPN;
double amountDue;
System.out.print("Enter the account number: ");
accountNo = console.next();
System.out.println();
System.out.print("Enter the service type: (r or R) for regular " +
"(p or P) for premium service: ");
serviceType = console.next().charAt(0);
System.out.println();
switch (serviceType)
{
case 'r':
case 'R':
System.out.print("Enter the number of minutes service used: ");
minutesUsed = console.nextInt();
System.out.println();
if (minutesUsed <= R_FREE_MINUTES)
amountDue = R_SERVICE_CHARGE;
else
amountDue = R_SERVICE_CHARGE +
(minutesUsed - R_FREE_MINUTES) * R_RATE_OVER_50;
System.out.println("Account Number: " + accountNo);
System.out.println("Serice Type: Regular");
System.out.println("Minutes Service Used: " + minutesUsed);
System.out.printf("Amount Due: $%.2f %n", amountDue);
break;
case 'p':
case 'P':
System.out.print("Enter the day time minutes used: ");
minutesUsed = console.nextInt();
System.out.println();
System.out.print("Enter the night time minutes used: ");
minutesUsedPN = console.nextInt();
System.out.println();
amountDue = P_SERVICE_CHARGE;
if (minutesUsed > P_FREE_DAY)
amountDue = amountDue +
(minutesUsed - P_FREE_DAY) * P_DAY_RATE_OVER_75;
if (minutesUsedPN > P_FREE_NIGHT)
amountDue = amountDue +
(minutesUsedPN - P_FREE_NIGHT) * P_NIGHT_RATE_OVER_100;
System.out.println("Account Number: " + accountNo);
System.out.println("Serice Type: Premium");
System.out.println("Minutes Service Used (Day): " + minutesUsed);
System.out.println("Minutes Service Used (Night): "
+ minutesUsedPN);
System.out.printf("Amount Due: $%.2f %n", amountDue);
break;
default:
System.out.println("Invalid Service Type.");
}//end switch
}
}