
- •А.Н. Езин
- •Назначение курсовой работы
- •Примерная структура пояснительной записки
- •Календарный план выполнения работы
- •Последовательность выполнения курсовой работы
- •Подготовка курсовой работы к защите
- •Варианты заданий для курсовой работы
- •Тема 1. Разработка приложения по поддержке набора данных на основе файла с использованием функций Win 32 api по управлению им.
- •Тема 2. Разработка приложения по поддержке набора данных на основе файла, проецируемого в память.
- •Тема 3. Разработка приложения по поддержке набора данных на основе двухстороннего связного списка, хранимого в файле.
- •Тема 4. Разработка многопоточного приложения, использующего синхронизацию потоков с помощью событий с ручным сбросом.
- •Тема 5. Создание многопоточного приложения, иллюстрирующего решение проблемы синхронизации потоков-производителей и потоков-потребителей.
- •Тема 6. Разработка двух приложений, взаимодействующих между собой на основе сообщений.
- •Тема 7. Разработка двух приложений, взаимодействующих между собой на основе проецируемых в память файлов.
- •Тема 8. Разработка двух приложений, взаимодействующих между собой на основе буфера обмена.
- •Тема 15. Разработка приложения по поиску заданной строки во всех текстовых файлах заданного каталога с использованием функции управления файлами Win 32 api.
- •Тема 16. Разработка приложения по поиску заданной строки во всех текстовых файлах заданного каталога с использованием механизма проецирования файла в память.
- •Тема 20. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе механизма блокировки части файла.
- •Тема 23. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе объекта мютекс без блокировки частей файла.
- •Тема 26. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе объекта событие с автоматическим сбросом без блокировки частей файла.
- •Тема 27. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе критической секции без блокировки частей файла.
- •Тема 28. Разработка приложения, моделирующего возникновение взаимоблокировок и восстановление после них.
- •Тема 29. Разработка приложений, моделирующих работу дискового накопителя.
- •Литература
Тема 23. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе объекта мютекс без блокировки частей файла.
Содержание задания.
Разработать приложение с тремя рабочими потоками. Первоначально по команде главный поток заполняет файл 10000 – ми трехбайтовых записей, поля каждой из которых формируются случайным образом. Каждая запись интерпретируется как цвет в модели RGB и используется для закраски квадрата, отображаемого в области рисунка диалогового окна приложения. Область рисунка окна приложения разбивается на 100×100 квадратов. Записи файла отображаются на матрицу квадратов области рисунка построчно. После создания файла записей главный поток прорисовывает соответствующие им квадраты в области рисунка. Далее, по соответствующей команде запускаются одновременно три рабочих потока. Первый рабочий поток упорядочивает записи файла в порядке возрастания по первому полю (интенсивность красного цвета). Второй рабочий поток упорядочивает записи по второму полю (интенсивность зеленого цвета) в порядке возрастания при равенстве у записей первых полей. Третий рабочий поток упорядочивает записи по третьему полю (интенсивность синего цвета) в порядке возрастания при равенстве у записей первых полей и вторых полей. Упорядочение производится перестановкой двух соседних записей путем циклического продвижения по записям файла каждым из потоков. Для обеспечения взаимоисключения потоков при сравнении и перестановке соседних записей использовать объект мьютекс. Блокировку файла и его частей не использовать. После каждой перестановки пары соседних записей должна происходить перерисовка соответствующей пары квадратов в области рисунка окна приложения. Остановка работы потоков производится по соответствующей команде. Предусмотрите все необходимые элементы управления в интерфейсе приложения. Для лучшего наблюдения за работой потоков предусмотрите временные задержки в их работе. Управление величиной задержки вынесите в интерфейс приложения.
Тема 24. Разработка приложения по поддержке набора данных на основе файла с использованием функций Win 32 API по управлению им и взаимоисключением при чтении, изменении, добавлении и удалении записей разными экземплярами этого приложения на основе объекта событие с автоматическим сбросом без блокировки частей файла.
Содержание задания.
Разработать приложение по поддержке набора данных. Набор данных хранится в файле. Должны поддерживаться следующие функции: добавление записи, изменение записи, удаление записи, навигация по записям (вперед, назад, выбор записи с заданным номером). Разработайте необходимый пользовательский интерфейс по работе с набором данных (поля ввода с подписями названий полей, кнопки для выполнения команд управления, метка с отображением полного количества записей и т.д.).
Для операций с файлом использовать функции управления файлами Win 32 API. Удаляемые записи должны помечаться как удаленные, само же удаление записей с дефрагментацией файла должно производиться по отдельной команде “сжатие файла набора данных”.
Приложение должно корректно работать при запуске нескольких его копий. Для этого использовать синхронизацию процессов экземпляров приложения при выполнении чтения, изменения, добавления или удаления записи на основе объекта событие с автоматическим сбросом. Процедура сжатия файла должна выполняться только, если запущен один экземпляр приложения (в противном случае приложение должно операцию не выполнять и уведомлять о невозможности ее выполнить). Механизм блокировки файла или его части не использовать.
Поля данных: Студент (20 символов), Факультет (10 символов), Курс, Группа (8 символов), Дата рождения, Дата поступления.
Тема 25. Разработка приложения по поддержке набора данных на основе файла с использованием функций Win 32 API по управлению им и взаимоисключением при изменении, добавлении и удалении записей разными экземплярами этого приложения на основе объекта событие с автоматическим сбросом без блокировки частей файла.
Содержание задания.
Разработать приложение по поддержке набора данных. Набор данных хранится в файле. Должны поддерживаться следующие функции: добавление записи, изменение записи, удаление записи, навигация по записям (вперед, назад, выбор записи с заданным номером). Разработайте необходимый пользовательский интерфейс по работе с набором данных (поля ввода с подписями названий полей, кнопки для выполнения команд управления, метка с отображением полного количества записей и т.д.).
Для операций с файлом использовать функции управления файлами Win 32 API. Удаляемые записи должны помечаться как удаленные, само же удаление записей с дефрагментацией файла должно производиться по отдельной команде “сжатие файла набора данных”.
Приложение должно корректно работать при запуске нескольких его копий. Для этого использовать синхронизацию процессов экземпляров приложения при выполнении изменения, добавления или удаления записи на основе объекта событие с автоматическим сбросом. Процедура сжатия файла должна выполняться только, если запущен один экземпляр приложения (в противном случае приложение должно операцию не выполнять и уведомлять о невозможности ее выполнить). Должно допускаться чтение одной и той же записи одновременно несколькими экземплярами приложений. Если одно из приложений в этот момент изменяет запись, то в других приложениях она должна тут же отобразиться (используйте по своему выбору один из механизмов оповещения об этом других экземпляров приложения, например механизм сообщений).
Поля данных: Студент (20 символов), Факультет (10 символов), Курс, Группа (8 символов), Дата рождения, Дата поступления.