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

Шаблон класса двусвязный список - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевести с DELPHI в С++ http://www.cyberforum.ru/cpp-beginners/thread318359.html
Кто-нибудь сможет помочь переписать код с delphi на с++? И вообще возможно ли это?
C++ Нормальное Распределение чисел есть программа. вычисляет нормально распределенные два числа методом Бокса — Мюллера, не могу сделать что выводила случайную последовательность а не два числа. помогите плиз! #include <math.h> typedef unsigned long long u64; typedef long long s64; typedef double d64; typedef struct { u64 rec_count; u64 start; http://www.cyberforum.ru/cpp-beginners/thread318357.html
C++ Как изучать С++ ?
Уважаемые участники форума, я тут на досуге - невзначай решил научиться азам С++. Нашел кучу учебников сижу типа читаю. Столкнулся с проблемой - масса ненужной информации и нет систематизации материала. Обычно начинают вешать всякую лапшу на уши о том как вначале ничего не было. потом создали компьютер, юзера, админа, Windows итд итп, а потом бац и сложный материал. Может ли мне кто...
C++ Нахождение кратчайшего пути в неорентированном графе от заданой вершины к заданной
Добрый день. Вот решаю задачку о кратчайщем расстояние между двумя верщинами в неорентированном связном графе без циклов. Заданны такие параметры. (Помещаю их в файл text2.txt) 6 -- количество вершин N 1 2 7 -- Начало, конец, длина 2 3 3 2 4 6 4 5 3 5 6 1 4 -- количество пар вершин M для которых нужно узнать короткое растояние
C++ Массив http://www.cyberforum.ru/cpp-beginners/thread318283.html
Помогите разобраться. Только начал читать про указатели и решил написать простенькую программку :) Она считает кол-во прописных букв и записывает эти буквы в массив. Насчет счетчика всё ясно, но вот как записывать буквы в массив не разобрался. GNU nano 2.2.6 Файл: p209E12.cpp #include <cctype> #include <iostream> using namespace std; main() {
C++ исправить код программы #include<iostream.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<iomanip.h> float f( float, float, float, float); float pr_chet( float *mas, int k); float sum_f( float *mas,int k); void Vivod_mas(float a,int k); подробнее

Показать сообщение отдельно
Anna Bridman
0 / 0 / 0
Регистрация: 12.06.2011
Сообщений: 7
12.06.2011, 19:36  [ТС]     Шаблон класса двусвязный список
Вот, что у меня пока получается
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
#include "stdafx.h"
#include <string>
#include <conio.h>
#include <iostream>
 
using namespace std;
 
template <class Type>
class spisok
{
    private:
        struct element
        {
            Type number;        //Номер автобуса
            Type driver;        //Водитель
            Type route;         //Маршрут
            bool deport;        //Признак того, где находится автобус (в автопарке или на маршруте)
            element *next;          //Указатель на следующий элемент списка
            element *prev;          //Указатель на предыдущий элемент списка
            
            element(Type num, Type dr, Type r, bool dep = false, element* nxt = 0, element* prv = 0) :
                number(num), driver(dr), route(r), deport(dep), next(nxt), prev(prv)
            {}
        }
    public:
        element<Type> *bus;
        element<Type> *head;
        element<Type> *tail;
        spisok() : bus(0) {}
        
        Type get_number()           { return bus->number;           }
        Type get_route()            { return bus->route;            }
        Type get_driver()           { return bus->driver;           }
        bool get_deport()           { return bus->deport;           }
 
        element &operator [] (int index)                        
        {
            return bus[index];
        }
 
        element operator = (element *current)                   
        {
            return element(bus->number  = current->number,
                        bus->driver = current->driver,
                        bus->route  = current->route,
                        bus->deport = current->deport,
                        bus->next   = current->next,
                        bus->prev   = current->prev);
        }
        element *new_bus(Type num, Type dr, Type r)
        {
            bus = new element();
            bus->number = num;
            bus->driver = dr;
            bus->route = r;
            bus->prev = bus->tail;
            bus->next = NULL;
            if (bus->tail != NULL)
                bus->tail->next = bus;
            if(bus->head == NULL)
                bus->head = bus;
            bus->tail = bus;
            return bus;
        }
 
        void add_bus(Type num, Type dr, Type r, bool dep)
        {}
        void del_bus()
        {}
        void print()                
        {
            element *E = bus;
 
            while(E)
            {
                cout<<E->number
                    <<"\t"<<E->driver
                    <<"\t"<<E->route;
                E = E->next;
            }
            cout<<"\n";
        }
        void search(const element<Type> *bus1, Type field_key)
        {
            if(bus1 == 0)
                return;
            if(bus1->number == field_key)
            {
                cout<<"\t"
                    << bus1->number<< "\t"
                    << bus1->driver << "\t"
                    << bus1->route << "\t"
                    << bus1->deport << "\t\n" ;
            }
            search(bus1->get_next(), field_key);
        }
};
 
void main()
{
    spisok <string> bus;
    string number;
    string driver;
    string route;
    bool deport;
    int i,q = 0;
    int size = 0;
    string par_search;
    int num;
    
    int CV = 0;
    while (CV != 5)
    {
        cout << endl << "Menu: \n"
        << "1. New bus \n"
        << "2. Show spisok \n"
        << "3. Delete bus \n"
        << "4. Search bus\n"
        << "5. Exit \n"
        <<"Input number menu:  ";
 
        cin >> CV;
        switch(CV)
        {
                case 1: 
                    {
                        cout<<" number: ";  cin>>number;
                        cout<<" driver: ";  cin>>driver;
                        cout<<" route: ";   cin>>route;
 
                        bus[q].new_bus(number, driver, route);
                        q++;                                                        
                        size = q;                                               
                    }  break;
 
                case 2:
                    { 
                        for (i = 0; i < size; i++)
                        bus[i].print();//вызывается ф-ция печати
                    }  break;
 
                case 3:
                    {
                        
                    }  break;
 
                case 4: 
                    {
                        cout<<"\nEnter number bus: ";
                        cin>>par_search;
                        /*for (int i = 0; i < size; i++)
                        bus[i].search(......, par_search);*/
                    }  break;
 
                case 5:  break;
 
            default: cout << endl << "Enter prev number!\n"; break;
        }
 
    _getch();
    }
}
Компилятор выдает кучу ошибок.
 
Текущее время: 19:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru