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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить, какие вершины достижимы из заданной вершины S http://www.cyberforum.ru/cpp-beginners/thread1244197.html
Подскажите алгоритм для этой задачи, пожалуйста. Достижимые вершины Имя входного файла: graph.in Имя выходного файла: graph.out Ограничение по времени: 2 секунды Ограничение по памяти: 64 мегабайта Задан неориентированный граф, нужно определить, какие вершины достижимы
C++ Как правильно очищать вектор указателей Привет Всем! Есть вопрос по вектору указателей, как правильно очищать память при таком случае очищение происходит существенно медленнее чем инициализация, но память очищается: #include <vector> void creat(std::vector<int*> &p) { for (int i(0); i<5000000; i++) { http://www.cyberforum.ru/cpp-beginners/thread1244154.html
Защита 2д онлайн игры от взломов C++
Здравствуйте, вообщем, я пытаюсь написать 2д рпг онлайн игру, которую в будущем хотелось бы переделать под андроид и выпустить в маркет, но речь не об этом. На данный момент игра реализована как обычная 2д рпг. Позже переделаю её под клиент, который будет общаться с сервером и все необходимые данные будут заноситься сервером в БД. Больше всего беспокоюсь по поводу защиты. В принципе, уже...
Подключение библиотеки Glaux.lib и ошибка компиляции C++
Здравствуйте, У меня возникла проблема - надо подключить библиотеку GLAux (OpenGL-ая). Скачал от нее .h и .lib, подключил .h через #include, в свойствах проекта добавил Glaux.lib в дополнительные зависимости. При компиляции выдает ошибку LNK1104 : не удается открыть файл "Glaux.lib". Помогите советом, как ее правильно подключить. У меня VS C++ 2010 Express. Заранее спасибо)
C++ Работает ли Борланд C++ 6 с Windows 7 http://www.cyberforum.ru/cpp-beginners/thread1244102.html
Извиняюсь за "глупый" вопрос. Несколько лет работал с С++ В6 менялись компы, менялись ОС, но всё время установка С++ получалась не с "первого раза" (что терпимо), и иногда в процессе работы - "падала" (что тоже терпимо)... В последнее время перестала запоминать текущие установки Desktop-ы (точнее брекпоинты, что тоже терпимо) Потом был годичный перерыв в работе за время которого произошло...
C++ Не могу открыть WMware через VS, не видит wmx файл Добрый день, в visual studio 2012 пишу консольное приложение, которое должно открывать виртуальную машину. Столкнулся с такой проблемой, что не находит *.wmx файл(файл конфигураций). Пишет вот что: Usage: C:\Users\212\documents\visual studio 2012\Projects\powerOn\x64\Debug\powerOn.exe <vmxpath> where vmxpath is an absolute path to the .vmx file for the virtual machine. Для продолжения нажмите... подробнее

Показать сообщение отдельно
Кателевский ВН
 Аватар для Кателевский ВН
0 / 0 / 1
Регистрация: 23.04.2014
Сообщений: 46
18.08.2014, 19:58     Класс "Множество" и операции над ним
Не хватает опыта понять ошибку

Здравствуйте! Никак не получается тот же результат хотя проверял несколько раз вот само задание:
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 после добавления СВА:{СВ А}


А вот что у меня получается:
Миниатюры
Класс "Множество" и операции над ним  
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru