Вступ
Для більш швидкого та повногорозслідування злочинів пов’язаних з автотранспортом потрібно володіти якомогабільшими відомостями. Таким чином, якщо ми маємо транспорт який причетний доаварії чи злочину, за допомогою програми яка розробляється в темі даноїкурсової роботи ми будимо мати повні і необхідні дані про власника авто
Призначення даного продуктуполегшення то швидкість доступу до інформації.
Явибрав мову програмування 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;
typeb=record
av:string[10];
fio,pas, mg:string[15];
end;
varf:file of b; bas:b;
procedureramka (x1, y1, x2, y2, a:byte);
vari:integer;
begin
textcolor(0);
window(x1, y1, x2, y2);
textbackground(a);
clrscr;
write('Й');
fori:=1 to (x2-x1) – 1 do
begin
write('Н');
end;
write('» ');
fori:=2 to (y2-y1) – 1 do
begin
gotoxy(1, i);
write('є');
gotoxy(x2-x1+1, i);
write('є');
end;
write('И');
fori:=1 to (x2-x1) – 1 do
begin
write('Н');
end;
write('ј');
end;
{–}
procedurenewreadkey (var a {‘зЁвлў Ґ¬л© Є®¤ бЁ¬ў®»}:char;
varb {ђ §иЁаҐл© Є®¤ Є» ўЁиЁ}:byte);
begin
b:=0;
a:=readkey;
ifa=#0 then
b:=ord(readkey);
end;
{–}
procedureris;
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;
{–}
proceduremenin (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;
{–}
procedurepunkt (x, y, z, c, q:byte; s:string);
begin
window(x, y, z, c);
textbackground(q);
clrscr;
textcolor(10);
write(s);
end;
procedurepamka (x1, y1, x2, y2:integer);
vari, c:integer;
begin
gotoxy(x1, y1);
write(#201);
fori:=1 to x2-x1–1 do
begin
gotoxy(x1+i, y1);
write(#205);
end;
gotoxy(x2, y1);
write(#187);
fori:=1 to y2-y1–1 do
begin
gotoxy(x2, y1+i);
write(#186);
end;
gotoxy(x2, y2);
write(#188);
fori:=1 to x2-x1–1 do
begin
gotoxy(x2-i, y2);
write(#205);
end;
gotoxy(x1, y2);
write(#200);
fori:=1 to y2-y1–1 do
begin
gotoxy(x1, y1+i);
write(#186);
end;
end;
procedurevv;
vari, 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);
fori:=1 to n do
begin
withbas 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;
procedurepunkt (x, y, z, c, q:byte; s:string);
begin
window(x, y, z, c);
textbackground(q);
clrscr;
textcolor(10);
write(s);
end;
procedurepamka (x1, y1, x2, y2:integer);
vari, c:integer;
begin
gotoxy(x1, y1);
write(#201);
fori:=1 to x2-x1–1 do
begin
gotoxy(x1+i, y1);
write(#205);
end;
gotoxy(x2, y1);
write(#187);
fori:=1 to y2-y1–1 do
begin
gotoxy(x2, y1+i);
write(#186);
end;
gotoxy(x2, y2);
write(#188);
fori:=1 to x2-x1–1 do
begin
gotoxy(x2-i, y2);
write(#205);
end;
gotoxy(x1, y2);
write(#200);
fori:=1 to y2-y1–1 do
begin
gotoxy(x1, y1+i);
write(#186);
end;
end;
{………………………………………….}
procedurered;
vari, j, p:integer;
begin
window(1,1,40,25);
textbackground(0);
clrscr;
textcolor(7);
ifFSearch ('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);
fori:=0 to filesize(f) – 1 do
begin
seek(f, i);
read(f, bas);
withbas 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;
forj:=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);
withbas do
begin
clrscr;
textcolor(7);
writeln('voditel-', p); 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;
end;
writeln;
textcolor(4);
writeln('Dla prestuplenia k redaktirovaniu nagmi «ENTER» ');
readln;
textcolor(7);
withbas do
begin
clrscr;
gotoxy(8,1);
writeln('VODITEL-', p);
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, p-1);
write(f, bas);
end;
close(f);
end;
end;
{…………………………………………………}
procedureudal;
vars:string; i, j:integer;
begin
ifFSearch ('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
window(1,1,40,25);
textbackground(0);
clrscr;
window(10,10,35,15);
Writeln('Dla udalenia nagmi – «ENTER» ');
ifreadkey=#13 then
begin
textcolor(4);
s:='UDALENO';
fori:=1 to length(s) do
begin
write(s[i]);
forj:=1 to 5 do
delay(9999);
end;
end
else
end;
end;
{:}
vari:byte;
key:char;k, p:byte;
begin
textmode(c40);
{vv;}
{red;}
{udal;}
repeat
window(1,1,40,25);
textbackground(7);
clrscr;
ris;
menin(11,4,29,5,7);
i:=1;
punkt(11,4,29,5,4,' Zapolnit');
repeat
newreadkey(key, k);
casek of
72:begin
ifi=1 then
p:=4;
ifi>1 then
p:=i-1;
end;
80:begin
ifi=4 then
p:=1;
ifi
p:=i+1;
end;
end;
i:=p;
ifi=1 then
begin
menin(11,4,29,5,7);
punkt(11,4,29,5,4,' Zapolnit');
end;
ifi=2 then
begin
menin(11,4,29,5,7);
punkt(11,7,29,8,4,' Redaktirovat');
end;
ifi=3 then
begin
menin(11,4,29,5,7);
punkt(11,10,29,11,4,' Udalit');
end;
ifi=4 then
begin
menin(11,4,29,5,7);
punkt(11,13,29,14,4,' Vixod');
end;
untilkey=#13;
casei of
1:vv;
2:red;
3:udal;
end;
untili=4;
end.
Висновок
В данійкурсовій роботі буда розроблена програма «Водій», де зберігаються всі відомостіпро власників автомобілів і при необхідності їх можливо легко проглянути тавикористати для необхідних мір при розкритті злочинів чи ДТП.
Булостворене головне поле, де графічно створені пункти вибору певного дійства якевибрав користувач. Під слофом графіка тут розуміється псевдографіка якадоступна завдяки модулю CRT. Також в «Водій» використовуються процедури з модулю DOS. Булавикористані приємна кольорова гама, яка надає розслабленості користувачу, атакож концентрує увагу на певних важливих елементах програми.
Список використаної літератури
1. Струков В.М. Основиалгоритмизации и програмирования. Часть 2. Учебное пособие. – Харьков: Изд.Нац. ун-та внутр. дел, 2003. – 188 с.
2. Сердюченко В.Я. Розробкаалгоритмів та програмування на мові Turbo Pascal. – X., 1995.
3. Немнюгин С.А.Turbo Pascal. – СПб.: Питер,2002. – 496 с.: ил.