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

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

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

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

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
monolit
185 / 184 / 22
Регистрация: 24.03.2011
Сообщений: 667
Завершенные тесты: 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
Эксперт С++
5097 / 1535 / 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();
Ответ Создать тему
Опции темы

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