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

Меню

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

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

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

2)  Тестирование процедуры выполняющей создание дескрипторов логического диска с

которым ведётся работа и дескриптора жёсткого диска которому принадлежит этот логический диск(3 этап выполнения программы ).

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

2 if hDrive <> 0 then

3CloseHandle(hDrive);

4 if hMBRDrive <> 0 then

5CloseHandle(hMBRDrive);

6 discNameBPB:='\\.\'+DriveComboBox1.Drive+':';

discNameMBR:='\\.\PHYSICALDRIVE'+intToStr(0);

hMBRDrive:= CreateFile(PChar(discNameMBR),GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);

hDrive:= CreateFile(PChar(discNameBPB),GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);

7 if (hDrive <> INVALID_HANDLE_VALUE) and (hMBRDrive <> INVALID_HANDLE_VALUE) then

begin

8 Result := DeviceIoControl(hDrive,IOCTL_DISK_GET_DRIVE_GEOMETRY,nil,0,

@DiscGeometry,SizeOf(TDiscGeometry),junk,nil) and (junk = SizeOf(TDiscGeometry));

DiscGeometryShow();

9 end

else

begin

10 ShowMessage('не удалось создать дескрипторы дисков');

11 exit;

end;

12 end;


Рисунок 4.2 Потоковый граф обработчика события «С1» которое происходит при нажатии на кнопку «Начать работу с диском»

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

1) V(G) = 4 регионов;

2) V(G) = 14 дуга - 12 узлов + 2 = 4;

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

Путь 1:1-2-4-6-7-10-11-12;

Путь 2:1-2-3-4-6-7-10-11-12.

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

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

пути

Исходные данные Ожидаемые результаты Реальные результаты
1 Дескрипторы файлов не созданы . Невозможно получить данные о носителе вывод сообщения: «Не удалось создать дескрипторы файлов»

Вывод сообщения

«Не удалось создать дескрипторы файлов»

2 Создан дескриптор файла BPB Невозможно получить данные о носителе вывод сообщения: «Не удалось создать дескрипторы файлов»

Вывод сообщения

«Не удалось создать дескрипторы файлов»

3 Создан дескриптор файла MBR Невозможно получить данные о носителе вывод сообщения: «Не удалось создать дескрипторы файлов»

Вывод сообщения

«Не удалось создать дескрипторы файлов»

4 Дескрипторы файлов существуют как MBR так и BPB Загрузка данных о носителе. Загрузка данных о носителе.

3)  Тестирование процедуры считывающей блок параметров Bios - событие «С2» (происходит при нажатии на кнопку «Считать BPB»)логического диска

дескриптор которого был создан в процедуре обрабатывающей событие «С1» при нажатии на кнопку «Начать работу с диском»

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

2IfReadSectors(hDrive,0,1,@buffer,DiscGeometry.BytesPerSector) = DiscGeometry.BytesPerSector then

begin

3for i:= 1 to 16 do

4Grid1.Cells[i,0]:=intToHex((i-1),1);

5i:=1; j:=1; k:=1;

6while k<=DiscGeometry.BytesPerSector do

begin

7 if i=1 then

8 Grid1.Cells[0,j]:=IntToHex(((j-1)*16+(i-1)),3);

9 Grid1.Cells[i,j]:=IntToHex(Buffer[k],2);

inc(k);

inc(i);

10 if i>16 then

begin

11 i:=1;

j:=j+1;

Grid1.RowCount:= Grid1.RowCount+1;

12end;

13end;

14{линейный блок расшифровки данных BPB}

end

else

15ShowMessage(‘не удалось считать BPB’);

16end

17end;

программа многопоточный приложение служебный


Рисунок 4.3 – Потоковый граф обработчика события С2 (Считывание блока параметров Bios).


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

1) V(G) = 6 регионов;

2) V(G) = 21дуг - 17 узлов + 2 = 6;

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

Путь 1:1-2-15-16-17;

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

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

Путь 4:1-2-3-4-5-6-7-9-10-11-12-13-14-16-17.

Путь 5:1-2-3-4-5-6-7-8-9-10-11-12-13-14-16-17.

Путь 6: 1-2-3-4-3-4-5-6-7-9-10-12-13-6-7-8-9-10-11-12-13-14-16-17.

пути

Исходные данные Ожидаемые результаты Реальные результаты
1 Не удалось считать сектор BPB . Вывод сообщения о том, что считать BPB не удалось Вывод сообщения: « не удалось считать BPB»
2 Часть данных считана , при этом номер строки остаётся прежним и номер элемента строки не достиг 16. Вывод данных в таблицу, содержащую данные о BPB,например команду перехода на программу загрузки: «EB0090h» Вывод данных в таблицу, содержащую данные о BPB: команда перехода на программу загрузки: «EB0090h»
3 Чтение данных началось и строка получила значение Вывод данных в таблицу, содержащую данные о BPB,например команду перехода на программу загрузки: «EB0090h» Вывод данных в таблицу, содержащую данные о BPB: команда перехода на программу загрузки: «EB0090h»
4 Строка считана и номер элемента в строке достиг 16 Вывод данных в таблицу, содержащую данные о BPB,например команду перехода на программу загрузки: «EB0090h» Вывод данных в таблицу, содержащую данные о BPB: команда перехода на программу загрузки: «EB0090h»
5 Строка получила номер и элемент в строке достиг 16 Вывод данных в таблицу, содержащую данные о BPB,например команду перехода на программу загрузки: «EB0090h» Вывод данных в таблицу, содержащую данные о BPB: команда перехода на программу загрузки: «EB0090h»
6 Чтение данных из буфера в течении нескольких проходов циклов с изменением номера строк и столбцов таблицы , содержащей значения BPB Пошаговый вывод данных в таблицу содержащую 16рмчные значения и вывод данных в таблицу содержащую расшифрованные значения Обе таблицы «Шестнадцатиричное представление BPB логического диска» и «Расшифровка блока параметров BIOS» заполняются необходимыми значениями

4)  Тестирование процедуры, считывающей таблицу разделов носителя(событие «С3» - происходит при нажатии на кнопку «Считать Partition Table»), к которому принадлежит ,выбранный из выпадающего списка логический диск

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

2Memo2.Clear;

3If.ReadSectors(hMBRDrive,0,1,@buffer,DiscGeometry.BytesPerSector)= DiscGeometry.BytesPerSector then

begin

4for i:= 1 to 16 do

5Grid2.Cells[i,0]:=intToHex((i-1),1);

6i:=1; j:=1; k:=1;

7while k<=DiscGeometry.BytesPerSector do

begin

8if i=1 then

9Grid2.Cells[0,j]:=IntToHex(((j-1)*16+(i-1)),3);

10Grid2.Cells[i,j]:=IntToHex(Buffer[k],2);

inc(k);

inc(i);

11if i>16 then

begin

12 i:=1;

j:=j+1;

Grid2.RowCount:= Grid2.RowCount+1;

13 end;

14end;

begin

15{Линейный блок расшифровки значений полученных в буфере после чтения сектора}

16end

else

17ShowMessage('Не удалось считать блок PartitionTable');

18end;


Рисунок 4.4 – Потоковый граф обработчика события «С3» (кнопка «Считать PartitionTable »)


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

1) V(G) = 6 регионов;

2) V(G) = 22 дуга - 18 узлов + 2 = 6;

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

Путь 1:1-2-17-18;

Путь 2:1-2-3-4-5-6-7-8-10-11-13-14-15-16-18;

Путь 3:1-2-3-4-5-6-7-8-9-10-11-13-14-15-16-18;

Путь 4: 1-2-3-4-5-6-7-8-10-11-12-13-14-15-16-18;

Путь 5: 1-2-3-4-5-4-5-6-7-8-9-10-11-13-14-15-16-18;

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


Новости

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

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

Пока нет

Новости в Twitter и Facebook

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

Новости

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

© 2010.