Автоматизована реєстрація і облік автомобілей

Міністерство внутрішніх справУкраїни Харківський національний університет внутрішніх справ Навчально-науковийінститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційнихсистем і технологій в діяльності ОВС
Курсова робота
з дисципліни «Основипрограмування та алгоритмічні мови»
на тему: «Автоматизована реєстрація і облік автомобілей»
 
 
Харків

Зміст
 
Вступ
1. Основна частина
1.1 Неформальнапостановка задачі
1.2 Формальнапостановка задачі
1.3 Структура зберігаючих даних:
2. Алгоритми
2.1 Алгоритм основної програми
2.2 Алгоритм процедури vvod
3. Вихідний код програми
Висновок
Список використаної літератури
Вступ
 
Реєстрація автомобілів для полегшення роботибагатьох служб. Сьогодні це питання не стоїть так гостро як декілька роківназад. Розроблено багато програм які полегшують роботу з таким видом інформаціїяк електронний. Але моєю задачею є створити програму яка буду мати невеликірозміри та виконуватиме всі необхідні функції.
Призначення даного продукту полегшити роботупрацівникам ОВС, але при цьому мати найпростіший інтерфейс з максимальноюпрацевіддачею.
Я вибрав мовупрограмування Turbo Pascal бо важаю її найбільш оптимальною длявирішення даної задачі та з метою закріплення своїх навиків з програмування вданому середовищі.
1.Основна частина1.1 Неформальнапостановка задачі
Розробитипрограму-«реєстрація автомобілів»для збереження та перегляду всієї інформації що стосується автотранспорту.
ü    Введення і збереженняінформації в типізованому файлі:
o       Модельмашини
o       Ріквипуску машини
o       Витратипалива на 100 кілометрів;
o       Об’ємдвигуна.
ü    Можливість редагування даноїбази
ü    Організація пошуку закритеріями:
o       Модельмашини
o       Ріквипуску машини
o       Витратипалива на 100 кіломитрів;
o       Об’ємдвигуна.
ü    Можливість перегляду всіхіснуючих документів
ü    Можливість видалення всієїбази.
ü    Зручний інтерфейс длякористувача
ü    Швидкість та простота роботив даній програмі
ü    Введення необхідних підказокдля користувача1.2 Формальна постановказадачі
 
Вихіднідані:
         Нехай Х-власників авто, тоді H=||Hi|| — множина автомобілей, де і=1..n
Результат:
Якщо Oi – це критерій вибору по будьякому з визначених критеріїв, Bi буди належати Oi і буде її підмножиною.
Математичнамодель:
Bi– критерій якийвикористовується для пошуку, де i- номер критерія з зазначених. Таким чином отримуємо множину Bi/> Oi         
 
1.3 Структура зберігаючихданих
Lk – структурований записдля введення та зберігання інформації
·                  Ml – полестрокового типу для запису моделі автотранспорту
·                  Gv – полестрокового типу для запису року випуску машини
·                  tp — полестрокового типу для запису запису витрати палива
·                  odv — полестрокового типу для запису об’єму двигуна
f – типізований файл длязберігання автотранспорту
menu_pickto — процедураяка прорисовує головне меню
menu_text — процедуравиведення пунктів меню
menu_vibor – процедурадля управляння головним меню
pamka — процедура якамалює рамку
tabl — процедура якавиводить на екран таблицю
vvod – процедура введенняінформації, та занесення її до файлу
viv — процедура пошуку запевними критеріями
2.Алгоритми 2.1 Алгоритм основної програми
/>
/>2.2Алгоритм процедуриvvod/>

3. Вихіднийкод програми
uses crt,dos;
type lk=record
gv,ml,odv,tp:string[10];
end;
{…………………………….}
var f:file of lk;ma:lk;
{——–RAMKA———–}
procedure ramka(x1,y1,x2,y2{Љ®®а¤Ё­ вл а ¬ЄЁ ўе®¤­лҐ},
{x01,y01{Љ®®а¤Ё­ влўлў®¤ ⥪бв ў а ¬ЄҐ}{:integer;
st{’ҐЄбвўлў®¤Ё¬л© ў а ¬ЄҐ}{:string;}
a{ЏҐаҐ¬Ґ­­ п д®­ а¬ЄЁ}:byte);
var i:integer;
begin
textbackground(a);
textcolor(red);
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_pickto(n:byte);
var i:byte;
begin
textcolor(14);
for i:=1 to n do
begin
writeln(‘| | | || |’);
writeln(‘ \ \ \ // /’);
writeln(‘ | | | || |’);
writeln(‘ / / / \\ \’);
end;
end;
{——————–}
proceduremenu_text(x1,y1,c1,c2,c3,c4:byte;s1,s2,s3,s4:string);
begin
gotoxy(x1,y1);
textcolor(c1);
write(s1);
gotoxy(x1,y1+4);
textcolor(c2);
write(s2);
gotoxy(x1,y1+8);
textcolor(c3);
write(s3);
gotoxy(x1,y1+12);
textcolor(c4);
write(s4);
end;
{——————-}
proceduremenu_vibor(x,y,c:byte);
begin
textcolor(c);
gotoxy(x,y);
write(‘_ _ _ _ __ _ _’);
{window(x,y,x+15,y+2);
textbackground(5);
clrscr;}
gotoxy(x,y+3);
write(‘_ _ _ _ __ _ _’);
end;
procedure pamka(x1,y1,x2,y2:integer);
var i,c:integer;
begin
textcolor(7);
gotoxy(x1,y1);
write(#201);
for i:=1 tox2-x1-1 do
begin
gotoxy(x1+i,y1);
write(#205);
end;
gotoxy(x2,y1);
write(#187);
for i:=1 toy2-y1-1 do
begin
gotoxy(x2,y1+i);
write(#186);
end;
gotoxy(x2,y2);
write(#188);
for i:=1 to x2-x1-1do
begin
gotoxy(x2-i,y2);
write(#205);
end;
gotoxy(x1,y2);
write(#200);
for i:=1 toy2-y1-1 do
begin
gotoxy(x1,y1+i);
write(#186);
end;
end;
{………………………………………..}
proceduretabl(st:string);
vari,j,x,y:integer;
begin
for i:=1 to 80 do
begin
gotoxy(0+i,2);
write(#196);
end;
for i:=1 to 80 do
begin
gotoxy(0+i,4);
write(#196);
end;
gotoxy(1,1);
write(#218);
gotoxy(80,1);
write(#191);
for i:=1 to 78 do
begin
gotoxy(1+i,1);
write(#196);
end;
gotoxy(35,1);
textcolor(3);
writeln(st);
textcolor(7);
for i:=1 to 23 do
begin
gotoxy(1,1+i);
write(#179);
end;
gotoxy(1,2);
write(#195);
gotoxy(1,4);
write(#195);
y:=2;
for i:=1 to 10 do
begin
gotoxy(1,4+y);
write(#195);
y:=y+2;
end;
gotoxy(1,24);
write(#192);
for i:=1 to 78 do
begin
gotoxy(1+i,24);
write(#196);
end;
for i:=1 to 23 do
begin
gotoxy(80,1+i);
write(#179);
end;
gotoxy(80,24);
write(#217);
gotoxy(80,2);
write(#180);
y:=2;
for i:=1 to 10 do
begin
gotoxy(80,2+y);
write(#180);
y:=y+2;
end;
y:=2;
for j:=1 to 10 do
begin
y:=y+2;
for i:=1 to 78 do
begin
gotoxy(1+i,y);
write(#196);
end;
end;
x:=20;
for i:=1 to 3 do
begin
gotoxy(0+x,2);
write(#194);
x:=x+20;
end;
x:=20;
for i:=1 to 3 do
begin
gotoxy(0+x,24);
write(#193);
x:=x+20;
end;
x:=0;
for j:=1 to 3 do
begin
x:=x+20;
for i:=1 to 21 do
begin
gotoxy(0+x,2+i);
write(#179);
end;
end;
x:=0;
for j:=1 to 3 do
begin
y:=4;
for i:=1 to 10 do
begin
gotoxy(20+x,y);
write(#197);
y:=y+2;
end;
x:=x+20;
end;
textcolor(3);
gotoxy(5,3);
write(‘modelmahini’);
gotoxy(24,3);
write(‘obemdvigatela’);
gotoxy(44,3);
writeln(‘godvipuska’);
gotoxy(61,3);
write(‘rashodtopliva’);
end;
{………………………………………}
procedure vvod;
var st:string;i,n:integer;
begin
window(1,1,80,25);
clrscr;
assign(f,’d:\tyu’);
rewrite(f);
pamka(1,1,80,3);
gotoxy(37,2);
writeln(‘VVOD’);
pamka(1,1,80,24);
gotoxy(1,3);
write(#204);
gotoxy(80,3);
write(#185);
window(2,4,79,23);
write(‘vveditekolichestvo avtomobiley- ‘);
readln(n);
for i:=1 to n do
begin
with ma do
begin
clrscr;
gotoxy(2,4);
writeln(‘mahina-‘,i);
write(‘vvedimodel mahini- ‘);readln(ml);
write(‘vvedi godvipuska- ‘);readln(gv);
write(‘vvedirasxod topliva- ‘);readln(tp);
write(‘vvedi obemdv. ‘);readln(odv);
writeln;
end;
seek(f,filesize(f));
write(f,ma);
end;
close(f);
end;
procedure viv;
varst:string;i,y:integer;
begin
window(1,1,80,25);
ifFSearch(‘tyu’,’d:\’)=” then
begin
textbackground(0);
clrscr;
textcolor(132);
writeln(‘FAIL NENAYDEN’);
readln;
end
else
begin
textbackground(0);
clrscr;
st:=’bazadannix’;
tabl(st);
assign(f,’d:\tyu’);
reset(f);
y:=1;
for i:=0 tofilesize(f)-1 do
begin
seek(f,i);
read(f,ma);
with ma do
begin
gotoxy(2,4+y);
write(i+1);
gotoxy(3,4+y);
write(#179);
gotoxy(4,4+y);
write(ml);
gotoxy(24,4+y);
write(odv);
gotoxy(44,4+y);
write(gv);
gotoxy(64,4+y);
write(tp);
end;
y:=y+2;
end;
end;
readln;
end;
procedure poi;
var i:integer;s:string;
begin
window(1,1,80,25);
ifFSearch(‘tyu’,’d:\’)=” then
begin
textbackground(0);
clrscr;
textcolor(132);
writeln(‘FAIL NENAYDEN’);
readln;
end
else
begin
window(1,1,80,25);
clrscr;
assign(f,’d:\tyu’);
reset(f);
pamka(1,1,80,3);
gotoxy(37,2);
writeln(‘Poisk’);
pamka(1,1,80,24);
gotoxy(1,3);
write(#204);
gotoxy(80,3);
write(#185);
window(2,4,79,23);
write(‘Kluch dlapoicka-‘);
textcolor(4);
readln(s);
textcolor(7);
for i:=0 tofilesize(f)-1 do
begin
seek(f,i);
read(f,ma);
with ma do
begin
if (s=ml) or(s=odv) or (s=gv) or (s=tp) then
begin
textcolor(4);
writeln(‘zapis-‘,i+1);
write(‘modelmashini- ‘ ,ml);
write(‘godvipuska- ‘,gv);
write(‘ obemdvigatela- ‘,odv);
write(‘rasxodtopliva- ‘,tp);
end;
end;
end;
end;
end;
{:::::::::::::::::::::::::::::::}
vare:char;r,i:byte;
begin
{clrscr;
vvod;
viv;
poi;
readln;}
repeat
clrscr;
window(1,1,80,25);
textbackground(1);
clrscr;
i:=1;
window(6,4,34,22);
menu_pickto(6);
textcolor(14);
menu_text(8,3,12,14,14,14,’Vvod’,’ Pokasat’,’ Nayti’,’ Viyti’);
menu_vibor(7,1,14);
repeat
newreadkey(e,r);
if r=72 then
i:=i-1;
if r=80 then
i:=i+1;
if i=0 then
i:=4;
if i=5 then
i:=1;
case i of
1: begin
menu_vibor(7,5,1);
menu_vibor(7,13,1);
menu_text(8,3,12,14,14,14,’Vvod’,’ Pokasat’,’ Nayti’,’ Viyti’);
menu_vibor(7,1,14);
end;
2: begin
menu_vibor(7,1,1);
menu_vibor(7,9,1);
menu_text(8,3,14,12,14,14,’Vvod’,’ Pokasat’,’ Nayti’,’ Viyti’);
menu_vibor(7,5,14);
end;
3: begin
menu_vibor(7,5,1);
menu_vibor(7,13,1);
menu_text(8,3,14,14,12,14,’Vvod’,’ Pokasat’,’ Nayti’,’ Viyti’);
menu_vibor(7,9,14);
end;
4: begin
menu_vibor(7,9,1);
menu_vibor(7,1,1);
menu_text(8,3,14,14,14,12,’Vvod’,’ Pokasat’,’ Nayti’,’ Viyti’);
menu_vibor(7,13,14);
end;
end;
until e=#13;
case i of
1:vvod;
2:viv;
3:poi;
end;
until i=4;
end.
Висновок
В даній курсовійроботі були виконане всі поставлені задачі. Було продемонстровано мій рівеньпрограмування в середовищі Турбо Паскаль. Результатом цієї роботи є програмнийпродукт, який має зручний інтерфейс, простоту в застосуванні та виконує всіпокладені в основу функції.
Я обрав мовупрограмування Паскаль, оскільки вважаю що для даної роботи він підходитьнайбільш.
Списоквикористаної літератури
1.               СтруковВ.М. Основи алгоритмизации и програмирования. Часть 2. Учебное пособие. –Харьков: Изд. Нац. ун-та внутр.дел,2003. – 188 с.
2.                СердюченкоВ.Я. Розробка алгоритмів та програмування на мові Turbo Pascal. – X.,1995.
3.                НемнюгинС.А. Turbo Pascal. – СПб.: Питер, 2002. – 496 с.: ил.