Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+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'; 
    } 
} 
Удаленный ответ Ответ удалён