Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

A prepaid phone service needs a program that converts alphanumeric keyboard inpu

ID: 3644024 • Letter: A

Question

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
J K L

1

6
M N O

2
A B C
7
P Q R S

3
D E F
8
T U V

4
G H I
9
W X Y Z


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.
Sample Output:

Enter a 7 character phone number: 2132121
The converted phone number is: 213-2121

Enter a 7 character phone number: 2scdfER
The converted phone number is: 272-3337

Enter a 7 character phone number: 555resw
Invalid input, please try again.

Enter a 7 character phone number: 0988765
Invalid input, please try again.

Enter a 7 character phone number: 12345678
Invalid input, please try again.

Enter a 7 character phone number: @34*uy
Invalid input, please try again.

Explanation / Answer

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace PhoneDial { class Program { static void ToDigit(ref char digit) { digit = Char.ToUpper(digit); char result; switch (digit) { case '0': result = '0'; break; case '1': result = '1'; break; case '2': case 'A': case 'B': case 'C': result = '2'; break; case '3': case 'D': case 'E': case 'F': result = '3'; break; case '4': case 'G': case 'H': case 'I': result = '4'; break; case '5': case 'J': case 'K': case 'L': result = '5'; break; case '6': case 'M': case 'N': case 'O': result = '6'; break; case '7': case 'P': case 'Q': case 'R': case 'S': result = '7'; break; case '8': case 'T': case 'U': case 'V': result = '8'; break; case '9': case 'W': case 'X': case 'Y': case 'Z': result = '9'; break; default: result = 'e'; break; } digit = result; } static void GetInput(ref char d1, ref char d2, ref char d3, ref char d4, ref char d5, ref char d6, ref char d7) { string phoneNo; do { Console.Write(" Enter 7 charcater phone number: "); phoneNo = Console.ReadLine(); d1 = phoneNo[0]; if (d1.Equals('q') || d2.Equals('Q')) System.Environment.Exit(0); if (phoneNo.Length != 7) Console.WriteLine("invalid input, try again"); } while (phoneNo.Length != 7); d2 = phoneNo[1]; d3 = phoneNo[2]; d4 = phoneNo[3]; d5 = phoneNo[4]; d6 = phoneNo[5]; d7 = phoneNo[6]; } static int ProcessInput(ref char d1, ref char d2, ref char d3, ref char d4, ref char d5, ref char d6, ref char d7) { ToDigit(ref d1); ToDigit(ref d2); ToDigit(ref d3); ToDigit(ref d4); ToDigit(ref d5); ToDigit(ref d6); ToDigit(ref d7); if (d1 == '5' && d2 == '5' && d3 == '5') { return -1; } else if (d1 == '0') { return -1; } else return 0; } static void ShowResult(char d1, char d2, char d3, char d4, char d5, char d6, char d7) { Console.WriteLine("The converted phone number is: {0}{1}{2}{3}{4}{5}{6}{7}", d1, d2, d3, "-", d4, d5, d6, d7); } static void Main(string[] args) { char digit1 = ' ', digit2 = ' ', digit3 = ' ', digit4 = ' ', digit5 = ' ', digit6 = ' ', digit7 = ' '; int errorCode = 0; do { GetInput(ref digit1, ref digit2, ref digit3, ref digit4, ref digit5, ref digit6, ref digit7); errorCode = ProcessInput(ref digit1, ref digit2, ref digit3, ref digit4, ref digit5, ref digit6, ref digit7); if (errorCode != 0) Console.WriteLine("invalid input, try again"); else ShowResult(digit1, digit2, digit3, digit4, digit5, digit6, digit7); } while (errorCode != -5); } } }

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote