Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 15.03.2018
Сообщений: 30

Разработать класс Keeper, который реализует контейнер для хранения и обработки объектов

08.11.2019, 19:48. Показов 3748. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задание по лабораторной работе.
Нельзя использовать STL контейнеры для реализации программы.

Разработать класс Keeper, который реализует контейнер для хранения и обработки
объектов. Класс Keeper должен обеспечивать следующие функции:
▪ добавление и удаление производных объектов абстрактного класса Base (базовый
класс определяется согласно варианту задания);
▪ полное сохранение себя в файле;
▪ полное восстановление себя из файла.

Это соответственно мой вариант.
Класс Грузоперевозчик хранит данные о самолетах, поездах, автомобилях. Для самолета определено: тип, наименование, объем перевозимого груза, габариты, какие города посещает. Для поезда определено: наименование, год выпуска, полный маршрут следования, количество вагонов, объем перевозимого груза. Для автомобиля определено: год выпуска, марка, модель, в какие города осуществляется доставка и для каждого города определено количество часов доставки, объем груза.

Т.е я могу реализовать контейнер с помощью ну к примеру двусвязного списка. У меня есть базовый абстрактный класс Грузоперевозчик и три класса наследника самолет, поезд, автомобиль. Я не могу понять какие объекты должны храниться в контейнере и какой будет алгоритм работы программы. Помогите пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.11.2019, 19:48
Ответы с готовыми решениями:

Разработать класс Person, который содержит соответствующие члены для хранения.
Разработать класс Person, который содержит соответствующие члены для хранения: -имени, -возраста, -пола и -телефонного номера. ...

Разработать класс контейнер который итерируется
Здравствуйте нужно создать собственный класс-контейнер который будет итерироваться и хранить начальные значения в виде массива строк с...

Разработать шаблон класса для хранения данных (контейнер)
Я не понял как описать шаблон класса для хранения данных (контейнер). Данные должны хранится, например, в виде массива. Шаблон должен...

1
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
08.11.2019, 22:27
Лучший ответ Сообщение было отмечено kruss802 как решение

Решение

Цитата Сообщение от kruss802 Посмотреть сообщение
Т.е я могу реализовать контейнер с помощью ну к примеру двусвязного списка.
Угу. В структуре узла списка указатель на данные будет указателем на базовый класс.

Цитата Сообщение от kruss802 Посмотреть сообщение
какие объекты должны храниться в контейнере
Экземпляры классов-наследников, размещённые в куче (скорее всего), постредством указателей на них.

Цитата Сообщение от kruss802 Посмотреть сообщение
какой будет алгоритм работы программы
Базовый класс должен иметь два виртуальных метода, которые осуществляют запись данных объекта в поток и чтение данных объекта из потока. В классах-наследниках эти методы должны быть перекрыты. При записи в поток объект класса-наследника должен вначале записать некий маркер по которому можно определить информация для какого класса идёт далее.

Класс-контейнер должен иметь два метода, которые осуществляют запись всех объектов контейнера в поток и чтение всех объектов из потока. При записи нужно пройти по всем узлам списка и для каждого вызвать метод записи объекта по указателю на базовый класс. Поскольку по указателю будет находиться объект класса-наследника, то будет вызвана его виртуальная функция записи. При чтении объектов из потока контейнер сначала считывает маркер, по которому определяет какого типа объект должен быть создан, затем создаёт в куче объект и вызывает его метод чтения из потока. Затем для полностью сформированного объекта надо создать узел. Указателю на данные узла присвоить указатель на объект и вставить узел в список.

В общем всё. Вставку узла в список и удаление из списка, думаю, расписывать не надо.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.11.2019, 22:27
Помогаю со студенческими работами здесь

Класс-контейнер для хранения различных типов
Здравствуйте, товарищи!!! Подскажите, есть ли класс-контейнер для одновременного хранения в нем различных типов? Как я понял...

Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и почтового ад
Реализуйте класс для хранения ФИО и номера телефона человека, класс для хранения даты рождения человека, а также класс для хранения ФИО и...

Класс для хранения визуальных объектов
Проблемы создания классов вроде как и нету.. но, тута понадобилось создать класс для хранения визуальных объектов.. и возникли проблемы....

Заменить контейнер vector, использовавшийся для хранения текстовых строк (листинг 2.3), на контейнер list
Здравствуйте форумчане, может кто объяснить как делать это задание и что собственно мы тут вообще делаем. сам листинг 2.3 ниже ...

Разработать класс для хранения информации о людях
Разработать класс для хранения информации о людях: Фамилия, Имя, Отчество, возраст, размер одежды и реализовать алгоритм с...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru