Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС
Курсова робота
з дисципліни «Основи програмування та алгоритмічні мови»
на тему: «Автоматизована реєстрація і облік викрадених автомобілів»
Харків, 2009
Зміст
1.1 Неформальна постановка задачі
1.2 Формальна постановка задачі
1.3 Структура зберігаючих даних:
2.1 Алгоритм основної програми
Список використаної літератури
Вступ
Швидкий розвиток комп’ютерних технологій надав можливість багатьом одержувати, зберігати та обробляти інформацію в електронному вигляді, але виникла така проблема, що такої інформації стало дуже багато а обробляти її при такій кількості дуже нелегко. Таким чином я вирішив обрати темою своєї курсової роботі саме створення програми для автоматизованої реєстрації і обліку викрадених автомобілів. Ця програма полегшить обробку електронного обігу інформації.
Я вибрав мову програмування Турбо Паскаль, з метою закріплення своїх навиків з програмування.
Вихідним продуктом курсової роботи буду програма під назвою «реєстрація і облік викрадених автомобілів».
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 Алгоритм основної програми
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 с.: ил.