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

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

Войти
Регистрация
Восстановить пароль
 
Катя 89
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 9
#1

Написать класс «множество» – наследник класса «массив» - C++

10.07.2014, 18:28. Просмотров 397. Ответов 4
Метки нет (Все метки)

Ребята может есть что-то прошу помощи. Написать класс «множество» – наследник класса «массив» (множество
понимается в привычном смысле – неупорядоченный набор уникальных элементов
известной мощности). В классе реализовать следующие методы: конструкторы (по умолчанию, с
параметрами, копирования), деструктор, ввод с клавиатуры, вывод на экран (в виде
методов класса и при помощи перегруженных операций потокового ввода и вывода),
перегрузить следующие операции: +, += (добавление элемента в множество), +, +=
(объединение двух множеств), – (удаление элемента), – (разность множеств), =
(присвоение), = = (сравнение по элементам). Операции: +, += (добавление элемента в
множество) реализовать как виртуальные функции.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2014, 18:28     Написать класс «множество» – наследник класса «массив»
Посмотрите здесь:

класс наследник на основе базового класса - C++
-----

Написать класс и его наследник - C++
Создать класс, описывающий квадратное уравнение. Определить, сколько корней имеет уравнение. Создать класс наследник, дополнительно...

Наследование: базовый класс - массив, наследник - матрица - C++
Помогите пожалуйста с наследованием. базовый класс - массив, наследник - матрица. Использовать именно наследование.

класс наследник - C++
Добрый день! Интересует вопрос отношения между parent-классом и child'ом. Допустим в protected parent класса описаны какие-то методы, а...

Наследник класса, переопределение функции - C++
Доброго времени суток! Есть не виртуальный класс, от него необходимо наследоваться и перегрузить одну из функций. Входные параметры будут...

Базовый класс - текстовый файл и наследник... - C++
А)Базовый класс Б)Класс наследник А) Текстовый файл, поддерживающий все стандартные файловые функции Паскаля. Возможно чтение и...

Как передать в переменную класс-наследник? - C++
Есть главный класс куда я отправляю класс-контроллер class DrawBase { private: Controller* controllerClass; public: void...

Создать новый объект-наследник абстрактного класса - C++
Приветствую, друзья! У нас есть абстрактный класс AbstractClass и его наследники child1 и child2. В массиве у нас есть несколько...

Сознатие графического приложения (Создать класс-наследник от FIGURE) - C++
1). Создать класс-наследник от FIGURE, который представляет собой красную сетку с размером ячейки 30 точек на белом фоне. В левом...

Написать класс-обертку с умным доступом к методам класса - C++
Всем привет! В общем задание: написать класс-обертку с умным доступом к методам класса. Я пока только с++ знаю, и то как видите слабо, а в...

Написать класс, от которого можно получить только один экземпляр класса - C++
Написать класс, от которого можно получить только один экземпляр класса. Как такое реализовать? Если использовать только статические члены...

Структуру переделать в класс, чтобы массив был внутри класса - C++
есть структура struct CUSTOMER { unsigned short number; char name; char tel; ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Voivoid
673 / 276 / 12
Регистрация: 31.03.2013
Сообщений: 1,339
10.07.2014, 18:33     Написать класс «множество» – наследник класса «массив» #2
Цитата Сообщение от Катя 89 Посмотреть сообщение
Написать класс «множество» – наследник класса «массив»
Скажи преподу, что они ничего не понимает в сути ООП
Катя 89
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 9
10.07.2014, 18:37  [ТС]     Написать класс «множество» – наследник класса «массив» #3
Я бы сказала, но мне нужно программу сдать. Которая для меня очень сложная.
По способу хранения данных в нашем случае множество-это массив, но способы обработки данных другие. Допустим ксть класс Array.
C++
1
2
3
4
5
class Set: public Array
{//член-данных новых нет, все в базовом классе
public:
....
};
Катя 89
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 9
13.07.2014, 19:21  [ТС]     Написать класс «множество» – наследник класса «массив» #4
Ребята проверьте, что не так.


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
#include "many.h"
#include <iostream>
using std::cout; 
using std::cin; 
#include <iomanip> 
using std::setw;  
#include <cstdlib>
{
size = 6; 
ptr = new Matrix [size]; 
for (int ix = 0; ix < size; ix++) 
for (int jx = 0; jx < getSizeMat(); jx++)
for (int zx = 0; zx < getPtr()->getSize(); zx++)
ptr[ix][jx][zx] = 0;
}
Many::Many
{
size = (manySize > 0 ? manySize : 6); 
ptr = new Matrix [size]; 
for (int ix = 0; ix < size; ix++) 
ptr[ix].setSize(matrixSize > 0 ? matrixSize : 6, arraySize > 0 ? arraySize :6); 
//cout << size << "  " << ptr->getSize() << "  " << ptr->getPtr()->getSize() << std::endl;
for (int ix = 0; ix < size; ix++) 
for (int jx = 0; jx < ptr->getSizeMat(); jx++)
for (int zx = 0; zx < ptr->getPtr()->getSize(); zx++)
ptr[ix][jx][zx] = 0;
//    cout << size << "  " << ptr->getSize() << "  " << ptr->getPtr()->getSize() << std::endl;
}
Many::Many(Many &manyToCopy ) 
:size(manyToCopy.size)              
{
//    cout << size << "  " << manyToCopy.getSize() << "  " << manyToCopy.getPtr()->getSize() << std::endl;
ptr = new Matrix [size]; 
for (int ix = 0; ix < size; ix++) 
ptr[ix].setSize(manyToCopy.getSizeRow(), manyToCopy.getSizeCol()); 
for (int ix = 0; ix < size; ix++) 
for (int jx = 0; jx < ptr->getSizeMat(); jx++)
for (int zx = 0; zx < ptr->getPtr()->getSize(); zx++)
ptr[ix][jx][zx] = manyToCopy[ix][jx][zx];
}
Many::~Many() 
{
delete  [] ptr; 
}
{
if (obj.getSizeMany() == 0)
cout << "!\n";
for (int ix = 0; ix < obj.getSizeMany(); ix++)
{
for (int jx = 0; jx < obj.getSizeRow(); jx++)
{
for (int zx = 0; zx < obj.getSizeCol(); zx++)
{
output << setw(3) 
<< obj.ptr[ix][jx][zx];
}
cout << std::endl;
}
cout << std::endl << "--\n";
}
for (int ix = 0; ix < obj.size; ix++)
for (int jx = 0; jx < obj.getSizeRow(); jx++)
for (int zx = 0; zx < obj.getSizeCol(); zx++)
input >> obj.ptr[ix][jx][zx]; 
return input; // позволяет множественный ввод, типа cin >> x >> y >> z >> ...
}
Matrix &Many::operator[] (int subscript)
{
if(subscript < 0 || subscript >= size)
{
std::cerr << "\n -: " << subscript << std::endl;
exit(1); 
return ptr[subscript]; 
}
int Many::getSizeMany() const 
{
return size;
}
void Many::getMany() 
{
for (int ix = 0; ix < getSizeMany(); ix++)
{
for (int jx = 0; jx < getSizeRow(); jx++)
{
for (int zx = 0; zx < getSizeCol(); zx++)
{
cout << setw(3) 
<< ptr[ix][jx][zx];
}
cout << std::endl;
}
cout << std::endl << "--\n";
}
cout << std::endl; 
}
void Many::setMany() 
{
for (int ix = 0; ix < getSizeMany(); ix++)
for (int jx = 0; jx < getSizeRow(); jx++)
for (int zx = 0; zx < getSizeCol(); zx++)
cin >> ptr[ix][jx][zx];       
}
for (int ix = 0; ix < size; ix++)
for (int jx = 0; jx < ptr->getSizeMat(); jx++)
for (int zx = 0; zx < ptr->getPtr()->getSize(); zx++)
ptr[ix][jx][zx] = right.ptr[ix][jx][zx]; // скопировать массив
}
bool Many::operator== (const Many &right) const
{
if (size != right.getSizeMany() ||
getSizeRow() != right.getSizeRow() || getSizeCol() != right.getSizeCol())
return false; 
for (int ix = 0; ix < size; ix++)
for (int jx = 0; jx < ptr->getSizeMat(); jx++)
for (int zx = 0; zx < ptr->getPtr()->getSize(); zx++)
if (ptr[ix][jx][zx] != right.ptr[ix][jx][zx])
return false; 
return true; 
}
if (size != right.getSizeMany() ||
getSizeRow() != right.getSizeRow() || getSizeCol() != right.getSizeCol())
{
cout << "Множества разного размера!\n";
exit(1); // завершить работу программы
}
 
Many result(*this);
for (int ix = 0; ix < result.getSizeMany(); ix++)
for (int jx = 0; jx < result.getSizeRow(); jx++)
for (int zx = 0; zx < result.getSizeCol(); zx++)
result.ptr[ix][jx][zx] = ptr[ix][jx][zx] - right.ptr[ix][jx][zx];
return result; // вернуть сумму
}
Many Many::operator+ (const Many &right) 
{
if (getSizeRow() != right.getSizeRow() || getSizeCol() != right.getSizeCol())
{
cout << 
exit(1); 
}
IrineK
13.07.2014, 19:37     Написать класс «множество» – наследник класса «массив»
  #5

Не по теме:

Чувствуется стиль: Написать класс «матрица»

Yandex
Объявления
13.07.2014, 19:37     Написать класс «множество» – наследник класса «массив»
Ответ Создать тему
Опции темы

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