База даних по приватним підприємствам регіону

Міністерство внутрішніх справ України

Харківський національний університет внутрішніх справ

Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій

Кафедра інформаційних систем і технологій в діяльності ОВС

















Курсова робота



з дисципліни «Основи програмування та алгоритмічні мови»



на тему: «База даних по приватним підприємствам регіону»





















Харків р.


Зміст



Вступ

1. Основна частина

1.1 Неформальна постановка задачі

1.2 Формальна постановка задачі

1.3 Структура зберігаючих даних

2. Алгоритми

2.1 Алгоритм основної програми

3. Вихідний код програми

Висновок

Список використаної літератури




Вступ



Створити програму по приватним підприємствам району. Підприємствам для повного контролю протікання в них різних процесів, про них необхідно мати всю інформація, як то кажуть «під рукою». Програма яка буди працювати в даній сфері повинна відповідати всім вимогам які будуть описані нижче.

Я вибрав мову програмування Turbo Pascal, з метою закріплення своїх навиків з програмування.




1. Основна частина



1.1 Неформальна постановка задачі



Розробити програму «Приватка» для збереження та перегляду всієї інформації що приватних підприємств.

Введення і збереження в файл:

Назва підприємства

Адреса підприємства

Власник підприємства;

Можливість редагування даної бази

Організація пошуку за критеріями:

Назва підприємства

Адреса підприємства

Власник підприємства;

Можливість перегляду всіх існуючих документів

Перегляд скороченого варіанту бази

Перегляд повного варіанту даних, які занесені до бази

Можливість видалення всієї бази.

Зручний інтерфейс для користувача

Швидкість та простота роботи в даній програмі



1.2 Формальна постановка задачі



Вихідні дані:



Нехай B={B1,B2,…,Bi}, де ( i=1, 2, ..., N ) – множина підприємств.



Ri є Bi – ПІБ власника приватного підприємства

Di є Bi – адреса підприємства

Oi є Bi – назва підприємства

Таким чином отримуємо нову сукупність Bij – яка більш розширена в плані інформації про підприємства

Результат:

Множина Kj, яка формуються з вхідних даних а саме множини Bij.

Математична модель:

Таким чином множина Kj є підмножиною Bij



1.3 Структура зберігаючих даних



P – Запис для занесення в нього інформації а потім до файлу і навпаки

Na – поле для назви підприємства

Re – поле для адреси

Vl – поле для ПІБ власника

Pamka – малює рамку

Voz – відповідае за введення та збереження інформації

Viv – пошук в базі даних

Dal – для видалення

Newreadkey – розширений код клавіши

Rrr – допоміжна для рамки

Prig – меню програми




2. Алгоритми



2.1 Алгоритм основної програми



Початок





Виведення пунктів



pig



rrr



voz

Enter



pig

rrr

dal

Enter

Кінець

ESC

pig



rrr



halt

v

pig



rrr



viv

Enter



pu

Перехід по пунктам меню

Перевірка натискання клавиші

Виведення самого меню










































3. Вихідний код програми



uses crt ,dos;

type p=record

na,re,

string[15];

end;

var f: file of p;pr:p;

st1,st2,st3,st4:string;

e:char;d,pu:byte;

{--------------}

procedure pamka (x1,y1,x2,y2:integer);

var i,c:integer;

begin

textcolor(1);

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 voz;

var i,n:integer;

begin

window(1,1,40,25);

textbackground(3);

clrscr;

pamka(1,23,39,25);

gotoxy(13,24);

write('ZAPOLNENIE');

window(4,1,37,22);

write('Vvedi kol-vo predpreyatiy- ');readln(n);

assign(f,'D:\reg');

rewrite(f);

for i:=1 to n do

begin

clrscr;

seek(f,filesize(f));

writeln('Predpreyatie#',i);

write('Vvedi nas.predpreyatia- ');readln(pr.na);

write('Vvedi reg. v kotor. rasp. predpr-');readln(pr.re);

write('Vvedi vladelca predpr.- ');readln(pr.vl);

write(f,pr);

end;

close(f);

end;

{...................}

procedure viv;

var i:integer;

begin

window(1,1,40,25);

textbackground(3);

clrscr;

pamka(1,23,39,25);

gotoxy(13,24);

write('prosmotr');

window(4,1,37,22);

if fsearch('reg','d:\')='' then

begin

textcolor(132);

writeln('FAIL Ne NAYDEN');

end

else

begin

assign(f,'d:\reg');

reset(f);

for i:=0 to filesize(f)-1 do

begin

seek(f,i); read(f,pr);

writeln('nasv. predpr.- ',pr.na);

writeln('region raspol.- ',pr.re);

writeln('Vladeletc- ',pr.vl);

writeln;

end;

close(f);

end;

readln;

end;

{.................}

procedure dal;

begin

window(1,1,40,25);

textbackground(3);

clrscr;

pamka(1,23,39,25);

gotoxy(13,24);

write('UDALENIE');

window(4,1,37,22);

if fsearch('reg','d:\')='' then

begin

textcolor(132);

writeln('FAIL Ne NAYDEN');

end

else

begin

Writeln('Fail udalen ');

assign(f,'d:\reg');

erase(f);

end;

end;

{-------------------}

procedure kl (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 rrr(st1,st2,st3,st4:string);

begin

window(1,1,40,25);

textbackground(7);

clrscr;

kl(5,2,35,5,7,0);

gotoxy(3,1);

write (#181,st1,#198);

kl(5,8,35,11,7,0);

gotoxy(3,1);

write (#181,st2,#198);

kl(5,14,35,17,7,0);

gotoxy(3,1);

write (#181,st3,#198);

kl(5,20,35,23,7,0);

gotoxy(3,1);

write (#181,st4,#198);

end;

{------------------}

procedure prig(x,y,u,n:byte);

var i:byte;

begin

textbackground(0);

textcolor(u);

gotoxy(x,y);

for i:=1 to n do

write(#176);

end;

{==================}

begin

window(1,1,40,25);

textbackground(7);

clrscr;

st1:='Udalenie';

st2:='Predpreyatie';

st3:='Prosmotr';

st4:='Vihod';

rrr(st1,st2,st3,st4);

window(1,1,40,25);

prig(6,3,14,29);

pu:=1;

repeat

newreadkey(e,d);

if d=80 then

pu:=pu+1;

if d=72 then

pu:=pu-1;

if pu=5 then

pu:=1;

if pu=0 then

pu:=4;

case pu of

1: begin

if e=#13 then

dal;

rrr(st1,st2,st3,st4);

window (1,1,40,25);

prig(6,3,14,29);

end;

2: begin

if e=#13 then

voz;

rrr(st1,st2,st3,st4);

window (1,1,40,25);

prig(6,9,14,29);

end;

3: begin

if e=#13 then

viv;

rrr(st1,st2,st3,st4);

window (1,1,40,25);

prig(6,15,14,29);

end;

4: begin

if e=#13 then

halt;

rrr(st1,st2,st3,st4);

window (1,1,40,25);

prig(6,21,14,29);

 end;

end;

until e=#27;

end.




Висновок



В данній курсовій роботі було створено програму для автоматизації та обробки певної інформації. Програма називається «Приватка». В даній програмі був створений максимально простий інтерфейс, максимально спростована робота користувачем. Таким чином програма легка в використанні, в той же час вона набагато спростовує пошук певної необхідної інформації. Було створене головне поле, де графічно створені пункти вибору певного дійства яке вибрав користувач. Під слофом графіка тут розуміється псевдографіка яка доступна завдяки модулю CRT. Була використані приємна кольорова гама, яка надає розслабленості користувачу, а також концентрує увагу на певних важливих елементах програми.




Список використаної літератури



			Струков В.М. Основи алгоритмизации и програмирования. Часть 2. Учебное пособие. – Харьков: Изд. Нац. ун-та внутр.дел,2003. – 188 с. 

	Сердюченко В.Я. Розробка алгоритмів та програмування на мові Turbo Pascal. – X.,1995.

	Немнюгин С.А. Turbo Pascal. – СПб.: Питер, 2002. – 496 с.: ил.