Анализ предметной областиОтчет по курсовой работе по дисциплине «Операционные системы» Тема №1: «Разработка приложения по поддержке набора данных на основе файла с использованием функций Win32 API по управлению им»
Содержание 1. Задание на курсовую работу.............................................................. 3 2. Анализ предметной области................................................................ 4 3. Блок-схема работы приложения......................................................... 5 4. Интерфейс приложения....................................................................... 6 5. Исходный код программы.................................................................. 7 6. Вывод................................................................................................. 19 7. Литература......................................................................................... 20
Задание на курсовую работу Разработать приложение по поддержке набора данных. Набор данных хранится в файле. Должны поддерживаться следующие функции: добавление записи, изменение записи, удаление записи, навигация по записям (вперед, назад, выбор записи с заданным номером). Разработайте необходимый пользовательский интерфейс по работе с набором данных (поля ввода с подписями названий полей, кнопки для выполнения команд управления, метка с отображением полного количества записей и т.д.). Для операций с файлом использовать функции управления файлами Win 32 API. Удаляемые записи должны помечаться как удаленные, само же удаление записей с дефрагментацией файла должно производиться в отдельном фоновом потоке с низким приоритетом. Для синхронизации его с главным потоком использовать критическую секцию. Поля данных: Наименование товара (20 символов), Цена, Количество, Дата (поступления на склад). Анализ предметной области Для разработки приложения было решено использовать среду Microsoft Visual C++ 2010 Express, так как она на данный является современной, наиболее оптимизированной, удобной, а также бесплатной. Исходя из технического задания был разработан план, содержащий основные моменты задания и позволяющий отслеживать выполнение работы. + интерфейс + операции с базой данных реализовать в отдельном потоке + для управления потоком использовать события + удаляемые записи должны помечаться как удаленные, а само удаление в другом потоке с низким приоритетом, + для синхронизации рабочего и дополнительного потоков использовать критические секции + открытие БД с помощью WinAPI + добавление записей + изменение записей + удаление записей + навигация по записям (вперед, назад, конкретная запись) + выбор записи с заданным номером + сортировка пузырьковым методом
Интерфейс приложения возможно создать при помощи стандартного конструктора форм, входящего в среду VC++. Данный конструктор позволяет создать оконное приложение с различными контролами, самостоятельно добавляя необходимый код в модуль формы. Для организации интерфейса также понадобится диалог открытия файла базы данных. Для этого стоит использовать WindAPI функцию, вызывающую стандартный диалог открытия файла Windows. Для работы с потоками возможно использование раздела Threading окружения.NET. При этом методы потока выносятся в отдельный класс, после чего удобно работать с экземплярами объектов этого класса. Все методы и описания классов, переменные, связанные с дополнительными потоками приложения удобно вынести в отдельный модуль. Так как модуль формы и потоков не взаимодействует на прямую, а используют для управления события с автоматическим сбросом. Сами события создаются при создании потока. Событие завершения потока, в отличие от остальных событий, предоставляет ручной сброс, так как одним событием удобно завершить сразу оба потока. Все действия с БД в потоках следует выделить в критические секции. При этом сразу два потока не смогут одновременно что-либо делать с файлом БД, и удастся избежать многих ошибок. Все действия по работе с файлом БД будут организованы с помощью WinAPI-функций. Блок-схема работы приложения
2. Данная кнопка позволяет отсортировать все записи в текущей базе по полю «Дата». 3. Навигация по записям. С помощью кнопок можно отображать следующую или предыдущую запись, перейти же к конкретной записи можно введя ее номер в поле ввода между кнопками. 4. Данная кнопка позволяет пометить данную запись для удаления. Удаление произойдет в ближайшее время в фоновом потоке. Помеченные для удаления записи отображаются красным цветом. 5. Здесь возможно редактирование записей базы данных. Кнопка «Добавить» позволяет добавить указанные данные в новую запись в конец базы данных. Кнопка «Изменить» заменяет данные текущей записи указанными данными. При навигации по базе данных в полях ввода отображаются данные текущей записи. 6. Кнопка «…» позволяет открыть базу данных. Если база открыта, то путь к ней отображается в поле справа от кнопки.
|