Контрольная работа по предмету "Информатика, программирование"


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

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



Вступ


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



Не сдавайте скачаную работу преподавателю!
Данную контрольную работу Вы можете использовать для выполнения своих заданий.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :