бесплатные рефераты

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

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

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

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

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

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

Харків

Зміст

  • Вступ
  • 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;

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

procedure newreadkey (var a{`зЁвлў Ґ¬л© Є®¤ бЁ¬ў®" }:char;

var b{ђ §иЁаҐ­л© Є®¤ Є" ўЁиЁ}:byte);

begin

b:=0;

a:=readkey;

if a=#0 then

b:=ord(readkey);

end;

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

procedure menu_pickto(n:byte);

var i:byte;

begin

textcolor(14);

for i:=1 to n do

begin

writeln('| | | | | |');

writeln(' \ \ \ / / /');

writeln(' | | | | | |');

writeln(' / / / \ \ \');

end;

end;

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

procedure menu_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;

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

procedure menu_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 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 tabl(st:string);

var i,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('model mahini');

gotoxy(24,3);

write('obem dvigatela');

gotoxy(44,3);

writeln('god vipuska');

gotoxy(61,3);

write('rashod topliva');

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('vvedite kolichestvo avtomobiley- ');

readln(n);

for i:=1 to n do

begin

with ma do

begin

clrscr;

gotoxy(2,4);

writeln('mahina-',i);

write('vvedi model mahini- ');readln(ml);

write('vvedi god vipuska- ');readln(gv);

write('vvedi rasxod topliva- ');readln(tp);

write('vvedi obem dv. ');readln(odv);

writeln;

end;

seek(f,filesize(f));

write(f,ma);

end;

close(f);

end;

procedure viv;

var st:string;i,y:integer;

begin

window(1,1,80,25);

if FSearch('tyu','d:\')='' then

begin

textbackground(0);

clrscr;

textcolor(132);

writeln('FAIL NE NAYDEN');

readln;

end

else

begin

textbackground(0);

clrscr;

st:='baza dannix';

tabl(st);

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

reset(f);

y:=1;

for i:=0 to filesize(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);

if FSearch('tyu','d:\')='' then

begin

textbackground(0);

clrscr;

textcolor(132);

writeln('FAIL NE NAYDEN');

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 dla poicka-');

textcolor(4);

readln(s);

textcolor(7);

for i:=0 to filesize(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('model mashini- ' ,ml);

write('god vipuska- ',gv);

write(' obem dvigatela- ',odv);

write('rasxod topliva- ',tp);

end;

end;

end;

end;

end;

{:::::::::::::::::::::::::::::::}

var e: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 с.: ил.


© 2010 РЕФЕРАТЫ