Practice Exercise: Programmer-Defined Functions--Value Returning
                
                
Purpose and Objective:  To enhance readability by reducing the complexity of the
    function main, it is useful to be able to create and invoke a function.

    The general form or syntax for a function is: 
      functionType functionName ( [formal parameter list] )  {
         statements
         [return expr;]
      }

    The syntax for a function call is:
        [variable =] functionName([arguments--aka "actual parameter list"]);

    The syntax for the formal parameter list is:
        dataType identifier [, dataType identifier, ...]

    The syntax for the argument(s) or actual parameter list is:
        expression or variable[, expression or variable, ...]

    return Statement syntax:  
        return expr;  where expr is a variable, constant or expression. 
    
   Function Prototype:  
       A function heading without a body. An identifier must be declared before
       it is referenced, hence a function, or prototype must be placed prior to
       invoking the function. The syntax for a function prototype is:  
          functionType functionName(parameter list);
          
1.  Define a value-returning char function named getChoice to have no formal
    parameters, and to print a menu of choices for a phone plan user such as:
        Regular Plan ('r')
        Minute Plan ('m')

    It should do console input and return a lower case char value for planChoice.
    (For the predefined function tolower(ch), include the header file cctype.)




2.  Call the function named getChoice( ) passing no actual parameters (arguments) 
    and assign the character value returned to a variable local to the calling 
    function. 


3.  Prompt and input an int value for minutes used.


4.  Define a value-returning function named getMinutesCharge( ). Its parameter
    list is to have a char parameter for plan choice, and an int for minutes.
    The statement body is to compute and return the double value for minutes
    charge from the product of billableMinutes (no charge for the first 300 minutes
    by regular plan holders) and costPerMinute (0.10 for regular and 0.15 for 
    minute plan).
   



5.  Invoke getChoice( ), getMinutes( ), and getMinutesCharge( ). Assign the 
    values returned to related local variables.




6.  Print a description for plan choice (test to choose "regular" or "minute"), 
    minutes used, minutesCharge, and monthlyCharge--the sum of minutesCharge and
    baseCharge($25.00 for regular plan; $0.00 for minute plan).