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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.61
xumera
 Аватар для xumera
1 / 1 / 0
Регистрация: 05.07.2012
Сообщений: 81
16.11.2013, 19:17     Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно #1
Люди помогите написать программу, очень нужно!!! Буду очень благодарный........
1. Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность множество
2. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса
3. описать класс "множество сочетаний", содержащий операции, позволяющие определять порядковый номер сочетания в списке, выводить список сочетаний, вводить сочетание с контролем.
4. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2013, 19:17     Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно
Посмотрите здесь:

C++ Описать класс "множество", позваляющий выполнять основные операции
C++ Описать класс «множество» (добавление и удаление элемента, пересечение, объединение и удаление множеств )
C++ объединение, пересечение , разность, симметрическую разность множеств
C++ Осуществить все операции над элементами множеств: пересечение, объединение, ...
Реализовать классические операции над множествами - объединение, пересечение и симметричная разность C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VladislavTepes
 Аватар для VladislavTepes
78 / 78 / 5
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
16.11.2013, 19:24     Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно #2
xumera, в задании с множествами можно использовать std::vector? Или только массивы?

Добавлено через 53 секунды
И да, нужно описать множество именно определенного типа (не шаблонный класс)?
xumera
 Аватар для xumera
1 / 1 / 0
Регистрация: 05.07.2012
Сообщений: 81
16.11.2013, 19:49  [ТС]     Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно #3
можно использовать что угодно только что бы программа работала

Добавлено через 5 минут
VladislavTepes, поможете написать программу????
VladislavTepes
 Аватар для VladislavTepes
78 / 78 / 5
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
16.11.2013, 21:21     Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно #4
xumera, уже пишу.

Добавлено через 1 час 10 минут
Вот. Извините, что задержал, пришлось отлучиться.
set.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef SET_H_INCLUDED
#define SET_H_INCLUDED
#include <vector>
class CSet
{
    private:
    std::vector<int> els;
    unsigned size;
    public:
    CSet(): size(0) { }
 
    void print();
    void include(int el);
    void exclude(int el);
    bool contains(int el) const ;
    const friend CSet operator+(const CSet& set1, const CSet& set2);
    const friend CSet operator-(const CSet& set1, const CSet& set2);
    const friend CSet operator*(const CSet& set1, const CSet& set2);
    int operator[](unsigned index);
    inline unsigned length() const { return size; }
 
};
#endif // SET_H_INCLUDED
set.cpp
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
#include <iostream>
#include "set.h"
void CSet::print()
{
    std::cout<<'[';
    for (int el : els) std::cout<<el<<',';
    std::cout<<']';
}
void CSet::include(int el)
{
    els.push_back(el);
    size++;
}
void CSet::exclude(int el)
{
    for (int i=0; i<size; i++)
    {
        if (els[i] == el)
        {
         els.erase(els.begin()+i);
         size--;
        }
    }
}
 
bool CSet::contains(int el) const
{
    for (int x : els)
    {
        if (x==el) return true;
    }
    return false;
}
 
int CSet::operator[](unsigned index)
{
    return els.at(index);
}
 
const CSet operator+(const CSet& set1, const CSet& set2)
{
    CSet result_set;
    for (int x : set1.els)
    {
        if (!result_set.contains(x)) result_set.include(x);
    }
    for (int x : set2.els)
    {
        if (!result_set.contains(x)) result_set.include(x);
    }
    return result_set;
}
 
const CSet operator-(const CSet& set1, const CSet& set2)
{
    CSet result_set;
    for (int x : set1.els)
    {
        if (!set2.contains(x)) result_set.include(x);
    }
    return result_set;
}
 
const CSet operator*(const CSet& set1, const CSet& set2)
{
    CSet result_set;
    for (int x : set1.els)
    {
        if (set2.contains(x)) result_set.include(x);
    }
    return result_set;
}
Добавлено через 9 минут
Демо:
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
#include <iostream>
#include "set.h"
int main()
{
    CSet set1, set2, result_set;
    set1.include(5); set1.include(18);
    set2.include(5); set2.include(18); set2.include(6);
    std::cout<<"Welcome to the sets demo program!\n Printing sets:\nSet 1:\n";
    set1.print();
    std::cout<<"\nSet 2:\n";
    set2.print();
    std::cout<<"\nUnion of the sets:\n";
    result_set = set1 + set2;
    result_set.print();
    std::cout<<"\nIntersection of sets:\n";
    result_set = set1 * set2;
    result_set.print();
    std::cout<<"\nSets difference:\n";
    result_set = set1 - set2;
    result_set.print();
    std::cout<<"\nSelecting a value from the set by index (first el. from the Set 1):\n";
    std::cout<<set1[0];
    std::cout<<"\nСheck for the occurrence (number 5 in set1):\n";
    std::cout<<set1.contains(5);
    std::cout<<"\nGetting the length of Set 1:\n";
    std::cout<<set1.length();
 
 
    return 0;
}
xumera
 Аватар для xumera
1 / 1 / 0
Регистрация: 05.07.2012
Сообщений: 81
16.11.2013, 22:39  [ТС]     Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно #5
Огромное спасибо!!!!!!!!!!!!!!!

Добавлено через 6 минут
А на C++ Buldere запускаться будет, потому что препод не позволяет запускать на visual studio????
VladislavTepes
 Аватар для VladislavTepes
78 / 78 / 5
Регистрация: 27.06.2012
Сообщений: 555
Записей в блоге: 1
17.11.2013, 06:54     Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно #6
xumera, честно говоря, не знаю - не имел дела с Билдером. Но вроде как должен.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2015, 16:11     Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно
Еще ссылки по теме:

Класс "Множество" и операции над ним C++
C++ Описать класс "множество" вещественных чисел, позволяющий выполнять основные операции
Объединение, пересечение и разность множеств с помощью оператора SWITCH C++

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

Или воспользуйтесь поиском по форуму:
Krip4yk
1 / 1 / 1
Регистрация: 10.12.2014
Сообщений: 42
15.03.2015, 16:11     Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно #7
У меня эта программа не компилируется ни на Dev ни на Visual.
Ошибки в циклах for() в set.cpp
Yandex
Объявления
15.03.2015, 16:11     Описать класс "множество", позволяющий выполнять основные операции - добавления и удаление элемента, пересечение, множеств, объединение и разность мно
Ответ Создать тему
Опции темы

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