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