Контрольная работа
По материалу второй главы курса "Взаимодействие с помощью сообщений"
В данной работе предлагается разработать модель электростанции. На электростанции имеется пункт заготовления топлива, транспортное средство и четыре энергоблока (котла). Пункт заготовления делает топливо из сырого материала. Объём изготовленной порции всякий раз разный, т.к. зависит от количества и качества сырья (моделируется случайным числом). Когда порция топлива готова, транспортное средство должно доставить её в один из котлов. Котёл после получения топлива начинает его сжигать. Когда всё топливо израсходовано, котёл готов принять новую порцию. Все объекты электростанции работают параллельно (моделируются с помощью нитей). Но необходима координация их работы в соответствии с общей логикой функционирования электростанции. Например, котёл должен ждать доставки топлива и получать размер порции, транспортное средство должно ждать готовности пункта заготовления, пункт заготовления должен ждать готовности транспортного средства и т.д. Вся эта координация должна обеспечиваться механизмом сообщений. Всю динамику работы отдельных компонентов необходимо показывать графически.
В качестве примера того, как должна работать модель, вам предлагается файл es.exe. Необязательно точно следовать представленному в нём дизайну, но логика взаимодействия отдельных компонентов должна быть примерно такая же.
Предлагается выполнить две реализации программы: первая должна основываться на коротких сообщениях, вторая – на именованных каналах. В реализации с именованными каналами необходимо вынести пункт заготовления топлива в отдельный процесс.
Данная работа не предполагает различных вариантов задания. Для проверки необходимо прислать исходные тексты программ и исполняемые файлы.
=============================================Лабораторная работа
по материалу первой главы курса "Процессы и нити"В данной лабораторной работе предлагается разработать систему из двух программ: программа рисования, работающая в графическом режиме с помощью библиотеки wingraph, и запускающее её, а затем управляющее ей консольное приложение. Всё это делается по аналогии с примерами, рассмотренными в лекционном материале. Варианты заданий уточняются ниже. Во всех заданиях движение фигур должно реализовываться отдельными нитями. Рекомендуется по возможности использовать один и тот же код для похожих нитей. Работа нити завершается, когда фигура достигает границы окна. При завершении консольного приложения окно программы рисования должно закрываться.
Для проверки необходимо прислать исходные тексты программ и исполняемые файлы.
Вариант № 1Программа рисования должна рисовать одновременно движущиеся фигуры:
• окружность (движение слева направо, скорость 10 точек/с);
• окружность (движение справа налево, скорость 10 точек/с);
• квадрат (движение слева направо, скорость 20 точек/с);
• квадрат (движение справа налево, скорость 40 точек/с).
Дополнительное требование: когда первая окружность пересекает линию
x = 320, цвет квадратов должен изменяться.
Консольное приложение должно управлять программой рисования по командам пользователя с возможностью осуществления следующих функций:
• изменение
y-координаты на ± 10 точек для указанной пользователем фигуры.
При запуске консольного приложения в командной строке указывается размер окна, который должен быть установлен в программе рисования.
Вариант № 2Программа рисования должна рисовать одновременно движущиеся фигуры:
• эллипс (движение слева направо, скорость 20 точек/с);
• окружность (движение справа налево, скорость 30 точек/с);
• квадрат (движение сверху вниз, скорость 10 точек/с);
• квадрат (движение сверху вниз, скорость 10 точек/с).
Дополнительное требование: если окружность доходит до конца окна, квадраты должны переходить в свою начальную позицию.
Консольное приложение должно управлять программой рисования по командам пользователя с возможностью осуществления следующих функций:
• изменение цвета для указанной пользователем фигуры.
При запуске консольного приложения в командной строке указывается размер окна, который должен быть установлен в программе рисования.
Вариант № 3Программа рисования должна рисовать одновременно движущиеся фигуры:
• квадрат (движение слева направо, скорость 30 точек/с);
• квадрат (движение справа налево, скорость 20 точек/с);
• окружность (движение снизу вверх, скорость 10 точек/с);
• окружность (движение снизу вверх, скорость 10 точек/с).
Дополнительное требование: когда любая из окружностей пересекает линию
x = 320, цвет квадратов должен изменяться.
Консольное приложение должно управлять программой рисования по командам пользователя с возможностью осуществления следующих функций:
• изменение
x-координаты на ± 10 точек для указанного пользователем квадрата;
• переключение окружностей в начальную точку.
При запуске консольного приложения в командной строке указывается надпись, которая должна появиться в верхней части окна программы рисования.
Вариант № 4Программа рисования должна рисовать одновременно движущиеся фигуры:
• окружность (движение слева направо, скорость 20 точек/с);
• квадрат (движение справа налево, скорость 20 точек/с);
• квадрат (движение слева направо, скорость 20 точек/с);
• квадрат (движение сверху вниз, скорость 10 точек/с).
Дополнительное требование: когда третий квадрат пересекает линию
x = 320, размер окружности должен изменяться.
Консольное приложение должно управлять программой рисования по командам пользователя с возможностью осуществления следующих функций:
• изменение
x-координаты на ± 40 точек для вертикально движущегося квадрата;
• изменение скорости движения окружности.
При запуске консольного приложения в командной строке указывается цвет окна, который должен быть установлен в программе рисования.
Вариант № 5Программа рисования должна рисовать одновременно движущиеся фигуры:
• окружность (движение слева направо, скорость 30 точек/с);
• окружность (движение справа налево, скорость 20 точек/с);
• квадрат (движение сверху вниз, скорость 20 точек/с);
• квадрат (движение сверху вниз, скорость 10 точек/с).
Дополнительное требование: когда окружности пересекаются, цвет квадраты должны переходить в свою начальную позицию.
Консольное приложение должно управлять программой рисования по командам пользователя с возможностью осуществления следующих функций:
• изменение скорости для указанной пользователем фигуры.
При запуске консольного приложения в командной строке указывается текст, который должен выводиться в нижней части окна.
Вариант № 6Программа рисования должна рисовать одновременно движущиеся фигуры:
• окружность (движение слева направо, скорость 10 точек/с);
• окружность (движение справа налево, скорость 20 точек/с);
• квадрат (движение сверху вниз, скорость 20 точек/с);
• квадрат (движение сверху вниз, скорость 10 точек/с).
Дополнительное требование: когда расстояние между квадратами по вертикальной оси станет равным 200 точкам, одна из нитей, рисующих окружность, должна завершиться.
Консольное приложение должно управлять программой рисования по командам пользователя с возможностью осуществления следующих функций:
• установка всех фигур в начальное положение;
• изменение скорости движения каждой из фигур.
При запуске консольного приложения в командной строке указывается цвет окружностей и квадратов.
Вариант № 7Программа рисования должна рисовать одновременно движущиеся фигуры:
• окружности (движение слева направо);
• квадрат (движение сверху вниз, скорость 10 точек/с).
Дополнительное требование: когда любая из нитей, рисующих окружности, завершается,
цвет квадрата должен изменяться.
Консольное приложение должно управлять программой рисования по командам пользователя с возможностью осуществления следующих функций:
• изменение скорости движения для указанной пользователем фигуры.
При запуске консольного приложения в командной строке указывается количество рисуемых окружностей.
Вариант № 8Программа рисования должна рисовать одновременно движущиеся фигуры:
• окружность (движение слева направо, скорость 10 точек/с);
• окружность (движение справа налево, скорость 10 точек/с);
• квадрат (движение слева направо, скорость 20 точек/с);
• квадрат (движение справа налево, скорость 40 точек/с).
Дополнительное требование: когда расстояние между первой окружностью и первым квадратом станет равным 100 точкам, обе фигуры должны возвращаться в своё начальное положение.
Консольное приложение должно управлять программой рисования по командам пользователя с возможностью осуществления следующих функций:
• изменение направления движения для указанной пользователем фигуры.
При запуске консольного приложения в командной строке указываются размеры фигур.
Вариант № 9Программа рисования должна рисовать одновременно движущиеся фигуры:
• окружность (движение снизу вверх);
• окружность (движение сверху вниз);
• квадрат (движение слева направо);
• квадрат (движение справа налево).
Дополнительное требование: когда два квадрата встречаются, размер окружностей должен изменяться.
Консольное приложение должно управлять программой рисования по командам пользователя с возможностью осуществления следующих функций:
• изменение направления движения для указанной пользователем фигуры.
При запуске консольного приложения в командной строке указываются скорости движения фигур.
Вариант № 10Программа рисования должна рисовать одновременно движущиеся фигуры:
• окружность (движение сверху вниз, скорость 10 точек/с);
• окружность (движение сверху вниз, скорость 20 точек/с);
• квадрат (движение слева направо, скорость 20 точек/с);
• квадрат (движение справа налево, скорость 20 точек/с).
Дополнительное требование: когда любая из окружностей пересекает линию
у = 200, размер квадратов должен изменяться.
Консольное приложение должно управлять программой рисования по командам пользователя с возможностью осуществления следующих функций:
• изменение цвета для указанной пользователем фигуры;
• установка всех фигур в начальное положение.
При запуске консольного приложения в командной строке указывается размер окна, который должен быть установлен в программе рисования.
Файлы для выполнения работы