brainfrz icon

Untitled

brainfrz | PRO | 10/04/15 09:57:09 PM UTC | 0 ⭐ | 838 👁️ | Never ⏰ | []
Java |

3.98 KB

|

None

|

0 👍

/

0 👎

/**************************************************************************************************
 *  Program Name:     Lab #5: Call Price
 *  Author:           Terry Weiss
 *  Date:             September 29, 2015
 *  Course/Section:   CSC 111-003W
 *  Program Description:
 *     This program will calculate the cost of a phone call, where the cost is a flat rate of
 *  $0.99 for the first 10 minutes and then $0.10/minute after.
 **************************************************************************************************/
 
import java.util.Scanner;
import java.text.NumberFormat;
 
 
/*
 *  This class will calculate and display the cost of a phone call, where the cost is a flat rate of
 *  $0.99 for the first 10 minutes and then $0.10/minute after.
 *
 *  Algorithm:
 *  Get the length of the call in minutes
 *  Calculate cost of call
 *  Display length and cost of call
 */
public class WeissLab5
{
 
    /*
     *  This method will ask for the length of the call in minutes, then calculate and display the
     *  length of the call and cost as a currency. The cost is a flat rate of $0.99 for the first
     *  10 minutes and then $0.10/minute after.
     *
     *  Algorithm:
     *  Get the length of the call in minutes
     *  IF minutes == 0 THEN
     *      Display "No minutes were entered."
     *  ELSE
     *      Set the cost of the call to FLAT_RATE
     *      IF call is longer than INTRO_TIME THEN
     *          Add the MINUTE_RATE per number of minutes over to the current cost
     *      END IF
     *      Display the length of the call in minutes and the cost as a currency
     *  END IF
     */
    public static void main( String[] args )
    {
        /*
         *  This is the length of the call in minutes.
         */
        int minutes;
        
        /*
         *  This is the total cost of the call.
         */
        double cost;
        
        /*
         *  This is the number of minutes included in the original flat rate.
         *  Currently 10 minutes
         */
        final int INTRO_TIME = 10;
        
        /*
         *  This is the original flat rate price for the intro period.
         *  Currently $0.99
         */
        final double FLAT_RATE = 0.99;
        
        /*
         *  This is the cost per minute after the intro period.
         *  Currently $0.10/minute
         */
        final double MINUTE_RATE = 0.1;
        
        /*
         *  This object holds the currency format.
         */
        NumberFormat currency_format = NumberFormat.getCurrencyInstance();
 
        /*
         *  This object is used to capture the user's input.
         */
        Scanner user_input = new Scanner(System.in);
 
        
        System.out.print("How many minutes was your call? ");
        minutes = user_input.nextInt();
 
        if (minutes == 0)
        {
            System.out.println("No minutes were entered.");
        } //end if minutes == 0
 
        else
        {
            cost = FLAT_RATE;
            if (minutes > INTRO_TIME)
            {
                cost += (minutes - INTRO_TIME) * MINUTE_RATE;
            } //end if minutes > INTRO_TIME
            
            System.out.println("Your " + minutes + "-minute call costs " +
                currency_format.format(cost) + ".");
        } //end else minutes != 0
    } //end main() method
} //end WeissLab5 class
 
 
/**************************************************************************************************
 *  Specified testing arguments:
 *
 *  9 minutes
 *  > Your 9-minute call costs $0.99.
 *  +PASSES
 *
 *  10 minutes
 *  > Your 10-minute call costs $0.99.
 *  +PASSES
 *
 *  11 minutes
 *  > Your 11-minute call costs $1.09.
 *  +PASSES
 *
 *  35 minutes
 *  > Your 35-minute call costs $3.49.
 *  +PASSES
 *
 *  0 minutes
 *  > No minutes were entered.
 *  +PASSES
 **************************************************************************************************/

Comments