Міністерство внутрішніх справУкраїни Харківський національний університет внутрішніх справ Навчально-науковийінститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційнихсистем і технологій в діяльності ОВС
Курсова робота
з дисципліни «Основипрограмування та алгоритмічні мови»
на тему: «Довідкова система покримінальному праву»
Харків
Зміст
Вступ
1. Основна частина
1.1 Неформальна постановка задачі
1.2 Формальна постановка задачі
1.3 Структура зберігаючихданих:
2. Алгоритми
2.1 Алгоритм основної програми
3. Вихідний код програми
Висновок
Список використаної літератури
Вступ
Дуже велика кількість часу витрачається напошук тієї чі іншої інформації. Довідкова система спрямована по зменшеннявитрат часу, фізичних втрат на пошук, та інших витрат на здобуття тієї чи іншоїінформації. На сьогодні ця тема дуже актуальна і тому я вибрав саме її. Первинноюзадачею є створення програми «Довідник»
Я вибрав мовупрограмування Turbo Pascal, з метою закріплення своїх навиків з програмуваннята вона я найбільш оптимальною для швидкого вирішення задачі.
1. Основна частина1.1 Неформальна постановка задачі
Розробитипрограму-«довідник» для збереження таперегляду всієї інформації що стосується термінології.
ü Введення і збереженняінформації про нормативні документи стосовно кримінального права в типизованомуфайлі:
o термін
o йоговизначення
o датазаносу в базу
ü Можливість редагування даноїбази
ü Організація пошуку закритеріями:
ü Можливість перегляду всіхіснуючих документів
ü Можливість видалення всієїбази.
ü Зручний інтерфейс длякористувача
ü Швидкість та простота роботив даній програмі1.2 Формальна постановка задачі
Вихідні дані:
Позначимосукупність всіх даних, які будуть заноситись до бази даних через множину К,таким чином К={К1, К2,…, Кі}, де і=1..n, Кі – терміни з кримінального права.
Кожен документскладається з відомостей, що стосуються цього документу, отже маємо Кі={Кі1, Кі2,…, Кіj}, j=1..4.
Таким чином мимаємо матрицю всіх відомостей які зберігаються в базі даних, та заносятьсякористувачем.
Результат:
Множина Рij, яка формуються з вхіднихданих а саме множини Аij Шляхом пошуку відповідності О- критерій пошуку терміну./> 1.3 Структура зберігаючих даних
R – запис длявведення та зберігання інформації від користувача
· Z – поледля введення терміну
· S – йоговизначення
· Datе – поле для введення дати внесення
f: file of r –перемінна для занесення запису до файлу
pol – процедурадля занесення до фолу відомостей
ramo4ka – длявиведення на екран рамки
menu_1 –процедура яка виводить на екран першу половину меню
menu_2 — процедура яка виводить на екран другу половину меню
del – длявидалення бази
dov – дляперегляду всіх існуючих термінів
2. Алгоритми/>2.1 Алгоритм основної програми
/>
/>3. Вихідний код програми
uses CRT,dos;
type r=record
z:string[15];
s:string;
end;
vars1,s2,s3,s4:string;
l,i:byte;
h:char;
f: file ofr;d:r;
{------------}
procedureramo4ka (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;
{------------------------}
procedurenewreadkey (var a:char;var b:byte);
begin
b:=0;
a:=readkey;
if a=#0 then
b:=ord(readkey);
end;
{------------------}
proceduremenu_1(s1,s2,s3,s4:string;c1,c2,c3,c4:byte);
begin
window(1,1,40,25);
textbackground(0);
textcolor(c1);
ramo4ka(4,8,18,11,0,c1);
gotoxy(4,2);
write(s1);
textcolor(c2);
ramo4ka(4,12,18,15,0,c2);
gotoxy(4,2);
write(s2);
textcolor(c3);
ramo4ka(4,16,18,19,0,c3);
gotoxy(4,2);
write(s3);
textcolor(c4);
ramo4ka(4,20,18,23,0,c4);
gotoxy(4,2);
write(s4);
end;
proceduremenu_2(i,h1,h2,h3,h4,c:byte;s:string);
var a,b:byte;
begin
case i of
1: begin
ramo4ka(4+h1,8,18+h1,11,0,c);
gotoxy(4,2);
write(s)
end;
2: begin
ramo4ka(4+h2,12,18+h2,15,0,c);
gotoxy(4,2);
write(s);
end;
3: begin
ramo4ka(4+h3,16,18+h3,19,0,c);
gotoxy(4,2);
write(s);
end;
4: begin
ramo4ka(4+h4,20,18+h4,23,0,c);
gotoxy(4,2);
write(s);
end;
end;
end;
{------------------}
procedure pol;
var i,n:integer;
begin
assign(f,'d:\kil.kil');
window(1,1,40,25);
rewrite(f);
textbackground(14);
clrscr;
window(4,3,37,22);
textbackground(9);
clrscr;
write('vvedirasmer basi- '); readln(n);
for i:=1 to n do
begin
clrscr;
write('vvedipravovoy termin- '); readln(d.z);
writeln('vvediego znahenie:');readln(d.s);
seek(f,filesize(f));write(f,d);
end;
close(f);
end;
{.................................}
procedure del;
var c:char;
begin
window(1,1,40,25);
textbackground(14);
clrscr;
window(4,3,37,22);
textbackground(9);
clrscr;
iffsearch('kil.kil','d:\')='' then
begin
textcolor(4);
writeln('failanet');
end
else
begin
write('Udalitfail-Y/N ');readln(c);
if c='y' then
begin
assign(f,'d:\kil.kil');erase(f);
writeln('Udalen');
end;
end;
readln;
end;
{............................}
procedure dov;
vari:integer;b:string;
begin
window(1,1,40,25);
textbackground(14);
clrscr;
window(4,3,37,22);
textbackground(9);
clrscr;
iffsearch('kil.kil','d:\')='' then
begin
textcolor(4);
writeln('failanet');
end
else
begin
clrscr;
assign(f,'d:\kil.kil');
reset(f);
for i:=0 tofilesize(f)-1 do
begin
seek(f,i);read(f,d);
writeln(i+1,'.',d.z);
end;
write('vveditermin- ');read(b);
clrscr;
for i:=0 tofilesize(f)-1 do
begin
seek(f,i);read(f,d);
if b=d.z then
begin
writeln(d.z,':');writeln;
writeln(d.s);
end;
end;
close(f);
end;
readln;
end;
{==================}
begin
textmode(co40);
window(1,1,40,25);
clrscr;
s1:='Termini';
s2:='Prosmotr';
s3:='Udalenie';
s4:='Vihod';
menu_1(s1,s2,s3,s4,0,15,15,15);
i:=1;
menu_2(i,5,0,0,0,15,s1);
repeat
newreadkey(h,l);
case l of
80:i:=i+1;
72:i:=i-1;
end;
case i of
0:i:=4;
5:i:=1;
end;
case i of
1:begin
if h=#13 then
pol;
window(1,1,40,25);
textbackground(0);
clrscr;
menu_1(s1,s2,s3,s4,0,15,15,15);
menu_2(i,5,0,0,0,15,s1);
end;
2:begin
if h=#13 then
dov;
window(1,1,40,25);
textbackground(0);
clrscr;
menu_1(s1,s2,s3,s4,15,0,15,15);
menu_2(i,0,5,0,0,15,s2);
end;
3:begin
if h=#13 then
del;
window(1,1,40,25);
textbackground(0);
clrscr;
menu_1(s1,s2,s3,s4,15,15,0,15);
menu_2(i,0,0,5,0,15,s3);
end;
4:begin
if h=#13 then
halt;
window(1,1,40,25);
textbackground(0);
clrscr;
menu_1(s1,s2,s3,s4,15,15,15,0);
menu_2(i,0,0,0,5,15,s4);
end;
end;
until h=#27;
end.
Висновок
В цій роботі ястворив програму «Довідник», яка полегшує обробітку інформації яка вводитьсякористувачем. В даній роботі були використані власні процедури та запозичені.Булу підключено два модулі СRT, якій відповідає за графіку та DOS, який працюєз файлами. Вся інформація яка водиться користувачем зберігається в файлі, тапри необхідності може бути переглянута.
Мовоюпрограмування я обрав Turbo Pascal, оскільки він є найбільш оптимальним длявиконання поставленої задачі.
Список використаної літератури
1. Струков В.М.Основы алгоритмизации и программирования. Часть 2. Учебное пособие. – Харьков:Изд. Нац. ун-та внутр.дел,2003. – 188 с.
2. СердюченкоВ.Я. Розробка алгоритмів та програмування на мові Turbo Pascal. – X.,1995.
3. НемнюгинС.А. Turbo Pascal. – СПб.: Питер, 2002. – 496 с.: ил.