In: Computer Science
CPSC 1103 Assignment 1 Problem A cell phone provider has three different subscription packages for its customers: Package A: For $9.95 per month 10 hours of access are provided. Additional hours are $2.00 per hour. Package B: For $14.95 per month 20 hours of access are provided. Additional hours are $1.00 per hour. Package C: For $19.95 per unlimited access is provided. Write a program to ask which package the customer has purchased, what month they are using, and how many hours were used. Determine max hours. Months with 30 days have 720 hours, and months with 31 days have 744 hours. February, with 28 days, has 672 hours. Month Days Hours January 31 744 February 28 672 March 31 744 April 30 720 May 31 744 June 30 720 July 31 744 August 31 744 September 30 720 October 31 744 November 30 720 December 31 744 Input validation: Be sure the user only selects package A, B, or C. Also, the number of hours used in a month cannot exceed maxHours (or be less than 0). Display the charge for the Package chosen. Display how much money Package A customers would save if they purchased packages B or C; how much money Package B customers would save if they purchased packages A or C; and how many packages C customers would save if they purchased packages A or B. If there would be no savings, no message should be printed. What to hand in: Please see the title page for requirements for assignments. You need the following in a single Word document: • Source code listing fully documented (comments for purpose, file, programmer, all variable declarations, and major tasks). • Test runs to show valid and invalid data as well as savings. • User Guide with Purpose stated for a User, a simple run to illustrate the capability of the program and a section for assumptions and limitations • A hierarchy chart for example to calculate the area of a rectangle
An Internet service provider has three different subscription
packages
* for its customers.
*
* Package A: For $9.95
per month 10 hours of access access are
*
provided. Additional hours
are $2.00 per hour.
*
* Package B: For $13.95
per month 20 hours of access are provided.
*
Additional hours are $1.00
per hours.
*
* Package C: For $19.95
per month unlimited access is provided.
*
* Write a program that calculates a customer's monthly bill. It
should
* ask the user to enter the letter of the package the customer
has
* purchased (A, B, or C) and the number of hours that were used.
It
* should then display the total charges.
*/
import java.util.Scanner;
public class InternetServiceProvider {
public static void main (String args[])
{
while (true)
{
printMonthlyBill(calculateBill(getHours(), menu()));
}
}
public static double getHours()
{
double hours;
Scanner inputHours = new Scanner
(System.in);
System.out.print("Please enter the
hours used: ");
hours =
inputHours.nextDouble();
inputHours.close();
return hours;
}
public static int menu ()
{
int packageChoice;
Scanner userInput = new Scanner
(System.in);
System.out.println("[1] Package
A");
System.out.println("[2] Package
B");
System.out.println("[3] Package
C");
System.out.print("Please select
your package: ");
packageChoice =
userInput.nextInt();
userInput.close();
return packageChoice;
}
public static double calculateBill(double hours, int
packageChoice)
{
switch (packageChoice)
{
case 1:
if (hours < 10)
{
return 9.95;
}
else
{
return (hours - 10)*2 +
9.95;
}
case 2:
if (hours < 20)
{
return 13.95;
}
else
{
return (hours - 20) +
13.95;
}
case 3:
return 19.95;
default:
System.out.println("Invalid input!");
return 0;
}
}
public static void printMonthlyBill(double bill)
{
System.out.println("Your monthy
bill is $" + bill);
}
}