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

Класс "Множество" и операции над ним - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить, какие вершины достижимы из заданной вершины S http://www.cyberforum.ru/cpp-beginners/thread1244197.html
Подскажите алгоритм для этой задачи, пожалуйста. Достижимые вершины Имя входного файла: graph.in Имя выходного файла: graph.out Ограничение по времени: 2 секунды Ограничение по памяти: 64...
C++ Как правильно очищать вектор указателей Привет Всем! Есть вопрос по вектору указателей, как правильно очищать память при таком случае очищение происходит существенно медленнее чем инициализация, но память очищается: #include <vector> ... http://www.cyberforum.ru/cpp-beginners/thread1244154.html
Защита 2д онлайн игры от взломов C++
Здравствуйте, вообщем, я пытаюсь написать 2д рпг онлайн игру, которую в будущем хотелось бы переделать под андроид и выпустить в маркет, но речь не об этом. На данный момент игра реализована как...
Подключение библиотеки Glaux.lib и ошибка компиляции C++
Здравствуйте, У меня возникла проблема - надо подключить библиотеку GLAux (OpenGL-ая). Скачал от нее .h и .lib, подключил .h через #include, в свойствах проекта добавил Glaux.lib в дополнительные...
C++ Работает ли Борланд C++ 6 с Windows 7 http://www.cyberforum.ru/cpp-beginners/thread1244102.html
Извиняюсь за "глупый" вопрос. Несколько лет работал с С++ В6 менялись компы, менялись ОС, но всё время установка С++ получалась не с "первого раза" (что терпимо), и иногда в процессе работы -...
C++ Не могу открыть WMware через VS, не видит wmx файл Добрый день, в visual studio 2012 пишу консольное приложение, которое должно открывать виртуальную машину. Столкнулся с такой проблемой, что не находит *.wmx файл(файл конфигураций). Пишет вот что:... подробнее

Показать сообщение отдельно
Кателевский ВН
0 / 0 / 1
Регистрация: 23.04.2014
Сообщений: 48

Класс "Множество" и операции над ним - C++

18.08.2014, 19:58. Просмотров 786. Ответов 2
Метки (Все метки)

Не хватает опыта понять ошибку

Здравствуйте! Никак не получается тот же результат хотя проверял несколько раз вот само задание:
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
#include <iostream>
using namespace std;
const int MaxSize = 100;
class Set{
    int len;
    char members[MaxSize];
    int find(char ch);
public:
    Set(){len = 0;}
    int getLength(){return len;}
    void showset();
    bool isMember(char ch);
    Set operator +(char ch);
    Set operator -(char ch);
    Set operator +(Set ob2);
    Set operator -(Set ob2);
   
 
};
int Set::find(char ch){
    int i;
    for(i=0; i < len; i++)
        if(members[i] = ch)
            return i;
 
    return -1;
}
 
void Set::showset(){
    cout << "{";
    for(int i = 0; i < len; i++)
        cout << members[i] << " ";
 
    cout << "}\n";
}
 
bool Set::isMember(char ch){
    if(find(ch) != -1) return true;
    return false;
}
 
Set Set::operator +(char ch){
    Set newset;
 
    if(len == MaxSize){
          cout<< "Mnogestvo zapolneno.\n";
          return *this;
        }
        newset = *this;
        if(find(ch)  == -1)
        {
            newset.members[newset.len] = ch;
            newset.len++;
        }
        return newset;
    }
 
    Set Set::operator -(char ch){
        Set newset;
        int i = find(ch);
        for(int j = 0; j < len; j++)
        if(j != i) newset = newset + members[j];
 
        return newset;
    }
 
    Set Set::operator+(Set ob2)
    {
        Set newset = *this;
        for(int i = 0; i < ob2.len; i++)
            newset = newset + ob2.members[i];
 
        return newset;
    }
 
    Set Set::operator -(Set ob2)
    {
        Set newset = *this;
        for(int i = 0; i < ob2.len; i++)
            newset = newset - ob2.members[i];
        return newset;
    }
  
 
int main()
{
    Set s1;
    Set s2;
    Set s3;
 
    s1 = s1 + 'A';
    s1 = s1 + 'B';
    s1 = s1 + 'C';
 
    cout << "Mnogestvo s1 posle dobavleniya simvola A B C: ";
    s1.showset();
    cout << "\n";
    cout << "Testirovanie chlenstva s pomoschyu funkzii isMember().\n";
    if(s1.isMember('B'))
        cout << "B - chlen mnogestva s1. \n";
    else
        cout << "B - ne chlen mnogestva s1. \n";
    if(s1.isMember('T'))
        cout << "T - chlen mnogestva s1. \n";
    else
        cout << "T - ne chlen mnogestva s1. \n";
    cout << "\n";
    s1 = s1 - 'Г‚';
    cout<< "Mnogestvo s1 posle s1 = s1 - 'B':" ;
    s1.showset();
    s1 = s1 - 'A';
    cout << "Mnogestvo s1 posle s1 = s1 - 'A' :" ;
    s1.showset();
    s1 = s1 - 'C' ;
    cout << "Mnogestvo s1 posle s1 = s1 - 'C' :" ;
    s1.showset();
    cout << "\n";
    s1 = s1 + 'A';
    s1 = s1 + 'B';
    s1 = s1 + 'C' ;
    cout << "Mnogestvo s1 posle dobavleniya A B C :" ;
    s1.showset();
    cout << "\n";
    s2 = s2 + 'A';
    s2 = s2 + 'X';
    s2 = s2 + 'W';
    cout << "Mnogestvo s2 posle dobavleniya A X W:";
    s2.showset();
    cout << "\n";
    s3 = s1 + s2;
    cout << "Mnogestvo s3 posle s3 = s1 + s2:" ;
    s3.showset();
    s3 = s3 - s1;
    cout << "Mnogestvo s3 posle s3 = s3 - s1:";
    s3.showset();
    cout << "\n";
    cout << "Mnogestvo s2 posle s2 = s2 - s2:" ;
    s2 = s2 - s2;
    s2.showset();
    cout << "\n";
    s2 = s2 + 'C';
    s2 = s2 + 'B';
    s2 = s2 + 'A';
    cout << "Mnogestvo s2 posle dobavleniya C B A:";
    s2.showset();
    return 0;
}
Вот то что должно получиться:

Множество s1 после добавления символов ABC :{AB C
Тестирование членства с помощью функции isMember() .
В-чле нмножества s1 .
Т-не член множества s1 .
Множество s1 после s1=s1-'В' :{АС }
Множество s1 после s1=s1-'А':{С}
Множество s1 после s1=s1-'С':{}
Множество s1 после добавления ABC :{ABC }
Множество s2 после добавления АXW :{АXW}
Множество s3 после s3=s1+s2 :{АВСXW}
Множество s3 после s3=s3-si :{XW}
Множество s2 после s2=s2-s2:{}
Множество s2 после добавления СВА:{СВ А}


А вот что у меня получается:
0
Миниатюры
Класс "Множество" и операции над ним  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru