Автоматизований аналіз злочинності по областям

Автоматизований аналіз злочинності по областям

Вступ

Злочинність все більше розвивається в сучасному світі. І тому необхідно вести строгий облік всієї злочинності. Розробити програму яка буди здійснювати автоматизований аналіз злочинності по певній області. Так як ця задача не вимагає великих та жорстких методів написання, я оберу мову програмування Turbo Pascal.

Я вибрав мову програмування Turbo Pascal, з метою закріплення своїх навиків з програмування.

1. Основна частина 1.1 Неформальна постановка задачі

Розробити програму – “Злочин” для збереження та перегляду, а також автоматичного аналізу всієї інформації.

– Введення і збереження інформації до файлу:

O Назва області

O Кількість вбивств

O Кількість згвалтувань;

O Кількість крадіжок

O Кількість пограбувань.

– Можливість редагування даної бази

– Аналіз

O Область з най білими показниками злочинності

– Можливість перегляду всіх існуючих документів

O Перегляд скороченого варіанту бази

O Перегляд повного варіанту даних, які занесені до бази

– Можливість видалення всієї бази.

– Зручний інтерфейс для користувача

– Швидкість та простота роботи в даній програмі

1.2 Формальна постановка задачі

Вихідні дані:

Позначимо сукупність всіх даних, які будуть заноситись до бази даних через множину А, таким чином А={А1, А2, …, Аі }, де і=1..n, Аі – певна область.

Кожен область складається з певного виду злочину, отже маємо Аі ={Аі1, Аі2, …, Аіj }, j=1..4.

Таким чином ми маємо матрицю всіх відомостей які зберігаються в базі даних, та заносяться користувачем.

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

Математична модель: з матриці вибираютьсяАі з найбільшими показниками Аj.

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

Nb – структура для введення та зберігання інформації що вводить користувач.

– Nas – назва області

– Ub – поле для кількості вбивств в конкретній область

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

– Kr – поле для кількості крадіжок в конкретній області

– Pas – поле для кількості грабіжей в конкретній області

Ramo4ka – процедура яка малює рамку

Izi – процедура яка виводить в певних координатах певні відомасті

Ram – процедура яка малює рамочку іншого типу

Zao – процедура для введення та зберігання до файлу відомостей які вводить користувач

Anal – процедура яка здійснює автоматизований аналіз злочинності

Ual – процедура видалення всієї бази

2. Вихідний код програми

Uses crt, dos;

Type nb=record

Nas:string[10];

Ub, iz, kr, pas:integer;

End; {avt al zl po abl}

Var f:file of nb; obl:nb;

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 izi (x, y:byte; s1, s2, s3, s4:string);

Begin

Gotoxy (x, y);

Write(s1);

Gotoxy (x+15, y+2);

Write(s2);

Gotoxy (x, y+4);

Write(s3);

Gotoxy (x+15, y+6);

Write(s4);

End;

{-}

Procedure ram (x, y, x1, y1, a, b:byte);

Begin

Ramo4ka (x, y, x1, y1, a, b);

End;

Procedure pamka (x1, y1, x2, y2:integer);

Var i, c:integer;

Begin

Textcolor(7);

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 zao;

Var i, n:integer;

Begin

Window (1,1,40,25);

Textbackground(1);

Clrscr;

Pamka (6,6,34,18);

Window (7,7,33,17);

Textbackground(14);

Clrscr;

Write (‘Vvedite kol-vo oblastey – ‘); readln(n);

Assign (f, ‘c:\te. j’);

Rewrite(f);

For i:=1 to n do

Begin

Clrscr;

Seek (f, filesize(f));

With obl do

Begin

Write (‘vvedi oblast:’); readln(nas);

Write (‘Vvedi kol-vo ubiystv: ‘); readln(ub);

Write (‘Vvedi kol-vo iznasilovaniy: ‘); readln(iz);

Write (‘vvedi kol-vo kraj: ‘); readln(kr);

Write (‘vvedi kol-vo rasboyev: ‘); readln(pas);

End;

Write (f, obl);

End;

Close(f);

End;

{…………………………….}

Procedure anal;

Var k, i, j:integer;

Begin

If FSearch (‘te. j’, ‘c:\’)=” then

Begin

Window (1,1,40,25);

Textbackground(1);

Clrscr;

Pamka (1,1,39,25);

Window (2,2,38,24);

Textcolor(132);

Writeln (‘FAILA NET’); readln;

End

Else

Begin

Window (1,1,40,25);

Textbackground(1);

Clrscr;

Pamka (1,1,39,25);

Window (2,2,38,24);

Writeln (‘Dlya analiza nagmi “Enter” ‘);

Readln; clrscr;

Assign (f, ‘c:\te. j’);

Reset(f);

K:=-9999;

J:=0;

For i:=0 to filesize(f) – 1 do

Begin

Seek (f, i);

Read (f, obl);

With obl do

Begin

If ub>k then

Begin

K:=ub;

J:=i;

End;

End;

End;

Seek (f, j);

Read (f, obl);

With obl do

Begin

Writeln (‘sam. bolh. kol. ubiystv-‘, ub);

Writeln (‘v ‘, nas, ‘ oblasti’);

Writeln(#219);

End;

K:=-9999;

J:=0;

For i:=0 to filesize(f) – 1 do

Begin

Seek (f, i);

Read (f, obl);

With obl do

Begin

If iz>k then

Begin

K:=iz;

J:=i;

End;

End;

End;

Seek (f, j);

Read (f, obl);

With obl do

Begin

Writeln (‘sam. bolh. kol. iznosilovaniy-‘, iz);

Writeln (‘v ‘, nas, ‘ oblasti’);

Writeln(#219);

End;

K:=-9999;

J:=0;

For i:=0 to filesize(f) – 1 do

Begin

Seek (f, i);

Read (f, obl);

With obl do

Begin

If kr>k then

Begin

K:=kr;

J:=i;

End;

End;

End;

Seek (f, j);

Read (f, obl);

With obl do

Begin

Writeln (‘sam. bolh. kol. kraj-‘, kr);

Writeln (‘v ‘, nas, ‘ oblasti’);

Writeln(#219);

End;

K:=-9999;

J:=0;

For i:=0 to filesize(f) – 1 do

Begin

Seek (f, i);

Read (f, obl);

With obl do

Begin

If pas>k then

Begin

K:=pas;

J:=i;

End;

End;

End;

Seek (f, j);

Read (f, obl);

With obl do

Begin

Writeln (‘sam. bolh. kol. rasboev-‘, pas);

Writeln (‘v ‘, nas, ‘ oblasti’);

Writeln(#219);

End;

For i:=1 to 37 do

Begin

Gotoxy (i, 13);

Write(#196);

End;

Readln;

Close(f);

End;

End;

{…………………}

Procedure ual;

Begin

If FSearch (‘te. j’, ‘c:\’)=” then

Begin

Window (1,1,40,25);

Textbackground(1);

Clrscr;

Pamka (1,1,39,25);

Window (2,2,38,24);

Textcolor(132);

Writeln (‘FAILA NET’); readln;

End

Else

Begin

Window (1,1,40,25);

Textbackground(1);

Clrscr;

Pamka (1,1,39,25);

Window (2,2,38,24);

Writeln (‘Dlya udalenia nagmi “Enter” ‘);

Readln;

Assign (f, ‘c:\te. j’);

Erase(f);

Writeln(‘Udaleno’);

Readln;

End;

End;

{:}

Var s1, s2, s3, s4, s5:string;

P:char; z, k:byte;

Begin

Textmode(C40);

Repeat

Window (1,1,40,25);

Textbackground(1);

Textcolor(7);

Clrscr;

S1:=’Vvod’;

S2:=’Analizirovat’;

S3:=’Udalit’;

S4:=’Vixod’;

Izi (10,7, s1, s2, s3, s4);

Ram (9,6, length(s1)+10,9,1,14);

K:=1;

Repeat

Newreadkey (p, z);

If z=80 then

K:=k+1;

If z=72 then

K:=k-1;

If k=5 then

K:=4;

If k=0 then

K:=1;

If k=1 then

Begin

Ram (9,6, length(s1)+10,9,1,14);

Ram (24,8, length(s1)+25,11,1,1);

End;

If k=2 then

Begin

Ram (9,6, length(s1)+10,9,1,1);

Ram (24,8, length(s1)+25,11,1,14);

Ram (9,10, length(s1)+10,13,1,1);

End;

If k=3 then

Begin

Ram (24,8, length(s1)+25,11,1,1);

Ram (9,10, length(s1)+10,13,1,14);

Ram (24,12, length(s1)+25,15,1,1);

End;

If k=4 then

Begin

Ram (9,10, length(s1)+10,13,1,1);

Ram (24,12, length(s1)+25,15,1,14);

Ram (9,14, length(s1)+10,17,1,1);

End;

Until p=#13;

Case k of

1:zao;

2:anal;

3:ual;

End;

Until k=4;

End.

Висновок

В даній курсовій роботі я програмував мовою Turbo Pascal. Практично реалізував всі ті знання які мені давалися в теоретичному виді. Само вдосконалив свої навички. Створив програму автоматизовано аналізує злочинність по областям. В даній роботі були використані як свої створені процедури так і запозичені. Було підключено два модулі, які додали до моєї програми гарний графічний інтерфейс, та можливість зберігати всі відомості в електронному вигляді в виді файлу.

Була вибрана мова Pascal, оскільки я вважаю що вона найбільш підходить для реалізації цієї задачі

Список використаної літератури

1. Струков В. М. Основи алгоритмизации и програмирования. Часть 2. Учебное пособие. – Харьков: Изд. Нац. ун-та внутр. дел, 2003. – 188 с.

2. Сердюченко В. Я. Розробка алгоритмів та програмування на мові Turbo Pascal. – X., 1995.

3. Немнюгин С. А. Turbo Pascal. – СПб.: Питер, 2002. – 496 с.


Автоматизований аналіз злочинності по областям