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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
DENISER
3 / 3 / 1
Регистрация: 10.10.2012
Сообщений: 31
17.02.2013, 14:00     Азбука Морзе #1
Есть код для шифрования символов в Азбуку Морзе,но нужно что б эта программа также могла считывать текст с документа к примеру .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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 14:00     Азбука Морзе
Посмотрите здесь:

Азбука морзе C++
C++ Азбука Морзе
[C++]Азбука Морзе, программа-телеграф C++
C++ Азбука морзе
C++ Азбука Морзе
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HackSign
33 / 33 / 13
Регистрация: 23.11.2006
Сообщений: 109
17.02.2013, 16:18     Азбука Морзе #2
А знаки разделения между символами в коде Азбуки Морзе есть? А то так сам черт не развяжет, как да что..
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
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 + " ";
    }
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
17.02.2013, 18:23     Азбука Морзе #4
ты уже STL используешь, vua72
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
17.02.2013, 18:53     Азбука Морзе #5
а что нельзя?
M9ICHIK
 Аватар для M9ICHIK
63 / 63 / 13
Регистрация: 09.12.2012
Сообщений: 458
22.02.2013, 17:10     Азбука Морзе #6
Лучше бы знаки Морзе поместил в отдельный массив, так сказать, параллельно их значению + без учета реестра букв.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2013, 17:41     Азбука Морзе
Еще ссылки по теме:

Азбука Морзе С++ C++
Написать программу - Азбука Морзе C++
C++ Открытие файла. Азбука морзе

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

Или воспользуйтесь поиском по форуму:
Ogniel
 Аватар для 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;
}
Yandex
Объявления
22.02.2013, 17:41     Азбука Морзе
Ответ Создать тему
Опции темы

Текущее время: 01:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru