Вход Блог
Строительство и ремонт
Репетиторы
Красота
Фрилансеры
Разные специалисты
Тренеры
Уход за животными
Автоинструкторы

Обучение программированию — работа в Москве

Дата: 2025-05-02
Детали
Регион
Москва
Метро
Чеховская, Театральная, Площадь Революции, Тверская
Занятость
без разницы
Стоимость
договорная
Дата публикации
2025-05-02
Описание
Язык программирования: C++ Для себя Суть задачи - разработка системы работы автобусов (interval, tick) и т.п. (курсовой проект). Есть полное описание задачи, эталонный ввод и вывод. Суть в реализации кода, есть накиданная структура. Полное описание задачи: Срок решения: 1 неделя. Названия предмета нет - типичное задание на C++. (Программирование). Само задание: Введение Постановка задачи Дана система, состоящая из следующих элементов: диспетчерская парка автобусов: круговой маршрут, из заданного количества остановок; на остановке определенное множество пассажиров на посадку; автобусов с характеристиками: максимальное количество пассажиров (вместимость); уникальный номер; пассажиров с множеством состояний: ожидает на остановке; находится в автобусе. Характеристиками: уникальный номер проездного удостоверения; номер остановки ожидания; номер целевой остановки. экрана отображения информации о функционировании системы. Количество остановок n задано. Количество автобусов k, выходящих на маршрут задано. Все автобусы движутся по кругу, в одном направлении, не пропуская ни одной остановки. Система функционирует по тактам. Правила функционирования системы: Количество остановок задается параметром n. Остановки нумеруются от 1 до n согласно порядку движения автобуса по маршруту. Время движения между остановками занимает разное, но заданное количество тактов. Изначально все автобусы пусты и выходят на маршрут по графику из автобусного парка. Выход автобусов на маршрут организует диспетчерская автобусного парка. Автобусы движение начинают с первой остановки. Интервал выхода на маршрут между автобусами больше одного такта. Время движения от парка до первой остановки занимает фиксированное количество тактов. Пассажир может ожидать автобус на любой остановке. Пассажир садится в автобус, если есть место, иначе ожидает очередной. Посадка пассажиров выполняется согласно очереди, последовательности подхода на остановку. При подходе на остановку, пассажир добавляется в состав системы. После выхода из автобуса, пассажир удаляется из системы Высадка и посадка в автобус на остановке занимает одни такт. Маршрут разбит на интервалы. Интервалы перенумерованы от единицы. Автобус при движении за один такт проезжает один интервал. Остановки расположены в начале интервала. Номер интервала, в начале которого расположена остановка, ставиться в соответствии остановке. Перед началом очередного такта может быть выдана команда. Команда отрабатывает до отработки действий такта. Надо моделировать работу системы с соблюдением перечисленных правил. Команды системы: Команда подхода пассажиров на остановках. Команда отображения состояния на остановке. Команда отображения состояния автобуса. Команда отображения состояния на маршруте. Команда отображения иерархии объектов диспетчера. Команда отображения иерархии объектов маршрута. Пустая команда (строка ничего не содержит). Элементы системы выполняют действия согласно такту. Команда завершения работы системы. Построить программу-систему, которая использует объекты: Объект «система». Объект для чтения исходных данных и команд. Считывает данные для первоначальной подготовки и настройки системы. Считывает команды. После чтения очередной порции данных для настройки объект выдает сигнал соответствующим объектам (элементам системы). Данные для первоначальной настройки системы вводятся до начала отсчета тактов. Первая команда выполняется в рамках первого такта. После чтения очередной команды, объект анализирует наименование команды и выдает сигнал с текстом полученных данных (включая номер такта и наименование команды) соответствующим объектам. Все данные настройки и данные команд по структуре корректны. Каждая строка команд соответствует одному такту (отрабатывается в начале такта). Если строка пустая, то система отрабатывает один такт. В каждом такте элементы системы отрабатывают положенные действия или находятся в состоянии ожидания. Объект диспетчерская автобусного парка. Наименование объекта: object_dispatcher. Изначально является головным для множества автобусов и содержит график выхода автобусов на маршрут. Организует выпуск автобусов на маршрут согласно графику по тактам. Объект маршрут. Наименование объекта: object_route. Является головным для множества объектов остановок автобуса и множество объектов автобусов с момента первой остановки автобуса на первой остановке. Объект моделирующий остановку автобуса. Наименование объекта: A_«номер остановки». Содержит номер остановки, очередь ожидающих автобус пассажиров. Данному объекту по иерархии подчинены объекты пассажиров, ожидающих автобус. Объект, моделирующий автобус. Содержит номер автобуса, значение вместимости, список пассажиров в автобусе, номер интервала, в начале которого находится автобус. Данному объекту по иерархии подчинены объекты пассажиров, расположенных в автобусе. Объект, моделирующий пассажира. Наименование объекта: Passenger_«номер проездной карты». Содержит: значение номера проездной карты, номер исходной остановки, номер целевого остановки. Объект имеет состояния: ожидает на остановке; находиться в автобусе. Объект для вывода информации. Текст для вывода объект получает по сигналу от других объектов системы. Каждое присланное сообщение выводиться с новой строки. Архитектура иерархи объектов. Объект системы моделирования работы автобусного маршрута. Объект ввода. Объект диспетчера автобусного парка (этот фрагмент иерархии в начале работы системы). Объект автобус 1. Объект автобус 2. . . . . . Объект автобус k. Объект маршрут Объект остановка 1. Объекты ожидающих пассажиров. Объект остановка 2. Объекты ожидающих пассажиров. . . . . . Объект остановка n. Объекты ожидающих пассажиров. Объект автобус 1. Объекты пассажиров в автобусе. Объект автобус 2. Объекты пассажиров в автобусе. . . . . . Объект автобус k. Объекты пассажиров в автобусе. Объект вывода. Сконструировать программу-систему, реализующую следующий алгоритм: 1. Вызов от объекта «система» метода build_tree_objects ( ), построения иерархии объектов. 1.1. Построение исходного дерева иерархии объектов. 1.2. Установка связей сигналов и обработчиков между объектами. 1.3. Выдача сигнала объекту чтения для ввода первой строки данных (количество автобусов и их характеристик: номер автобуса и значения вместимости). 1.4. Создание объектов автобусов и определение их характеристик. 1.5. Выдача сигнала объекту чтения для ввода второй строки данных (графика выхода автобусов на маршрут). 1.6. Формирование графика выхода автобусов на маршрут в составе объекта диспетчера автобусного парка. 1.7. Выдача сигнала объекту чтения для ввода третей строки данных (количества остановок, количества тактов в пути от парка до первой остановки и количество тактов в пути до следующей остановки маршрута). 1.8. Создание объектов остановок и определение их характеристик. 1.9. Установка связей сигналов и обработчиков между объектами. 1.10 После построения исходного дерева иерархии объектов, все объекты перевести в состояние готовности. 2. Вызов от объекта «система» метода exec_app ( ). 2.1. Цикл по тактам. 2.1.1. Определение номера очередного такта. 2.1.2. Выдача сигнала объекту ввода для чтения очередной команды. 2.1.3. После ввода команды «Turn off the system» выход из цикла. 2.1.4. Выдача сигнала для отработки очередного такта. 2.2. Завершить работу системы. Все приведенные сигналы и соответствующие обработчики должны быть реализованы. Все сообщения на консоль выводятся с новой строки. В набор поддерживаемых команд добавить команду «SHOWTREE» и по этой команде вывести дерево иерархии объектов системы с отметкой о готовности и завершить работу системы (программы). Реализовать два отладочных теста такой командой. Первый после завершения построения дерева иерархии объектов. Второй перед завершением работы системы. Во втором тесте обязательно отработать не менее одной команды посадки пассажиров. При решении задачи необходимо руководствоваться методическим пособием и приложением к методическому пособию Входные данные Первая строка, количество автобусов и их характеристики: номер автобуса и значение вместимости: «целое число, количество автобусов» «строка номера автобуса» «целое число, вместимость» . . . «строка номера автобуса» «целое число, вместимость» Вторая строка, график выхода автобусов на маршрут, номер автобуса и номер такта выхода автобуса на маршрут: «целое число, количества тактов в пути от парка до первой остановки» «строка, номер автобуса» «целое число, номер такта» . . . «строка, номер автобуса» «целое число, номер такта» Третья строка, количества остановок n, количества тактов в пути от парка до первой остановки и количество тактов в пути до следующей остановки маршрута от 1 до n: «целое число, количество остановок» «целое число, количество тактов» . . . «целое число, количество тактов» Последнее значение, это количество тактов от n-ой остановки до первой. Далее построчно вводятся команды. Они могут следовать в произвольном порядке. Команда подхода пассажиров на остановках. Passenger «номер остановки» «номер целевой остановки» «номер проездной карты» . . . «номер остановки» «номер целевой остановки» «номер проездной карты» Подход пассажира на остановку моделируется созданием объект пассажир и на дереве иерархии объектов подчиняется объекту остановка. Команда отображения состояния автобуса: Bus condition «строка, номера автобуса» Команда отображения состояния пассажира: Passenger condition «номер проездной карты» Команда отображения состояния на остановке: Condition on the stop «номер остановки» Команда отображения состояния маршрута: Route status Команда отображения состояния системы: System status Команда отображения иерархии объектов диспетчера парка: Dispatcher objects tree Команда отображения иерархии объектов маршрута: Route objects tree Команда отображения иерархии объектов системы: SHOWTREE Пустая команда (строка ничего не содержит). Элементы системы выполняют действия согласно такту. Последняя команда присутствует всегда Turn off the system Пример ввода: Пришлю ниже. После завершения ввода исходных данных выводиться текст: Ready to work После команды отображения состояния автобуса вывести: «номер такта»: Bus «номера автобуса»: interval «номер интервала»; passengers «количество пассажиров в автобусе». Если автобус с заданным номером на маршруте не найден, то вывести: «номер такта»: There is no bus number «номера автобуса» on the route. После команды отображения состояния пассажира вывести: Если находится на остановке: «номер такта»: Passenger «номер проездной карты» at a bus stop «номер остановки». Если находится в автобусе: «номер такта»: Passenger «номер проездной карты» on the bus «номер автобуса». Если не найден: «номер такта»: Passenger «номер проездной карты» was not found. После команды отображения состояния на остановке вывести: «номер такта»: Bus stop «номер остановки»: passengers «количество пассажиров на остановке». После команды отображения состояния маршрута вывести: «номер такта»: Buses: «номер автобуса» «номер интервала нахождения» «количество пассажиров в автобусе»; «номер автобуса» «номер интервала нахождения» «количество пассажиров в автобусе» . . . . Bus stops: «номер остановки» «количество пассажиров на остановке»; . . . Отображается информация об автобусах, в которых находится хотя бы один пассажир. В конце вывода вместо точки запятой ставится точка. Если нет ни одного автобуса с пассажирами, то вывести Buses.. Отображается информация о тех остановках, на которых есть хотя бы один ожидающий автобус пассажир. В конце вывода вместо точки запятой ставится точка. Если нет ни одной остановки автобуса с пассажирами, то вывести Bus stops.. После команды отображения состояния системы вывести: «номер такта»: Dispatcher: «количество автобусов в парке». Buses: «номер автобуса» «номер интервала нахождения» «количество пассажиров в автобусе»; «номер автобуса» «номер интервала нахождения» «количество пассажиров в автобусе» . . . . Bus stops: «номер остановки» «количество пассажиров на остановке»; . . . Отображается информация об автобусах, в которых находится хотя бы один пассажир. В конце вывода вместо точки запятой поставить точку. Если нет ни одного автобуса с пассажирами, то вывести Buses.. Отображается информация о тех остановках, на которых есть хотя бы один ожидающий автобус пассажир. В конце вывода вместо точки запятой ставится точка. Если нет ни одной остановки автобуса с пассажирами, то вывести Bus stops.. После команды отображения иерархии объектов диспетчера парка вывести ветвь иерархии дерева объектов начиная с объекта object_dispatcher. После команда отображения иерархии объектов маршрута вывести ветвь иерархии дерева объектов начиная с объекта object_route. После команды завершения работы системы вывести. Turn off the system
Похожие заказы

Обучение Verilog

дистанционно
договорная
Для себя Подготовка к защите лабораторной
Санкт-Петербург Репетиторы

Обучение программированию

дистанционно
договорная
Язык программирования: Qa Для себя
Санкт-Петербург Репетиторы

Обучение Unreal Engine

дистанционно
договорная
Подготовка к экзамену
Москва Репетиторы

Обучение C#

дистанционно
договорная
Для работы
Карелия Репетиторы

Обучение .NET

дистанционно
договорная
Для работы Нужна помощь с устройством на работу. Почти год не могу найти работу (скорее джун, трудовая пустая, есть не мало опыта фриланса без больших проектов, стартапы). Уже 3 месяца нет никаких собеседований/тестовых, не читают/читают и молчат до помещения в архив/отказывают. Более-менее честное резюме https://dropmefiles.com/GWhAT (открывается браузером). Больше всего интересует разработка в сфере веб бэкенд (.NET C#): круды, легаси, бизнес логика, WEB API, взаимодействие с СУБД и прочими БД, хранилищами, сервисами, микросервисами, ELK, K8s и т.д. Не против фулстека, других ЯП/фреймворков/технологий. Если всё плохо, приемлем вариант с фронтендом или десктопом. Я думаю, мне может помочь человек, не давно сменивший работу, работающий прямо сейчас и имеющий зп 130к+ (мидл). Увы, я буду просить доказательства. Сопроводительное с ответами на требования в вакансии отправляю почти всегда. Я экспериментировал с опытом, компаниями, украшивал резюме, не помогло. Советы прогнать через ИИ не помогли, он хрень какую-то пишет. То на мидла/джуна мало опыта, то на джуна/стажера слишком много опыта. На другой стек почти не бывало положительных реакций работодателей. Еще у меня есть некоторые вопросы, касающиеся бэкенд разработки. Например, сеньер мне сказал что практикует блокировки строк в СУБД (при read commited например); я этому научился (ранее в стартапах/проде таким не занимался), забабахал пет проект, в котором написал оптимизированные запросы, без дедлоков, с блокировками, вроде бы по красоте всё, и мне множество разработчиков ответило что всё фигня и бред, никто так не оптимизирует, на дедлоки всем пофиг, raw sql простыню с логикой не пишут, хреначат SERIALIZABLE и юзают только EF Core LINQ; ну или блокируют на уровне приложения (не advisory locks в СУБД) чтобы СУБД не захлебывалась. Как там на самом деле на продах? Что мне на собесе говорить по этому поводу? Будут ли такие вопросы? (Однажды был на собесе на 80к/мес с миллиардом технологий, задавали только вопросы про ООП/SOLID и где там JWT токен в HTTP запросе может лежать. Сказали что я в ТОП-3 кандидатов попал, помню что неуверенным был на ООП вопросах). По Saga, 2PC теорию знаю и могу реализовать, но мне сомнительный чел с 3 годами опыта в разных местах сказал что такое никогда не делают. По этому поводу как дела обстоят? Это тоже наверно должно быть у меня в легенде? Еще мне наверно нужна легенда по оркестрации/хореографии, rabbitmq/kafka? Это только в теории знаю и могу реализовать, но не знаю как на продах делают. Что там про собрать пакет запросов от клиентов, свалидировать, подготовить, применить в СУБД батчем без блокировок строк?
Екатеринбург Репетиторы

UX-UI дизайн

дистанционно
договорная
чат-бота. Продукт: Создание Telegram-бота, предназначенного для автоматизации коммуникации с аудиторией, повышения вовлечённости пользователей, упрощения навигации по продукции и поддержки digital-продвижения бренда. Объём работ: Разработка включает 10–15 экранов (состояний диалога), в зависимости от глубины сценариев: Стартовый экран (приветствие + согласие) Краткое объяснение теста Выбор сценария (1–3 варианта) Первый экран сценария (основной путь) Разветвление 1 (выбор действия) Разветвление 2 (альтернативный путь) Экран ошибки/тупика (если пользователь “теряется”) Экран с вопросом оценки UX Экран сбора обратной связи (текстовый ввод) Финальный экран (завершение теста). Техническое задание есть.
Санкт-Петербург Фрилансеры

UX-UI дизайн

дистанционно
договорная
Дизайн десктоп приложения. Продукт: Нужно разработать дизайн приложения для тач панели - всего несколько экранов, элементов на экранах минимум 1. Экран с кнопкой начать 2. Выбор фона 3. Экран фотографирования 4. Экран результата Брендбук в фигме есть Нужен человек, умеющий работать с нейросетями в фигме, время поджимает - собрать нужно за пару часов, какой то глубокой проработки UX и экранов не нужно. Референсы есть. Если сметчимся, возможно дальнейшее регулярное сотрудничество (~2-3 проекта в месяц). Объём работ: 4 экрана, базовые UI элементы типа кнопки Продолжить. Техническое задание есть.
Москва Фрилансеры