Разработка приложения для Windows, осуществляющего поиск отпечатков пальцев

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    22,39 Кб
  • Опубликовано:
    2015-07-24
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка приложения для Windows, осуществляющего поиск отпечатков пальцев

Современная гуманитарная академия












Разработка приложения для Windows, осуществляющего поиск отпечатков пальцев

Содержание

Введение

. Разработка эскизного и технического проектов программы

.1 Задание

.2 Назначение и область применения

.3 Технические характеристики

.3.1 Постановка задачи

.3.2 Описание алгоритма

.3.3 Организация входных и выходных данных

.3.4 Выбор состава технических и программных средств

. Разработка рабочего проекта

.1 Разработка программы

.2 Спецификация программы

.3 Текст программы

.4 Описание программы

.5 Тестирование программы

. Внедрение

Заключение

Глоссарий

Список использованных источников

Введение

Актуальность данной темы состоит в том, что в свете последних событий, происходящих в мире, особенно в связи с ростом активности международного терроризма, вопросам безопасности уделяется все более пристальное внимание. Один из важнейших разделов безопасности - установление подлинности личности. Отпечатки пальцев были юридически приняты для идентификации личности более столетия назад, а опознание по отпечатку активно используется в криминологии уже с двадцатых годов прошлого века. Они уникальны для каждого индивидуума, не могут быть изменены и используются там, где недопустимы ошибки идентификации личности, например, в уголовном праве или при организации доступа с высшим уровнем защиты.

Исторически для снятия отпечатка пальца используются системы с оптическими датчиками, но долгое время они оставались весьма дорогостоящими, крупногабаритными и недостаточно надежными. В конце 90-х годов появление недорогих, основанных на иных принципах устройств для сбора данных об отпечатке пальца привело к прогрессу технологий идентификации личности по отпечатку - от ограниченного использования до широкого применения в ряде новых областей.

Цель данной работы - разработать приложения для Windows, осуществляющего поиск отпечатков пальцев.

Задачи:

1.      Разработать эскизный и технический проект программы

2.      Разработать технический проект

.        Определить особенности и этапы внедрения программы.

Средства реализации поставленной цели компоненты Delphi (RTL, Runtime Library) тип TList. Тип TList - тип-контейнер общего назначения.

1. Разработка эскизного и технического проектов программы

.1 Задание

Тема: Разработка приложения для Windows, осуществляющего поиск отпечатков пальцев.

Условия задачи:

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

Отпечаток пальцев может быть представлен кодом из 36 символов и 12 вещественных чисел, полученных в результате измерения отпечатка. Отпечатки пальцев считаются идентичными, если 35 символов из 36 совпадают и множества действительных чисел совпадают. Два действительных числа считаются "равными", если разница между ними составляет не более 5% от большего числа. Два множества измерений считаются совпадающими, если не менее 9 пар из 12 равны.

.2 Назначение и область применения

Программа предназначена для поиска отпечатков пальцев, идентичных данному отпечатку. Сфера применения: поиск отпечатков пальцев. Программа может использоваться только под Windows, хотя с использованием средств разработки Lazarus/Free Pascal может быть скомпилирована для работы на Linux, Mac OS X, FreeBSD.

1.3 Технические характеристики

.3.1 Постановка задачи

В задаче требуется вывести из базы информацию о всех лицах, чьи отпечатки пальцев совпадают с введёнными пользователем. Таким образом, нужно последовательно перебрать всю базу данных, сравнивая каждую запись с введённой пользователем, и вывести в качестве ответа те записи, которые совпали с введённой. Хранить данные во время выполнения программы предлагается в связном списке. Предлагается использовать реализованный в стандартной библиотеке компонентов Delphi (RTL, Runtime Library) тип TList. Тип TList - тип-контейнер общего назначения. Использованная в программе функциональность:.Create - конструктор.- поле, число элементов в списке.- метод, добавить элемент в список.- поле, позволяющее обращаться к элементам списка, например, [MyList.itemsfl]. Является свойством по-умолчанию, поэтому может быть заменено на [MyListfl].

.3.2 Описание алгоритма

Решение задачи состоит из единственного этапа - поиск записей, соответствующих вводу пользователя.

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

Рисунок 1 - Схема работы программы

Задача сводится к линейному поиску среди всех имеющихся в базе отпечатков пальцев тех, которые можно считать равными тем, которые задал пользователь. База загружается из текстового файла в связный список, данные пользователь вводит в компоненты типа TEdit, один для символов, и по одному для каждого вещественного числа. По нажатию кнопки "Поиск" программа последовательно перебирает всю базу данных, сравнивая каждую запись с введённой пользователем с помощью специальной функции сравнения и те записи, для которых функция покажет совпадение, включаются в список результатов поиска. Пользователю результат выдаётся в компоненте типа TLabel. Ответ состоит их числа совпадений в базе и последовательного перечисления всех совпавших записей, или же сообщения, что совпадений не найдено.

Процедура сравнения двух результатов измерений будет суммировать число совпавших символов и "условно равных" вещественных чисел. Для признания записей равными, первая сумма должна быть не меньше 35, вторая - не меньше 9.

Рисунок 2 - Схема работы алгоритма поиска

.3.3 Организация входных и выходных данных

Для текстового файлы базы данных предлагается следующий формат: в первой строке файла указано число записей в базе. Начиная со следующей строки расположены записи базы. Каждая запись представляет собой 4 строки: имя преступника, информация о нём, 36 символов, полученных измерением отпечатка пальца и 12 вещественных чисел.

Пример файла:

Иван Петров

Вор-рецидивист

2 5 34 -10,5 66,7 0,8 -9 1,2 20,02 66 3

Джон Смит

Американский шпион

10 11 12

Петр Сидоров

Дебошир

,1 1,2 1,3 1,4 1,1 1,2 1,3 1,4 1,1 1,2 1,3 1,4

Каждой отдельной записи соответствует объект класса Tperson. Объекты этого типа включаются в список.

Декларация класса:

=class private.Plnfo: string: // строка для имени и информации о преступнике

FingerprintChars: array[0..35] of char; // массив символов: array[0..11] of real; // массив вещественных чисел publicName: String read PName;Info: String read Plnfo;Create(const Name: String;Info: String;с: array of char;f: array of real);FChar(n:integer): char;FFIoat(n:integer): real;

function Textlnfo (): string; end;

.3.4 Выбор состава технических и программных средств

Сделан вывод о необходимости использования среды Delphi. Среда Delphi позволяет достаточно быстро разрабатывать приложения для Windows.

Именно эти параметры создают условия оплноценной работы IDE Delphi 3 и программ, созданных в этой среде. Дополнительных средств (принтер, сканер, дополнительные дисководы и т.д.) не требуется.

2. Разработка рабочего проекта

.1 Разработка программы

Для разработки используется среда визуального программирования Delphi.

Компонент Form 1.

Свойства:- bsSingle m Menu 2...13;mMenu -fa Bikini malize - false;false;

События - TForml .FormCreate - 1

Компонент SimbolsEdit

Свойства

Свойства-Text -"-36- 593

Событий нет.

..13 - компоненты fl..fl2

Свойства:- "- 33

Событий нет.

- компонент SearchButton

Свойства:- 'Поиск'

Событие:- TForml .SearchButtonClick

Конструктор Tperson.Create - создаёт экземпляр класса Tperson, хранящего информацию из одной записи в базе данных. Аргументы - имя преступника, информация о преступнике, массив символов, массив вещественных чисел.

constructor TPerson.Create(const Name: String; const Info: String; const с: array of char; const f: array of real);:integer;self.PName:=Name;.Plnfo:=info;i:=0 to 35 do beginself.FingerprintCharsp]:= c[i]; end;i:=0 to 11 do self.FingerprintFloatsfi]:= f[i]; end;

Методы для обращения к полям класса Tperson. Fchar(n) - получить n-тый символ отпечатка пальцев, Ffloat(n) -n-тое вещественное число. Textlnfo возвращает всю информацию о преступнике в виде одной строки.

function TPerson.FChar(n:integer): char;result:=self.fingerprintChars[n]; end;TPerson.FFIoat(n:integer): real;:=self.fingerprintFloats[n];;TPerson.TextlnfoO: string; vari.integer;.string;Ппр:='Имя:' + self.PName + #13#10 + 'Информация:' + self.Plnfo + #13#10 + 'Символы:';i:=0 to 35 do tmp:=tmp+FingerprintChars[i] +'';:=tmp+#13#10+'4Mcna:';:=0to 11 do tmp:=tmp+FloatToStr(FingerprintFloats[i]) +''; result:=tmp+#13#10;; end;

Функция ReadPerson считывает из файла, доступного через свободную переменную InputFile, одну запись базы данных, создаёт экземпляр класса Tperson с соответствующими параметрами конструктора и возвращает его посредством изменяемой переменной р. В случае удачного чтения возвращается true, иначе - false, function ReadPerson(var p.TPerson):

boolean;name,info: string; с: array[0..35] of char; F: array[0..11] of real;;if(Eof(lnputFile)) then result:=false else begin readln(lnputFile,name);(lnputFile,info);i:=0 to 35 do begin read(lnputFile,c[i]);;(lnputFile);:=0to 11 do begin read(lnputFile,f[i]);;(lnputFile);:=TPerson.Create(name,info,c,f);

result:=true; end;;

Функция Personcmp сравнивает две записи путём суммирования числа совпадающих символов и вещественных чисел. Процесс линейный.

Personcmp(const p1 ,p2:TPerson): boolean;,csum,fsum:integer;for i:=0 to 35 do begin if(p1.FChar(i)=p2.FChar(i)) then inc(csum); end;:=0to 11 do begin if(abs(p1 .FFIoat(i)-p2.FFIoat(i" <=abs(fmax(p1 .FFIoat(i),p2.FFIoat(i))*0.05)) then inc(fsum);; if((csum>=35) and (fsum>=9)) then result:=true else result:=false;

end;

Обработчик Tform 1. FormCreate вызывается при создании формы, т.е. при запуске приложения. Связывает глобальную переменную InputFile с файлом на диске, инициализирует глобальную переменную DataList, хранящую базу данных, считывает из файла количество записей и с помощью процедуры ReadPerson заполняет список данных. В конце в область вывода выводится сообщение о количестве записей в базе.

procedure TForml .FormCreate(Sender: TObject);,n,j:integer;:TPerson;AssignFile(lnputFile,'db.txt');_ist:=TList.Create;(lnputFile);(lnputFile,n);i:=1 to n do begin if(ReadPerson(tmp)) then DataList.Add(tmp);;on ElnOutError do ShowMessage('ct>aun с данными не найден.');;CloseFile(lnputFile);;.Text:='B базе '+lntToStr(DataList.Count)+' записей.' end;

Обработчик события Tforml.SearchButtonClick вызывается, когда пользователь, заполнив поля ввода, нажимает кнопку "Поиск". Процедура сначала создаёт массив FloatEdits для того, чтобы можно было в цикле обращаться ко всем 12 полям ввода проверяет, заполнены ли все поля, и если всё введено верно, создаёт экземпляр класса TPErson - sample, инициализирует его значениями, введёнными пользователем и запускает линейный поиск по базе. Найденные совпадения включаются в список Results. Если к концу работы цикла список пуст, в область вывода выводится сообщение об этом. Иначе, в область вывода выводится весь список найденных совпадений.

procedure TForm1.SearchButtonClick(Sender: TObject);

varkinteger;:TList;,tmp:TPerson;:array[0..35] of char;:array[0..11]of real;: array[1..12] of TEdit;:boolean;:string; begin FloatEdits[1]:=f1; FloatEdits[2]:=f2; FloatEdits[3]:=f3; FloatEdits[4]:=f4;[5]:=f5; FloatEdits[6]:=f6; FloatEdits[7]:=f7; FloatEdits[8]:=f8;[9]:=f9; FloatEdits[10]:=f10; FloatEdits[11]:=f11; FloatEdits[12]:=f12; BadFloatEdits:=false; for i:=1 to 12 do if(floatEdits[i].Text=") then BadFloatEdits:=true;(BadFloatEdits) then ShowMessage('He введено одно из чисел.') eise begin tryi:= 1 to 12 do f[i-1]:=StrToFloat(FloatEdits[i].Text);on EConvertError do BadFloatEdits:=true; end;:=SymbolsEdit.Text;(BadFloatEdits or (length(UnneededString)<>36)) then ShowMessage('HeflOCTaT04HO символов или неверное значение в поле "число".') else begin for i:=1 to 36 do c[i-1]:=SymbolsEdit.Text[i];:=TPerson.Create(",",c,f);:=TList.Create;i:=0 to DataList. Count-1 do begin if(PersonCmp(sample,DataList[i]))then Results.Add(DataList[i]);;(Results.Count=0) then OutputMemo.Text:='CoBnafleHnii не найдено.' else OutputMemo.Text:='CoBnaAeHHn:'+ lntToStr(Results.count)+#13#10; for i:=0 to Results.Count-1 do begin tmp:=Results[i];.Text:=OutputMemo.Text + tmp.Textlnfo + #13#10#13#10; end; end; end; end;

2.2 Спецификация программы

Таблица 1 - Спецификация программы

Наименование

Обозначение

Примечание

db.txt

файл базы данных

должен быть создан до запуска программы

Finger.exe

исполняемый файл программы

содержит машинный код

fmger.dpr

файл проекта

связывает все файлы, из которых состоит приложение

fmgerl.pas

файл программного модуля

определяет функциональность формы

finger l.dcu

объектный файл для finger 1 .pas

откомпилированная версия fmgerl.pas

fingerl.dfm

Файл формы

список компонентов, включённых в форму

finger.res

файл ресурсов

содержит пиктограммы, графические изображения

finger.dof

файл параметров проекта

содержит текущие установки проекта

finger, dsk

файл, содержащий desktop-настройки

содержит информацию о том, какие окна открыты


.3 Текст программы

Interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

Type TForml = class(TForm) SymbolsHelp: TLabel; FloatsHelp: TLabel; SearchButton: TButton;: TMemo; f9: TEdit; f10:TEdit; f 11: TEdit; fl 2: TEdit; f 1: TEdit; f2: TEdit; f3: TEdit; f4: TEdit; f5: TEdit; f6: TEdit; f7: TEdit; f8: TEdit;: TEdit;FormCreate (Sender: TObject);SearchButtonClick(Sender: TObject);{Private declarations} public {Public declarations} end;=class private PName.Plnfo: string;: array[0..35] of char;: array[0..11] of real;property Name : String read PName;Info : String read Plnfo;Create(const Name: String; const Info: String;с: array of char; const f: array of real);FChar(n:integer): char;FFIoat(n:integer): real;Textlnfo(): string; end; var Forml: TForml;: TextFile; DataList: TList;{$R *.dfm} constructor TPerson.Create(const Name: String;Info: String;с : array of char;f: array of real);i:integer;.PName:=Name;.Plnfo:=info;i:=0 to 35 do beginself.FingerprintCharsfi] := c[i]; end;:=0to 11 do self.FingerprintFloatsfi] := f[i]; end;TPerson.FChar(n:integer): char;result:=self.fingerprintChars[n];;TPerson.FFIoat(n:integer): real;:=self.fingerprintFloats[n];;TPerson.TextlnfoO : string;: integer;:string;тр:='Имя:' + self.PName + #13#10 + 'Информация:' + self.Plnfo + #13#10 + 'Символы:';i:=0 to 35 do tmp:=tmp+FingerprintChars[i] +'';:=tmp+#13#10+'4ncna:';:=Oto 11 do tmp:=tmp+FloatToStr(FingerprintFloats[n) +'';:=tmp+#13#10;; end;ReadPerson(var p:TPerson): boolean; var name.info: string; с : array[0..35] of char;: array[0..11] of real; i:integer; begin if(Eof(lnputFile)) thenresult:=false else beginreadln(lnputFile,name);(lnputFile,info);i:=0 to 35 dobegin read(lnputFile.c[i]);;(lnputFile);:=0to11 dobegin read(lnputFile,f[i]);;(lnputFile);:=TPerson.Create(name,info,c,f);:=true; end;;fmax(a,b:real):real; begin if(a>b) then result:=aelse result;=b; end;Personcmp(const p1 ,p2;TPerson): boolean; var i,csum,fsum:integer; begin csum:=0; fsum:=0; for i;=0 to 35 do begin if(p1.FChar(i)=p2.FChar(i)) then inc(csum);;:=0to 11 do begin if(abs(p1 .FFIoat(i)-p2.FFIoat(i)) <=abs(fmax(p1 .FFIoat(i),p2.FFIoat(i))*0.05)) then inc(fsum); end; if((csum>=35) and (fsum>=9)) thenresult;

=true else result:=false;;TForm1.FormCreate(Sender; TObject);,n,j:integer;;;(lnputFile,'C:\db.txt');;=TList.Create;Reset(lnputFile);(lnputFile,n);i:=1 to n do begin if(ReadPerson(tmp)) then DataList.Add(tmp);;on ElnOutError do ShowMessage('<t>aMn с данными не найден.');;CloseFile(lnputFile);;.Text:='B базе '+lntToStr(DataList.Count)+' записей, {for i:=0 to DataList.Count-1 do begin tmp:=DataList[i];.Text:=OutputMemo.Text+ tmp.Textlnfo;;

}end;TForm1.SearchButtonClick(Sender: TObject);;:TList;,tmp:TPerson;:array[0..35] of char;:array[0..11] of real;: array[1..12] of TEdit;:boolean;:string; begin[1]:=f1;[2]:=f2;[3]:=f3;[4]:=f4;[5]:=f5;[6]:=f6; FloatEdits[7]:=f7;[8]:=f8;[9]:=f9;[10]:=f10;[11]:=f11;[12]:=f12;:=false;i:=1 to 12 do if(floatEdits[i].Text=") then BadFloatEdits:=true;(BadFloatEdits) then ShowMessage('He введено одно из чисел.') else begin try for i:= 1 to 12 do[i-1]:=StrToFloat(FloatEdits[i].Text);on EConvertError do BadFloatEdits:=true; end;:=SymbolsEdit.Text;(BadFloatEdits or (length(UnneededString)<>36)) then ShowMessage('HeflocTaT04HO символов или неверное значение в поле "число".') else begin for i:=1 to 36 do c[i-1]:=SymbolsEdit.Text[i];:=TPerson.Create(",",c,f);:=TList.Create;i:=0 to DataList.Count-1 do begin if(PersonCmp(sample,DataList[i])) then Results.Add(DataList[i]);;(Results.Count=0) then OutputMemo.Text-'Совпадений не найдено.' else OutputMemo.Text:='CoBnafleHMvi:'+ lnffoStr(Results.count)+#13#10; for i:=0 to Results.Count-1 do begin tmp:=Results[i];.Text:=OutputMemo.Text + tmp.Textlnfo + #13#10#13#10;

end;;;;.

программа идентификация отпечаток алгоритм

Общие сведения

Программа называется Finger. Программа написана на языке ObjectPascal в среде Delphi. Для функционирования программы требуется операционная система Windows.

Функциональное назначение: поиск по базе данных отпечатков пальцев, совпадающих с введёнными.

Описание логической структуры:

В программе использован метод линейного поиска. Две основных части программы - обработчикии SearchButtonClick. Первый строит в памяти связный список базы данных, используя для чтения функцию ReadPerson, второй же ищет в ней данные, совпадающие с введёнными пользователем, вызывая функцию Personcmp для сравнения записей.

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

Компьютеры с архитектурой процессора х86.

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

Открыть каталог с программой и щёлкнуть на значке Finger,exe двойным щелчком.

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

Для текстового файлы базы данных предлагается следующий формат: в первой строке файла указано число записей в базе. Начиная со следующей строки расположены записи базы. Каждая запись представляет собой 4 строки: имя преступника, информация о нём, 36 символов, полученных измерением отпечатка пальца и 12 вещественных чисел. Кодировка: однобайтная, ср1251.

.5 Тестирование программы

При разработке программы Finger в качестве тестового может быть использован пример, приведённый в разделе "Постановка задачи".

3. Внедрение

Условия выполнения программы: Pentium 100 и выше, объём оперативной памяти не менее 8 Мб, жёсткий диск объёмом не менее 500 Мб. Дополнительных средств (принтер, сканер, дополнительные дисководы и т.д.) не требуется. Выполнение программы: чтобы запустить программу, необходимо перейти в каталог с ней, и щёлкнуть на её значке двойным щелчком. Чтобы завершить программу, необходимо её открыть, а затем щёлкнуть одинарным щелчком на кнопе "Закрыть". База данных должна быть соответствующим образом оформлена в файле db.txt, находящемся в одном каталоге с программой, запись для поиска должна быть введена в соответствующие поля ввода.

Сообщения оператору:

'Файл с данными не найден.' - в каталоге отсутствует файл db.txt, или его содержимое не соответствует формату.

'Не введено одно из чисел.' - хотя бы в одном поле для ввода вещественных чисел fl - f 12 допущена ошибка.

'Недостаточно символов или неверное значение в поле "число".' - неверно заполнено поле ввода символов, или одно из полей ввода вещественных чисел.

Заключение

Данная программа является типичным примером реализации простейших программ созданных для Windows с помощью Delphi.

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

Недостаток программы в том, что при наборе очень сложных функций одновременно программа выдает ошибку набора. Поэтому чтобы избежать этой ошибки необходимо соблюдать последовательность и правильность набора команд.

Глоссарий

Термин

Определение

Отпечаток пальцев

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

Список

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

Автоматизированный информационный поиск

 информационный поиск с использованием ЭВМ.

Информационный массив

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

Автоматизированный документальный поиск

документальный поиск с использованием ЭВМ.

Идентификация

установление тождества объектов на основе совпадения их признаков.

Узнавание

опознание в качестве уже известного объекта, который находится в центре актуального восприятия.

Процесс узнавания

основан на сличении воспринимаемых признаков с соответствующими следами памяти, которые выступают в качестве эталонов опознавательных признаков воспринимаемого предмета. Различают: - индивидуальное узнавание, как повторное восприятие именно данного предмета; и - родовое узнавание, когда вновь воспринимаемый предмет может быть отнесен к некоторому классу предметов.

Информационный запрос

входное сообщение в автоматизированную систему, содержащее требование на выдачу информации.


Список использованных источников

1. Delphi 2007: Самоучитель: Среда быстрой разработки; Язык Delphi Language; Разработка интерфейса и др. Изд. 4-е, доп., перераб. - М.: АСТ, 2008.

. Delphi 2007: Среда быстрой разработки приложений; Язык программирования Delphi Language; Разработка интерфейса пользователя и др. Изд. 3-е, доп., перераб. - М.: АСТ, 2008.

. Delphi 7: Визуальная разработка приложений; Свойства, методы, классы, компоненты; Технология создания информационных система; Локальные и удаленные базы данных; Публикация баз данных в Интернете: Наиболее полное руководство (под ред. Хомоненко А.Д.). - М.: Академия, 2007.

. Александовский А.Д. Технология программирования. Рыбинск, РГАТА, 2002.

. Александровский А.Д. Delphi 4. Шаг в будущее. - М.: ДМК, 2006.

. Архангельский А.Я. Delphi 2006. Справочное пособие. - М.: Стенд, 2006.

. Дарахвелидзе П., Марков Е. Программирование в Delphi 4. - СПб.: БХВ - Спб, 2006.

. Зиглер К. Методы проектирования программных систем. - М.: Мир, 2002.

. Йордан Э. Структурное проектирование и конструирование программ.- М.: Мир, 2000.

. Кинг Д. Создание эффективного программного обеспечения: Пер. с англ. - М.: Мир, 2003.

. Коутс Р.И. Влейминк. Интерфейс "человек-компьютер". - М.: Мир, 2000.

. Официальный сайт Delphi // www.delphiworld.ru

. Теория и практика структурного программирования / Р. Лингер, Х. Миллс, Б. Уитт, - М.: Мир, 2005.

. Фаронов В.В. Delphi 4. Учебный Курс. - М.: Нолидж, 1998.

Похожие работы на - Разработка приложения для Windows, осуществляющего поиск отпечатков пальцев

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!