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