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

Обработка множеств - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Оформление меню (swith) http://www.cyberforum.ru/cpp-beginners/thread578350.html
Здравствуйте! Пишу программу на С++ и столкнулась с трудностью, по оформлению меню, может кто сможет помочь? Скидываю все программу, чтобы вы смогли прогнать её по проге. За ранее спасибо!
C++ Инициализация массива после объявления Привет народ, нужна ваша помощь. Допустим у меня есть класс с закрытым полем-массивом: //someClass.h class someClass{ int arr; public: someClass(); }; http://www.cyberforum.ru/cpp-beginners/thread578345.html
Сортировка C++
Нужно переделать сортировку с типа char(nazv) на тип int(kol). void sort(Csk **p,int k) // Функция для сортировки адресов в алфавитном порядке по возрастанию. { Csk *q=NULL; // вспомогательный указатель на элемент таблицы. bool b=true; while(b) { b=false; for(int i=0;i<k-1;i++)
C++ Приложение C++ на NetBeans
Доброго вечера! Как в NetBeans писать программы на C++, чтобы они работали? У меня не получается:( Для этого жму Ctrl+Shift+N, выбираю проект C/C++, далее Приложение на C++ жму Далее, всё оставляю как есть (см. скриншот) пишу в main.cpp мега программу, и пытаюсь её выполнить (F6) или хотя бы поcтроить (F11), но мне NetBeans выдает вот что MAKE Version 5.2 Copyright (c) 1987, 1998 Inprise...
C++ Алгоритм http://www.cyberforum.ru/cpp-beginners/thread578332.html
Нужен Алгоритм действия что за чем делаеться для данного кода, и что как написать в алгоритме. #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; typedef struct List { int n; List* pPrev;
C++ Массив: вывести на экран количество элементов меньше 10 Задан двухмерный массив n на m. Тоесть с клавиатуры вводим n и m. В массиве ввести числа до ста(рандомно), тоесть %100, и нужно вывести на экран количество элементов меньше 10. Просьба помочь реализовать данную программу. подробнее

Показать сообщение отдельно
erema_ironman
 Аватар для erema_ironman
7 / 7 / 1
Регистрация: 23.04.2009
Сообщений: 34
16.04.2013, 22:20     Обработка множеств
Цитата Сообщение от траляля Посмотреть сообщение
erema_ironman
парни, помогите мне. кто из вас нашел прогу????
Я вот так сделал.
Программа умеет делать объединение (union) и пересечение (intersection)
Кликните здесь для просмотра всего текста
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
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
#include <set>
#include <cstdlib>
#include <string>
#include <cstring>
#include <iostream> // cin, cout
#include <fstream>  
#include <algorithm>    // std::set_intersection, std::sort
#include <vector>   // std::vector
 
using namespace std;
 
const int n = 5;    //размер массива
int i, Umenu;
int firstNumber[5];
int firstAmount[5];
int firstPrice[5];
int firstDate[5];
int secondNumber[5];
int secondAmount[5];
int secondPrice[5];
int secondDate[5];
char FilePatch[80];
 
int main(int argc, char *argv[])
{
vector<int> v(10);
vector<int>::iterator it;
vector<int> v2(10);
vector<int>::iterator it2;
 
//-----------------------
//Объявление структуры |
//-----------------------
    struct acct
           {
                int Number, Amount, Price, Date;
                char *TypeOfService;
           };
 
    struct acct2
           {
                int Number2, Amount2, Price2, Date2;
                char *TypeOfService2;
           };
 
//----------------------------
//Инициализация структуры |
//----------------------------
    acct *acc;
    acct2 *acc2;
    acc = new acct[n];
    acc2 = new acct2[n];
 
//--------
//Меню |
//--------
system("clear");
menu:
cout << "User menu activated. Please, select an action: \n";
cout << "1: Input data\n";
cout << "2: Writing data to a file\n";
cout << "3: Reading data from a default file\n";
cout << "4: Reading data from a custom file\n";
cout << "5: Output data\n";
cout << "6: Sorting, intersection & union\n";
cout << "7: Exit\n";
cin >> Umenu;
 
    switch (Umenu)
        {
//-----------------------------------------------------
        case 1:     //Data input
{       
for(i = 0; i < n; i++)
    {
    cout << "Enter the number: \n";
    cin >> acc[i].Number;
    cout << "Enter the amount: \n";
    cin >> acc[i].Amount;
    cout << "Enter the price: \n";
    cin >> acc[i].Price;
    cout << "Enter the date (ddmmyyyy): \n";
    cin >> acc[i].Date;
    cout << "Enter the 2-number: \n";
    cin >> acc2[i].Number2;
    cout << "Enter the 2-amount: \n";
    cin >> acc2[i].Amount2;
    cout << "Enter the 2-price: \n";
    cin >> acc2[i].Price2;
    cout << "Enter the 2-date (ddmmyyyy): \n";
    cin >> acc2[i].Date2;
    }
}
goto menu;
    break;
//-----------------------------------------------------
        case 2:     //запись в файл
{
ofstream out("array1.txt");
ofstream out2("array2.txt");
    if (!out || !out2)
        {
            cout<<"Error opening file\n";
            return 1;
        }
for (i=0; i<n; i++)
    {
    out << acc[i].Number << "\n";
    out << acc[i].Amount << "\n"; 
    out << acc[i].Price << "\n"; 
    out << acc[i].Date << "\n";
    out << "\n";
    out2 << acc2[i].Number2 << "\n";
    out2 << acc2[i].Amount2 << "\n"; 
    out2 << acc2[i].Price2 << "\n"; 
    out2 << acc2[i].Date2 << "\n";
    out2 << "\n";
    }
out.close();
out2.close();
ifstream in("array1.txt");
ifstream in2("array2.txt");
if (!in || !in2)
    {
    cout<<"Error opening file\n";
    return 1;
    }
}
goto menu;
    break;
//-----------------------------------------------------
        case 3:     //загрузка из файла
{
int SIZE=0;
fstream infile;
fstream infile2;
infile.open("array1.txt",ios::in);
if (!infile)
    {
    cout << "Error opening file\n";
    goto menu;
    }
infile.seekp(0,ios::beg);
infile2.open("array2.txt",ios::in);
if (!infile2)
    {
    cout << "Error opening file\n";
    goto menu;
    }
infile2.seekp(0,ios::beg);
cout << "File is opened. Data is read.\n";
    for (i=0 ;i<n; i++)
    {
        infile >> acc[i].Number;
        infile >> acc[i].Amount;
        infile >> acc[i].Price;
        infile >> acc[i].Date;
    }
    for (i=0 ;i<n; i++)
    {
        infile2 >> acc2[i].Number2;
        infile2 >> acc2[i].Amount2;
        infile2 >> acc2[i].Price2;
        infile2 >> acc2[i].Date2;
    }
 
system("clear");
cout << "Data loaded\n\n";
}
goto menu;
    break;
        case 4:     //загрузка из файла, указанного пользователем
{
int SIZE=0;
fstream infile;
fstream infile2;
cout << "Enter the path to the file: ";
cin >> FilePatch;
infile.open(FilePatch,ios::in);
if (!infile)
    {
    cout << "Error opening file\n";
    goto menu;
    }
infile.seekp(0,ios::beg);
cout << "File is opened. Data is read.\n";
cout << "Enter the path to the file-2: ";
cin >> FilePatch;
infile2.open(FilePatch,ios::in);
if (!infile2)
    {
    cout << "Error opening file\n";
    goto menu;
    }
infile2.seekp(0,ios::beg);
cout << "File is opened. Data is read.\n";
    for (i=0 ;i<n; i++)
    {
        infile >> acc[i].Number;
        infile >> acc[i].Amount;
        infile >> acc[i].Price;
        infile >> acc[i].Date;
    }
    for (i=0 ;i<n; i++)
    {
        infile2 >> acc2[i].Number2;
        infile2 >> acc2[i].Amount2;
        infile2 >> acc2[i].Price2;
        infile2 >> acc2[i].Date2;
    }
system("clear");
cout << "Data loaded\n";
}
goto menu;
    break;
//-----------------------------------------------------
        case 5:     //вывод данных на экран
{
system("clear");
for (i = 0; i < n; i++)
    {
        cout << "Number: " << acc[i].Number << "\n";
        cout << "Amount: " << acc[i].Amount << "\n";
        cout << "Price: " << acc[i].Price   << "\n";
        cout << "Date (ddmmyyyy): " << acc[i].Date << "\n\n";
    }
for (i = 0; i < n; i++)
    {
        cout << "Number: " << acc2[i].Number2 << "\n";
        cout << "Amount: " << acc2[i].Amount2 << "\n";
        cout << "Price: " << acc2[i].Price2 << "\n";
        cout << "Date (ddmmyyyy): " << acc2[i].Date2 << "\n\n";
    }
}
goto menu;
    break;
//-----------------------------------------------------
        case 6:
{
    system("clear");
    cout << "Unsorted array:\n";
 
    for (i=0; i<n; i++)
    {
        cout << acc[i].Number << " ";
        firstNumber[i] = acc[i].Number;
        cout << "\n";
        cout << acc[i].Amount << " ";
        firstAmount[i] = acc[i].Amount;
        cout << "\n";
        cout << acc[i].Price << " ";
        firstPrice[i] = acc[i].Price;
        cout << "\n";
        cout << acc[i].Date << " ";
        firstDate[i] = acc[i].Date;
        cout << "\n";
    }
    cout << "\n";
    cout << "Unsorted array 2:\n";
 
    for (i=0; i<n; i++)
    {
        cout << acc2[i].Number2 << " ";
        secondNumber[i] = acc2[i].Number2;
        cout << "\n";
        cout << acc2[i].Amount2 << " ";
        secondAmount[i] = acc2[i].Amount2;
        cout << "\n";
        cout << acc2[i].Price2 << " ";
        secondPrice[i] = acc2[i].Price2;
        cout << "\n";
        cout << acc2[i].Date2 << " ";
        secondDate[i] = acc2[i].Date2;
        cout << "\n";
    }
    cout << "\n";
 
// сортировка массива для работы объединения и пересечения
 
    sort (firstNumber, firstNumber + 5);
    sort (firstAmount, firstAmount + 5);
    sort (firstPrice, firstPrice + 5);
    sort (firstDate, firstDate + 5);
    sort (secondNumber, secondNumber + 5);
    sort (secondAmount, secondAmount + 5);
    sort (secondPrice, secondPrice + 5);
    sort (secondDate, secondDate + 5);
 
    cout << "Sorted array:\n";
 
    for (i=0; i<n; i++)
    {
        cout << firstNumber[i] << " ";
        cout << "\n";
        cout << firstAmount[i] << " ";
        cout << "\n";
        cout << firstPrice[i] << " ";
        cout << "\n";
        cout << firstDate[i] << " ";
        cout << "\n";
    }
    cout << "\n";
    cout << "Sorted array 2:\n";
 
    for (i=0; i<n; i++)
    {
        cout << secondNumber[i] << " ";
        cout << "\n";
        cout << secondAmount[i] << " ";
        cout << "\n";
        cout << secondPrice[i] << " ";
        cout << "\n";
        cout << secondDate[i] << " ";
        cout << "\n";
    }
    cout << "\n";
//пересечение
it=set_intersection (firstNumber, firstNumber+5, secondNumber, secondNumber+5, v.begin());
v.resize(it-v.begin());
cout << "The Number-intersection has " << (v.size()) << " elements:\n";
    for (it=v.begin(); it!=v.end(); ++it)
        cout << ' ' << *it;
        cout << '\n';
 
it=set_intersection (firstAmount, firstAmount+5, secondAmount, secondAmount+5, v.begin());
v.resize(it-v.begin());
cout << "The Amount-intersection has " << (v.size()) << " elements:\n";
    for (it=v.begin(); it!=v.end(); ++it)
        cout << ' ' << *it;
        cout << '\n';
 
it=set_intersection (firstPrice, firstPrice+5, secondPrice, secondPrice+5, v.begin());
v.resize(it-v.begin());
cout << "The Price-intersection has " << (v.size()) << " elements:\n";
    for (it=v.begin(); it!=v.end(); ++it)
        cout << ' ' << *it;
        cout << '\n';
 
it=set_intersection (firstDate, firstDate+5, secondDate, secondDate+5, v.begin());
v.resize(it-v.begin());
cout << "The Date-intersection has " << (v.size()) << " elements:\n";
    for (it=v.begin(); it!=v.end(); ++it)
        cout << ' ' << *it;
        cout << '\n';
 
//объединение
it2=set_union (firstNumber, firstNumber+5, secondNumber, secondNumber+5, v2.begin());
v2.resize(it2-v2.begin());
cout << "The Number-union has " << (v2.size()) << " elements:\n";
for (it2=v2.begin(); it2!=v2.end(); ++it2)
cout << ' ' << *it2;
cout << '\n';
 
it2=set_union (firstAmount, firstAmount+5, secondAmount, secondAmount+5, v2.begin());
v2.resize(it2-v2.begin());
cout << "The Amount-union has " << (v2.size()) << " elements:\n";
for (it2=v2.begin(); it2!=v2.end(); ++it2)
cout << ' ' << *it2;
cout << '\n';
 
it2=set_union (firstPrice, firstPrice+5, secondPrice, secondPrice+5, v2.begin());
v2.resize(it2-v2.begin());
cout << "The Price-union has " << (v2.size()) << " elements:\n";
for (it2=v2.begin(); it2!=v2.end(); ++it2)
cout << ' ' << *it2;
cout << '\n';
 
it2=set_union (firstDate, firstDate+5, secondDate, secondDate+5, v2.begin());
v2.resize(it2-v2.begin());
cout << "The Date-union has " << (v2.size()) << " elements:\n";
for (it2=v2.begin(); it2!=v2.end(); ++it2)
cout << ' ' << *it2;
cout << '\n';
//end of union
goto menu;
}
    break;
//-----------------------------------------------------
        case 7:
system("clear");
cout << "Program terminated\n";
exit;
    break;
        default: 
//-----------------------------------------------------
cout << "Incorrect input!\n";
        }
 
    delete [] acc;
    delete [] acc2;
    return 0;
}

Первый массив в текстовом файле вот такого вида:
Кликните здесь для просмотра всего текста

5
1200
13250
11012013

2
3300
22330
10012013

4
1200
13250
11012013

3
3300
22330
22012013

1
1200
13250
28012013

Второй массив:
Кликните здесь для просмотра всего текста

6
1200
15632
03012013

3
3246
653478
10012013

4
8576
653478
13012013

5
8654
3246234
08012013

9
4536
734523
03012013

У меня структура "Счёт" с полями:
Номер (ключ)
Вид услуги
Количество
Цена
Дата оказания услуги
Поле "Вид услуги" я не добавлял. Сам допили
 
Текущее время: 09:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru