Phone Bills

Write a program to calculate and print out cellular phone bills for one month, and write a test plan to test the program.
The rates will vary depending on the calling plan of the customer:
Fixed rate plan (code F),
per Minute charge plan (code M),
Home customer plan (code H),
home Plus customer plan (code P), or
Business customer plan (code B).
The rates are as follows:
• Code F: A flat $150.00 fee for unlimited minutes (not available to businesses)
• Code M: A charge of $5, plus 21 cents a minute
• Code H: $40 for the first 600 minutes used, plus 19 cents for each additional minute.
• Code P: $64 for the first 1000 minutes used, plus 17 cents for each additional minute
• Code B: $150 for up to 2,000 minutes; $210 for up to 3,000 minutes, and $240 if over
3,000 minutes
No other codes should be accepted. Remember to define constants for all fixed values. Use double precision floating point variables for all dollar & cents figures.
The program should first explain the program to the user.
Then prompt for a 5-digit customer account number (no leading zeros allowed) and error check that the value entered is valid. Re-prompt until a valid value is entered. This input should be read and error checked from within the main function.
Next call display a menu of plan codes, along with descriptions of each, to the user. Prompt for the plan code and error check that the user entered a valid plan code (accepted in upper or lowercase). Re-prompt until a valid value is entered.
If necessary (all plans except plan F), also prompt for the number of minutes used and error check that the number entered is not negative (i.e. must be at least 0). Minutes used will always be whole numbers. Re-prompt until a valid value is entered.
©2012, Regis University
Calculate the bill total and display the results.
The output should display: the customer account number, the plan chosen in words, the number of minutes used (unless the plan chosen was F), and the total amount of the bill. Display neatly with descriptive text.
After displaying the results, ask the user whether to execute the program again, and do so, as long as the user wishes to continue.
At a minimum, the program must implement three separate functions (in addition to main), as described on the next page:
• One function to read and validate the plan choice, and if necessary, to read and
validate the number of minutes used. Both the plan choice and the number of minutes
used will be passed back to main via reference parameters.
• One function to calculate the amount of the bill and return the bill amount. Pass in
any necessary data as input parameters.
• One function to display the bill output. Pass in any necessary data as input
parameters.
Use of global variables is NOT allowed. The functions must use parameters to pass required
data to each function. Remember to pass all input only parameters by value, and pass all
output parameters by reference.