Міністерство внутрішніх справ України
Харківський національний університет внутрішніх справ
Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій
Кафедра інформаційних систем і технологій в діяльності ОВС
Курсова робота
з дисципліни «Основи програмування та алгоритмічні мови»
на тему: «Автоматизований аналіз злочинності»
Харків р.
Зміст
Своєчасний аналіз злочинності надає правоохоронцям можливість швидко і достовірно розкрити злочин. Задачею курсової роботи є створення програми «Аналізатор злочинності в регіоні». Актуальність даної теми і там ясна, адже злочини існують вже досить давно і ще довго будуть існувати.
Я вибрав мову програмування Turbo Pascal для виконання даної задачі, з метою закріплення своїх навиків з програмування та швидкої реалізації та створення програми.
Розробити програму-«Аналізатор злочинності в регіоні» для збереження та перегляду всієї інформації з даної теми.
- Введення і збереження інформації:
o Назва області
o Кількість вбивств
o Кількість зґвалтувань;
o Кількість державних зрад.
- Можливість редагування даної бази
- Організація пошуку за критеріями:
o Кількість вбивств
o Кількість зґвалтувань;
o Кількість державних зрад.
- Можливість перегляду всіх існуючих документів
o Перегляд скороченого варіанту бази
o Перегляд повного варіанту даних, які занесені до бази
- Можливість видалення всієї бази.
- Зручний інтерфейс для користувача
- Швидкість та простота роботи в даній програмі
Вихідні дані:
А={А1 ,А2 ,…,Аі}, де і=1..n, Аі – кожний окремий злочин.
В={В1 ,В2 ,…,Ві}, де і=1..n, Ві - певна область
Таким чином маємо матрицю С=||Cij|| - вся сукупність відомостей про злочини.
Результат:
Множина Рij, яка формуються з вхідних даних а саме множини Сij
D={D1 ,D2 ,…,Dі} Dі =∑ Аі з кожного Ві
O – структура для збереження інформації
· No – назва певної області
· U – вбивства
· Y – зґвалтування
· K – крадіжок
· S – зради відчизні
Lis – процедура яка вконує аналіз та виводить його на екран
po4atik – виведення на екран пунктів меню
strila – управління курсором для вибору пункту меню
tread – малює рамочку
vx – занесення до файлу відомостей які вніс користувач
st – для видалення файлу
uses crt,dos;
type o=record
no:string[10];
u,y,k,s:integer;
end;
var st1,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;
{------------------------}
procedure newreadkey (var a:char;var b:byte);
begin
b:=0;
a:=readkey;
if a=#0 then
b:=ord(readkey);
end;
{------------------}
procedure po4atik(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;
{------------------}
procedure strila(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 to x2-x1-1 do
begin
gotoxy(x1+i,y1);
write(#205);
end;
gotoxy(x2,y1);
write(#187);
for i:=1 to y2-y1-1 do
begin
gotoxy(x2,y1+i);
write(#186);
end;
gotoxy(x2,y2);
write(#188);
for i:=1 to x2-x1-1 do
begin
gotoxy(x2-i,y2);
write(#205);
end;
gotoxy(x1,y2);
write(#200);
for i:=1 to y2-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('vvedi kol-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('vvedi nasvanie obl.- '); readln(pe.no);
write('vvedi kol-vo ubiystv- '); readln(pe.u);
write('vvedi kol-vo iznas. - '); readln(pe.y);
write('vvedi kol-vo kraj- '); readln(pe.k);
write('vvedi kol-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);
if fsearch('ret','d:\')='' then
begin
textcolor(4);
writeln('FAil ne naiden');
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 to filesize(f)-1 do
begin
s5:=0;
seek(f,i);
read(f,pe);
s5:=pe.u+pe.y+pe.k+pe.s;
if 5<min then
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.kol ubiystv- ',s1);
writeln('obsh.kol iznas.- ',s2);
writeln('obsh.kol kraj- ',s3);
writeln('obsh.kol samoub.- ',s4);
close(f);
end;
readln;
end;
{..................}
procedure st;
var v:char;h:byte;
begin
window(1,1,40,25);
pamka(1,1,39,25);
window(2,2,38,24);
textbackground(2);
clrscr;
textcolor(0);
if fsearch('ret','d:\')='' then
begin
textcolor(4);
writeln('FAil ne naiden');
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 с.: ил.