ООП — работа в Москве
Дата: 2025-07-07
Детали
Регион
Москва
Метро
Первомайская
Занятость
на дому
Стоимость
от 1000.00 руб.
Дата публикации
2025-07-07
Описание
Для себя Обсудить детали реализации ооп проекта. Варианты его построения в ооп стиле. Для себя.
Похожие заказы
ООП
на дому или дистанционно
договорная
Для себя Здравствуйте, я студент 2ого курса РТУ МИРЭА. Мне нужна помощь с пятью курсовыми работами по Объектно ориентированному программированию на c++ в системе АВРОРА(ARM_student). Так же я хотел бы выучить теорию, напрмер наследование классов, различные мсвойства объектов и так далее. Ниже прикрепляю описание некоторых задач. N1 Постановка задачи Для организации иерархического построения объектов необходимо разработать базовый класс, который содержит функционал и свойства для построения иерархии объектов. В последующем, в приложениях использовать этот класс как базовый для всех создаваемых классов. Это позволит включать любой объект в состав дерева иерархии объектов. Каждый объект на дереве иерархии имеет свое место и наименование. Не допускается для одного головного объекта одинаковые наименования в составе подчиненных объектов. Создать базовый класс со следующими элементами: свойства: наименование объекта (строкового типа); указатель на головной объект для текущего объекта (для корневого объекта значение указателя равно nullptr); динамический массив указателей на объекты, подчиненные к текущему объекту в дереве иерархии. функционал: параметризированный конструктор с параметрами: указатель на объект базового класса, содержащий адрес головного объекта в дереве иерархии; строкового типа, содержащий наименование создаваемого объекта (имеет значение по умолчанию); метод редактирования имени объекта. Один параметр строкового типа, содержит новое наименование объекта. Если нет дубляжа имени подчиненных объектов у головного, то редактирует имя и возвращает «истину», иначе возвращает «ложь»; метод получения имени объекта; метод получения указателя на головной объект текущего объекта; метод вывода наименований объектов в дереве иерархии слева направо и сверху вниз; метод получения указателя на непосредственно подчиненный объект по его имени. Если объект не найден, то возвращает nullptr. Один параметр строкового типа, содержит наименование искомого подчиненного объекта. Для построения дерева иерархии объектов в качестве корневого объекта используется объект приложение. Класс объекта приложения наследуется от базового класса. Объект приложение реализует следующий функционал: метод построения исходного дерева иерархии объектов (конструирования моделируемой системы); метод запуска приложения (начало функционирования системы, выполнение алгоритма решения задачи). Написать программу, которая последовательно строит дерево иерархии объектов, слева направо и сверху вниз. Переход на новый уровень происходит только от правого (последнего) объекта предыдущего уровня. Для построения дерева использовать объекты двух производных классов, наследуемых от базового. Исключить создание объекта если его наименование совпадает с именем уже имеющегося подчиненного объекта у предполагаемого головного. Исключить добавление нового объекта, не последнему подчиненному предыдущего уровня. Построчно, по уровням вывести наименования объектов построенного иерархического дерева. Основная функция должна иметь следующий вид: 1 2 3 4 5 6 int main ( ) { cl_application ob_cl_application ( nullptr ); // создание корневого объекта ob_cl_application.build_tree_objects ( ); // конструирование системы, построение дерева объектов return ob_cl_application.exec_app ( ); // запуск системы } Наименование класса cl_application и идентификатора корневого объекта ob_cl_application могут быть изменены разработчиком. Все версии курсовой работы имеют такую основную функцию. N4 Реализовать механизм взаимодействия объектов с использованием сигналов и обработчиков, с передачей вместе сигналом текстового сообщения (строковой переменной). Для организации взаимосвязи по механизму сигналов и обработчиков в базовый класс добавить три метода: установления связи между сигналом текущего объекта и обработчиком целевого объекта; удаления (разрыва) связи между сигналом текущего объекта и обработчиком целевого объекта; выдачи сигнала от текущего объекта с передачей строковой переменной. Включенный объект может выдать или обработать сигнал. Методу установки связи передать указатель на метод сигнала текущего объекта, указатель на целевой объект и указатель на метод обработчика целевого объекта. Методу удаления (разрыва) связи передать указатель на метод сигнала текущего объекта, указатель на целевой объект и указатель на метод обработчика целевого объекта. Методу выдачи сигнала передать указатель на метод сигнала и строковую переменную. В данном методе реализовать алгоритм: Если текущий объект отключен, то выход, иначе к пункту 2. Вызов метода сигнала с передачей строковой переменной по ссылке. Цикл по всем связям сигнал-обработчик текущего объекта: Если в очередной связи сигнал-обработчик участвует метод сигнала, переданный по параметру, то проверить готовность целевого объекта. Если целевой объект готов, то вызвать метод обработчика целевого объекта указанной в связи и передать в качестве аргумента строковую переменную по значению. Конец цикла. Для приведения указателя на метод сигнала и на метод обработчика использовать параметризированное макроопределение препроцессора. В базовый класс добавить метод определения абсолютной пути до текущего объекта. Этот метод возвращает абсолютный путь текущего объекта. Состав и иерархия объектов строится посредством ввода исходных данных. Ввод организован как в версии № 3 курсовой работы. Если при построении дерева иерархии возникает ситуация дубляжа имен среди починенных у текущего головного объекта, то новый объект не создается. Система содержит объекты шести классов с номерами: 1, 2, 3, 4, 5, 6. Классу корневого объекта соответствует номер 1. В каждом производном классе реализовать один метод сигнала и один метод обработчика. Каждый метод сигнала с новой строки выводит: 1 Signal from «абсолютная координата объекта» Каждый метод сигнала добавляет переданной по параметру строке текста номер класса принадлежности текущего объекта по форме: 1 «пробел»(class: «номер класса») Каждый метод обработчика с новой строки выводит: 1 Signal to «абсолютная координата объекта» Text: «переданная строка» Моделировать работу системы, которая выполняет следующие команды с параметрами: EMIT «координата объекта» «текст» – выдает сигнал от заданного по координате объекта; SET_CONNECT «координата объекта выдающего сигнал» «координата целевого объекта» – устанавливает связь; DELETE_CONNECT «координата объекта выдающего сигнал» «координата целевого объекта» – удаляет связь; SET_CONDITION «координата объекта» «значение состояния» – устанавливает состояние объекта. END – завершает функционирование системы (выполнение программы). Реализовать алгоритм работы системы: в методе построения системы: построение дерева иерархии объектов согласно вводу; ввод и построение множества связей сигнал-обработчик для заданных пар объектов. в методе отработки системы: привести все объекты в состоянии готовности; цикл до признака завершения ввода: ввод наименования объекта и текста сообщения; вызов сигнала заданного объекта и передача в качестве аргумента строковой переменной, содержащей текст сообщения. конец цикла. Допускаем, что все входные данные вводятся синтаксически корректно. Контроль корректности входных данных можно реализовать для самоконтроля работы программы. Не оговоренные, но необходимые функции и элементы классов добавляются разработчиком. N5(индивидульный проект) Постановка задачи Надо моделировать работу автозаправочной станции следующей конструкции. Система, автозаправочная станция состоит из следующих элементов: оператора автозаправочной станции; пульта управления; множества бензоколонок, с определенной маркой топлива, исходным объемом топлива; множество автомобилей, с запросом определенной марки и необходимого объема топлива; экрана отображения информации о функционировании системы. Правила функционирования системы. Время измеряется в тактах. За один такт автомобиль заезжает на автозаправку и делает запрос у оператора на покупку топлива. За один такт, оператор обрабатывает запрос. При наличии необходимого топлива нужной марки и в нужном объеме, оператор ставит автомобиль в очередь к бензоколонке. При отсутствии топлива в необходимом для автомобиля объеме, в обслуживании отказывают. Автомобиль покидает автозаправку. Каждая бензоколонка имеет уникальный номер и заправляет топливо одной марки. Двух бензоколонок с одинаковой маркой топлива нет. Время обслуживания одного автомобиля зависит от объема приобретенного топлива. Около бензоколонки может образоваться очередь. За один такт из очереди к бензоколонке можно поставить автомобиль на заправку и начать заправку. За один такт бензоколонка заливает 10 литров топлива. На последнем такте заправки автомобиль покидает автозаправку. Запрос от автомобилей объема топлива кратна 10 литрам. В течении одного такта оператор может поставить в очередь или отказать не более одному автомобилю. В течении такта на автозаправку может подъехать не более одного автомобиля. Команды системы. Команда запроса от автомобиля. 1 Fill up the tank «номер автомобиля» «тип топлива» «количество топлива» Данная команда моделирует запрос от автомобиля на топливо. Исходя из типа и объема топлива определяется наличие достаточного количества топлива (не проданного). Если топливо в достаточном количестве, то автомобиль ставиться в очередь к соответствующей бензоколонке. Если топлива недостаточно, то выдается отказ на обслуживание. Команда вывода списка обслуженных автомобилей бензоколонкой. 1 Display the petrol filling station status «номер бензоколонки» По данной команде выдается построчно список обслуженных автомобилей. После отработки команды элементы системы выполняют действия согласно такту. Команда выдачи состояния системы. 1 Display the system status По данной команде выводиться состояние системы в начале текущего такта. Информация содержит перечень бензоколонок, объем не проданного остатка топлива, величину очереди. Остаток считается с учетом автомобилей из очереди. Еще выводится сколько автомобилей было заправлено на бензоколонке. Бензоколонки упорядочены по номерам. Относительно оператора выводиться информация: сколько автомобилей было всего заправлено и сколько еще стоят в очереди. После отработки команды элементы системы выполняют действия согласно такту. Пустая команда (строка ничего не содержит). Элементы системы выполняют действия согласно такту. Команда завершения работы системы. 1 Turn off the system Построить систему, которая использует объекты: Объект «система». Организует отработку тактов. Объект для чтения команд и данных. Объект моделирует работу оператора. Считывает данные для подготовки и настройки системы. После чтения очередной строки данных для настройки или данных команды, объект выдает сигнал с текстом полученных данных. Все данные настройки и данные команд синтаксический корректны. Каждая строка команд соответствует одному такту. Если строка пустая, то система отрабатывает один такт. Объект пульта управления моделирует работу оператора и его устройства управления, для отработки поступивших команд (запросов). Объект выдает соответствующий сигнал или сигналы. Содержит список номеров бензоколонок. Управляет распределением автомобилей по бензоколонкам. Определяет возможность выполнения запроса. Если возможно, то ставит автомобиль в очередь к соответствующей бензоколонке, иначе выдает сообщение об отказе. Готовит данные исходя из состояния системы. Оператор сообщает автомобилю номер бензоколонки. Действие выполняется в рамках одного такта. Объект, моделирующий бензоколонку. Выдает сигнал о начале заправки или завершении заправки автомобиля. Обрабатывает содержимое очереди. По команде вывода списка обслуженных автомобилей выдает сигналы к устройству вывода с текстом необходимой информации. Объект, моделирующий автомобиль. Объект создается (заходит на автозаправку) по команде запроса. Содержит номе автомобиля, марку топлива и объем необходимой для заправки. При поступлении команды данный объект добавляется в подчиненные элементы к объекту пульта управления. После распределения объект перестыковывается к соответствующему объекту бензоколонки. После завершения обслуживания, объект удаляется из дерева объектов и уничтожается (покидает автозаправку). В базовый класс добавить метод удаления из дерева иерархии и уничтожения объекта. Объект для вывода состояния или результата команды системы на консоль. Текст для вывода объект получает по сигналу от других объектов системы. Каждое присланное сообщение выводиться с новой строки. Написать программу, реализующую следующий алгоритм: Вызов метода объекта «система» build_tree_objects ( ). Построение дерева иерархии объектов. Характеристики объектов вводятся. Цикл для обработки вводимых данных и загрузки исходного состояния системы. Выдача сигнала объекту чтения для ввода данных. Отработка операции загрузки очередной порции данных. Установка связей сигналов и обработчиков с новым объектом. Установка связей сигналов и обработчиков между объектами. Вызов метода объекта «система» exec_app ( ). Приведение всех объектов в состояние готовности. Цикл для обработки вводимых команд. Выдача сигнала объекту для ввода команды. Отработка команды. После ввода команды «Turn off the system» завершить работу. Все приведенные сигналы и соответствующие обработчики должны быть реализованы. Запрос от объекта означает выдачу сигнала. Все сообщения на консоль выводятся с новой строки. В набор поддерживаемых команд добавить команду «SHOWTREE» и по этой команде вывести дерево иерархии объектов системы с отметкой о готовности и завершить работу системы (программы).
Москва
Репетиторы
2025-09-12
Другие предметы
дистанционно
договорная
Цель занятия: Учусь на 2-м курсе, нужно неспешно сдать 4 предмета. Базы данных, ООП, структуры данных, статистика.
Хабаровск
Репетиторы
2025-06-30
ООП
дистанционно
договорная
Для себя Хочу разрабатывать гибкие, масштабируемые, поддерживаемые и понятные ООП структуры. Опыт в разработке имеется, сам разрабатываю несколько проектов, как раз для которых и возникла необходимость в структуре. Самостоятельно пробиться не получается, решил обратиться за помощью в развитии понимания проектирования и разработки архитектур. Больше интересует C#
Москва
Репетиторы
2025-06-21