![]() |
|
|
Курсовая работа: Разработка вспомогательной системной программы в системе программирования Delphi с использованием средств WinApiСхема 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
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.
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.
4) Тестирование процедуры, считывающей таблицу разделов носителя(событие «С3» - происходит при нажатии на кнопку «Считать Partition Table»), к которому принадлежит ,выбранный из выпадающего списка логический диск |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое. |
||
При использовании материалов - ссылка на сайт обязательна. |