Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Kostia1012
1 / 1 / 0
Регистрация: 17.11.2013
Сообщений: 96
#1

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

19.01.2014, 17:40. Просмотров 1575. Ответов 2
Метки нет (Все метки)

Привет всем. Помогите найти ошибку в коде.
Задание такое:
Программа позволит осуществить все операции над элементами множеств: пересечение, обьединение; разность; проверку эквивалентности и неэквивалентности; проверку принадлежности каждого из множеств любого элемента, введенного пользователем; возможность исключения элемента из множества.

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);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2014, 17:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Осуществить все операции над элементами множеств: пересечение, объединение, ... (C++):

Реализовать базовые операции над множествами: объединение, пересечение, дополнение - C++
Вот как звучит задание: &quot;Объект: множество символов алфавита. Реализовать базовые операции над множествами: объединение, пересечение,...

Реализовать классические операции над множествами - объединение, пересечение и симметричная разность - C++
Создать параметризованный тип данных - множество. Этот тип предназначен для хранения множества элементов и выполнения операций над ними....

Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно - C++
Люди помогите написать программу, очень нужно!!! Буду очень благодарный........ 1. Описать класс &quot;множество&quot;, позволяющий выполнять...

Объединение, пересечение, разность множеств - C++
#include &quot;stdafx.h&quot; #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt; #include &lt;math.h&gt; ...

Объединение, пересечение и разность множеств с помощью оператора SWITCH - C++
Помогите пожалуйста написать программу объединение,пересечение и разность множеств с помощью оператора SWITCH ....ввод элементов с...

Объединение, пересечение, разность множеств - C++
Это вполне стандартный алгоритм,может есть у кого готовый? Объединение, пересечение, разность множеств. Поверка на включение одного...

2
monolit
188 / 187 / 22
Регистрация: 24.03.2011
Сообщений: 670
Завершенные тесты: 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");
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5107 / 1545 / 382
Регистрация: 23.01.2011
Сообщений: 3,168
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();
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2014, 18:00
Привет! Вот еще темы с ответами:

Описать класс «множество» (добавление и удаление элемента, пересечение, объединение и удаление множеств ) - C++
Описать класс «множество», позволяющий выполнять основные операции – добавление и удаление элемента, пересечение, объединение и удаление...

Найти пересечение, объединение, разность, симметрическую разность множеств - C++
Задание: Написать программу, которая проделывается операции над множествами (пересечение, объединение, разность, симметрическую разность) ...

Объединение, пересечение, разность, симметрическая разность множеств - C++
Составить множество А из букв фамилии, множество В – из букв имени, множество С – из букв отчества (повторяющиеся элементы удалить). Найти:...

Арифметические операции над элементами массива - C++
Дан массив. Все его элементы: уменьшить на 30, умножить на последний элемент, увеличить на число B.


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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