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

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

Войти
Регистрация
Восстановить пароль
 
artemi
0 / 0 / 0
Регистрация: 03.02.2010
Сообщений: 21
#1

Загрузка файла в дерево - C++

04.05.2010, 19:20. Просмотров 491. Ответов 5
Метки нет (Все метки)

надо загрузить фаил в дерево и произвести продвижение по дереву на ходя минимальное значение ,также надо ввести инфо в фаил
помогите доделать. моя программа не коректно работает и не могу сделать продвижение по дереву
вот мой код:
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
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <fstream.h>
struct Map{
        int num;
        char gorod[20];
        int rast;
        friend ostream &operator<<(ostream &stream, Map mp){
                stream<<" "<<mp.num<<" "<<mp.gorod<<" "<<mp.rast;
                return stream;
        }
        friend istream &operator>>(istream &stream, Map &mp){
                stream>>mp.num>>mp.gorod>>mp.rast;
                return stream;
        }
};
struct node{
        Map info;
        node *nextl,*nextr;
        node(){
                info.num=info.rast=0;
                nextl=nextr=0;
        }
        node(Map newinfo){
                info=newinfo;
                nextl=nextr=0;
        }
};
template<class T,class T1>class tree{
        public:
        T *root;
        tree() {root=0;}
        void push(T*&wer,T1 dat,int n){
                if (wer==0){
                       try{
                        wer=new T;
                         if(!wer) throw 1;
                        wer->nextl=0;wer->nextr=0;wer->info=dat;
  }
                          catch (int mthrow) {cout<<"No memory!"<<endl;return;}
                }
          else if(n==1)
               if(strcmp(dat.gorod,wer->info.gorod)<0)push(wer->nextl,dat,1);
                        else push(wer->nextr,dat,1);
                else
                        if(dat.rast>wer->info.rast)push(wer->nextl,dat,2);
                        else push(wer->nextr,dat,2);
        }
        void insert(T1 dat,int n){
                if(root==0)root=new T(dat); else push(root,dat,n);
        }
        void look(ostream &stream,T *&wer){
                if(wer!=0){
                        look(stream,wer->nextl);
                        stream<<" "<<wer->info<< endl;
                        look (stream,wer->nextr);
                }
        }
        friend ostream &operator<<(ostream &stream,tree ob)
                { ob.look (stream, ob.root);return stream; }
};
void main(){
  int r;
  do{
  cout<<"1.Sort with names\n";
  cout<<"2.Sort with balls\n";
  cout<<"3.Exit\n";
  cout<<"4.add\n";
  cout<<"5.file\n";
  cin>>r;
  switch (r){
  case 1: {
                 tree<node,Map>q;
                 node *n;
                 ifstream infile("Map.txt");
                 while(!infile.eof()){
                                Map m;
                                infile>>m;
                                q.insert(m,1);
                        }
                  infile.close();
                  cout<<q;
                  break;
                 }
        case 2: {
                 tree<node, Map> q;
                 node *n;
 ifstream infile("map.txt");
                 Map *m;
                 m = new Map;
                 int i = 1;
                 float s = 0;
                 while(!infile.eof()){
                                infile >> m[i];
                                s+=m[i].rast;
                                i++;
                         }
                  for(int j=1;j<=i;j++)
                        if (m[j].rast>s/i)
                                q.insert(m[j],2);
                  infile.close();
                  cprintf("Miide rastoynie is %1.3f",s/i);
                  cout<<'\n'<< q;
                  break;
                 }
        case 3: {return;}
        default: {cout<<"Error! Try again\n"; break;}
 
 
     case 5:
     {
         tree<node,Map>q;
         node *no;
         Map *m;
         int n,i;//рабочая переменная для подсчёта
         cout<<"Kolichestvo zapisey=";cin>>n;
         if(m!=NULL)delete[]m; //очистка рабочей области(массива)
         m=new Map[n];     //выделение динамической памяти
         if(m==NULL){cout<<"Net pamyati\n";getch();n=0;return;}
         //создание базы данных
         for(i=0;i<n;i++){
         cout<<"enter num\n";
         cin>>m[i].num;
         cout<<"enter gorod\n";
         cin>>m[i].gorod;
         cout<<"enter rastoynie\n";
         cin>>m[i].rast;  }
         cout<<"karta sozdana\n" ;
         ofstream outfile("Map.txt",ios::out);
                 while(!outfile.eof()){
                 for(int i=0;i<n;i++){
                                outfile<<setw(5)<<m[i].num<<setw(12)<<m[i].gorod<<setw(10)<<m[i].rast<<endl;
                                }
 
                  outfile.close();
                  cout<<"save file\n";
                  getch();
                        }
                                 break;}
          }
        getch();
        clrscr();  }
  while(r!=6);
  return;}
Добавлено через 8 часов 3 минуты
помогите доделать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2010, 19:20     Загрузка файла в дерево
Посмотрите здесь:

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

[C++] Загрузка файла - C++
#include &quot;stdafx.h&quot; #include &lt;windows.h&gt; #include &lt;urlmon.h&gt; #pragma comment(lib, &quot;urlmon.lib&quot;) int main() { HRESULT hr...

Двойная загрузка файла - C++
Помогите понять, в чем тут дело. Код пишу в среде QT Creator под OS X, компилятор - CLang. При компиляции такого кода, появляется ошибка...

Загрузка файла из интернета - C++
Товарищи, имею следующих вопрос- необходимо мне написать программу на C++, которая скачивает из интернета xml и сохраняет на диске. Как...

Загрузка чисел из файла - C++
Здрасти, как загрузить матрицу из файла? если есть такой txt-файл: 3 3 1 2 3 4 5 6 7 8 9 первая строка-размерность...

Файлы, загрузка с файла - C++
Есть два класса. нужно сохранить данные в базу и загрузить. Сохранение сделал. Подскажите как сделать загруску с файла чтобы данные можно...

Загрузка структуры из файла - C++
Объясните, пожалуйста, как произвести загрузку чисел вещественного типа из файла в структуру. Текст файла выглядит так: и вот сам...

Загрузка файла на хостинг - C++
Доброго времен суток, уважаемые посетители cyberforum! Хотелось бы узнать, каким образом можно залить файл на хостинг? (http://rghost.ru/...

Загрузка bitmap файла - C++
Как побайтово загрузить bitmap-файл, для дальнейшей работы с ним (сравнение цветов и т.п.) в массив? Пытался как то так: ...

Загрузка файла в массив - C++
Здравствуйте, помогите, при загрузке из файла в массив - выбивается какой-то мусор... в чем дело? #include&lt;iostream&gt; #include&lt;string&gt; ...

Загрузка изображения из файла (VS2005) - C++
Здравствуйте. Не подскажите какие библиотеки использовать для загрузки изображения из файла. Gdiplus не подходит. Работаю под visual studio...

Загрузка файла с интернет-сайта - C++
Здраствуйте, я новечок в разработке и мне очень нужна помощь. Дали задание подать запрос к сайту (...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Roma_F
331 / 246 / 5
Регистрация: 13.12.2009
Сообщений: 589
04.05.2010, 20:04     Загрузка файла в дерево #2
Цитата Сообщение от artemi Посмотреть сообщение
надо загрузить фаил
какая структура у файла
artemi
0 / 0 / 0
Регистрация: 03.02.2010
Сообщений: 21
04.05.2010, 21:00  [ТС]     Загрузка файла в дерево #3
структура обычный txt
в файл сохранить вводимые данные, а потом загрузить этот фаил в дерево и продвигаясь по дереву найти минимальное значение
Roma_F
331 / 246 / 5
Регистрация: 13.12.2009
Сообщений: 589
04.05.2010, 21:35     Загрузка файла в дерево #4
Цитата Сообщение от artemi Посмотреть сообщение
структура обычный txt
а чем отличается обычный txt от необычного?

мне лично лень разбирать этот код по строчкам - проще запустить его и посмотреть в деле, но для этого не хватает волшебного файла с "вводимыми даннами"
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
04.05.2010, 21:59     Загрузка файла в дерево #5
в целом идея такая:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// например узлы такие
struct node{
   int val;      // значение
   node *l,*r; // левое, правое поддеревья
};
int find_min(const node *t)
{
    if (t==NULL)
    {
        if (t->l==t->r==NULL) return t->val;
        int i=find_min(t->l), j=find_min(t->r), k=(i<j)?i:j;
        return (k < t->val)?k:t->val;
    }
}
// применение
node *root;
make(root); // создаем дерево.
int min=find_min(root); // находим минимальный элемент.
проще говоря, самый минимальный элемент в дереве это наименьший из элементов в поддеревьях и узле.
artemi
0 / 0 / 0
Регистрация: 03.02.2010
Сообщений: 21
04.05.2010, 22:04  [ТС]     Загрузка файла в дерево #6
проблема в том что программа как бы записывает в фаил но при загрузке потом при обработки прогамма выдает ошибки может проблема с запись в фаил
Yandex
Объявления
04.05.2010, 22:04     Загрузка файла в дерево
Ответ Создать тему
Опции темы

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