Автоматизована реєстрація і облік викрадених автомобілів

Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС

Курсова робота

з дисципліни «Основи програмування та алгоритмічні мови»

на тему: «Автоматизована реєстрація і облік викрадених автомобілів»

Харків, 2009

Зміст

Вступ

1. Основна частина

1.1 Неформальна постановка задачі

1.2 Формальна постановка задачі

1.3 Структура зберігаючих даних:

2. Алгоритми

2.1 Алгоритм основної програми

2.2 Алгоритм процедури Vvod

2.3 Алгоритм процедури Red

3. Вихідний код програми

Висновок

Список використаної літератури

Вступ

Швидкий розвиток комп’ютерних технологій надав можливість багатьом одержувати, зберігати та обробляти інформацію в електронному вигляді, але виникла така проблема, що такої інформації стало дуже багато а обробляти її при такій кількості дуже нелегко. Таким чином я вирішив обрати темою своєї курсової роботі саме створення програми для автоматизованої реєстрації і обліку викрадених автомобілів. Ця програма полегшить обробку електронного обігу інформації.

Я вибрав мову програмування Турбо Паскаль, з метою закріплення своїх навиків з програмування.

Вихідним продуктом курсової роботи буду програма під назвою «реєстрація і облік викрадених автомобілів».

1. Основна частина

1.1 Неформальна постановка задачі

Розробити програму - «реєстрація і облік викрадених автомобілів» для автоматизації обробки інформації по викраденим автомобілям.

    Введення користувачем відомостей про викрадені автомобілі та збереження їх в типізований файл:

      ФІО власника викраденого авто;

      Марка авто;

      Колір автомобіля;

      Дата викрадення авто;

      Номер автомобіля.

    Можливість редагування даної бази

    Можливість видалення відомостей які втратили свою суть

    Організація пошуку за критеріями:

      ФІО власника;

      Дата викрадення автотранспорту;

      Марка авто;

      Номер автомобіля;

    Можливість перегляду всіх існуючих відомостей;

    Зручний інтерфейс для користувача;

    В складних випадках створення підказок для користувача;

    Швидкість та простота роботи в даній програмі;

1.2 Формальна постановка задачі

Вихідні дані:

Нехай П={П>1>,П>2>,…,П>i>}, де ( i=1, 2, ..., N ) – множина викрадених автомобілів.

G>i>> >є П>i >– ФІО власника авто яке викрали> >F>i>> >є П>i >– марка викраденого авто> >D>i>> >є П>i >– колір викраденого автомобіля> >H>i>> >є П>i> – Дата реєстрації викрадання автомобіля> >J>i>> >є П>i> – Реєстраційний номер автомобіля,

L> >>i>> >є П>i>> >– Прапорець, яки дорівнює одиниці при поверненні авто

Таким чином отримуємо нову сукупність П>ij >– яка більш розширена в плані інформації про викрадені автомобілі.

Результат:

Множина Р>ij>, яка формуються з вхідних даних а саме множини П>ij.>

Нову множину O=||О>i>||, яка надає> >статистичні дані обраховуючи множину П>ij.>

Математична модель:

n

O>1>=∑T>1 >, де T>1> – кількість викрадених автомобілів за рік

j=1

n

O>2>=∑T>2>> >, де T>2> – кількість знайдених автомобілів за рік

j=1

O>3>=> >O>1> - O>2> – кількість автомобілів які ще не знайдені в даному році

1.3 Структура зберігаючих даних:

Mah – тип запис для занесення даних про автомобілі

    Cv – перемінні строкового типу для зберігання кольору

    Nom – перемінні строкового типу для зберігання номеру

    md – перемінні строкового типу для зберігання моделі

    hz – перемінні строкового типу для зберігання ФІБ власника

vvod - процедура для введення та зберігання відомостей

poisk; - процедура для пошуку певних відомостей за певним критерієм

red - процедура для до записи в існуючу базу

menu - процедура для створення управляючого меню

2. Алгоритми

2.1 Алгоритм основної програми















2.2 Алгоритм процедури Vvod


2.3 Алгоритм процедури Red


3. Вихідний код програми

uses crt,dos;

type mah=record

cv,nom:string[10];

md:string[10];

hz:string[20];

end;

var mas:mah;f:file of mah;c:char;

{.........vvod.............}

procedure vvod;

var i,n:integer; s:PathStr;

begin

assign(f,'d:\fil');

rewrite(f);

clrscr;

writeln('vvedi kol-vo avtom');

read(n);

for i:=1 to n do

begin

seek(f,filesize(f));

with mas do

begin

writeln('vvedi nomer avtomobila');

readln;

readln(nom);

writeln('cvet avtomobila');

readln(cv);

writeln('vvedi HIO hozaina avtomobila');

readln(hz);

writeln('vvedi model avtomobila');

readln(md);

end;

write(f,mas);

end;

close(f);

end;

{.............poisk..........}

procedure poisk;

var n,i:integer;d:string; s:PathStr;ch:char;

begin

clrscr;

window(1,1,80,50);

textbackground(7);

clrscr;

{window();}

S:=FSearch('fil','d:\');

If S='' then

writeln('basi net')

else

writeln('1-naiti');

writeln('2-posmotret vse');

writeln('0-vixod v gl.meny');

ch:=readkey;

case ch of

'1':

begin

clrscr;

writeln('po hem ishem?');

writeln('1-po modeli');

writeln('2-po cvetu');

writeln('3-po nomeru');

writeln('4-po hozainu');

assign(f,'d:\fil');

reset(f);

ch:=readkey;

case ch of

'1':begin

writeln('vvedi model');

readln(d);

for i:=0 to filesize(f)-1 do

begin

seek(f,i);

read(f,mas);

with mas do

begin

if d=md then

begin

clrscr;

writeln('model avtomobila: ',md);

writeln('cvet avtomobila: ',cv);

writeln('nomer avtomobila: ',nom);

writeln('ima hozaina: ',hz);

end;

end;

end;

end;

'2':begin

writeln('vvedi cvet');

readln(d);

for i:=0 to filesize(f)-1 do

begin

seek(f,i);

read(f,mas);

with mas do

if d=cv then

begin

clrscr;

writeln('model avtomobila: ',md);

writeln('cvet avtomobila: ',cv);

writeln('nomer avtomobila: ',nom);

writeln('ima hozaina: ',hz);

end;

end;

end;

'3':begin

clrscr;

writeln('vvedi nomer');

readln(d);

for i:=0 to filesize(f)-1 do

begin

seek(f,i);

read(f,mas);

with mas do

if d=nom then

begin

clrscr;

writeln('model avtomobila: ',md);

writeln('cvet avtomobila: ',cv);

writeln('nomer avtomobila: ',nom);

writeln('ima hozaina: ',hz);

end;

end;

end;

'4':begin

writeln('vvedi hozaina');

readln(d);

for i:=0 to filesize(f)-1 do

begin

seek(f,i);

read(f,mas);

with mas do

if d=hz then

begin

clrscr;

writeln('model avtomobila: ',md);

writeln('cvet avtomobila: ',cv);

writeln('nomer avtomobila: ',nom);

writeln('ima hozaina: ',hz);

end;

end;

end;

'0':exit;

end;

close(f);

end;

'2':begin

assign(f,'d:\fil');

reset(f);

clrscr;

for i:=0 to filesize(f)-1 do

begin

seek(f,i);

read(f,mas);

writeln('zapis #',i+1);

with mas do

begin

writeln('model avtomobila: ',md);

writeln('cvet avtomobila: ',cv);

writeln('nomer avtomobila: ',nom);

writeln('ima hozaina: ',hz);

writeln;

end;

end;

close(f);

readln;

end;

end;

end;

{..................redak.....................}

procedure red;

var i,p,n,l:integer;s:PathStr;v:char;k:string[10];

begin

clrscr;

window(1,1,80,50);

textbackground(4);

clrscr;

window(20,1,60,50);

textbackground(3);

clrscr;

textcolor(5);

writeln('1-dopis v konec');

writeln('2-izmenit staryu');

writeln('0-vixod v gl.meny');

v:=readkey;

case v of

'1':begin

clrscr;

S:=FSearch('fil','d:\');

If S='' then

begin

assign(f,'d:\fil');

rewrite(f);

close(f);

end;

assign(f,'d:\fil');

reset(f);

clrscr;

writeln('vvedi kol-vo dopisivaemih avtom');

read(n);

for i:=1 to n do

begin

seek(f,filesize(f));

with mas do

begin

writeln('vvedi nomer avtomobila');

readln;

readln(nom);

writeln('cvet avtomobila');

readln(cv);

writeln('vvedi HIO hozaina avtomobila');

readln(hz);

writeln('vvedi model avtomobila');

readln(md);

end;

write(f,mas);

end;

close(f);

end;

'2':begin

clrscr;

S:=FSearch('fil','d:\');

If S='' then

writeln('basi net')

else

begin

assign(f,'d:\fil');

reset(f);

for i:=0 to filesize(f)-1 do

begin

seek(f,i);

read(f,mas);

writeln('zapis #',i+1);

with mas do

begin

writeln('model avtomobila: ',md);

writeln('cvet avtomobila: ',cv);

writeln('nomer avtomobila: ',nom);

writeln('ima hozaina: ',hz);

end;

writeln;

end;

writeln('vvedi nomer izmenaemoy');

readln(l);

clrscr;

seek(f,l-1);

read(f,mas);

with mas do

begin

writeln('1-model avtomobila: ',md);

writeln('2-cvet avtomobila: ',cv);

writeln('3-nomer avtomobila: ',nom);

writeln('4-ima hozaina: ',hz);

end;

writeln('vvedi chto bydem menat');

v:=readkey;

case v of

'1':begin

with mas do

begin

writeln('staraya model-',md);

write('vvedi novuy: ');

readln(k);

md:=k;

end;

seek(f,l-1);

write(f,mas);

close(f);

end;

'2':begin

with mas do

begin

writeln('stariy cvet-',cv);

write('vvedi novuy: ');

readln(k);

cv:=k;

end;

seek(f,l-1);

write(f,mas);

close(f);

end;

'3':begin

with mas do

begin

writeln('stariy nomer-',md);

write('vvedi novuy: ');

readln(k);

nom:=k;

end;

seek(f,l-1);

write(f,mas);

close(f);

end;

'4':begin

with mas do

begin

writeln('stariy hozain-',md);

write('vvedi novuy: ');

readln(k);

hz:=k;

end;

seek(f,l-1);

write(f,mas);

close(f);

end;

end;

end;

end;

end;

end;

procedure menu;

begin

window(1,1,80,50);

textbackground (5);

clrscr;

textcolor(0);

window(20,10,40,25);

textbackground(3);

clrscr;

gotoxy(6,8);

writeln('1-zapolnit');

window(40,10,60,25);

textbackground(4);

clrscr;

gotoxy(6,8);

writeln('2-poisk');

window(20,26,39,40);

textbackground(2);

clrscr;

gotoxy(3,8);

writeln('3-redaktirovat');

window(40,26,60,40);

textbackground(6);

clrscr;

gotoxy(6,8);

writeln('0-vihod');

end;

{.............................proga.................................}

begin

TextMode(C80 + Font8x8);

clrscr;

repeat

menu;

c:=readkey;

case c of

'1':vvod;

'2':poisk;

'3':red;

{'0':halt;}

end;

until c='0';

end. {.......kon........}

Висновок

В даній курсовій роботі я створив програму реєстрації та автоматизованого створення звіту на рік по викраденим машинам. В ОВС дуже важливо своєчасно володіти інформацією, для швидкого та правильного розкриття злочинів. Саме цей продукт спрямований на одержання працівником міліції достовірної і важливої інформації.

Цією роботою я виконав для себе два завдання: по-перше я створив корисну програму яка може принести користь людям, а по-друге я вдосконалив свої навички в програмуванні та на власному досвіді впевнився що Паскаль досить могутня платформа для створення програм такого типу.

В даній роботі було створено досить велику кількість процедур, які можливо використати і в інших програмних проектах, були використані різні типи даних, а також були застосовані процедури та функції які були створені раніше, ці процедури та функції я брав з модулів CRT та DOS

Список використаної літератури

    Струков В.М. Основи алгоритмизации и програмирования. Часть 2. Учебное пособие. – Харьков: Изд. Нац. ун-та внутр.дел,2003. – 188 с.

    Сердюченко В.Я. Розробка алгоритмів та програмування на мові Turbo Pascal. – X.,1995.

    Немнюгин С.А. Turbo Pascal. – СПб.: Питер, 2002. – 496 с.: ил.