Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
DENISER
4 / 4 / 1
Регистрация: 10.10.2012
Сообщений: 31
#1

Азбука Морзе - C++

17.02.2013, 14:00. Просмотров 1641. Ответов 6
Метки нет (Все метки)

Есть код для шифрования символов в Азбуку Морзе,но нужно что б эта программа также могла считывать текст с документа к примеру .txt и переводить соответсвующий текст в консоль.Помогите пожалуйста!
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
#include <iostream>
#include <cstring>
using namespace std;
void convert (char[50]);
int main(){
char eng[50];
cin >> eng;
convert(eng);
return 0;
}
void convert (char en[]){
    int eng2;
    eng2 = strlen (en);
    cout << eng2 << endl;
    for (int i = 0; i<eng2; i++){
    if (en[i] == ' ')
        cout << endl;
    else if (en[i] == '0')
        cout << "-----" << endl;
    else if (en[i] == '1')
        cout << ".----" << endl;
    else if (en[i] == '2')
        cout << "..---" << endl;
    else if (en[i] == '3')
        cout << "...--" << endl;
    else if (en[i] == '4')
        cout << "....-" << endl;
    else if (en[i] == '5')
        cout << "....." << endl;
    else if (en[i] == '6')
        cout << "-...." << endl;
    else if (en[i] == '7')
        cout << "--..." << endl;
    else if (en[i] == '8')
        cout << "---.." << endl;
    else if (en[i] == '9')
        cout << "----." << endl;
    else if (en[i] == 'A' || en[i] == 'a')
        cout << ".-" << endl;
    else if (en[i] == 'B' || en[i] == 'b')
        cout << "-..." << endl;
    else if (en[i] == 'C' || en[i] == 'c')
        cout << "-.-." << endl;
    else if (en[i] == 'D' || en[i] == 'd')
        cout << "-.." << endl;
    else if (en[i] == 'E' || en[i] == 'e')
        cout << "." << endl;
    else if (en[i] == 'F' || en[i] == 'f')
        cout << "..-." << endl;
    else if (en[i] == 'G' || en[i] == 'g')
        cout << "--." << endl;
    else if (en[i] == 'H' || en[i] == 'h')
        cout << "...." << endl;
    else if (en[i] == 'I' || en[i] == 'i')
        cout << ".." << endl;
    else if (en[i] == 'J' || en[i] == 'j')
        cout << ".---" << endl;
    else if (en[i] == 'K' || en[i] == 'k')
        cout << "-.-" << endl;
    else if (en[i] == 'L' || en[i] == 'l')
        cout << ".-.." << endl;
    else if (en[i] == 'M' || en[i] == 'm')
        cout << "--" << endl;
    else if (en[i] == 'N' || en[i] == 'n')
        cout << "-." << endl;
    else if (en[i] == 'O' || en[i] == 'o')
        cout << "---" << endl;
    else if (en[i] == 'P' || en[i] == 'p')
        cout << ".--." << endl;
    else if (en[i] == 'Q' || en[i] == 'q')
        cout << "--.-" << endl;
    else if (en[i] == 'R' || en[i] == 'r')
        cout << ".-." << endl;
    else if (en[i] == 'S' || en[i] == 's')
        cout << "..." << endl;
    else if (en[i] == 'T' || en[i] == 't')
        cout << "-" << endl;
    else if (en[i] == 'U' || en[i] == 'u')
        cout << "..-" << endl;
    else if (en[i] == 'V' || en[i] == 'v')
        cout << "...-" << endl;
    else if (en[i] == 'W' || en[i] == 'w')
        cout << ".--" << endl;
    else if (en[i] == 'X' || en[i] == 'x')
        cout << "-..-" << endl;
    else if (en[i] == 'Y' || en[i] == 'y')
        cout << "-.--" << endl;
    else if (en[i] == 'Z' || en[i] == 'z')
        cout << "--.." << endl;
    else
    {       
    }
}
cout <<endl;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 14:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Азбука Морзе (C++):

Азбука Морзе, декодирование - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; void convert (char); int main(){ char eng; cin.getline...

Азбука Морзе, со звуками - C++
Как создать звук с помощью С++?

Открытие файла. Азбука морзе - C++
Добрый вечер! Хотел обратиться к вам за помощью. Нужно составить программу, которая позволяет текст, содержащийся в файле, воспроизвести...

Написать программу - Азбука Морзе - C++
Написать программу на языке С++ Код Азбуки Морзе, отправьте Код написанной программы на мою почту

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

Азбука Морзе, вывод в одну строку - C++
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; void convert (char); int main(){ char eng; cin &gt;&gt; eng; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
HackSign
35 / 35 / 14
Регистрация: 23.11.2006
Сообщений: 124
17.02.2013, 16:18 #2
А знаки разделения между символами в коде Азбуки Морзе есть? А то так сам черт не развяжет, как да что..
0
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
17.02.2013, 18:18 #3
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
#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
 
using namespace std;
 
void convert(std::string & inb, std::string & outb);
 
int main() {
    string inbuf = "", outbuf = "";
    char *buf;
    long int len = 0;
    //-- read from file
    ifstream infile("morze.txt", ios_base::binary);
    if (!infile.is_open()) {
        exit(1);
    };
    infile.seekg(0, ios::end);
    len = infile.tellg();
    cout << endl << len;
    buf = new char[len];
    infile.seekg(0, ios_base::beg);
    infile.read(buf, len);
    infile.close();
    //--
    inbuf.assign(buf, len - 1);
    convert(inbuf, outbuf);
    cout << endl << inbuf;
    cout << endl << outbuf;
    delete[] buf;
    return 0;
}
 
void convert(std::string & inb, std::string & outb) {
    std::string buf = "";
    for (std::string::iterator it = inb.begin(); it != inb.end(); ++it) {
        if (*it == ' ')
            buf = " ";
        else if (*it == '0')
            buf = "-----";
        else if (*it == '1')
            buf = ".----";
        else if (*it == '2')
            buf = "..---";
        else if (*it == '3')
            buf = "...--";
        else if (*it == '4')
            buf = "....-";
        else if (*it == '5')
            buf = ".....";
        else if (*it == '6')
            buf = "-....";
        else if (*it == '7')
            buf = "--...";
        else if (*it == '8')
            buf = "---..";
        else if (*it == '9')
            buf = "----.";
        else if (*it == 'A' || *it == 'a')
            buf = ".-";
        else if (*it == 'B' || *it == 'b')
            buf = "-...";
        else if (*it == 'C' || *it == 'c')
            buf = "-.-.";
        else if (*it == 'D' || *it == 'd')
            buf = "-..";
        else if (*it == 'E' || *it == 'e')
            buf = ".";
        else if (*it == 'F' || *it == 'f')
            buf = "..-.";
        else if (*it == 'G' || *it == 'g')
            buf = "--.";
        else if (*it == 'H' || *it == 'h')
            buf = "....";
        else if (*it == 'I' || *it == 'i')
            buf = "..";
        else if (*it == 'J' || *it == 'j')
            buf = ".---";
        else if (*it == 'K' || *it == 'k')
            buf = "-.-";
        else if (*it == 'L' || *it == 'l')
            buf = ".-..";
        else if (*it == 'M' || *it == 'm')
            buf = "--";
        else if (*it == 'N' || *it == 'n')
            buf = "-.";
        else if (*it == 'O' || *it == 'o')
            buf = "---";
        else if (*it == 'P' || *it == 'p')
            buf = ".--.";
        else if (*it == 'Q' || *it == 'q')
            buf = "--.-";
        else if (*it == 'R' || *it == 'r')
            buf = ".-.";
        else if (*it == 'S' || *it == 's')
            buf = "...";
        else if (*it == 'T' || *it == 't')
            buf = "-";
        else if (*it == 'U' || *it == 'u')
            buf = "..-";
        else if (*it == 'V' || *it == 'v')
            buf = "...-";
        else if (*it == 'W' || *it == 'w')
            buf = ".--";
        else if (*it == 'X' || *it == 'x')
            buf = "-..-";
        else if (*it == 'Y' || *it == 'y')
            buf = "-.--";
        else if (*it == 'Z' || *it == 'z')
            buf = "--..";
        else {
            buf = "Error";
        }
        //cout << endl << *it <<"  "<< buf;
        outb += buf + " ";
    }
}
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
17.02.2013, 18:23 #4
ты уже STL используешь, vua72
0
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
17.02.2013, 18:53 #5
а что нельзя?
0
M9ICHIK
63 / 63 / 13
Регистрация: 09.12.2012
Сообщений: 458
22.02.2013, 17:10 #6
Лучше бы знаки Морзе поместил в отдельный массив, так сказать, параллельно их значению + без учета реестра букв.
0
Ogniel
24 / 24 / 1
Регистрация: 30.05.2011
Сообщений: 127
22.02.2013, 17:41 #7
как у тебя - это капец как сложно. а билдер любит простоту
вместо if - else - if используй
C++
1
2
3
4
5
int a=en[i]; //берем цифрокод символа
switch (a){
     case ...=cout << "-----" << endl; // не помню соответствие кодов символу
                   break;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2013, 17:41
Привет! Вот еще темы с ответами:

Азбука Морзе, нужны комментарии к программе - C++
Доброго времени суток нашел хороший код на с++ по переводу сообщения в азбуку морзе и обратно. Но к сожалению не понимаю как он меняет...

Азбука Морзе, кодирование файла в другой файл - C++
Здравствуйте, помогите написать код программы. На именно С++ программа должна считывать текст из файла ( определенного .txt) выводит его...

Азбука Морзе, ошибка при открытии файла - C++
С кодом относительно а. морзе разобралась. осталась проблема с открытием файла#include &lt;fstream&gt; #include &quot;iostream&quot; using namespace...

Азбука Морзе, кодируется только первое слово строки - C++
проблема в том,что это прога переводит первое слово строчки. #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.02.2013, 17:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru