![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Iluxych |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 25.9.2013 Репутация: нет Всего: нет |
Форумчане помогите с программой, только начался С++
1. Разработать класс "множество целых чисел" в соответствии со следующим заданием Состояние класса - Множество состоит из элементов типа int (в множестве не может быть двух элементов с одинаковыми значениями) и определяется мощностью (количеством элементов в множестве) и значениями своих элементов, например: множество из 5 элементов {12, 8, 5,-3, 11} Память под множество выделяется статически во время компиляции, и задается массивом фиксированного предельного значения (например максимальная мощность множества 100 элементов). Протокол класса - Определяет возможности создания и инициализации экземпляров класса и правила использования их (методы класса). Предусмотреть следующие возможности: • пустой конструктор для инициализации экземпляров и массивов экземпляров класса по умолчанию; • создание экземпляров класса с инициализацией мощностью множества (начальные значения элементов - натуральные числа); • создание экземпляров класса с инициализацией мощностью и значениями элементов множества; • ввод экземпляров класса из входного потока и вывод их значений в выходной поток (с помощью перегруженных операторов » и «); • объединение двух множеств (с помощью перегруженного оператора сложения +; результирующее множество должно содержать элементы множества 1 и отличающиеся элементы множества 2); • добавление нового элемента в множество (с помощью перегруженного оператора +=); • вычисление пересечения двух множеств (с помощью перегруженного оператора умножения *; результирующее множество должно состоять из элементов, имеющихся и в множестве 1, и в множестве 2); • вычисление разности двух множеств ( с помощью перегруженного оператора -; результирующее множество должно состоять из элементов первого множества без тех, которые есть во втором множестве) • определение, имеется ли некоторый заданный элемент в множестве. 2. Проектирование класса рекомендуется начать с представления состояния класса, учитывающего заданные операции, а затем реализации конструкторов и перегруженного оператора вывода. Для отладки и исчерпывающего тестирования других методов разработанного класса реализовать диалоговую программу, которая позволяет вводить параметры, отлаживаемых методов. Для обработки ошибочных ситуаций использовать механизм исключительных ситуаций. 3. Повторить разработку класса при условии, что память под множество необходимой длины выделяется динамически, во время выполнения программы (с помощью оператора new; память задастся указателем на int в состоянии класса). Дополнить интерфейс класса следующими возможностями: • создание экземпляра класса с его инициализацией другим экземпляром класса (копирующий конструктор); • переопределение экземпляра класса (с помощью перегруженного оператора присваивания). 4. Написать прикладную программу, использующую разработанный класс. |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
Задание противоречиво. Нельзя одновременно обеспечить
и
а вообще такие классы уже есть: динамически распределяемая - std::vector<int> или std::set<int> можно наследоваться от этих классов и дополнить операторами +, *, которые будут вызывать соотв. функции из <algorithm> (set_intersection и т.д.) со статическим распределением памяти немного сложнее. можно взять std::array<int>, но непонятно как получать новые множества (например пересечение множеств), т.е. в какую структуру помещать, т.к. мощность пересечения в момент компиляции неизвестна |
|||
|
||||
Iluxych |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 25.9.2013 Репутация: нет Всего: нет |
Ну вот мне надо, чтобы память выделядась статически, те первую часть программы , можете помочь с реализацией пожалуйста?
|
|||
|
||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: нет Всего: 45 |
Я так понял, что под статическим распределением понимается нечто-то вроде:
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 1 Всего: 196 |
Для домашних заданий, курсовых, существует "Центр Помощи".
Тема перенесена! |
|||
|
||||
Iluxych |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 25.9.2013 Репутация: нет Всего: нет |
Дорогие форумчане спасайте, 1 и 2-ой пункт этой сдачи кровь из носу нужен
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |