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

Не создается переменная - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Нужно написать программу (структуры) на С++ в MS Visual Studio 2008 http://www.cyberforum.ru/cpp-beginners/thread759421.html
1. Описать структуру с именем WORKER , содержащую следующие поля: фамилия и инициалы работника; название занимаемой должности; год поступления на работу. 2. Написать программу, выполняющую следующие действия: ввод из файла данных в массив, состоящих из десяти структур типа WORKER ; записи должны быть упорядочены по алфавиту; вывод на дисплей фамилий работников, чей стаж работы в...
C++ Составьте программу для решения задач, применяя сохранение данных в типизированном файле,а вывод данных в текстовом файле,используя стандартные функии Здравствуйте народ! Помогите кто чем может. Нужно решить задачи на двух языках С++ и Pascal, и еще к задаче нужно сделать блок схему. Ниже будут условия задачи и указано на каком языке нужно решить. 5)Составьте программу для решения следующих задач, применяя сохранение данных в типизированном файле, а вывод данных в текстовом файле, используя стандартные подпрограммы, работающие с файлами.... http://www.cyberforum.ru/cpp-beginners/thread759411.html
C++ Удалить в файле лишние пробелы. (блок схема)
Здравствуйте народ! Помогите кто чем может. Нужно решить задачи на двух языках С++ и Pascal, и еще к задаче нужно сделать блок схему. Ниже будут условия задачи и указано на каком языке нужно решить. 4) Составьте программу для решения следующих задач, применяя сохранение данных в тестовом файле и используя стандартные подпрограммы, работающие с файлами. Удалить в файле лишние пробелы. (блок...
C++ Удалить лишние пробелы в данном предложении. (С++, блок схема)
Здравствуйте народ! Помогите кто чем может. Нужно решить задачи на двух языках С++ и Pascal, и еще к задаче нужно сделать блок схему. Ниже будут условия задачи и указано на каком языке нужно решить. 3) Составьте программу для решения одной из следующих задач, используя стандартные подпрограммы, работающие со строками. Удалить лишние пробелы в данном предложении. (С++, блок схема)
C++ Найти и вывести на экран: количество строк, где знаки элементов чередуются. (С++, Pascal, блок схема) http://www.cyberforum.ru/cpp-beginners/thread759406.html
Здравствуйте народ! Помогите кто чем может. Нужно решить задачи на двух языках С++ и Pascal, и еще к задаче нужно сделать блок схему. Ниже будут условия задачи и указано на каком языке нужно решить. 2) Составьте программу, которая запрашивает размеры вертикальной матрицы и диапазон значений его элементов, выводит на очищенный экран получившуюся матрицу. Найти и вывести на экран: количество...
C++ Подсчитать количество рабочих в данной бригаде, работающих хуже, чем в среднем вся бригада. (С++, блок схема) Здравствуйте народ! Помогите кто чем может. Нужно решить задачи на двух языках С++ и Pascal, и еще к задаче нужно сделать блок схему. Ниже будут условия задачи и указано на каком языке нужно решить. 1) Составьте программу для решения одной из следующих задач с обязательным выводом соответствующих подсказок на экран и комментариев в листинге программы. Подсчитать количество рабочих в данной... подробнее

Показать сообщение отдельно
Heir123
4 / 4 / 0
Регистрация: 05.06.2012
Сообщений: 10
12.01.2013, 11:21     Не создается переменная
В общем, с указателем *root творится какая-то чушь.
Компилятор как-будто не видит его объявление.
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
210
211
212
#include <iostream.h>
#include <string.h>
#include <conio.h>
 
template <class T> struct elem
        {
        T info;
        elem<T> *left, *right;
        };
template <class T> class bin_tree
{
 
        private:
        elem<T> *root;
        void rec_prnt(elem<T> *el);
        public:
        bin_tree();
        T* add(T A);
        void del(T D);
        T* find(T F);
        void print();
};
template<class T>  bin_tree<T>::bin_tree()
{
        root=NULL;
}
template<class T> T*   bin_tree<T>::add(T A)
{
        elem<T> *current=root;
        while(1)
        {
                if(!current)
                {
                        current=new elem<T>;
                        current->info=A;
                        current->left=NULL;
                        current->right=NULL;
 
                        break;
                }
                else
                {
                        if(current->info==A)    break;
                        if(current->info>A)     current=current->left;
                        else                    current=current->right;
                }
        }
        return &current->info;
}
template<class T> void  bin_tree<T>::del(T D)
{
        if (root->inf==D)
        {
                delete root;
                root=NULL;
        }
        elem<T> *current=root;
        while(1)
        {
                if(current->info>D)
                {
                        if(current->left->info==D)
                        {
                                delete current->left;
                                current->left=NULL;
                                break;
                        }
                        current=current->left;
                }
                else
                {
                        if(current->right->info==D)
                        {
                                delete current->right;
                                current->right=NULL;
                                break;
 
                        }
                        current=current->right;
                }
 
        }
}
 template<class T> T* bin_tree<T>::find(T F)
{
        elem<T> *current=root;
        while(1)
        {
                if(!current)
                {
                        return NULL;
                }
                else
                {
                        if(current->info==F)    return &current->info;
                        if(current->info>F)     current=current->left;
                        else                    current=current->right;
                }
        }
}
template<class T> void bin_tree<T>::rec_prnt(elem<T> *el)
{
        el->info.print();
        if(el->left) rec_prnt(el->left);
        if(el->right) rec_prnt(el->right);
}
template<class T> void  bin_tree<T>::print()
{
    if(root) rec_prnt(root);
}
 
struct data
{
        char DATA[40];
        bin_tree<data> *bt_data;
 
        data(char *D);
        data(){bt_data=NULL;}
        int operator > (const data &sravn);
        int operator == (const data &sravn);
        void print();
};
data::data(char *D)
{
        strcpy(DATA,D);
        bt_data=NULL;
}
int data::operator > (const data &sravn)
{
    if(strcmp(this->DATA,sravn.DATA)>0) return 1;
    else return 0;
}
int data::operator == (const data &sravn)
{
    if(strcmp(this->DATA,sravn.DATA)==0) return 1;
    else return 0;
}
void data::print()
{
cout<<DATA;
if(bt_data) bt_data->print();
}
 
int main()
{
data *reis;
data *date;
data *dest;
data *fio;
char buf[40];
bin_tree<data> *avia;
avia = new bin_tree<data>;
int s;
while(1)
{
        cout<<"1.Add"<<endl
        <<"2.Cancel flight"<<endl
        <<"3.All"<<endl
        <<"4.Exit"<<endl;
        cin>>s;
        switch(s)
        {
        case 1:
        cout<<"Flight number: ";
        cin.ignore();
        cin.getline(buf,40,'\n');
        reis=new data(buf);
        reis=avia->add(*reis);
        cout<<"Date: ";
        cin.ignore();
        cin.getline(buf,40,'\n');
        date=new data(buf);
        reis->bt_data=new bin_tree<data>;
        date=reis->bt_data->add(*date);
        cout<<"Destinition: ";
        cin.ignore();
        cin.getline(buf,40,'\n');
        dest=new data(buf);
        date->bt_data=new bin_tree<data>;
        dest=date->bt_data->add(*dest);
        cout<<"FIO: ";
        cin.ignore();
        cin.getline(buf,40,'\n');
        fio=new data(buf);
        dest->bt_data=new bin_tree<data>;
        fio=dest->bt_data->add(*fio);
        cout<<"Ok"<<endl;
 
        break;
        case 2:
        cout<<"Flight number: ";
        cin.ignore();
        cin.getline(buf,40,'\n');
        reis=new data(buf);
        reis=avia->find(*reis);
        cout<<"Date: ";
        cin.ignore();
        cin.getline(buf,40,'\n');
        date=new data(buf);
        date=reis->bt_data->find(*date);
        date->print();
        delete date->bt_data;
        date->bt_data=NULL;
        break;
        case 3:
        avia->print();
        break;
        default: return 0;
        }
}
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru