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

Англо-русский словарь - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Начало http://www.cyberforum.ru/cpp-beginners/thread203396.html
Подскажите программу для программирования на c/c++ и все прилагающиеся к ней инструменты(компиляторы и т.д.) и что лучше c или c++? в википедии пишут что с++ вышел из с но потом они развивались в разных направлениях спс
C++ архиватор Хаффмана Здравствуйте! Сейчас пишу архиватор Хаффмана. Вроде сделала. На небольших кусках текста все работает: и дерево строит верно (в ручную проверяла), и кодирует и декодирует. Весь текст я скаладываю в одну строку. Потом получаю закодированную строку с абракадаброй, а потом снова строку с исходным текстом. Но когда я подаю текст побольше, то программа глючит. Я проходила ее вручную: дело не в дереве,... http://www.cyberforum.ru/cpp-beginners/thread203389.html
Сложение больших чисел C++
Здравствуйте, есть довольно простая олимпиадная задачка, написал ее решение, проверяю у себя - все работает, но проверяющая система выдает ошибку в четвертом тесте; выходит, что у меня при каких-то исходных числах неправильный ответ после сложения. Вот подскажите, пожалуйста, при каких. #include <fstream> #include <string> using namespace std; ifstream in("INPUT.TXT"); ofstream...
C++ Заменить минимальные элементы матрицы на сумму элементов соответствующего столбца.
Всем привет. Нужно составить программу на Си: Задана матрица NxN. Нужно заменить все минимальные элементы матрицы на сумму элементов соответствующего столбца. Заранее спасибо.
C++ Реализация блочного алгоритма шифрования - Tiny Encryption Algorithm (TEA) http://www.cyberforum.ru/cpp-beginners/thread203349.html
В общем, имеем код: #include <iostream.h> void encode(long* v, long* k) { unsigned long y=v,z=v, sum=0, /* set up */ delta=0x9e3779b9, /* a key schedule constant */ n=32 ;
C++ Объявить массив не более чем 15 элементов. Вывести обратные по модулю величины и проверить изменились ли адреса элементов этих двух массивов. Объявить массив не более чем 15 элементов. Вывести обратные по модулю величины и проверить изменились ли адреса элементов этих двух массивов. Добавлено через 8 часов 4 минуты помогите пожалуйста..... подробнее

Показать сообщение отдельно
Smiling_girl
46 / 12 / 1
Регистрация: 08.11.2010
Сообщений: 28

Англо-русский словарь - C++

04.12.2010, 19:23. Просмотров 9606. Ответов 12
Метки (Все метки)

нужно написать программу "англо-русский и русско-английский словарь"
база данных словаря должна содержать синонимичные варианты перевода слов
программа должна обеспечит выбор посредством меню и выполнение одной из следующих функций:
- загрузка базы данных из словоря (из файла)
- выбор режима работы ( англо-русский или русско-английский)
- вывод вариантов перевода заданного английского слова
- вывод вариантов переаода заданного русского слова
- базу данных словаря реализовать в виде 2-х контейнеров типа map

я начала писать, но не знаю как сделать дальше.. помогите закончить


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
// Anglo-rus.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "Anglo-rus.h"
 
#include <iostream>
#include <fstream>
#include <iomanip>
#include <stdlib.h>
#include <string>
#include <map>
    
#include <locale>
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
// Единственный объект приложения
 
CWinApp theApp;
 
using namespace std;
 
const int maxlen = 200;
class compare_m
{
public:
    bool operator() (const char *s, const char *t) const
    {
        return strcmp(s,t) <0;
    }
};
 
int map1();
typedef map <string *, string, compare_m> directype;
 
int map1(int argc, char* argv[]);
typedef map <string *, string, compare_m> directype;
 
 
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    int nRetCode = 0;
 
    HMODULE hModule = ::GetModuleHandle(NULL);
 
    if (hModule != NULL)
    {
        // инициализировать MFC, а также печать и сообщения об ошибках про сбое
        if (!AfxWinInit(hModule, NULL, ::GetCommandLine(), 0))
        {
            // TODO: измените код ошибки соответственно своим потребностям
            _tprintf(_T("Критическая ошибка: сбой при инициализации MFC\n"));
            nRetCode = 1;
        }
        else
        {
            // TODO: Вставьте сюда код для приложения.
            map1();
            system ("pause");
        }
    }
    else
    {
        // TODO: Измените код ошибки соответственно своим потребностям
        _tprintf(_T("Критическая ошибка: неудачное завершение GetModuleHandle\n"));
        nRetCode = 1;
    }
 
    return nRetCode;
}
 
 
 
 
void ReadInput (directype &D)
{
    
    setlocale(LC_ALL,"Russian");
    ifstream ifstr("eng.txt");
    string nr;
    char buf [maxlen], *p;
    if (ifstr)
    {
        cout << "Считанные из файла данные eng.txt:\n";
        for (;;)
        {
            ifstr >> nr;
            ifstr.get(); //пропустить пробел
            ifstr.getline (buf, maxlen);
            if (!ifstr) break;
            cout << setw(9) << nr << "  " << buf << endl;
            p = new char [strlen(buf) +1];
            strcpy (p, buf);
            D[p] = nr;
        }
    }
    ifstr.close();
}
 
void ShowCommands()
{
    cout << "Commands: \n"
        "?word          :find word translation\n"
        "/word          :delete \n"
        "!number name   :insert (or update) \n"
        "*              :list whole file \n"
        "=              :save in file\n"
        "#              :exit" << endl;
}
 
void ProcessCommands(directype &D)
{
    ofstream ofstr;
    string nr;
    char ch, buf[maxlen], *p;
    directype::iterator i;
    for (;;)
    {
        cin >> ch; //пропустить любой непечатаемый символ и прочесть ch
        switch (ch)
        {
        case '?': //cin.getline(buf, maxlen);
 
        case '/': //найти или удалить
            cin.getline (buf, maxlen);
            i=D.find(buf);
            if (i == D.end()) cout << "Not found. \n";
            else //ключ не найден
                if ( ch == '?') //команда "найти"
                    cout << "Word: " << (*i).second << endl;
                else //команда "удалить"
                {
                    delete[] (*i).first; D.erase(i);
                }
                break;
        case '!': //добавить (или обновить)
            cin >> nr;
            if (cin.fail())
            {
                cout << "Usage: !word translation\n";
                cin.clear(); cin.getline(buf, maxlen);
                break;
            }
            cin.get();
            cin.getline(buf, maxlen);
            i=D.find(buf);
            if (i == D.end())
            {
                p = new char [strlen(buf) +1];
                strcpy (p, buf);
                D[p] = nr;
            }
            else (*i).second = nr;
            break;
        case '*':
            for (i= D.begin(); i != D.end(); i++)
                cout << setw(9) << (*i).second << "  " << (*i).first << endl;
            break;
        case '=':
            ofstr.open ("eng.txt");
            if (ofstr)
            {
                for (i = D.begin(); i != D.end(); i++)
                    ofstr << setw(9) << (*i).second << "  " << (*i).first << endl;
                ofstr.close();
            }
            else cout << "Cannot open output file. \n";
            break;
        case '#':
            break;
        default:
            cout << "Use: * (list), ? (find), = (save), ""/ (delete), ! (insert), or # (exit). \n";
            cin.getline (buf, maxlen);
            break;
        }
        if (ch == '#') break;
    }
}
 
int map1()
{
    directype D;
    ReadInput (D);
    ShowCommands();
    ProcessCommands(D);
    for (directype::iterator i = D.begin(); i != D.end(); i++)
        delete[] (*i).first;
    return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru