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