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

Проблема с typedef.... не виден новый тип данных! - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сравнить логически два массива http://www.cyberforum.ru/cpp-beginners/thread394694.html
Сравнить , используя логическое или(||) два одномерных массива (А и В) и записать результат в массив С Массивы создал , но не знаю как сравнить и записать результат в С . В A и B должны быть любые числа (int) а С должен состоять из множества 0 и 1 Как такое организовать, подскажите ребят !!!
C++ Помогите запрограммировать задачи на Одномерные массивы Доброго времени суток, форумчане! ;) помогите с работой, пожалуйста ) Буду благодарен 1. Дан массив действительных чисел. Среди них есть равные. Найти первый максимальный элемент массива и заменить его нулем. 2. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1; y1, x2; y2 , x3; y3 и т.д. Определить... http://www.cyberforum.ru/cpp-beginners/thread394685.html
C++ Вывести все слова, в которых есть буква "a"
не могу найти ошибку int i=0,j=0,a=0,schet=0; char s,s1; cin.getline(s,50); while(i<50) { if((isspace(s)) && (isalnum(s))) { j=i-1;schet=0; while((!isspace(s)) || (s=='\n'))
Как работает метод Пузырька? C++
Добрый день, господа... Делаю задание по сортировке массива... Нашел вот эту статью - http://debugni.ru/index.php?option=com_content&view=article&id=5:2011-02-16-05-57-40&catid=2:2011-01-30-18-28-02&Itemid=14 , но не могу понять, как работает этот метод... Можите как-то подробнее рассказать о его работе (желательно по этому коде)...
C++ Программа на С++ "Записная книжка" http://www.cyberforum.ru/cpp-beginners/thread394643.html
Ребят помогите)) Нажна программа на С++ "Записная книжка"... может у кого есть уже готовая!!!...в общем помогите) "Программа «Записная книжка». Предназначена для ввода текста с последующим его сохранением, печатью и открытием. Входная информация – текст в окне программы, настройки (гарнитура, размер шрифта, цвет, параметры печати и т.д.). Выходная информация – текстовый документ в электронном...
C++ Вводится последовательность целых чисел, 0-конец последовательности. Содержит ли последовательность хотя бы два числа, кратных 3,5,7? Вводится последовательность целых чисел, 0-конец последовательности. Содержит ли последовательность хотя бы два числа, кратных 3,5,7? Именуйте темы осмысленно! подробнее

Показать сообщение отдельно
Fantom.AS
 Аватар для Fantom.AS
2 / 1 / 0
Регистрация: 17.11.2010
Сообщений: 121
29.11.2011, 16:16  [ТС]     Проблема с typedef.... не виден новый тип данных!
Мне тогда придется вот это много раз это копипастить..... Меняется только тип....

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
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
// Set.cpp: определяет точку входа для консольного приложения.
//реализация класса множество через двусвязный список
/*Описать класс «множество», позволяющий выполнять основные операции — добавление
и удаление элемента, пересечение, объединение и разность множеств.
Написать программу, демонстрирующую работу с этим классом. Программа
должна содержать меню, позволяющее осуществить проверку всех методов класса.*/
#include "stdafx.h"
#include "Set_list.h"
#include <iostream>
#include <clocale>
#include "MyStdSpezif.h"
#include <cstring>
 
template <typename T>
void type()
{
    std::cout << typeid( T ).name() << std::endl;
}
typedef double Type;
using namespace std;
 
int Menu();
int MenuType();
void ExitBack();
void Create(Set_list<Type> * p_Set[],int n);        //заполнить множество элементами
void Show_All(Set_list<Type> * p_Set[],int n);      //вывести все множества
void Show(Set_list<Type> * p_Set[],int n);          //вывести одно из множеств
void AddItem(Set_list<Type> * p_Set[],int n);       //добавить элемент
void DeleteItem(Set_list<Type> * p_Set[],int n);    //удалить элемент из множества
void DeleteAll(Set_list<Type> * p_Set[],int n); //Очистить все  множеств
void A_and_B(Set_list<Type> * p_Set[],int n);       //пересечение
void A_or_B(Set_list<Type> * p_Set[],int n);        //объединение
void A_minus_B(Set_list<Type> * p_Set[],int n); //разность
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    ShowSpezif();
    bool don = false;
    
        /*int type =MenuType();
        if (type==1) typedef string Type; 
        if (type==1) typedef char Type;
        if (type==1) typedef int Type;
        if (type==1) typedef double Type;*/
        
        Set_list<Type> A("SetA"),B("SetB"),C("SetC"),D("SetD");
        Set_list<Type>* pSet[] = { &A, &B, &C, &D };
        int n = 4,k=0;
        //sizeof (pSet) / sizeof (pSet[0]);
        setlocale(LC_ALL,"rus");
        // Главный цикл
        bool done = false;
        while (!done) 
        {
            switch (Menu()) {
                case 1:     Create<Type>(pSet,n);       break;
                case 2:     Show(pSet,n);       break;
                case 3:     Show_All(pSet,n);   break;
                case 4:     AddItem(pSet,n);    break;
                case 5:     DeleteItem(pSet,n); break;
                case 6:     DeleteAll(pSet,n);  break;
                case 7:     A_minus_B(pSet,n);  break;
                case 8:     A_and_B(pSet,n);    break;
                case 9:     A_or_B(pSet,n); break;
                case 0: cout << "Конец работы." << endl;
                    done = true;    break;
                    }
        }
    
    ExitBack();
    return 0;
}
 
int MenuType()
{
    cout<<"Выберите тип элементов множества"<<endl;
    cout<<"1 - Строка \n2 - Символ \n3 - Целое число \n4 - Вещественное число"<<endl;
    return GetNumber(1,4);
 
}
 
// ------------------------------------------ вывод меню
int Menu() {
    system("cls");
    cout << "\n=============== Г л а в н о е   м е н ю ===================" << endl;
    cout << "1 - создать множество \t\t 2 - вывести одно множество " << endl;
    cout << "3 - Вывести все множества\t 4 - добавить элемент в множество" << endl;
    cout << "5 - удалить элемент из множества 6 - очистить множество" <<endl;
    cout << "7 - разность двух множеств\t 8 - пересечение двух множеств" << endl;
    cout << "9 - объединение двух множеств"<<endl;
    cout << "0 - \t\t\t Выход"<<endl;
    cout<<endl<<" \nВыш выбор: ";
    return GetNumber(0, 9);
}
 
// ------------------- возврат в функцию с основным меню
void ExitBack() {
    cout << "Нажмите Enter." << endl;
    cin.get();  cin.get();
}
//создать множество цифра 1
template <class T> void Create(Set_list * p_Set[],int n)
{
    int mn;
    cout<<"Выберите множество для записи"<<endl;
            for (int i=0; i<n; i++)
            {
                cout<<i+1<<": \t"<<p_Set[i]->GetName()<<endl;
            }
    cout<<" Ваш выбор : "; mn=GetNumber(1,4);
    mn--;
    int k;
    cout<<"\n\nВведите размерность множества "<<p_Set[mn]->GetName()<<": "; 
    k=GetNumber(1,15);
    cout<<endl;
    int tmp;
        cout<<"Введите "<<k<<" элементов множества через пробел   =   ";
    for (int i=1; i<=k; i++)
    {
        cin>>tmp;
        p_Set[mn]->push(tmp);
    }
    ExitBack();
}
//вывести одно из множеств цифра 2
template <class T> void Show(Set_list * p_Set[],int n)
{
    int mn;
    cout<<"Выберите множество для вывода на экран его элементов"<<endl;
            for (int i=0; i<n; i++)
            {
                cout<<i+1<<": \t"<<p_Set[i]->GetName()<<endl;
            }
    cout<<" Ваш выбор : "; mn=GetNumber(1,4);
    mn--;
    cout<<"Множество "<<p_Set[mn]->GetName()<<endl;
    p_Set[mn]->print_all();
    ExitBack();
}
//вывести все множества цифра 3
template <class T> void Show_All(Set_list * p_Set[],int n)
{
    cout<<"Вывод всех элементов\n"<<endl;
            for (int i=0; i<n; i++)
            {
                cout<<"Множество "<<p_Set[i]->GetName()<<endl;
                p_Set[i]->print_all();
            }
    ExitBack();
}
 
//добавить элемент цифра 4
template<class T> void AddItem(Set_list * p_Set[],int n)
{
    int mn;
    cout<<"Выберите множество для добавления в него элемента"<<endl;
            for (int i=0; i<n; i++)
            {
                cout<<i+1<<": \t"<<p_Set[i]->GetName()<<endl;
            }
    cout<<" Ваш выбор : "; mn=GetNumber(1,4);
    mn--;
    cout<<"Введите значение нового элемента"<<endl;
    int tmp;
    cin>>tmp;
    p_Set[mn]->push(tmp);
    ExitBack();
}
 
//удалить элемент из множества цифра 5
template <class T> void DeleteItem(Set_list * p_Set[],int n)
{
    int mn,i;
    cout<<"Выберите множество для удаления из него элемента"<<endl;
            for ( i=0; i<n; i++)
            {
                cout<<i+1<<": \t"<<p_Set[i]->GetName()<<endl;
            }
    cout<<" Ваш выбор : "; mn=GetNumber(1,4);
    mn--;
    int item;
    cout<<"Введите значение элемента, который выхотите удалить = "; cin>>item;
    if ((i=p_Set[mn]->Find(item))==-1)
        cout<<"такого элемента в множестве нет!!!"<<endl;
    else
        p_Set[mn]->clear(i);
    ExitBack();
}
//Очистить все  множеств цифра 6
template <class T> void DeleteAll(Set_list * p_Set[],int n)
{
    int mn;
    cout<<"Выберите множество для удаления всех его элементов"<<endl;
            for (int i=0; i<n; i++)
            {
                cout<<i+1<<": \t"<<p_Set[i]->GetName()<<endl;
            }
    cout<<" Ваш выбор : "; mn=GetNumber(1,4);
    mn--;
    p_Set[mn]->clear();
    ExitBack();
}
//пересечение цифра 9
template <class T> void A_and_B(Set_list * p_Set[],int n)
{
    int mn1,mn2,mn3;
    Set_list Mn1("Mn1"),Mn2("Mn2"), Mn3("Mn3");
    cout<<"Выберите множества для выполнения операции пересечения множеств Mn3 = Mn1 & Mn2"<<endl;
            for (int i=0; i<n; i++)
            {
                cout<<i+1<<": \t"<<p_Set[i]->GetName()<<endl;
            }
    cout<<" Ваш выбор 1: "; mn1=GetNumber(1,4);
    cout<<" Ваш выбор 2: "; mn2=GetNumber(1,4);
    cout<<" Ваш выбор 3: "; mn3=GetNumber(1,4);
    mn1--; mn2--; mn3--;
    Mn1=*p_Set[mn1];
    Mn2=*p_Set[mn2];
    Mn3=Mn1&Mn2;
    *p_Set[mn3]=Mn3;
    ExitBack();
}
//объединение цифра 8
template <class T> void A_or_B(Set_list * p_Set[],int n)
{
    int mn1,mn2,mn3;
    Set_list Mn1("Mn1"),Mn2("Mn2"), Mn3("Mn3");
    cout<<"Выберите множества для выполнения операции пересечения множеств Mn3 = Mn1 | Mn2"<<endl;
            for (int i=0; i<n; i++)
            {
                cout<<i+1<<": \t"<<p_Set[i]->GetName()<<endl;
            }
    cout<<" Ваш выбор 1: "; mn1=GetNumber(1,4);
    cout<<" Ваш выбор 2: "; mn2=GetNumber(1,4);
    cout<<" Ваш выбор 3: "; mn3=GetNumber(1,4);
    mn1--; mn2--; mn3--;
    Mn1=*p_Set[mn1];
    Mn2=*p_Set[mn2];
    Mn3=Mn1|Mn2;
    *p_Set[mn3]=Mn3;
    ExitBack();
}
//разность цифра 7
template <class T> void A_minus_B(Set_list * p_Set[],int n)
{
    int mn1,mn2,mn3;
    Set_list Mn1("Mn1"),Mn2("Mn2"), Mn3("Mn3");
    cout<<"Выберите множества для выполнения операции пересечения множеств Mn3 = Mn1 - Mn2"<<endl;
            for (int i=0; i<n; i++)
            {
                cout<<i+1<<": \t"<<p_Set[i]->GetName()<<endl;
            }
    cout<<" Ваш выбор 1: "; mn1=GetNumber(1,4);
    cout<<" Ваш выбор 2: "; mn2=GetNumber(1,4);
    cout<<" Ваш выбор 3: "; mn3=GetNumber(1,4);
    mn1--; mn2--; mn3--;
    Mn1=*p_Set[mn1];
    Mn2=*p_Set[mn2];
    Mn3=Mn1-Mn2;
    *p_Set[mn3]=Mn3;
    ExitBack();
}
Добавлено через 9 минут
очень много.... и как сообщить другим функциям, что я использую этот тип
 
Текущее время: 08:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru