
- •А.Н. Езин
- •Назначение курсовой работы
- •Примерная структура пояснительной записки
- •Календарный план выполнения работы
- •Последовательность выполнения курсовой работы
- •Подготовка курсовой работы к защите
- •Варианты заданий для курсовой работы
- •Тема 1. Разработка приложения по поддержке набора данных на основе файла с использованием функций Win 32 api по управлению им.
- •Тема 2. Разработка приложения по поддержке набора данных на основе файла, проецируемого в память.
- •Тема 3. Разработка приложения по поддержке набора данных на основе двухстороннего связного списка, хранимого в файле.
- •Тема 4. Разработка многопоточного приложения, использующего синхронизацию потоков с помощью событий с ручным сбросом.
- •Тема 5. Создание многопоточного приложения, иллюстрирующего решение проблемы синхронизации потоков-производителей и потоков-потребителей.
- •Тема 6. Разработка двух приложений, взаимодействующих между собой на основе сообщений.
- •Тема 7. Разработка двух приложений, взаимодействующих между собой на основе проецируемых в память файлов.
- •Тема 8. Разработка двух приложений, взаимодействующих между собой на основе буфера обмена.
- •Тема 15. Разработка приложения по поиску заданной строки во всех текстовых файлах заданного каталога с использованием функции управления файлами Win 32 api.
- •Тема 16. Разработка приложения по поиску заданной строки во всех текстовых файлах заданного каталога с использованием механизма проецирования файла в память.
- •Тема 20. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе механизма блокировки части файла.
- •Тема 23. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе объекта мютекс без блокировки частей файла.
- •Тема 26. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе объекта событие с автоматическим сбросом без блокировки частей файла.
- •Тема 27. Разработка приложения с несколькими обрабатывающими файл потоками, использующими взаимоисключение на основе критической секции без блокировки частей файла.
- •Тема 28. Разработка приложения, моделирующего возникновение взаимоблокировок и восстановление после них.
- •Тема 29. Разработка приложений, моделирующих работу дискового накопителя.
- •Литература
Тема 2. Разработка приложения по поддержке набора данных на основе файла, проецируемого в память.
Содержание задания.
Разработать приложение по поддержке набора данных. Должны поддерживаться следующие функции: добавление записи, изменение записи, удаление записи, навигация по записям (вперед, назад, выбор записи с заданным номером). Разработайте необходимый пользовательский интерфейс по работе с набором данных (поля ввода с подписями названий полей, кнопки для выполнения команд управления, метка с отображением полного количества записей и т.д.).
Набор данных хранится в файле. Для операций с файлом использовать механизм проецирования файла в память. Удаляемые записи должны помечаться как удаленные, само же удаление записей с дефрагментацией файла должно производиться в отдельном фоновом потоке с низким приоритетом. Для синхронизации его с главным потоком использовать мьютекс.
Поля данных: Преподаватель (30 символов), Дисциплина (20 символов), Факультет (20 символов), Группа (10 символов), Число студентов, Дата экзамена.
Тема 3. Разработка приложения по поддержке набора данных на основе двухстороннего связного списка, хранимого в файле.
Содержание задания.
Разработать приложение по поддержке набора данных с использованием двустороннего связного списка. Связный список реализовать с использованием семейства функций HeapXXX() Win 32 API по работе с динамически распределяемой памятью (кучей). Должны поддерживаться следующие функции: добавление записи, изменение записи, удаление записи, навигация по записям (вперед, назад, выбор записи с заданным номером). Разработайте необходимый пользовательский интерфейс по работе с набором данных (поля ввода с подписями названий полей, кнопки для выполнения команд управления, метка с отображением полного количества записей и т.д.).
Удаляемые записи должны помечаться как удаленные, само же удаление записей (уборка мусора) должно производиться в отдельном фоновом потоке с низким приоритетом. Для синхронизации его с рабочим потоком использовать событие с автоматическим сбросом.
Набор данных должен записываться в файл перед закрытием приложения. Предусмотреть возможность загрузки набора данных из этого файла после открытия приложения. Для операций с файлом использовать функции управления файлами Win 32 API.
Поля данных: Студент (20 символов), Факультет (10 символов), Курс, Группа (8 символов), Дата рождения, Дата поступления.
Тема 4. Разработка многопоточного приложения, использующего синхронизацию потоков с помощью событий с ручным сбросом.
Содержание задания.
Разработать приложение, подсчитывающее число символов, слов и строк в любом текстовом ANSI файле. Один рабочий поток должен считывать выбранный в диалоговом окне текстовый файл, загружая последовательно его содержимое в буфер размером в 1024 символа. Три других потока после очередной загрузки буфера должны подсчитывать, соответственно, число символов, число слов и число строк. Поток, подсчитывающий число строк в файле, должен также отображать окно содержимого файла в 15 строк в окне приложения (используйте многострочное поле ввода). Синхронизацию потоков осуществите с помощью событий со сбросом вручную. Подсчитываемые количества символов, слов и строк должны отображаться в окне программы по мере обработки буфера. Для операций с файлом использовать функции управления файлами Win 32 API. В потоки введите необходимые временные задержки. Предусмотрите в интерфейсе приложения поля ввода для задания этих временных задержек. Необходимый текстовый файл для тестирования и демонстрации работы программы можно создать в редакторе Edit, запускаемого в интерфейсе командной строки, или редакторе WordPad с выбором MS DOS формата файла.