Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС
Курсова робота
з дисципліни «Основи програмування та алгоритмічні мови»
на тему: «Автоматизована реєстрація і облік викрадених автомобілів»
Харків, 2009
Зміст
Вступ
1. Основна частина
1.1 Неформальна постановка задачі
1.2 Формальна постановка задачі
1.3 Структура зберігаючих даних:
2. Алгоритми
2.1 Алгоритм основної програми
2.2 Алгоритм процедури Vvod
2.3 Алгоритм процедури Red
3. Вихідний код програми
Висновок
Список використаної літератури
Вступ
Швидкий розвиток комп^ютерних технологій надав можливість багатьом одержувати, зберігати та обробляти інформацію в електронному вигляді, але виникла така проблема, що такої інформації стало дуже багато а обробляти її при такій кількості дуже нелегко. Таким чином я вирішив обрати темою своєї курсової роботі саме створення програми для автоматизованої реєстрації і обліку викрадених автомобілів. Ця програма полегшить обробку електронного обігу інформації.
Я вибрав мову програмування Турбо Паскаль, з метою закріплення своїх навиків з програмування.
Вихідним продуктом курсової роботи буду програма під назвою «реєстрація і облік викрадених автомобілів».
1. Основна частина
1.1 Неформальна постановка задачі
Розробити програму - «реєстрація і облік викрадених автомобілів» для автоматизації обробки інформації по викраденим автомобілям.
Ø Введення користувачем відомостей про викрадені автомобілі та збереження їх в типізований файл:
o ФІО власника викраденого авто;
o Марка авто;
o Колір автомобіля;
o Дата викрадення авто;
o Номер автомобіля.
Ø Можливість редагування даної бази
Ø Можливість видалення відомостей які втратили свою суть
Ø Організація пошуку за критеріями:
o ФІО власника;
o Дата викрадення автотранспорту;
o Марка авто;
o Номер автомобіля;
Ø Можливість перегляду всіх існуючих відомостей;
Ø Зручний інтерфейс для користувача;
Ø В складних випадках створення підказок для користувача;
Ø Швидкість та простота роботи в даній програмі;
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
Список використаної літератури
1. Струков В.М. Основи алгоритмизации и програмирования. Часть 2. Учебное пособие. – Харьков: Изд. Нац. ун-та внутр.дел,2003. – 188 с.
2. Сердюченко В.Я. Розробка алгоритмів та програмування на мові Turbo Pascal. – X.,1995.
3. Немнюгин С.А. Turbo Pascal. – СПб.: Питер, 2002. – 496 с.: ил.