Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 04.03.2020
Сообщений: 28

Перевод русского текста в азбуку Морзе

22.04.2020, 16:27. Показов 6913. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ниже представлен код программы
в задании было сказано (Разработать программу, которая считывает текст из файла (*.txt), выводит его в этом виде на экран, переводит его согласно азбуке Морзе, изображает последовательность полученных символов на экране и записывает их в новый файл ) так вот проблема такая
1)не знаю как релизовать вывод самого текста из файла на консоль перед переводом
2)там есть проверка на то что если букву из текста не находит то он записывает X (хотя в string englishRef и string morseRef )заданны все буквы и их перевод


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
using namespace std;
const int SIZE = 47;
int userChoice = 5;
 
 
class Album
{
 
 
protected:
    string englishRef = " абвгдеёжзийклмнопрстуфхцчшщъыьэюя";// English letter for reference(for now)
    string morseRef[SIZE] = { "/", ".-", "-...", ".--", "--.", "-..", ".", "...-", "--..", "..", ".---",
                              "-.-", ".-..", "--", "-.", "---", ".--.", ".-.", "...", "-", "..-",
                              "..-.", "....", "-.-.", "---.", "----", "--.-", ".--.-.", "-.--",
                              "-..-", "..-..", "..--", ".-.-" };
 
public:
 
    void greeting() {
        cout << "\n\n\t\t  ------------------------------------------------\n"
            << "\t\t |                  Здравствуйте                  |\n"
            << "\t\t  ------------------------------------------------\n\n"
            << "\t\t      это программа перевода а азбуку морзе       \n\n"
            << "\t\t                  \n"
            << "\t\t                                \n"
            << "\t\t       нажмите любую кнопку для входа в меню" << endl;
        cin.get();
        system("cls");
    }
 
   
 
    
    int fileshow() {
        
       // тут вот фуекция вывода      
        
 
    }
    void FileMorseToEngl() {
        int linePosit = 1;
        string tempReading;
        ifstream readFile("translate.txt");
        ofstream creatFile("translatedEn.txt");
 
        string currentMorse = "";
 
        
        while (getline(readFile, tempReading)) {
 
            istringstream morseToEngl(tempReading);
 
            while (morseToEngl >> currentMorse) {
                int i = 0;
                int flag = 1;
 
                for (int m = 0; m < currentMorse.length(); m++) {
                    
                    while (i < SIZE) {
 
                        if (currentMorse == morseRef[i]) {
                            creatFile << englishRef.at(i);
                            flag = 0;
                        }
                        i++;
                    }
                    if (flag) {
                        creatFile << "X";
                    }
                }
            }
 
            creatFile << "\n";
        }
        cout << "\n\n\t\t  -------------------------------------------\n"
            << "\t\t |     ваш текст перевелен на английский    |\n"
            << "\t\t  -------------------------------------------\n\n"
            << "\t\t                проверьте файл \n\n"
            << "\t\tесли он пуст то в файл, the translate.txt пуст или не содержит текста" << endl;
 
    }
 
    
    void FileEnglToMorse() {
        int linePosit = 1;
        string tempReading;
        ifstream readFile("translate.txt");
        ofstream creatFile("translatedMor.txt");
 
        while (getline(readFile, tempReading)) {
 
            for (int i = 0; i < tempReading.length(); i++, linePosit++) {
 
               
                int findPosit = englishRef.find(tolower(tempReading.at(i)));
 
                
                if (findPosit + 1)
                    creatFile << morseRef[findPosit] << " ";
                else
                    creatFile << "X ";
 
            }
            creatFile << "\n";
        }
 
        cout << "\n\n\t\t  -------------------------------------------\n"
            << "\t\t |     ваш текст перевелен на азбуку морзе    |\n"
            << "\t\t  -------------------------------------------\n\n"
            << "\t\t                проверьте файл \n\n"
            << "\t\tесли он пуст то в файл, the translate.txt пуст или не содержит текста" << endl;
 
    }
 
   
    void continueTranslate() {
        cout << "\n\nпродолжить перевод: 1 да, 0 нет: ";
        cin >> userChoice;
    }
    void userMenu() {
        string innerUserChoice;
        string errorMsg = "";
 
        while (userChoice) {
            cout
              
                << "  (1) перевод с файла  в файл\n"
 
                << "  (2)  выход\n"
                << "\n\n\  скажите ваш выбор: ";
 
            cin >> userChoice;
 
            switch (userChoice) {
            case 0:
                break;
           
 
            case 1:
 
                while (true) {
                    cin.get();
                    system("cls");
 
                    cout << "\n\t\t\tперевод файла в файл:\n\n"
                        << "   пожалуйста добавте свой вайл в папку проекта и назовите translate.txt\n"
                        << "---------------------------------------------------------------------------\n\n"
                        << "   1. текствовый файл в морзе файл  2.морзе файл в текствовый файл\n\n"
                        << errorMsg
                        << "\n   скажите ваш выбор ";
                    cin >> innerUserChoice;
 
                    if (innerUserChoice == "1" || innerUserChoice == "2") {
                        errorMsg = "";
                        break;
                    }
                    else
                        errorMsg = "\tневерный ввод введите 1 или 2 для выбора";
                }
 
                if (innerUserChoice == "1") {
                    cin.get();
                    system("cls");
                    fileshow();
                    FileEnglToMorse();
                    
                }
                else if (innerUserChoice == "2") {
                    cin.get();
                    system("cls");
                    FileMorseToEngl();
                }
 
                continueTranslate();
                break;
            default:
                cout << " Ошибка неверный ввод. Пожалуйста,выберете правильный пункт , чтобы войти в меню!";
                continueTranslate();
                break;
            }
 
            system("cls");
        }
 
 
        cin.get();
        system("cls");
 
        cout << "спасибо" << endl;
 
        cin.get();
 
    }
};
int main()
{
    setlocale(LC_ALL,
        "rus");
    Album A;
    A.greeting();
    A.userMenu();
 
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.04.2020, 16:27
Ответы с готовыми решениями:

Перевод русского текста в азбуку Морзе
есть класс преобразовывающий русский текст в морзе код. проблема(как я понял у меня нормально не считываются русские символы с файла ) ...

Перевод слов в азбуку Морзе
Всем привет !! Написал программу которая переводит слова в морзянка. Теперь мне надо написать программу которая будет все делать наоборот...

Перевод текста в азбуку Морзе
Напишите программу-телеграф, которая принимает от пользователя сообщение и выводит его на экран в виде последовательности точек и тире или...

7
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
22.04.2020, 17:57
cout?
0
1 / 1 / 0
Регистрация: 04.03.2020
Сообщений: 28
22.04.2020, 19:29  [ТС]
да,нужен простой вывод текста
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
22.04.2020, 19:44
Ну так добавь вывод tempReading.
0
1 / 1 / 0
Регистрация: 04.03.2020
Сообщений: 28
22.04.2020, 21:18  [ТС]
при выводе выводит какой-то набор символов (думал консоль не настроена )настроил ее все равно.....
а что на счет того, что в наборе букв все учтено но при переводе выводит иксы (тоже понять не могу)(их должно выводить только при условии что буква не найдена )

Добавлено через 29 минут
то есть сама кириллица выводится в программе норм но при выводе "различные символы"

int fileshow() {
int linePosit = 1;
string tempReading;
ifstream readFile("translate.txt");
while (getline(readFile, tempReading)) {

cout << tempReading;

}
return 0;
}

возможно я неправильно делаю сам вывод?
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
22.04.2020, 21:22
Лучший ответ Сообщение было отмечено vivtor как решение

Решение

Кодировка соответствует? На английских проверял?
1
1 / 1 / 0
Регистрация: 04.03.2020
Сообщений: 28
22.04.2020, 21:44  [ТС]
на англе не проверял, нужно попробовать
0
1 / 1 / 0
Регистрация: 04.03.2020
Сообщений: 28
23.04.2020, 11:51  [ТС]
на англе вывод работает корректно
попробую опять настроить консоль )
что на счёт 2-го пункта?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2020, 11:51
Помогаю со студенческими работами здесь

Программа перевода слов с русского на азбуку Морзе
Помогите разобраться как происходит перевод слов с русского на азбуку Морзе в этой программе Program_Oksana; Uses Crt; Const Morse:...

Текстовые файлы. Перевод теста в азбуку МОРЗЕ
Вводимый из файла текст перевести в последовательность точек и тире с помощью азбуки Морзе! Нужно написать программу в Паскале!

Реализовать азбуку морзе
Нужно сделать чтобы при нажатии на кнопку был звук азбуки морза... каждой кнопке свой звук... можно только начало исходника или пример...

Написать программу - Азбуку морзе
Пожалуйста помогите написать программу Азбуку морзе на Borland Developer Studio 2006 Добавлено через 16 минут Вот у меня такое...

Данные из TextBox в азбуку Морзе
Программирование на C# для меня как хобби(профессионально не занимаюсь, что то знаю, что то нет), создаю программки под настроение....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru