скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыКурсовая работа: Разработка вспомогательной системной программы в системе программирования Delphi с использованием средств WinApi

5)  Описание события «Событие 5». Сохранение истории переписки участников чата.

Событие наступает при нажатии на кнопку: . При нажатии на эту кнопку появляется диалоговое окно , где предлагается задать имя файлу и каталог, в котором этот файл будет сохранён, далее происходит ассоциирование созданного файла с файловой переменной и открытие этого файла для записи. Построчно текст из поля истории переписки заносится в строковую переменную , а затем в файл. Алгоритм обработчика события данной процедуры представлен на схеме(блок схема 2.6).


Блок схема 2.6. Алгоритм обработчика события «Событие 5».

6)  Описание события «Событие 6». Это событие происходит по нажатию кнопки. При этом происходит вызов предметного указателя файла справки, который находится в рабочем каталоге приложения.

7)  Описание события «Событие7». Происходит по нажатию на кнопку «Закрыть».Алгоритм обработчика представлен на схеме (блок схема 2.7).


Блок схема 2.7 обработчик события «Событие7».

8)  Описание события «Событие8». Это событие происходит по нажатию на кнопку: . При этом происходит создание третьей формы приложения, переход на которую является третьим этапом построения приложения. Алгоритм обработчика события представлен на схеме (блок схема 2.8).

Блок схема 2.7.

Этап3

На этом этапе происходит переход к третьему окну приложения. На данном этапе реализуется вторая часть задания на курсовой проект – анализ служебной области системного диска: Форма3 приложения OffClient имеет заголовок «Служебная информация о системных носителях» её вид представлен на рисунке 3.


Рисунок 3. Окно отображения служебной информации о носителе.

При работе с данной формой возникает 4 события:

С1-начать работу с диском

С2-Считать BPB (Блок параметров BioS)

C3-Счтать Partition Table.(Таблицу разделов диска).

С4-Закрытие формы. Данное событие имеет стандартный обработчик. Его описание опущено.

Алгоритм обработки событий для третьей формы приложения.

Глобальные переменные:

hDrive,hMBRDrive: THandle; - Дескрипторы дисков для работы с главной загрузочной записью носитель и блоком параметров Bios.

DiscGeometry:TDiscGeometry; - Структрура DiscGeometry Имеет в своём составе такие поля как количество секторов на дорожке , количество дорожек на носителе , количество байт в секторе,

1)  Описание события С1. Данное событие происходит при нажатии на кнопку

«Начать работу с диском». Если дескрипторы дисков уже существуют, то происходит их уничтожение. Далее происходит создание новых дескрипторов дисков. Если дескрипторы создаются успешно, то происходит заполнение структуры Disk Geometry, в полях которой содержатся данные о диске и вывод их в соответствующее поле. Если дескрипторы создать не удалось, то выводится сообщение об ошибке.

Алгоритм обработки данного события представлен на схеме1.

Схема 1 - Алгоритм работы обработчика события С1.

2)  Описание события С2: Данное событие происходит по нажатию на кнопку

«Считать BPB», после этого происходит обработка этого события. Данные из дескриптора диска читаются в буфер, эти данные располагаются в первом секторе логического диска. Если данные считаны, то происходит заполнение специальных таблиц данными из этого буфера, если нет, то выводится специальное сообщение о том, что данные прочитать не удалось.

Алгоритм обработчика этого события представлен на схеме2.


Схема2 –Обработчик события С2. «Считывание блока параметров BIoS»

3)  Описание события С3. Данное событие аналогично предыдущему, за исключением сектора который необходимо прочитать. Данное событие реализуется при нажатии на кнопку «считать Partition Table». Конструктивно данный алгоритм идентичен предыдущему – данные из первого сектора носителя данных читаются в буфер, если они успешно прочитаны происходит заполнение соответствующих страниц данными, если нет, то выводится сообщение о том, что данные не удалось считать в буфер. Алгоритм обработчика события представлен на схеме3.


Дополнительные структуры и алгоритмы

В данном разделе будут рассмотрены дополнительные логические структуры приложения:

1)  Алгоритм работы потока «приёмника» (программно ThreadReceiver)

2)  Алгоритм работы модуля, определяющего все активные носители, присутствующие в системе.(программно расположена в модуле HDDInfo).

1)  Алгоритм работы потока «приёмника» представлен на схеме 4. Описание алгоритма: В потоке организуется бесконечный цикл(пока поток не остановлен) в этом цикле проверяется некоторое событие, сигнализирующее потоку о том, что данные записаны в файл. После того как событие перешло в сигнальное состояние происходит его обратный сброс в несигнальное состояние. Затем происходит проецирование файла, переменная которого уже создана при запуске основной программы, на адресное пространство процесса. Если проекция создана, то данные читаются из файла и передаются в основную форму программы, а точнее в поле истории переписки. Если создать проекцию не удалось то появляется соответствующее сообщение.

Схема 4 – Алгоритм работы потока «приёмника».


2)  Описание алгоритма работы модуля, определяющего все активные носители в системе. Алгоритм работы представлен на схемах 5,6,7 и 8.

1. Описание алгоритма (схема5): При выполнении функции, реализующей данный алгоритм, в её теле происходит создание массива имён диско – массив латинских букв A-Z. После этого в цикле происходит считывание имён дисков присутствующих в системе и сравнивание этих имён с именами из массива. Если носитель с данным именем присутствует, то это имя возвращается в качестве результата работы функции.

Схема 5 –Алгоритм получения имени носителя, присутствующего в системе.

2. Описание алгоритма (схема6 ): Данный алгоритм необходим для верного определения номера системного носителя. Входными параметрами для этой функции является номер логического диска полученный с помощью API функции GetVolumeInformation. Данный номер считывается в строку и длина этой строки присваивается специальной переменной. Если значение этой переменной не равно восьми, происходит выход из процедуры, если и значение номера не меняется, если длина равна 8, то в цикле происходит изменение номера, считанного с помощью функции GetVolumeInformation, на правильный. В семействе ОС Windows в поздних версиях таких как «XP», «Vista» и «7» номер, полученный с помощью функции GetVolumeInformation является общим для всех носителей присутствующих в системе, хотя на практике это не является таковым.

Схема 6 –алгоритм работы функции, определяющей верный номер логического диска.


Данная функция необходима для правильного определения номера логического диска, если программа запущена под операционной системой Windows Xp , или более поздних.

Схема 7-Алгоритм процедуры для получения системной информации о логическом носителе.

Входным параметром для данной функции является имя логического диска, которое извлекается при вызове функции : GetDisk, алгоритм которой представлен на схеме 5.

3. Описание алгоритма (схема 8). Этот алгоритм реализуется при вызове функции, определяющей все присутствующие в системе диски, при запуске третьей формы программы(этап3). В данном алгоритме реализуется, сперва, вызов функции GetDisks, для получения имён всех дисков присутствующих в системе и записи этих имён в строку, далее в цикле происходит считывание символа из строки и получение с помощью функции GetVolumeInformation всех данных о диске с именем совпадающем со считанным символом. Если данные считаны , то происходи вывод их в специальную компоненту, если нет , то происходит заполнение полей отображающих данные о носителе нулевыми значениями.

Схема 8 – Алгоритм работы функции вызова процедуры получающей данные о всех активных носителях системы.

2.3.2 Логическая структура справочной системы.

Сначала в файле «текст справки.rtf» в редакторе MS Word составляется содержание разделов справки. Затем с помощью программы Microsoft Help Workshop создается оглавление справочной системы и проект. В оглавлении вводятся названия всех разделов и номера. В проекте указывается файл rtf, файл содержания, идентификаторам разделов сопоставляются номера и названия, устанавливаются настройки и производится компиляция. После компиляции создается файл справочной системы CПРАВКА.HLP.

Рисунок 3.1 - Пример раздела в файле «текст справки.rtf».


Рисунок 3.2 - Пример файла содержания справочной системы

.

Рисунок 3.3 - Пример файла проекта справочной системы


Рисунок 4.4 Пример окна справки.

2.3.3 Создание программы инсталлятора

Для создания инсталлятора использовалась программа InstallShield Express.

Рисунок 3.3.1 – Общая информация.

Рисунок 3.3.2 - Тип установки.


Рисунок 3.3.4 - Содержание устанавливаемых файлов проекта

Рисунок 3.3.5 - Создание ярлыков

Рисунок 3.3.6 - Выбор диалоговых окон.


Рисунок 3.3.7 - Программа установки.

Рисунок 3.3.8 - Ход установки.

Рисунок 3.3.9 - Окончание установки.


2.4 Используемые технические средства

При выполнении данной курсовой работы используется персональный компьютер операционной системой Windows7 с процессором IntelCore2Duo6300. Данный компьютер оснащен всеми устройствами необходимыми для работы в среде разработки Delphi 7 и последующем запуске полученных программ.

2.5 Вызов и загрузка

Вызов программы осуществляется выполнением приложения OffClient, ярлыки которого находятся на рабочем столе и панели программ Windows.

2.6 Входные данные

Входными данными в данной программе являются сообщения ,которые вы вводите в поле ввода сообщений. Также входными данными являются имена логических дисков, которые выбираются из выпадающего списка.

 

2.7 Выходные данные

Выходными данными в данном приложении являются:

Для первого задания это сообщения пришедшие от пользователей других копий программы, а также сообщения, которые были посланы из текущей версии приложения

Для второго задания выходными данными являются данные о системном носителе, который выбирается из списка доступных носителей. Эта информация отображается в полях и таблицах второй части программы.


3. Программа и методика испытаний

 

3.1 Объект испытаний

Объектом испытаний является приложение Redactor.exe.

 

3.2 Цель испытаний

Целью испытании приложения является выяснение возможных ошибок во время выполнения программы, которые не были обнаружены на стадии разработки.

3.3 Требования к программе

Требуется проверить работу логической и интерфейсной частей программ. А так же обеспечить контроль входных и выходных данных.

3.4 Требования к программной документации

В приложении необходимо запустить справочную систему.

3.5 Средства и порядок испытаний

Испытание приложения будет производиться 2-мя методами: “белым и черным ящиками”.


3.6 Методы испытаний

3.6.1 Тестирование методом белого ящика:

Прежде чем нумеровать текст программы, необходимо все циклы изменить на структурированные, сложные условия разбить на простые, а линейные части программы(по возможности) записать в одну строку. Затем строки текста функции нумеруются: номер получают только те строки, которые содержат операторы, условия или закрывающие операторные скобки.

1)  Тестирование процедуры выполняющей запись данных в проецируемый файл(2 этап выполнения программы). В данном случае это является первым заданием курсового проекта - обмен данными между приложениями с помощью файла проецируемого в память.

1инициализация

2if Edit1.Text <> '' then

Begin

WriteDataInMMF(Nicname+' Написал:'+#13#10+string(Edit1.Text));

(тело функции WriteDataInMMF(вхдными данными является строка S)

имеет следующий вид):

begin

3 WaitForSingleObject(HMutex, INFINITE);

PBaseAdress:=MapViewOfFile(HFileSender,FILE_MAP_WRITE,0,0,Length(s)+4);

4 if(PBaseAdress = nil) then

begin

5 CloseHandle(HFileSender);

st:='не удалось передать данные';

Application.MessageBox(st,'Сообщение...',MB_OK);

exit;

end;

begin

6 integer(PBaseAdress^):=length(s);

CopyMemory(Pointer(Integer(PBaseAdress)+4),PChar(s),length(s));

UnmapViewOfFile(PBaseAdress);

SetEvent(HEvent);

ReleaseMutex(HMutex);

7 end;

8 end;

9 Edit1.Text:='';

10 end

else

11 exit;

12 end;


Рисунок 4.1 – Потоковый граф обработчика события «Событие1» которое происходит при нажатии на кнопку «ОТПРАВИТЬ» на основной форме программы.

Цикломатическая сложность потокового графа:

1) V(G) = 3 региона;

2) V(G) = 13 дуг - 12 узлов + 2 = 3;

3) V(G) = 2 предикатных узла +1 = 3.

Базовое множество независимых линейных путей:

Путь 1:1-2-11-12 .

Путь 2: 1-2-3-4-5-12.

Путь 3: 1-2-3-4-5-6-7-8-9-10-12.

Таблица тестовых вариантов 4.1

пути

Исходные данные Ожидаемые результаты Реальные результаты
1 Строка содержащая, которая должна содержать текст сообщения пуста Не происходит отправки пустого сообщения Состояние программы после перехода на главную форму не
2 Не удалось отобразить файл на адресное пространство процесса при обращении к дескриптору файла , проецируемого в память.

Сообщение:

«Не удалось отобразить файл на адресное пространство процесса»..

Сообщение:

«Не удалось отобразить файл на адресное пространство процесса».

3 Текст сообщения: «Привет!» Появление текста «Привет!» в поле истории переписки. Удачный исход – появление текста «Привет!» в поле истории переписки

Страницы: 1, 2, 3, 4, 5, 6, 7


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.