Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 10.07.2014
Сообщений: 9
1

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

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

Ребята может есть что-то прошу помощи. Написать класс «множество» – наследник класса «массив» (множество
понимается в привычном смысле – неупорядоченный набор уникальных элементов
известной мощности). В классе реализовать следующие методы: конструкторы (по умолчанию, с
параметрами, копирования), деструктор, ввод с клавиатуры, вывод на экран (в виде
методов класса и при помощи перегруженных операций потокового ввода и вывода),
перегрузить следующие операции: +, += (добавление элемента в множество), +, +=
(объединение двух множеств), – (удаление элемента), – (разность множеств), =
(присвоение), = = (сравнение по элементам). Операции: +, += (добавление элемента в
множество) реализовать как виртуальные функции.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2014, 18:28
Ответы с готовыми решениями:

Создать класс наследник от класса TForm1. Определить конструктор без параметров для дочернего класса
Доброго всем времени суток. Помогите решить проблемку. Хочу создать класс наследник от класса...

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

Найти класс-наследник от абстрактного класса в массиве
Есть массив абстрактных классов "GameObject", от него наследуется класс "Plant", который тоже...

Абстрактный класс CGraphicsObject, его наследник - базовый класс CPoint, и класс - наследник от CPoint
Всем доброй ночи! Очень нужна помощь и по мере возможности разъяснения на темы: абстрактный класс в...

4
710 / 282 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
10.07.2014, 18:33 2
Цитата Сообщение от Катя 89 Посмотреть сообщение
Написать класс «множество» – наследник класса «массив»
Скажи преподу, что они ничего не понимает в сути ООП
1
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:
....
};
0
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); 
}
0
IrineK
13.07.2014, 19:37     Написать класс «множество» – наследник класса «массив»
  #5

Не по теме:

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

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2014, 19:37

Не передаются даные поля базового класса в класс наследник
мне нужно передать поле amount базового класса в наследник, и вывести основной чек на экран. Из-за...

Создайте класс, описывающий и реализующий класс-наследник класса "прямоугольник"
создайте класс описывающий и реализующий класс-наследник класса object геометрическую фигуру ...

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

В рамках консольного приложения разработать класс В-наследник класса А с полем d и свойством с2
В рамках консольного приложения разработать класс В-наследник класса А с полем d и свойством с2....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru