Разработка комплекс программ "Скачки"

3 500 руб. за проект
05 декабря 2021, 15:37 • 3 отклика • 62 просмотра
Разработайте комплекс программ "Скачки".

Доступ к общим объектам программы осуществляют используя объекты синхронизации или Interlocked функции. В своей работе программы используют следующие общие ресурсы: файловая проекция в память, окно консоли.
Для работы с файловой проекцией разработайте динамическую библиотеку с функциями позволяющими получить к ней доступ, получить или установить значения всех ее полей и функции блокировки и освобождения ресурсов. Для ограничения количества участников используйте семафор. Для оповещений используйте события. Для ограничения доступа к проекции и консоли - мьютексы.
Одна из программ предоставляет консоль, т.е. открывает окно консоли, создает файловую проекцию и ждет завершения других программ комплекса ориентируясь на состояние счеткика подключений в проекции. В начале она рисует на консоли беговые дорожки и указывает свой идентификатор процесса в файловой проекции, чтобы другие программы могли использовать ее консоль. В ходе скачек программа показывает истекшее с начала время и предоставляет возможность остановить скачки. До начала скачек, программа ждет сигнала пользователя о принудительном начале скачек, либо дожидается пока все дорожки не окажутся занятыми, после чего посылает всем участникам скачек сигнал об их начале. При получении сигнала от участника о достижении им финиша посылает участникам сигнал об окончании скачек и показывает победителя. Программа "Лошадь" при запуске ищет свободную дорожку (придумайте как), и рисует на ней себя, тем самым отмечая ее занятость, но сперва она должна получить допуск на участие (семафор). После этого программа ждет сигнала начала скачек. После начала скачек программа начинает передвигать "лошадь" через случайные промежутки времени. По достижению конца дорожки программа подает сигнал программе консоли об окончании скачек. Программа консоли извещает все остальные программы об окончании скачек и показывает победителя.
Файлы