Объектно-ориентированное программирование, библиотеки классов, исключения, потоковая многозадачность

Отменен
Заказ
5461715
Раздел
Программирование
Тип работы
Антиплагиат
Не указан
Срок сдачи
1 Июн 2023 в 23:55
Цена
2 500 ₽
Блокировка
10 дней
Размещен
29 Мая 2023 в 16:39
Просмотров
73
Описание работы

Домашнее задание.

Если Вы считаете, что оплата не соразмерна уровню задания - пишите, договоримся.

Если Вы считаете, что нужно больше времени на реализацию этой задачи - пишите, обговорим.

Язык программирования - C++. Компиллятор - CLion. Вариант - 19.

Задание:

Разработать программу, работающую с объектами классов. Используя интерфейс командной строки, реализовать следующие режимы работы: «Ввод нового объекта и добавление его в контейнер», «Поиск объекта в контейнере по значениям полей с печатью данных о найденных объектах», «Редактирование объекта», «Удаление объекта из контейнера», «Сохранение данных всех объектов в файле», «Чтение данных объектов из файла», «Сортировка объектов контейнера по выбранному полю для list», «Печать списка объектов». Предусмотреть обработку исключений, возможные исключения определить самостоятельно. В функции main должен быть главный поток, который создает консольное меню для выбора режима, режимы, требующие взаимодействия с пользователем (ввод нового объекта, редактирование объекта, поиск и печатью, печать списка объектов и т.п.) выполняются в этом главном потоке. Режимы, не требующие взаимодействия с пользователем (удаление, сохранение в файле и чтение из файла), выполняются в отдельном потоке, созданном в главном, при этом обеспечить синхронизацию при доступе к данным объектов.

Использование контейнерных классов.

В каждом задании на ДЗ требуется использовать минимум один контейнерный класс. Контейнерные классы – это такие классы, на основе которых создаются объекты, включающие в себя другие объекты (отношение накопления). Контейнерные классы могут быть последовательными (вектор, список, дек и др.), упорядоченными (map, set и др.), неупорядоченными (unordered_set, unordered_map и др.) Для реализации контейнерных классов студенты могут выбрать один из подходов:

Использование стандартных (библиотечных) классов.

Создание своего класса.

Некоторые особенности выполнения ДЗ:

При выполнении задания должны быть учтены следующие требования.

1. Для классов объектов явно определяются и разрабатываются: конструкторы (не менее двух для каждого класса) и деструкторы (для каждого класса);

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

2. В каждом классе помимо конструкторов и деструкторов должны быть определены не менее четырех методов (функций членов класса) и не менее четырех свойств (данных класса);

Пример. Методы для улиц могут быть такими: добавление дома, удаление дома, распечатки домов улицы, нумерация домов, сложение улиц, деление улиц и т.д. Например, деление улицы на две может интерпретироваться так: первые N домов переносятся на "улицу Горького", а остальные на "Тверскую". Т.е., другими словами, из одного объекта мы получаем два других объекта с определенными свойствами. Разрабатывая такую операцию нужно продумать вопросы: где создаются новые объекты, как они заполняться, уничтожается ли исходный объект и т.д.

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

Пример. Добавление дома к улице – Street1+Home1;.

4. Описания классов должны быть вынесены в отдельные файлы (*.h). При этом необходимо исключить повторное включение описаний в исходный текст.

Пример. Например, с помощью переменных этапа компиляции (define __STREET_H): #if !defined( __STREET_H ) …… Основной текст файла #endif // 

5. Обязательным является перегрузка операции вывода (<<) в стандартный поток cout для предметного класса. 


Также нужно создать таблицы с описанием классов. (Более подробная информация в документе)

Все остальные требования к выполнению ДЗ написаны в документе

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