Использование контейнеров STL. Исключения

Отменен
Заказ
6647220
Раздел
Программирование
Предмет
C/C++
Антиплагиат
Не указан
Срок сдачи
7 Мая в 20:00
Цена
1 000 ₽
Блокировка
10 дней
Размещен
3 Апр в 14:26
Просмотров
79
Описание работы

В этой лабораторной работе вы продолжаете разработку своей программной системы в соответствии с вариантом. Необходимо разработать ещё один или два класса, а затем в один из них добавить поле с набором (коллекцией) объектов второго. Хотя все коллекции и предназначены для хранения набора объектов, они все отличаются. Какие-то коллекции накладывают определённые ограничения на хранящиеся в коллекции элементы, другие отличаются скоростью доступа к элементам, третьи отличаются интерфейсом и т.д.

Необходимо выбрать STL-контейнер (коллекцию) (https://ru.cppreference.com/w/cpp/container), который наиболее подходит в вашем случае. Обоснуйте свой выбор. Статические и динамические массивы ([], new T[SIZE]) использовать запрещено. Стандартные контейнеры безопаснее и выполняют работу с динамической памятью за вас. Если в задании сказано "список чего-то", это не значит, что можно использовать только std::list.

Как в конструкторах, так и в остальных методах при возникновении исключительной ситуации (ошибки) методы должны генерировать исключения с помощью инструкции throw, которые обязательно должны обрабатываться где-то выше по стеку вызовов. В стандартной библиотеке C++ имеются классы для описания основных типов исключительных ситуаций (https://ru.cppreference.com/w/cpp/error/exception). Разрабатывать свой класс исключений нужно только в самом крайнем случае. Бросать std::string в качестве исключений не нужно.

Содержание отчета по лабораторной работе:

1. Титульный лист

2. Оглавление

3. Постановка задачи (записать задание и дополнительные условия, которые вы учитываете при разработке программы).

4. Тестовые данные (привести наборы исходных данных и ожидаемых результатов работы программы). Предусмотреть ошибочные наборы данных, приводящие к выбрасыванию исключения.

5. Описание разработанных классов в табличном виде (поля класса и их типы; методы класса с указанием типа возвращаемого значения, списка параметров и их типов).

6. Обоснование выбора типа коллекции (контейнера). Выбор и описание методов контейнера, которые будут использованы в вашей программе.

7. Перечень исключительных ситуаций, генерируемых разработанными методами. Обоснование выбора используемого класса исключения из стандартной библиотеки или обоснование использования собственного класса исключений.

8. Проектирование главной функции (main) для тестирования класса (описать сценарий создания и использования объектов класса). Предусмотреть обработку исключительных ситуаций.

9. Тестирование программы (оценить соответствие полученных результатов и теоретических представлений).

10. Выводы.

11. Приложение. Исходные коды всех разработанных файлов (.cpp и .h).

 10. Генеалогическое древо

Добавьте в класс Человек список его детей. Они могут быть заданы как при создании объекта Человек, так и добавлены в процессе жизни объекта. Ребёнок должен быть младше своих родителей. Нельзя быть родителем самого себя. Также невозможны различные циклы вида: А – родитель Б, Б – родитель В, В – родитель А. Их необходимо искать только до некоторой глубины, которая должна быть задана в виде статического неизменяемого открытого поля Глубина проверки. Метод установки количества детей и поле Количество детей необходимо убрать.

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.54
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир