Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/19: Рейтинг темы: голосов - 19, средняя оценка - 4.89
2 / 2 / 0
Регистрация: 17.11.2013
Сообщений: 96
1

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

19.01.2014, 17:40. Просмотров 3632. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2014, 17:40
Ответы с готовыми решениями:

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

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

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

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

2
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
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
iOS/Android Developer
Эксперт С++
5130 / 1567 / 952
Регистрация: 23.01.2011
Сообщений: 3,192
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2014, 18:00

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Реализовать объединение, пересечение, разность, симметричную разницу множеств
Помогите с заданием:написать программу, которая реализует основные операции теории множеств, а...

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

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


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

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

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