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

Словарь вместо структуры класс - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция, очень похожая на switch http://www.cyberforum.ru/cpp-beginners/thread873923.html
Здравствуйте, подскажите кто знает функцию как switch(), только чтобы всё не зависило от одной переменной, то есть у меня есть набор условий и мне не хотелось бы писать много if.
C++ Гаммирование с обратной связью Нужна помощь ребят. Я не програмист и С++ учил только самые основы, но в универе по предмету криптологии напрягли с прогой... Нужна хоть какая то элементарная программа для шифрования гаммированием с обратной связью, что бы могла зашифровать хоть несколько букв. Может кому не сложно подкинуть что-то такое, буду очень благодарен. http://www.cyberforum.ru/cpp-beginners/thread873922.html
C++ Расположить строки в выделенном массиве
Матрица А вводится с клавиатуры, построчно. Число строк заранее неизвестно, но различных строк не более m. Расположить строки в выделенном массиве, при этом повторяющиеся строки включать единожды. помогите сделать, или может у кого что нибудь похожее есть(как пример)?
C++ По заданной квадратной матрице из нулей и единиц определите, может ли данная матрица быть матрицей смежности простого неориентированного графа
помогите решить вот такую задачу пожалуйста(( По заданной квадратной матрице n*n из нулей и единиц определите, может ли данная матрица быть матрицей смежности простого неориентированного графа. Формат входных данных Входной файл содержит число n (1 < n < 100) - размер матрицы, и затем n строк по n чисел, каждое из которых равно 0 или 1 — саму матрицу. Формат выходных данных Выведите...
C++ Как сделать, чтобы switch работал как цикл? http://www.cyberforum.ru/cpp-beginners/thread873917.html
Как сделать что бы switch работал как цикл ? Ну то есть: switch (n) case 1:break; {newfile1 (); } case 2:break;{newfile2 (); } Когда выбираешь например "1" - выполняется newfile1 и приложение закрывается, а как сделать что бы после завершения newfile1 switch снова открывался, пока я сам не выберу "Выйти", есть варианты без переписывание switch в конец функции newfile1 ?
C++ Ошибка #include <iostream> #include "class.h" #include <string> #include <time.h> using namespace std; Element::Element () { name=new char; int n=0; подробнее

Показать сообщение отдельно
Junker94
Сообщений: n/a

Словарь вместо структуры класс - C++

22.05.2013, 02:58. Просмотров 261. Ответов 0
Метки (Все метки)

Нужно написать словарь с использованием класса. Кто может помогите пожалуйста переделать структуру в класс

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
typedef struct tag_word 
{ 
    char wd_eng[100];     
    char wd_rus[100];    
    tag_word *prev, *next;  
} 
WORD_DICT;
WORD_DICT *head = NULL, *tail = NULL;
void List_dict_add(WORD_DICT* add_word) 
{ 
    if(head == NULL) head = add_word; 
 
    add_word->prev = tail; 
    add_word->next = NULL; 
 
    if(tail != NULL) tail->next = add_word; 
    tail = add_word; 
}
void LoadDict() 
{ 
    FILE* fp = fopen("dict.dat","rb"); 
    if(fp != NULL) 
    { 
        while(!feof(fp)) 
        { 
            WORD_DICT* word = (WORD_DICT *) 
                malloc(sizeof(WORD_DICT)); 
            fread(word,sizeof(WORD_DICT),1,fp); 
            List_dict_add(word); 
        } 
        fclose(fp); 
} 
}
 
int ShowMainMenu() 
{ 
int ret = 2; 
cout<<"\n"; 
cout<<"1. Добавить слово в словарь\n"; 
cout<<"2. Перевести\n"; 
cout<<"3. Выйти из словаря\n"; 
cout<<"\n"; 
cout<<"Выберите из спика: ";
cin>>hex>>ret; 
 
return ret; 
}
void Add_words() 
{ 
    char rus_word[100], eng_word[100]; 
    char ch; 
    do 
    { 
        cout<<"\n Добавление слов \n"; 
        cout<<"Введите русское слово: ";
        cin>>rus_word; 
        cout<<"Введите английское слово: ";
        cin>>eng_word; 
        cout<<"Добавить это слово? +/-: "; 
        ch = getch(); 
        if(ch == '+' || ch == '+') 
{ 
WORD_DICT* word = (WORD_DICT *)malloc(sizeof(WORD_DICT)); 
strcpy(word->wd_eng,eng_word); 
strcpy(word->wd_rus,rus_word); 
List_dict_add(word); 
} 
cout<<"\nХотите добавить слово? +/-: "; 
ch = getch(); 
} 
    while(ch != '-' && ch != '-'); 
}
void Translate() 
{ 
char rus_word[100]; 
char ch; 
 
do 
{ 
cout<<"\n--------Перевод русских слов-------------\n"; 
cout<<"Введите русское слово: ";
cin>>rus_word; 
 
WORD_DICT* current = head; 
while(current != NULL) 
{ 
if(strcmp(current->wd_rus,rus_word) == 0) 
{ 
cout<<"Английское:\n"<<current->wd_eng; 
break; 
} 
current = current->next; 
} 
if(current == NULL) cout<<"Слово не найдено\n"; 
 
cout<<"\nХотите перевести другое слово? +/-: "; 
ch = getch(); 
 
} 
while(ch != '-' && ch != '-'); 
}
void SaveDict() 
{ 
FILE* fp = fopen("dict.dat","wb"); 
if(fp != NULL) 
{ 
WORD_DICT* current = head; 
while(current != NULL) 
{ 
fwrite(current,sizeof(WORD_DICT),1,fp); 
current = current->next; 
} 
} 
fclose(fp); 
}
WORD_DICT* List_dict_remove(WORD_DICT* crn) 
{ 
if(crn->prev != NULL) crn->prev->next = crn->next; 
if(crn->next != NULL) crn->next->prev = crn->prev; 
 
if(crn == head) if(crn->prev != NULL) head = crn->prev; 
else head = crn->next; 
 
if(crn == tail) if(crn->next != NULL) tail = crn->next; 
else tail = crn->prev; 
 
free(crn); 
return tail; 
}
void FreeDict() { 
while(head != NULL) List_dict_remove(head); 
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"Russian");
    LoadDict(); 
int item = ShowMainMenu(); 
while(item != 3) 
{ 
switch(item) 
{ 
case 1:Add_words();break; 
case 2:Translate();break; 
case 3:break; 
} 
item = ShowMainMenu(); 
} 
 
SaveDict(); 
FreeDict(); 
 
return 0; 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru