


Программирование
+4Помогите написать консольное приложение. С++
Написать консольное приложение, которое будет выполнять функцию переводчика с английского языка на код Морзе. Программа должна принимать на вход строку.
Результат работы программы - вывод на экран переведенного на код Морзе текста. Буквы в слове разделены пробелами, слова в строке - символом ''/''.
Программа должна уметь переводить в код морзе строчные и заглавные буквы английского алфавита
Реализовать возможность перевести несколько фраз за один раз без необходимости перезапуска программы.
Код программы должен состоять из функций, выполняющих единственную и конкретную задачу.
По дате
По рейтингу
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
#include <cctype>
#include <iostream>
#include <string>
#include <unordered_map>
class MorseCode {
public:
using alphabet = std::unordered_map<char, std::string>;
std::string encode_eng(const std::string& eng) const {
std::string morse;
for (const auto ch : eng) {
if (ch == ' ') morse += "/ ";
else if (ch > 0) {
const char value = toupper(ch);
if (en.contains(value)) {
morse += en.at(value);
}
}
}
if (!morse.empty()) {
morse.pop_back();
}
return morse;
}
private:
inline static const alphabet en{
{ 'Q', "--.- " },
{ 'W', ".-- " },
{ 'E', ". " },
{ 'R', ".-. " },
{ 'T', "- " },
{ 'Y', "-.-- " },
{ 'U', "..- " },
{ 'I', ".. " },
{ 'O', "--- " },
{ 'P', ".--. " },
{ 'A', ".- " },
{ 'S', "... " },
{ 'D', "-.. " },
{ 'F', "..-. " },
{ 'G', "--. " },
{ 'H', ".... " },
{ 'J', ".--- " },
{ 'K', "-.- " },
{ 'L', ".-.. " },
{ 'Z', "--.. " },
{ 'X', "-..- " },
{ 'C', "-.-. " },
{ 'V', "...- " },
{ 'B', "-... " },
{ 'N', "-. " },
{ 'M', "-- " }
};
};
int main() {
std::string text;
MorseCode mc;
while (true) {
std::cout << "text: ";
std::getline(std::cin, text);
std::cout << "code: " << mc.encode_eng(text) << '\n';
}
}
Больше по теме