Міністерство внутрішніх справУкраїни
Харківський національнийуніверситет внутрішніх справ
Навчально-науковий інститутменеджменту, соціальних та інформаційних технологій
Кафедра інформаційних систем і технологійв діяльності ОВС
Курсова робота
з дисципліни «Основипрограмування та алгоритмічні мови»
на тему: «Автоматизованийаналіз злочинності»
Харківр.
ЗмістВступ1. Основна частина1.1 Неформальна постановка задачі1.2 Формальна постановка задачі1.3 Структура зберігаючих даних2. Алгоритми2.1 Алгоритм основної програми3. Вихідний код програмиВисновокСписок використаної літератури
Вступ
Своєчасний аналіз злочинності надаєправоохоронцям можливість швидко і достовірно розкрити злочин. Задачею курсовоїроботи є створення програми «Аналізатор злочинності в регіоні». Актуальністьданої теми і там ясна, адже злочини існують вже досить давно і ще довго будутьіснувати.
Я вибрав мовупрограмування Turbo Pascal для виконання даної задачі, з метою закріпленнясвоїх навиків з програмування та швидкої реалізації та створення програми.
1. Основна частина 1.1 Неформальна постановка задачі
Розробитипрограму-«Аналізатор злочинності в регіоні» для збереження та перегляду всієїінформації з даної теми.
ü Введення ізбереження інформації:
o Назва області
o Кількістьвбивств
o Кількістьзґвалтувань;
o Кількістьдержавних зрад.
ü Можливістьредагування даної бази
ü Організаціяпошуку за критеріями:
o Кількістьвбивств
o Кількістьзґвалтувань;
o Кількістьдержавних зрад.
ü Можливістьперегляду всіх існуючих документів
o Переглядскороченого варіанту бази
o Переглядповного варіанту даних, які занесені до бази
ü Можливістьвидалення всієї бази.
ü Зручнийінтерфейс для користувача
ü Швидкістьта простота роботи в даній програмі1.2 Формальна постановка задачі
Вихідні дані:
А={А1, А2,…, Аі}, де і=1..n, Аі – кожний окремий злочин.
В={В1, В2,…, Ві}, де і=1..n, Ві — певна область
Таким чином маємоматрицю С=||Cij|| — вся сукупність відомостей про злочини.
Результат:
Множина Рij,яка формуються з вхідних даних а саме множини Сij
D={D1 ,D2,…,Dі} Dі =∑ Аі зкожного Ві/> 1.3 Структура зберігаючих даних
O – структура длязбереження інформації
· No –назва певної області
· U –вбивства
· Y –зґвалтування
· K –крадіжок
· S – зрадивідчизні
Lis – процедураяка вконує аналіз та виводить його на екран
po4atik –виведення на екран пунктів меню
strila –управління курсором для вибору пункту меню
tread – малюєрамочку
vx – занесення дофайлу відомостей які вніс користувач
st – длявидалення файлу
2. Алгоритми/> 2.1 Алгоритмосновної програми/> /> /> /> /> /> /> /> /> />
3. Вихідний кодпрограми
uses crt,dos;
type o=record
no:string[10];
u,y,k,s:integer;
end;
varst1,st2,st3,st4:string;
q,v:byte;
z:char;
f:file of o;pe:o;
{------------}
procedure ramo4ka(x1,y1,x2,y2,a,b:byte);
var i:integer;
begin
textbackground(a);
textcolor(b);
window(x1,y1,x2,y2);
write('Ъ');
for i:=1 to(x2-x1)-1 do
begin
write('Д');
end;
write('ї');
for i:=2 to(y2-y1)-1 do
begin
gotoxy(1,i);
write('і');
gotoxy(x2-x1+1,i);
write('і');
end;
write('А');
for i:=1 to(x2-x1)-1 do
begin
write('Д');
end;
write('Щ');
end;
{------------------------}
procedurenewreadkey (var a:char;var b:byte);
begin
b:=0;
a:=readkey;
if a=#0 then
b:=ord(readkey);
end;
{------------------}
procedurepo4atik(st1,st2,st3,st4:string);
begin
window(1,1,40,25);
textbackground(3);
clrscr;
window(2,10,39,14);
textbackground(4);
clrscr;
gotoxy(1,4);
write(st1,st2,st3,st4);
end;
{------------------}
procedurestrila(x,y:byte);
begin
gotoxy(x,y);
textbackground(0);
textcolor(14);
write(' | ');
gotoxy(x,y+1);
write('\|/');
gotoxy(x,y+2);
write(' " ')
end;
{------------------}
procedure tread(var a:char;var b:byte);
begin
b:=0;
a:=readkey;
if a=#0 then
b:=ord(readkey);
end;
procedure pamka(x1,y1,x2,y2:integer);
var i,c:integer;
begin
textcolor(1);
gotoxy(x1,y1);
write(#201);
for i:=1 tox2-x1-1 do
begin
gotoxy(x1+i,y1);
write(#205);
end;
gotoxy(x2,y1);
write(#187);
for i:=1 toy2-y1-1 do
begin
gotoxy(x2,y1+i);
write(#186);
end;
gotoxy(x2,y2);
write(#188);
for i:=1 to x2-x1-1do
begin
gotoxy(x2-i,y2);
write(#205);
end;
gotoxy(x1,y2);
write(#200);
for i:=1 toy2-y1-1 do
begin
gotoxy(x1,y1+i);
write(#186);
end;
end;
procedure vx;
var i,n:integer;
begin
window(1,1,40,25);
pamka(1,1,39,25);
window(2,2,38,24);
textbackground(2);
clrscr;
textcolor(0);
write('vvedikol-vo oblastey- ');readln(n);
assign(f,'d:\ret');
rewrite(f);
for i:=1 to n do
begin
seek(f,filesize(f));
clrscr;
writeln('Zapis-',i+1);
write('vvedinasvanie obl.- '); readln(pe.no);
write('vvedikol-vo ubiystv- '); readln(pe.u);
write('vvedikol-vo iznas. — '); readln(pe.y);
write('vvedikol-vo kraj- '); readln(pe.k);
write('vvedikol-vo samoybiystv- '); readln(pe.s);
write(f,pe);
end;
close(f);
end;
{.......................}
procedure lis;
var s,k,k1,s1,s2,s3,s4,min,s5,max,j,l,i:integer;
begin
window(1,1,40,25);
pamka(1,1,39,25);
window(2,2,38,24);
textbackground(2);
clrscr;
textcolor(0);
iffsearch('ret','d:\')='' then
begin
textcolor(4);
writeln('FAil nenaiden');
end
else
begin
assign(f,'d:\ret');
reset(f);
s:=0; s1:=0;s2:=0;s3:=0;s4:=0;min:=9999;max:=-9999;j:=0;l:=0;
for i:=0 tofilesize(f)-1 do
begin
s5:=0;
seek(f,i);
read(f,pe);
s5:=pe.u+pe.y+pe.k+pe.s;
if 5
begin
min:=s5;j:=i;
end;
if s5>max then
begin
max:=s5;l:=i;
end;
s:=s+pe.u+pe.y+pe.k+pe.s;
s1:=s1+pe.u;
s2:=s2+pe.y;
s3:=s3+pe.k;
s4:=s4+pe.s;
end;
seek(f,j);
read(f,pe);
writeln('oblast-',pe.no,'imeet samiy nizkiy ur.prest');
seek(f,l);
read(f,pe);
writeln('oblast-',pe.no,'imeet samiy visokiy ur.prest');
writeln('obsh.kol prest — ',s);
writeln('obsh.kolubiystv- ',s1);
writeln('obsh.koliznas.- ',s2);
writeln('obsh.kolkraj- ',s3);
writeln('obsh.kolsamoub.- ',s4);
close(f);
end;
readln;
end;
{..................}
procedure st;
varv:char;h:byte;
begin
window(1,1,40,25);
pamka(1,1,39,25);
window(2,2,38,24);
textbackground(2);
clrscr;
textcolor(0);
iffsearch('ret','d:\')='' then
begin
textcolor(4);
writeln('FAil nenaiden');
end
else
begin
tread(v,h);
if v=#13 then
begin
assign(f,'d:\ret');
erase(f);
write('STERTO');
end;
end;
readln;
end;
{==================}
begin
st1:='Informaciya';
st2:=' prosmotr';
st3:=' udalenie';
st4:=' Vihod';
po4atik(st1,st2,st3,st4);
strila(4,1);
q:=1;
repeat
newreadkey(z,v);
case v of
75:q:=q-1;
77:q:=q+1;
end;
case q of
0:q:=4;
5:q:=1;
end;
case q of
1: begin
if z=#13 then
vx;
po4atik(st1,st2,st3,st4);
strila(4,1);
end;
2: begin
if z=#13 then
lis;
po4atik(st1,st2,st3,st4);
strila(14,1);
end;
3: begin
if z=#13 then
st;
po4atik(st1,st2,st3,st4);
strila(24,1);
end;
4: begin
if z=#13 then
halt;
po4atik(st1,st2,st3,st4);
strila(32,1);
end;
end;
until z=#27;
readln;
end.
Висновок
В даній курсовійроботі була створена програма для аналізу злочинності в області. Даний продуктможливо застосовувати на практиці. Цією програмою я показав рівень своїхтеоретичних та практичних знань.
Мовоюпрограмування була обрана мова Turbo Pascal, для вдосконалення свої навичокпрограмування в цьому середовищі та швидкої і максимально ефективної розв’язкиданої задачі.
Були підключенітакі модулі як CRT та DOS.
Список використаної літератури
1. СтруковВ.М. Основи алгоритмизации и програмирования. Часть 2. Учебное пособие. –Харьков: Изд. Нац. ун-та внутр.дел,2003. – 188 с.
2. СердюченкоВ.Я. Розробка алгоритмів та програмування на мові Turbo Pascal. – X.,1995.
3. НемнюгинС.А. Turbo Pascal. – СПб.: Питер, 2002. – 496 с.: ил.