Мои лабораторные работы для BSUIR/БГУИР (белорусский государственный университет информатики и радиоэлектроники).
Предмет - SP/СП (системное программирование).
Изучение событийной архитектуры Windows-приложений, механизмы обработки сообщений, механизмы перерисовки окна.
- Разработать программу, позволяющую передвигать с помощью клавиатуры и мыши спрайт (или геометрическую фигуру) внутри рабочей области окна.
- Обеспечить работу колёсика мыши (движение по вертикали, если shift – по горизонтали).
- Придать спрайту движение с отскоком от границ окна.
- Задействовать хотя бы одну горячую клавишу (ctrl + ) с использованием таблиц акселерации.
Изучение вывода текста и шрифтов.
- Разработать программу, которая вписывает в окно текстовую таблицу N строк на M столбцов таким образом, что все столбцы таблицы равномерно распределяются по ширине окна, а высота строк таблицы подбирается таким образом, чтобы вместить текст каждой ячейки.
- При изменении размеров окна таблица пересчитывается и перерисовывается.
- Вписать текст в окружность так, чтобы он выглядел, как на печати.
Изучение создания использования динамических загружаемых библиотек DLL.
- Разработать программу, которая выполняет Runtime импорт DLL и вызывает её функцию.
- Разработать программу, которая выполняет Loadtime импорт DLL и вызывает её функцию.
- Разработать DLL с функцией поиска заданной строки по всей виртуальной памяти и замены этой строки на другую.
- Разработать программу, которая внедряет DLL в заданный процесс и вызывает её функцию.
Изучение работы с реестром. Разработать программу, которая демонстрирует следующий функционал:
- Создание ключа, открытие ключа, закрытие ключа, удаление ключа, замена содержимого ключа.
- Вывод флагов ключа.
- Отслеживание изменения ключа.
Изучение, создание и использование потоков и механизмов синхронизации.
- Разработать очередь заданий, в которой несколько потоков могут вставлять элементы атомарно.
- Разработать обработчик этой очереди, который извлекает из неё задания и раздаёт заданному количеству потоков.
- Разработать программу, которая использует очередь заданий и обработчик очереди для сортировки строк в .txt файле:
- Входной поток читает файл в память, нарезает его на части и создаёт несколько заданий на сортировку по числу сортирующих потоков.
- Входной поток помещает их в очередь заданий.
- Сортирующие потоки извлекают задание, сортируют свои части файла, отдают результаты выходному потоку.
- Выходной поток ждёт все сортирующие части и мержит их методом сортирующего слияния.
Тема - "Устройство для записи и визуализации звука". Проект состоит из двух отдельных программ, одна вызывает другую через графический интерфейс и передаёт в неё параметры. Запись звука идёт через WinAPI, визуализация отрисовывается на JavaFX. Обе части работы реализованы на языке Kotlin, но одна из них (запись звука) с технологией компиляции Native.