Вступ
Для більш швидкого та повного розслідування злочинів повязаних з автотранспортом потрібно володіти якомога більшими відомостями. Таким чином, якщо ми маємо транспорт який причетний до аварії чи злочину, за допомогою програми яка розробляється в темі даної курсової роботи ми будимо мати повні і необхідні дані про власника авто
Призначення даного продукту полегшення то швидкість доступу до інформації.
Я вибрав мову програмування Turbo Pascal, з метою закріплення своїх навиків з програмування.
1. Основна частина
1.1 Неформальна постановка задачі
Розробити програму - «водій» для збереження повноти інформування правоохоронних органів, та швидкості її надання.
üВведення і збереження інформації про власників автотранспорту в типізований файлі:
oПІБ власника автотранспорту
oНазва та марка авто
oПаспортні дані водія;
oАдреса прописки.
üМожливість редагування даної бази по певним структурним елементам
üМожливість перегляду всіх існуючих документів
üМожливість видалення всієї бази.
üЗручний інтерфейс для користувача
üШвидкість та простота роботи в даній програмі
üНадійність та достовірність збережених відомостей
1.2 Формальна постановка задачі
Вихідні дані:
Позначимо сукупність всіх даних, які будуть заноситись до бази даних через множину T, таким чином T={T1,T2,…, Tі}, де і=1..n, Tі - дані про власників авто.
Кожен власник має певні відомості про себе, що стосуються його особистості, отже маємо Ті={Ті1,Ті2,…, Тіj}, j=1..4.
Таким чином ми маємо матрицю всіх відомостей які зберігаються в базі даних, та заносяться користувачем.
Результат:
Множина Рij, яка формуються з вхідних даних а саме множини Тij
Математична модель:
Вk - критерій який використовується для пошуку, де k - номер критерія з зазначених чотирьох. Таким чином отримуємо множину Zij Aij, де Zij відповідає заданому критерію Вk
1.3 Структура зберігаючих даних
B - структурована запис для занесення відомостей про власників авто до типізованого файлу.
·Av - поле запису строкового типу для занесення марки автомобіля власника.
·Fio - поле запису строкового типу для занесення прізвища, імя та по-батькові власника.
·Pas - поле запису строкового типу для занесення паспортних даних власника.
·Mg - поле запису строкового типу для занесення адреси проживання.
Ramka - процедура яка забезпечує прорисовку рамки.
Ris - процедура яка прорисовує основне меню програми.
Menin - процедура яка забезпечує управління головним меню
Punkt - процедура для зарисовки певної області
Vv - процедура для введення та збереження даних
Red - процедура для редагування збережених раніше відомостей
Udal - процедура для видалення всієї бази.
2. Вихідний код програми
uses crt, dos;
type b=record
av:string[10];
fio, pas, mg:string[15];
end;
var f:file of b; bas:b;
procedure ramka (x1, y1, x2, y2, a:byte);
var i:integer;
begin
textcolor(0);
window (x1, y1, x2, y2);
textbackground(a);
clrscr;
write('Й');
for i:=1 to (x2-x1) - 1 do
begin
write('Н');
end;
write ('» ');
for i:=2 to (y2-y1) - 1 do
begin
gotoxy (1, i);
write('є');
gotoxy (x2-x1+1, i);
write('є');
end;
write('И');
for i:=1 to (x2-x1) - 1 do
begin
write('Н');
end;
write('ј');
end;
{-}
procedure newreadkey (var a {зЁвлў Ґ¬л© Є®¤ бЁ¬ў®»}:char;
var b {ђ §иЁаҐл© Є®¤ Є» ўЁиЁ}:byte);
begin
b:=0;
a:=readkey;
if a=#0 then
b:=ord(readkey);
end;
{-}
procedure ris;
begin
ramka (10,3,30,7,7);
ramka (10,6,30,10,7);
ramka (10,9,30,13,7);
ramka (10,12,30,16,7);
window (10,3,30,16);
gotoxy (1,4); write(#204);
gotoxy (1,7); write(#204);
gotoxy (1,10); write(#204);
gotoxy (21,4); write(#185);
gotoxy (21,7); write(#185);
gotoxy (21,10); write(#185);
end;
{-}
procedure menin (x1, y1, x2, y2, a:byte);
begin
window (x1, y1, x2, y2);
textbackground(a);
clrscr;
textcolor(1);
write (' Zapolnit');
window (x1, y1+3, x2, y2+3);
clrscr;
write (' Redaktirovat');
window (x1, y1+6, x2, y2+6);
clrscr;
write (' Udalit');
window (x1, y1+9, x2, y2+9);
clrscr;
write (' Vixod');
end;
{-}
procedure punkt (x, y, z, c, q:byte; s:string);
begin
window (x, y, z, c);
textbackground(q);
clrscr;
textcolor(10);
write(s);
end;
procedure pamka (x1, y1, x2, y2:integer);
var i, c:integer;
begin
gotoxy (x1, y1);
write(#201);
for i:=1 to x2-x1-1 do
begin
gotoxy (x1+i, y1);
write(#205);
end;
gotoxy (x2, y1);
write(#187);
for i:=1 to y2-y1-1 do
begin
gotoxy (x2, y1+i);
write(#186);
end;
gotoxy (x2, y2);
write(#188);
for i:=1 to x2-x1-1 do
begin
gotoxy (x2-i, y2);
write(#205);
end;
gotoxy (x1, y2);
write(#200);
for i:=1 to y2-y1-1 do
begin
gotoxy (x1, y1+i);
write(#186);
end;
end;
procedure vv;
var i, n:integer;
begin
window (1,1,40,25);
textbackground(0);
clrscr;
textcolor(2);
pamka (1,1,39,25);
window (2,2,38,25);
gotoxy (6,1);
textcolor(6);
writeln ('ZAPOLNENIE UCHOTA VODITELEY');
window (2,3,38,25);
textcolor(7);
write ('Vvedi kol-vo voditeley - ');
readln(n);
assign (f, 'd:\po');
rewrite(f);
for i:=1 to n do
begin
with bas do
begin
clrscr;
gotoxy (8,1);
writeln ('VODITEL-', i);
write ('Vvedi F.I.O voditela - '); readln(fio);
write ('Vvedi avto na kotorom on ezdiet - '); readln(av);
write ('Vvedi seriu i nimer pasporta voditela - '); readln(pas);
write (' Vvedi adres progivania - '); readln(mg);
seek (f, filesize(f));
write (f, bas);
end;
close(f);
end;
end;
procedure punkt (x, y, z, c, q:byte; s:string);
begin
window (x, y, z, c);
textbackground(q);
clrscr;
textcolor(10);
write(s);
end;
procedure pamka (x1, y1, x2, y2:integer);
var i, c:integer;
begin
gotoxy (x1, y1);
write(#201);
for i:=1 to x2-x1-1 do
begin
gotoxy (x1+i, y1);
write(#205);
end;
gotoxy (x2, y1);
write(#187);
for i:=1 to y2-y1-1 do
begin
gotoxy (x2, y1+i);
write(#186);
end;
gotoxy (x2, y2);
write(#188);
for i:=1 to x2-x1-1 do
begin
gotoxy (x2-i, y2);
write(#205);
end;
gotoxy (x1, y2);
write(#200);
for i:=1 to y2-y1-1 do
begin
gotoxy (x1, y1+i);
write(#186);
end;
end;
{………………………………………….}
procedure red;
var i, j, p:integer;
begin
window (1,1,40,25);
textbackground(0);
clrscr;
textcolor(7);
if FSearch ('po', 'd:\')='' then
begin
window (1,1,40,25);
textbackground(0);
clrscr;
pamka (10,10,35,15);
gotoxy (16,11);
textcolor(132);
writeln ('BASA NE SOZDANA');
textcolor(7);
end
else
begin
clrscr;
window (1,1,40,25);
textcolor(6);
pamka (1,1,39,25);
gotoxy (5,2);
textcolor(3);
writeln ('REDAKTIROVANIE UCHOTA VODITELEY');
window (2,3,38,25);
assign (f, 'd:\po');
reset(f);
gotoxy (13,1);
textcolor(4);
writeln ('VSA BASA:');
window (2,4,38,25);
for i:=0 to filesize(f) - 1 do
begin
seek (f, i);
read (f, bas);
with bas do
begin
clrscr;
textcolor(7);
writeln ('voditel-', i+1); writeln;
writeln ('F.I.O voditela-', fio); writeln;
write ('Avto na kotorom on ezdiet-', av); writeln;
write ('Seria i nomer pasporta voditela-', pas); writeln;
write ('Adres progivania-', mg); writeln;
for j:=1 to 30 do
delay(9999);
end;
end;
clrscr;
write ('Vvedi nomer voditela kotorogo budem redaktiovat - '); readln(p);
seek (f, p-1);
read (f, bas);
with bas do
begin
clrscr;
textcolor(7);
writeln ('voditel-', p); writeln;
writeln ('F.I.O voditela-', fio); writeln;
write ('Avto na kotorom on ezd