|
Автоматизована реєстрація і облік автомобілей
Автоматизована реєстрація і облік автомобілей
Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС Курсова робота з дисципліни "Основи програмування та алгоритмічні мови" на тему: "Автоматизована реєстрація і облік автомобілей" Харків Зміст - Вступ
- 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 Алгоритм процедури vvod3. Вихідний код програмиuses crt,dos;type lk=recordgv,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;begintextbackground(a);textcolor(red);window (x1,y1,x2,y2);write('Ъ');for i:=1 to (x2-x1)-1 dobeginwrite('Д');end;write('ї');for i:=2 to (y2-y1)-1 dobegingotoxy(1,i);write('і');gotoxy(x2-x1+1,i);write('і');end;write('А');for i:=1 to (x2-x1)-1 dobeginwrite('Д');end;write('Щ');end;{------------------------}procedure newreadkey (var a{`зЁвлў Ґ¬л© Є®¤ бЁ¬ў®" }:char;var b{ђ §иЁаҐл© Є®¤ Є" ўЁиЁ}:byte);beginb:=0;a:=readkey;if a=#0 thenb:=ord(readkey);end;{--------------------}procedure menu_pickto(n:byte);var i:byte;begintextcolor(14);for i:=1 to n dobeginwriteln('| | | | | |');writeln(' \ \ \ / / /');writeln(' | | | | | |');writeln(' / / / \ \ \');end;end;{--------------------}procedure menu_text(x1,y1,c1,c2,c3,c4:byte;s1,s2,s3,s4:string);begingotoxy(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);begintextcolor(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;begintextcolor(7);gotoxy(x1,y1);write(#201);for i:=1 to x2-x1-1 dobegingotoxy(x1+i,y1);write(#205);end;gotoxy(x2,y1);write(#187);for i:=1 to y2-y1-1 dobegingotoxy(x2,y1+i);write(#186);end;gotoxy(x2,y2);write(#188);for i:=1 to x2-x1-1 dobegingotoxy(x2-i,y2);write(#205);end;gotoxy(x1,y2);write(#200);for i:=1 to y2-y1-1 dobegingotoxy(x1,y1+i);write(#186);end;end;{...............................................}procedure tabl(st:string);var i,j,x,y:integer;beginfor i:=1 to 80 dobegingotoxy(0+i,2);write(#196);end;for i:=1 to 80 dobegingotoxy(0+i,4);write(#196);end;gotoxy(1,1);write(#218);gotoxy(80,1);write(#191);for i:=1 to 78 dobegingotoxy(1+i,1);write(#196);end;gotoxy(35,1);textcolor(3);writeln(st);textcolor(7);for i:=1 to 23 dobegingotoxy(1,1+i);write(#179);end;gotoxy(1,2);write(#195);gotoxy(1,4);write(#195);y:=2;for i:=1 to 10 dobegingotoxy(1,4+y);write(#195);y:=y+2;end;gotoxy(1,24);write(#192);for i:=1 to 78 dobegingotoxy(1+i,24);write(#196);end;for i:=1 to 23 dobegingotoxy(80,1+i);write(#179);end;gotoxy(80,24);write(#217);gotoxy(80,2);write(#180);y:=2;for i:=1 to 10 dobegingotoxy(80,2+y);write(#180);y:=y+2;end;y:=2;for j:=1 to 10 dobeginy:=y+2;for i:=1 to 78 dobegingotoxy(1+i,y);write(#196);end;end;x:=20;for i:=1 to 3 dobegingotoxy(0+x,2);write(#194);x:=x+20;end;x:=20;for i:=1 to 3 dobegingotoxy(0+x,24);write(#193);x:=x+20;end;x:=0;for j:=1 to 3 dobeginx:=x+20;for i:=1 to 21 dobegingotoxy(0+x,2+i);write(#179);end;end;x:=0;for j:=1 to 3 dobeginy:=4;for i:=1 to 10 dobegingotoxy(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;beginwindow(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 dobeginwith ma dobeginclrscr;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;beginwindow(1,1,80,25);if FSearch('tyu','d:\')='' thenbegintextbackground(0);clrscr;textcolor(132);writeln('FAIL NE NAYDEN');readln;endelsebegintextbackground(0);clrscr;st:='baza dannix';tabl(st);assign(f,'d:\tyu');reset(f);y:=1;for i:=0 to filesize(f)-1 dobeginseek(f,i);read(f,ma);with ma dobegingotoxy(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;beginwindow(1,1,80,25);if FSearch('tyu','d:\')='' thenbegintextbackground(0);clrscr;textcolor(132);writeln('FAIL NE NAYDEN');readln;endelsebeginwindow(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 dobeginseek(f,i);read(f,ma);with ma dobeginif (s=ml) or (s=odv) or (s=gv) or (s=tp) thenbegintextcolor(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;}repeatclrscr;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);repeatnewreadkey(e,r);if r=72 theni:=i-1;if r=80 theni:=i+1;if i=0 theni:=4;if i=5 theni:=1;case i of1: beginmenu_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: beginmenu_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: beginmenu_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: beginmenu_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 of1:vvod;2:viv;3:poi;end;until i=4;end.ВисновокВ даній курсовій роботі були виконане всі поставлені задачі. Було продемонстровано мій рівень програмування в середовищі Турбо Паскаль. Результатом цієї роботи є програмний продукт, який має зручний інтерфейс, простоту в застосуванні та виконує всі покладені в основу функції.Я обрав мову програмування Паскаль, оскільки вважаю що для даної роботи він підходить найбільш.Список використаної літератури1. Струков В.М. Основи алгоритмизации и програмирования. Часть 2. Учебное пособие. - Харьков: Изд. Нац. ун-та внутр.дел,2003. - 188 с.2. Сердюченко В.Я. Розробка алгоритмів та програмування на мові Turbo Pascal. - X.,1995.3. Немнюгин С.А. Turbo Pascal. - СПб.: Питер, 2002. - 496 с.: ил.
|
|