Автоматизованийаналіз злочинності по областям
Вступ
Злочинність все більше розвиваєтьсяв сучасному світі. І тому необхідно вести строгий облік всієї злочинності.Розробити програму яка буди здійснювати автоматизований аналіз злочинності попевній області. Так як ця задача не вимагає великих та жорстких методівнаписання, я оберу мову програмування 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. Вихідний кодпрограми
usescrt, dos;
typenb=record
nas:string[10];
ub, iz,kr, pas:integer;
end; {avtal zl po abl}
varf:file of nb; obl:nb;
procedureramo4ka (x1, y1, x2, y2, a, b:byte);
vari:integer;
begin
textbackground(a);
textcolor(b);
window(x1, y1, x2, y2);
write('.');
fori:=1 to (x2-x1) – 1 do
begin
write('.');
end;
write('.');
fori:=2 to (y2-y1) – 1 do
begin
gotoxy(1, i);
write(':');
gotoxy(x2-x1+1, i);
write(':');
end;
write(':');
fori:=1 to (x2-x1) – 1 do
begin
write('.');
end;
write(':');
end;
{–}
procedurenewreadkey (var a:char; var b:byte);
begin
b:=0;
a:=readkey;
ifa=#0 then
b:=ord(readkey);
end;
{–}
procedureizi (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;
{–}
procedureram (x, y, x1, y1, a, b:byte);
begin
ramo4ka(x, y, x1, y1, a, b);
end;
procedurepamka (x1, y1, x2, y2:integer);
var i,c:integer;
begin
textcolor(7);
gotoxy(x1, y1);
write(#201);
fori:=1 to x2-x1–1 do
begin
gotoxy(x1+i, y1);
write(#205);
end;
gotoxy(x2, y1);
write(#187);
fori:=1 to y2-y1–1 do
begin
gotoxy(x2, y1+i);
write(#186);
end;
gotoxy(x2, y2);
write(#188);
fori:=1 to x2-x1–1 do
begin
gotoxy(x2-i, y2);
write(#205);
end;
gotoxy(x1, y2);
write(#200);
fori:=1 to y2-y1–1 do
begin
gotoxy(x1, y1+i);
write(#186);
end;
end;
{……………….}
procedurezao;
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);
fori:=1 to n do
begin
clrscr;
seek(f, filesize(f));
with obldo
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;
{…………………………….}
procedureanal;
var k,i, j:integer;
begin
ifFSearch ('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;
fori:=0 to filesize(f) – 1 do
begin
seek(f, i);
read(f, obl);
withobl do
begin
ifub>k then
begin
k:=ub;
j:=i;
end;
end;
end;
seek(f, j);
read(f, obl);
withobl do
begin
writeln('sam. bolh. kol. ubiystv-', ub);
writeln('v ', nas, ' oblasti');
writeln(#219);
end;
k:=-9999;
j:=0;
fori:=0 to filesize(f) – 1 do
begin
seek(f, i);
read(f, obl);
withobl do
begin
ifiz>k then
begin
k:=iz;
j:=i;
end;
end;
end;
seek(f, j);
read(f, obl);
withobl do
begin
writeln('sam. bolh. kol. iznosilovaniy-', iz);
writeln('v ', nas, ' oblasti');
writeln(#219);
end;
k:=-9999;
j:=0;
fori:=0 to filesize(f) – 1 do
begin
seek(f, i);
read(f, obl);
withobl do
begin
ifkr>k then
begin
k:=kr;
j:=i;
end;
end;
end;
seek(f, j);
read(f, obl);
withobl do
begin
writeln('sam. bolh. kol. kraj-', kr);
writeln('v ', nas, ' oblasti');
writeln(#219);
end;
k:=-9999;
j:=0;
fori:=0 to filesize(f) – 1 do
begin
seek(f, i);
read(f, obl);
withobl do
begin
ifpas>k then
begin
k:=pas;
j:=i;
end;
end;
end;
seek(f, j);
read(f, obl);
withobl do
begin
writeln('sam. bolh. kol. rasboev-', pas);
writeln('v ', nas, ' oblasti');
writeln(#219);
end;
fori:=1 to 37 do
begin
gotoxy(i, 13);
write(#196);
end;
readln;
close(f);
end;
end;
{…………………}
procedureual;
begin
ifFSearch ('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;
{:}
vars1, 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);
ifz=80 then
k:=k+1;
ifz=72 then
k:=k-1;
ifk=5 then
k:=4;
ifk=0 then
k:=1;
ifk=1 then
begin
ram(9,6, length(s1)+10,9,1,14);
ram(24,8, length(s1)+25,11,1,1);
end;
ifk=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;
ifk=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;
ifk=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;
untilp=#13;
casek of
1:zao;
2:anal;
3:ual;
end;
untilk=4;
end.
Висновок
Вданій курсовій роботі я програмував мовою Turbo Pascal. Практично реалізуваввсі ті знання які мені давалися в теоретичному виді. Само вдосконалив своїнавички. Створив програму автоматизовано аналізує злочинність по областям. Вданій роботі були використані як свої створені процедури так і запозичені. Булопідключено два модулі, які додали до моєї програми гарний графічний інтерфейс,та можливість зберігати всі відомості в електронному вигляді в виді файлу.
Булавибрана мова Pascal, оскільки я вважаю що вона найбільш підходить дляреалізації цієї задачі
Список використаної літератури
1. Струков В.М. Основиалгоритмизации и програмирования. Часть 2. Учебное пособие. – Харьков: Изд.Нац. ун-та внутр. дел, 2003. – 188 с.
2. Сердюченко В.Я. Розробкаалгоритмів та програмування на мові Turbo Pascal. – X., 1995.
3. Немнюгин С.А.Turbo Pascal. – СПб.: Питер, 2002. – 496 с.