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

Осуществить все операции над элементами множеств: пересечение, объединение, ... - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Kostia1012
1 / 1 / 0
Регистрация: 17.11.2013
Сообщений: 96
19.01.2014, 17:40     Осуществить все операции над элементами множеств: пересечение, объединение, ... #1
Привет всем. Помогите найти ошибку в коде.
Задание такое:
Программа позволит осуществить все операции над элементами множеств: пересечение, обьединение; разность; проверку эквивалентности и неэквивалентности; проверку принадлежности каждого из множеств любого элемента, введенного пользователем; возможность исключения элемента из множества.

1 множество - буквы латинского алфавита от A до S
2 множество - буквы латинского алфавита от K до Z
Получилось вот что:
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
#pragma argsused
#include <algorithm>
#pragma hdrstop
#include <conio.h>
#include <locale>
#include <cstdlib>
#include <iostream>
#include <time.h>
#include <math.h>
#include <stdio.h>
#include <CONIO.H>
#include <iostream>
#include <set>
using namespace std;
int main(int argc, char * argv[])
{
    char ch;
    char c;
    int i;
    Set <char, 'A', 'S'>a;
    Set <char, 'K', 'Z'>b;
    Set <char, 'A', 'Z'>d;
 
    for (;;)
    {
        do
        {
            cout <<"Programma pozvoljaet osushhestvit' rjad operacij nad jelementami mnozhestv, vvedennyh pol'zovatelem.\n";
            cout << "1. Vvod jelementov dvuh mnozhestv. \n \n";
            cout << "2. Operacija peresechenija o ob#edinenija. \n \n";
            cout << "3. Raznost'. \n \n";
            cout << "4. Proverka jekvivalentnosti i nejekvivalentnosti. \n \n";
            cout << "5. Proverka prinadlezhnosti kazhdomu iz mnozhestv ljubogo jelementa, vvedennogo pol'zovatelem. \n \n";
            cout << "6. Iskljuchenie jelementov iz mnozhestv. \n \n";
            cout << "7. Zakryt' programmu.\n\n ";
            cout << "Vyberete punkt menju: \n \n";
            ch = getchar();
        } while (ch != '1' && ch != '2'&& ch != '3'&& ch != '4'&& ch != '5'&& ch != '6');
        switch (ch)
        {
        case '1':
        {
 
                    cout << "Vvedite bukvy latinskogo alfavita v diapazone ot A do S, kotorye hotite dobavit' v pervoe mnozhestvo. \n \n";
                    cout << "Dlja okonchanija vvoda vvedite 1.\n \n";
                    c = 'A';
                    while (i != 1)
                    {
                        cout << "Vvedite bukvu - \n \n";
                        cin>>c;
                        if (a.Contains(c)) cout << "Dannaja bukva uzhe sushhestvuet v pervom mnozhestve.\n \n";
                        else a << c;
                    }
                    cout << "Pervoe mnozhestvo: \n \n";
                    for (c = 'A'; c <= 'S'; c++)
                    if (a.Contains(c)) cout << " " << c;
                    cout << "\n Vvedite bukvy vtorogo mnozhestva v diapazone ot K do Z. \n \n";
                    cout << "Dlja okonchanija vvoda vvedite 2.\n \n";
                    c = 'K';
                    while (i != 2)
                    {
                        cout << "Vvedite bukvu - \n \n";
                        cin>>c;
                        if (b.Contains(c)) cout << "Dannaja bukva uzhe sushhestvuet vo vtorom mnozhestve.\n \n";
                        else b << c;
                    }
                    cout «" Vtoroe mnozhestvo: \n \n";
                    for (c = 'K'; c <= 'Z'; c++)
                    if (b.Contains(c)) cout << " " << c;
                    system("pause");
                    break;
        }
        case '2':
        {
                    cout «"Pervoe mnozhestvo: \n \n";
                    for (c = 'A'; c <= 'S'; c++)
                    if (a.Contains(c)) cout << " " << c;
                    cout «"\n Vtoroe mnozhestvo: \n \n";
                    for (c = 'K'; c <= 'Z'; c++)
                    if (b.Contains(c)) cout << " " << c;
                    cout << "\n Peresechenie mnozhestv.\n \n";
                    d = a*b;
                    cout << "a*b= ";
                    for (c = 'A'; c <= 'Z'; c++)
                    if (d.Contains(c)) cout << " " << c;
                    cout << "\n Ob#edinenie mnozhestv.\n \n";
                    d = a + b;
                    cout<<"a+b= ";
                    for (c = 'A'; c <= 'Z'; c++)
                    if (d.Contains(c)) cout << " " ;
                    system("pause");
                    break;
 
        }
        case '3':
        {
                    cout <<"Pervoe mnozhestvo: \n \n";
                    for (c = 'A'; c <= 'S'; c++)
                    if (a.Contains(c)) cout<<" "<<c;
                    cout << "\n Vtoroe mnozhestvo: \n \n";
                    for (c = 'K'; c <= 'Z'; c++)
                    if (b.Contains(c)) cout<<" "<<c;
                    cout << "\n Raznost' dvuh mnozhestv.\n \n";
                    d = a - b;
                    cout << "a-b= ";
                    for (c = 'A'; c <= 'Z'; c++)
                    if (d.Contains(c)) cout << " " << c;
                    system("pause");
                    break;
        }
        case '4':
        {
                    cout << "Pervoe mnozhestvo: \n \n";
                    for (c = 'A'; c <= 'S'; c++)
                    if (a.Contains(c)) cout << " " << c;
                    cout << "\n Vtoroe mnozhestvo: \n \n";
                    for (c = 'K'; c <= 'Z'; c++)
                    if (b.Contains(c)) cout << " " << c;
                    cout << "\n Jekvivelentnost' dvuh mnozhestv.\n \n";
                    d = a = b;
                    cout << "a=b= ";
                    for (c = 'A'; c <= 'Z'; c++)
                    if (d.Contains(c)) cout << " " << c;
                    cout << "\n Nejekvivelentnost' dvuh mnozhestv.\n \n";
                    d = a != b;
                    cout << "a!=b= ";
                    for (c = 'A'; c <= 'Z'; c++)
                    if (d.Contains(c)) cout << " " << c;
                    system("pause");
                    break;
        }
        case '5':
        {
                    cout << "Vvedite bukvu - \n \n";
                    cin>>c;
                    if (a.Contains(i)).cout << "Dannaja bukva prinadlezhit pervomu mnozhestvu.\n \n";
                    else cout << "Dannaja bukva prinadlezhit vtoromu mnozhestvu.\n \n";
                    system("pause");
                    break;
        }
        case '6':
        {
                    cout << " Vvedite bukvu, kotoruju by hoteli iskljuchit' iz mnozhestv - \n \n";
                    cin>>c;
                    d = a>>b;
                    cout << "a!=b= ";
                    for (c = 'A'; c <= 'Z'; c++)
                    if (d.Contains(c)) cout << c;
                    system("pause");
                    break;
        }
        case '7':
            exit(0);
        }
    }
}
system("pause");
return (0);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 17:40     Осуществить все операции над элементами множеств: пересечение, объединение, ...
Посмотрите здесь:

C++ Swich: реализовать все возможные операции над двумя целыми числами
C++ Шаблон класса должен давать возможность вывести все элементы множества на экран, сложение, вычитание, осуществлять пересечение множеств
C++ Описать класс «множество» (добавление и удаление элемента, пересечение, объединение и удаление множеств )
C++ объединение, пересечение , разность, симметрическую разность множеств
Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно C++
Реализовать классические операции над множествами - объединение, пересечение и симметричная разность C++
C++ Арифметические операции над элементами массива
Объединение, пересечение и разность множеств с помощью оператора SWITCH C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
19.01.2014, 17:58     Осуществить все операции над элементами множеств: пересечение, объединение, ... #2
Цитата Сообщение от Kostia1012 Посмотреть сообщение
Set <char, 'A', 'S'>a;
Не знаю я такого set из STL, твоего самописного с таким именем тоже не вижу.
Цитата Сообщение от Kostia1012 Посмотреть сообщение
a.Contains(c)
Ну это продолжение - предположим даже, что в stl такой set есть, какой ты используешь. Но такое операции в несуществующем set'e нет.

C++
1
2
3
std::set<int> iSet; // мн-во целых чисел
iSet.insert(2); // так элементы вставлять
iSet.count(2); // так проверять на принадлежность множеству, вроде еще другие функции были, гугли std:;set
Т.е. ошибка во всем, такие дела. Может ты конечно какой-то другой Set используешь, о котором ни слова нет в программе(откуда брал), но я сомневаюсь. Так что прежде чем что-то использовать, нужно проверить, что то, чем пользуешься, существует)

Добавлено через 59 секунд
Кликните здесь для просмотра всего текста
И черт возьми, сделай так и пиши по-русски, глаз же можно вырвать, пока читаешь (поэтому и не читал)
C++
1
setlocale(LC_ALL, "Rus");
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
19.01.2014, 18:00     Осуществить все операции над элементами множеств: пересечение, объединение, ... #3
контейнер std::set Вам в помощь
C++
1
std::set <Type> set;
все операции над множествами есть в
C++
1
#include <algorithm>
по памяти перечислю:
C++
1
2
3
4
5
std::set_intersection();
std::set_union();
std::set_difference();
std::set_symmetric_difference();
std::includes();
Yandex
Объявления
19.01.2014, 18:00     Осуществить все операции над элементами множеств: пересечение, объединение, ...
Ответ Создать тему
Опции темы

Текущее время: 13:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru