Міністерство внутрішніх справ України
Харківський національний університет внутрішніх справ
Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій
Кафедра інформаційних систем і технологій в діяльності ОВС
Курсова робота
з дисципліни «Основи програмування та алгоритмічні мови»
на тему: «База даних по приватним підприємствам регіону»
Харків р.
Зміст
Вступ
1. Основна частина
1.1 Неформальна постановка задачі
1.2 Формальна постановка задачі
1.3 Структура зберігаючих даних
2. Алгоритми
2.1 Алгоритм основної програми
3. Вихідний код програми
Висновок
Список використаної літератури
Вступ
Створити програму по приватним підприємствам району. Підприємствам для повного контролю протікання в них різних процесів, про них необхідно мати всю інформація, як то кажуть «під рукою». Програма яка буди працювати в даній сфері повинна відповідати всім вимогам які будуть описані нижче.
Я вибрав мову програмування Turbo Pascal, з метою закріплення своїх навиків з програмування.
1. Основна частина
1.1 Неформальна постановка задачі
Розробити програму «Приватка» для збереження та перегляду всієї інформації що приватних підприємств.
- Введення і збереження в файл:
o Назва підприємства
o Адреса підприємства
o Власник підприємства;
- Можливість редагування даної бази
- Організація пошуку за критеріями:
o Назва підприємства
o Адреса підприємства
o Власник підприємства;
- Можливість перегляду всіх існуючих документів
o Перегляд скороченого варіанту бази
o Перегляд повного варіанту даних, які занесені до бази
- Можливість видалення всієї бази.
- Зручний інтерфейс для користувача
- Швидкість та простота роботи в даній програмі
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 Алгоритм основної програми
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;
{...................}
procedur
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. Була використані приємна кольорова гама, яка надає розслабленості користувачу, а також концентрує увагу на певних важливих елементах програми.
Список використаної літератури
1. Струков В.М. Основи алгоритмизации и програмирования. Часть 2. Учебное пособие. – Харьков: Изд. Нац. ун-та внутр.дел,2003. – 188 с.
2. Сердюченко В.Я. Розробка алгоритмів та програмування на мові Turbo Pascal. – X.,1995.
3. Немнюгин С.А. Turbo Pascal. – СПб.: Питер, 2002. – 496 с.: ил.