PseudocodeProcessInput( ) Method
Get 7 characters from the user and store them in the 7 variables that Main() has passed by reference
Call ToDigit() for each of the 7 characters
If toDigit returns an error code (-1), return an error code (-1)
If the first character is 0, return an error code (-1) to Main()
If the first three characters are 555, return an error code (-1)
If there are no errors, return 0
ToDigit ( ) Method
Convert the characters (passed from ProcessInput() by reference) to upper case
Use a switch statement to translate characters into their corresponding digits.
Write a case statement for each digit and for each valid uppercase letter
Write a default case that returns an error code (-1) for invalid letters
If there are no invalid letters, return 0
ShowResults ( ) Method
Display the Phone Number using the character variables Main() has passed by reference
Main() Method
Declare 7 char variables
Get user input by calling the GetInput() method, passing it the 7 variables by reference
Perform the conversion by calling the ProcessInput( ) method, passing it the 7 variables by reference
Display an error message or call ShowResults(), depending on the code ProcessInput() returns
Your mission: A prepaid phone service needs a program that converts alphanumeric keyboard input into a phone number. The user will input eight characters and the program will output either an error message or the translated seven-digit phone number. The input may contain digits, letters, or both. Letters can be uppercase or lowercase.
The program will perform the conversion per a standard telephone keypad layout.
0
|
| 5
| JKL |
1
|
| 6
| MNO |
2
| ABC
| 7
| PQRS |
3
| DEF
| 8
| TUV |
4
| GHI
| 9
| WXYZ |
The program implements the following methods.
Main(): Declares seven character variables and passes these to the following methods by reference:
ProcessInput(): gets user input and performs the conversion
ShowResults(): displays the results
GetInput(): Gets seven characters from the user and stores them into the seven variables Main() has passed by reference.
ProcessInput(): Calls ToDigit() for each, passing each character variable by reference, and returns one of these codes to Main() by value:
0 if there were no input errors
-1 if there were input errors
Input errors include the following:
The first character is 0 (seven-digit phone numbers can't start with 0).
The first three characters are "555" (no phone numbers start with 555).
Any character is not a digit or an uppercase or lowercase letter.
ToDigit(): Converts a character (passed by reference) to its corresponding digit per the table above, and returns one of these codes to ProcessInput() by value:
0 if the character is valid (a digit or uppercase or lowercase letter)
-1 if the character is not valid
ShowResults(): Writes converted telephone number to the screen, inserting a dash (-) between the third and fourth digits, and accepts the seven character variables from Main() by reference