help me translate English texting into Morse Code and visa versa Requirements 1.
ID: 3717134 • Letter: H
Question
help me translate English texting into Morse Code and visa versa
Requirements
1. The approach should be Object Oriented. I don't want to see parallel arrays or a long if/else if/else or switch statement.
2. Prompt the user to enter a sentence. This means you must support whitespace in the string input. The sentence can have a maximum of 50 characters.
3. Output the sentence character by character by translating the character into it's Morse Code equivalent. You can print each on an individual line or on one line separated by a space.
4. Use the Morse Code table as shown on Wikipedia. Represent with periods and hyphens. For example the character 'B' would be output as string "-..."
5. Morse Code is case insensitive. 'a' and 'A' are the same character. You will need to handle this in your code.
6. You can ignore any character in the sentence that is not a letter or number.
7. I will not only be grading program correctness, I'm also going to be grading your Object Oriented approach. So please take the time to think about the design of the program before implementing.
Note: if you also support translating Morse Code into English Alphabet characters. You can ask the user to separate the Morse codes with a space. Same rules apply as above, except you'll expect Morse codes as input and output the sentence. You must support more than one character. The sentence you output can be all upper or lower case characters. You do not have to be case sensitive in your output.
Explanation / Answer
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
public class clsEng_Morse
{
public Dictionary<string, string> dict_EngMorse = new Dictionary<string, string>();
public Dictionary<string, string> dict_MorseEng = new Dictionary<string, string>();
public clsEng_Morse()
{
fill_dict_EngMorse();
fill_dict_MorseEng();
}
private void fill_dict_EngMorse()
{
dict_EngMorse = new Dictionary<string, string>();
dict_EngMorse.Add("A", ".-");
dict_EngMorse.Add("B", "-...");
dict_EngMorse.Add("C", "-.-.");
dict_EngMorse.Add("D", "-..");
dict_EngMorse.Add("E", ".");
dict_EngMorse.Add("F", "..-.");
dict_EngMorse.Add("G", "--.");
dict_EngMorse.Add("H", "....");
dict_EngMorse.Add("I", "..");
dict_EngMorse.Add("J", ".---");
dict_EngMorse.Add("K", "-.-");
dict_EngMorse.Add("L", ".-..");
dict_EngMorse.Add("M", "--");
dict_EngMorse.Add("N", "-.");
dict_EngMorse.Add("O", "---");
dict_EngMorse.Add("P", ".--.");
dict_EngMorse.Add("Q", "--.-");
dict_EngMorse.Add("R", ".-.");
dict_EngMorse.Add("S", "...");
dict_EngMorse.Add("T", "-");
dict_EngMorse.Add("U", "..-");
dict_EngMorse.Add("V", "...-");
dict_EngMorse.Add("W", ".--");
dict_EngMorse.Add("X", "-..-");
dict_EngMorse.Add("Y", "-.--");
dict_EngMorse.Add("Z", "--..");
dict_EngMorse.Add("1", ".----");
dict_EngMorse.Add("2", "..---");
dict_EngMorse.Add("3", "...--");
dict_EngMorse.Add("4", "....-");
dict_EngMorse.Add("5", ".....");
dict_EngMorse.Add("6", "-....");
dict_EngMorse.Add("7", "--...");
dict_EngMorse.Add("8", "---..");
dict_EngMorse.Add("9", "----.");
dict_EngMorse.Add("0", "-----");
}
private void fill_dict_MorseEng()
{
dict_MorseEng = new Dictionary<string, string>();
dict_MorseEng.Add(".-", "A");
dict_MorseEng.Add("-...", "B");
dict_MorseEng.Add("-.-.", "C");
dict_MorseEng.Add("-..", "D");
dict_MorseEng.Add(".", "E");
dict_MorseEng.Add("..-.", "F");
dict_MorseEng.Add("--.", "G");
dict_MorseEng.Add("....", "H");
dict_MorseEng.Add("..", "I");
dict_MorseEng.Add(".---", "J");
dict_MorseEng.Add("-.-", "K");
dict_MorseEng.Add(".-..", "L");
dict_MorseEng.Add("--", "M");
dict_MorseEng.Add("-.", "N");
dict_MorseEng.Add("---", "O");
dict_MorseEng.Add(".--.", "P");
dict_MorseEng.Add("--.-", "Q");
dict_MorseEng.Add(".-.", "R");
dict_MorseEng.Add("...", "S");
dict_MorseEng.Add("-", "T");
dict_MorseEng.Add("..-", "U");
dict_MorseEng.Add("...-", "V");
dict_MorseEng.Add(".--", "W");
dict_MorseEng.Add("-..-", "X");
dict_MorseEng.Add("-.--", "Y");
dict_MorseEng.Add("--..", "Z");
dict_MorseEng.Add(".----", "1");
dict_MorseEng.Add("..---", "2");
dict_MorseEng.Add("...--", "3");
dict_MorseEng.Add("....-", "4");
dict_MorseEng.Add(".....", "5");
dict_MorseEng.Add("-....", "6");
dict_MorseEng.Add("--...", "7");
dict_MorseEng.Add("---..", "8");
dict_MorseEng.Add("----.", "9");
dict_MorseEng.Add("-----", "0");
}
public string PrintEnglishToMorseCode(string pEngText)
{
string finalMorseCode = "";
pEngText = pEngText.ToUpper();
char[] ArrStr = pEngText.ToCharArray();
foreach (char tempText in ArrStr)
{
if (dict_EngMorse.ContainsKey(tempText.ToString()))
{
finalMorseCode += (dict_EngMorse[tempText.ToString()] + " ");
}
else if (tempText == ' ')
{
finalMorseCode += "/ ";
}
}
return finalMorseCode;
}
public string PrintMorseCodeToEnglish(string pMorseText)
{
string finalEngtext = "";
string tempstr = "";
char[] ArrStr = pMorseText.ToCharArray();
bool isBlank = false;
foreach (char tempText in ArrStr)
{
if (isBlank)
{
isBlank = false;
}
else
{
if (tempText == ' ')
{
if (dict_MorseEng.ContainsKey(tempstr.ToString()))
{
finalEngtext += dict_MorseEng[tempstr.ToString()];
}
tempstr = "";
}
else if (tempText == '/')
{
finalEngtext += " ";
tempstr = "";
isBlank = true;
}
else
{
tempstr += tempText.ToString();
}
}
}
return finalEngtext;
}
}
class Program
{
static void Main(string[] args)
{
clsEng_Morse objcls = new clsEng_Morse();
string input = default(string);
Console.WriteLine("Please type english text?");
input = Console.ReadLine();
input = input.ToUpper();
Console.WriteLine("Your morse code output is: " + objcls.PrintEnglishToMorseCode(input));
Console.WriteLine("Please type Morse Code?");
input = Console.ReadLine();
Console.WriteLine("Your English text output is: " + objcls.PrintMorseCodeToEnglish(input));
Console.WriteLine("Press enter to end.");
Console.ReadLine();
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.