- •Методические рекомендации
- •Одобрены
- •Содержание введение
- •Цели и задачи практики
- •2. Виды работ практики
- •Создание кодов модулей. Тестирование каждого модуля.
- •Объединение модулей в единую программу (приложение). Отладка приложения. Тестирование приложения.
- •3. Содержание практики
- •Использование файловой системы и функций символьного ввода/вывода Windows;
- •Изучение предметной области разрабатываемого приложения.
- •3.2. Описание сценария работы приложения. Разработка архитектуры приложения. Описание структуры модулей.
- •3.3. Формирование интерфейса приложения с использованием различных интерфейсных компонент для построения интерфейса программы.
- •3.4. Создание кодов модулей. Тестирование каждого модуля.
- •4. Указания к выполнению и оформлению заданий
- •Пример:
3.2. Описание сценария работы приложения. Разработка архитектуры приложения. Описание структуры модулей.
Описание сценария работы приложения выглядит следующим образом:
- при запуске программы на экран выводится стартовая форма, в которой находятся элементы управления, позволяющие выбрать режим работы приложения: работа с файлами, работа с каталогами, работа с реестром, функции символьного ввода-вывода, системная информация;
- если выбран режим работы с файлами, то открывается форма, содержащая элементы управления для выполнения действий над файлами: создание, открытие, сохранение, копирование, удаления, получения информации о файле;
- и т.д.
Архитектура приложения.
Здесь необходимо указать перечень модулей приложения. Например:
- модуль стартовой формы;
- модуль формы для работы с файлами;
- модуль формы для работы с каталогами;
- и т.д.
Далее необходимо построить дерево приложения (рисунок 1).
Описание структуры модулей.
Здесь приводится список процедур и функций в составе каждого модуля с указанием передаваемых им параметров.
Пример:
Модуль MiniReg
Функция RegSetString:
Заголовок: BOOL RegSetString(HKEY RootKey, String Name,
String Value)
Назначение: Установка ключа Name ветви корня RootKey текстового значения Value и возврат true, в случае успеха.
Входные параметры: RootKey, Name, Value
Выходные параметры: -
Функция RegSetMultiString:
Заголовок: string RegSetMultiString (HKEY RootKey, string Name, string Value)
Назначение: Установка ключа Name ветви корня RootKey текстового значения Value из нескольких строк, и возврат true, в случае успеха.
Входные параметры: RootKey, Name, Value
Выходные параметры: -
Рисунок 1. Дерево приложения
3.3. Формирование интерфейса приложения с использованием различных интерфейсных компонент для построения интерфейса программы.
Приводится список форм с указанием расположенных на них компонентов.
Образцы возможного интерфейса приложения приведены в Приложении 3.
3.4. Создание кодов модулей. Тестирование каждого модуля.
Интерфейс прикладного программирования WinAPI поддерживается самыми различными языками и средами программирования. Выбор конкретного языка программирования всецело определяется предпочтениями, умениями и навыками студента. Соответственно, качество разрабатываемого программного продукта следует проверять путем разработки тестов и проведения тестирования программных модулей (модульное тестирование) и приложения в целом (интеграционное тестирование).
Необходимо привести перечень тестов и результаты тестирования.
4. Указания к выполнению и оформлению заданий
При выполнении заданий в качестве справочного материала используются:
курс лекций МДК 1.3. "Системное программирование";
справочные системы ИСР;
информационные ресурсы Интернет
Результаты выполнения заданий предоставляются в электронном виде. Выполненные задания размещаются в рабочей папке, названной по фамилии студента. Каждое выполненное задание помещается в в свою папку.
Пример организации хранения выполненных заданий:
D
:
ИВАНОВ
Функции и их свойства.doc
Сценарий приложения.doc
Архитектура приложения.doc
Структуры модулей.doc
Формы.doc
ПРИЛОЖЕНИЕ
ТЕСТЫ
Файлы проекта
Файлы с описанием контрольных примеров
Приложение 1
Функции WinAPI - информация о системе
1) GetLogicalDrives
Функция GetLogicalDrives возвращает число-битовую маску в которой храняться все
доступные диски.
DWORD GetLogicalDrives(VOID);
Параметры:
Эта функция не имеет параметров.
Возвращаемое значение:
Если функция вызвана правильно, то она возвращает число-битовую маску в которой
храняться все доступные диски ( если 0 бит равен 1, то диск "A:" присутствует, и т.д. )
Если функция вызвана не правильно, то она возвращает 0.
Пример:
int n;
char dd[4];
DWORD dr = GetLogicalDrives();
for( int i = 0; i < 26; i++ )
{
n = ((dr>>i)&0x00000001);
if( n == 1 )
{
dd[0] = char(65+i); dd[1] = ':'; dd[2] = '\\'; dd[3] = 0;
cout << "Available disk drives : " << dd << endl;
}
}
2) GetDriveType
Функция GetDriveType возвращает тип диска (removable, fixed, CD-ROM,
RAM disk, или network drive).
UINT GetDriveType(LPCTSTR lpRootPathName);
Параметры:
lpRootPathName
[in] Указатель на не нулевую стоку в которой хранится имя
главной директории на диске. Обратный слэш должен присутствовать!
Если lpRootPathName равно NULL, то функция использует текущую директорию.
Возвращаемое значение:
Функция возвращает тип диска. Могут быть следующие значения:
Значение |
Описание |
DRIVE_UNKNOWN |
Не известный тип. |
DRIVE_NO_ROOT_DIR |
Не правильный путь. |
DRIVE_REMOVABLE |
Съёмный диск. |
DRIVE_FIXED |
Фиксированный диск. |
DRIVE_REMOTE |
Удалённый или network диск. |
DRIVE_CDROM |
CD-ROM диск. |
DRIVE_RAMDISK |
RAM диск. |
