Автоматизований аналіз злочинності по областям
Вступ
Злочинність все більше розвивається в сучасному світі. І тому необхідно вести строгий облік всієї злочинності. Розробити програму яка буди здійснювати автоматизований аналіз злочинності по певній області. Так як ця задача не вимагає великих та жорстких методів написання, я оберу мову програмування 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. ............