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

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























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

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

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























Харків, 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 ) – множина викрадених автомобілів.

Gi є Пi – ФІО власника авто яке викрали Fi є Пi – марка викраденого авто Di є Пi – колір викраденого автомобіля Hi є Пi – Дата реєстрації викрадання автомобіля Ji є Пi – Реєстраційний номер автомобіля,

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

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

Результат:

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

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

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



      n

O1=∑T1 , де T1 – кількість викрадених автомобілів за рік

         j=1

       n

O2=∑T2 , де T2 – кількість знайдених автомобілів за рік

         j=1

O3= O1 - O2 – кількість автомобілів які ще не знайдені в даному році



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



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

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

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

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

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

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

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

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

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




2. Алгоритми



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





Начало





Графічний режим



menu





C:=readkket





C









vvod

red

poisk





C=’0’







кінець




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





Vvod

Відкриття файлу в режимі запису

Кількість авто

i:= 1, n, 1



Позиція в файлі

Номер авто

Модель авто

ФІО власника

Колір авто

Запис до файлу

Закрити файл

кінець






































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





Vvod

Кількість авто

Відкриття файлу в режимі запису



V

Перевірка існування файлу

існує

Зпворення файлу

Бази не існує

Відкриття в режимі дозапису

Кількість авто

i:= 1, n, 1



Позиція в файлі

ФІО власника

Колір авто

Номер авто

Модель  авто

Запис до файлу

Закриття файлу

1

Відкриття файлу в режимі читань

i:= 0, к.ф., 1



Перевірка існування файлу

існує

Позиція в файлі

Читання запису

Виведення даних

№ змінення

Позиція в файлі

Читання запису

Введення даних

2

































































































2

Введення даних

Запис до файлу



V

стар. номер

Ввод нового

Положення в файлі

Запис нов. від.

закрити файл

стар. номер

Ввод нового

Положення в файлі

Запис нов. від.

закрити файл

стар. номер

Ввод нового

Положення в файлі

Запис нов. від.

закрити файл

стар. номер

Ввод нового

Положення в файлі

Запис нов. від.

закрити файл

1

Кінець





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 с.: ил.