Practice Exercise:  Programmer-defined Functions--application


Instructions
   Write a program to estimate furniture moving costs according to the problem 
   specifications and design constraints specified below.

User Interface
   Prepare a menu of choices to: collect user input, compute labor charge,
   compute travel charge, and print a report summary.

Input
   Collect client name, moving distance in miles, and furniture weight.

Output
   Output a descriptive heading line stating the program purpose. Follow this
   with user prompts for distance and weight. After calculating moving costs, 
   print a report summary that includes name, labor charge, travel charge, and
   total moving charge. Include column headings or side labels to identify the
   computed information.

Processing
1. Output a heading line with the program purpose.
2. Accept user inputs for name, weight in pounds, and distance in miles.
3. Call a type double function named computeLaborCharge that accepts weight as 
   a parameter and returns the labor charge.
   Labor charge is the product of labor rate times pounds (100 lb minimum).
4. Call a function to compute travel charge. The travel charge computed is a 
   base travel fee plus mileage rate times distance in miles (5 mile minimum).
5. Compute total moving charge as the sum of labor charge and travel charge.
6. Call a function to print the report summary.

Design Constraints
1.  Insert a block comment at the top of your source program with the program
    name, your name, the course code, and the problem identifier. Also insert
    one or more line comments to document your code.
2.  Make descriptive data names, use conventional case notation for variables, 
    initialize variables, define program constants for labor rate--$1.00 per
    100wt, base travel fee--$50.00, and mileage rate--$2.00 per mile). Name 
    these program constants using uppercase letters and with underscores as 
    word separators.
3.  Indent and align statements for readability and to show hierarchy.
4.  Use a sentinel-controlled loop to allow the entire process to be repeated
    for different moving scenarios.
5.  Develop and invoke functions to: compute labor charge, travel charge,
    and to output a moving charge summary.