Главная Учебники - Разные Лекции (разные) - часть 32
Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС Курсова робота з дисципліни "Основи програмування та алгоритмічні мови" на тему: "Автоматизована реєстрація і облік автомобілей" Харків Зміст
Вступ 1. Основна частина 1.1 Неформальна постановка задачі 1.2 Формальна постановка задачі 1.3 Структура зберігаючих даних: 2. Алгоритми 2.1 Алгоритм основної програми 2.2 Алгоритм процедури vvod 3. Вихідний код програми Висновок Список використаної літератури Реєстрація автомобілів для полегшення роботи багатьох служб. Сьогодні це питання не стоїть так гостро як декілька років назад. Розроблено багато програм які полегшують роботу з таким видом інформації як електронний. Але моєю задачею є створити програму яка буду мати невеликі розміри та виконуватиме всі необхідні функції. Призначення даного продукту полегшити роботу працівникам ОВС, але при цьому мати найпростіший інтерфейс з максимальною працевіддачею. Я вибрав мову програмування TurboPascal бо важаю її найбільш оптимальною для вирішення даної задачі та з метою закріплення своїх навиків з програмування в даному середовищі. Розробити програму-"реєстрація автомобілів" для збереження та перегляду всієї інформації що стосується автотранспорту. - Введення і збереження інформації в типізованому файлі: o Модель машини o Рік випуску машини o Витрати палива на 100 кілометрів; o Об’єм двигуна. - Можливість редагування даної бази - Організація пошуку за критеріями: o Модель машини o Рік випуску машини o Витрати палива на 100 кіломитрів; o Об’єм двигуна. - Можливість перегляду всіх існуючих документів - Можливість видалення всієї бази. - Зручний інтерфейс для користувача - Швидкість та простота роботи в даній програмі - Введення необхідних підказок для користувача Вихідні дані:
Нехай Х- власників авто, тоді H=||Hi
|| - множина автомобілей, де і=1..n Результат:
Якщо Oi
– це критерій вибору по будь якому з визначених критеріїв, Bi
буди належати Oi
і буде її підмножиною. Математична модель
:
Bi
– критерій який використовується для пошуку, де i- номер критерія з зазначених . Таким чином отримуємо множину Bi
1.3
Структура
зберігаючих
дан
и
х
Lk – структурований запис для введення та зберігання інформації · Ml – поле строкового типу для запису моделі автотранспорту · Gv – поле строкового типу для запису року випуску машини · tp - поле строкового типу для запису запису витрати палива · odv - поле строкового типу для запису об’єму двигуна f – типізований файл для зберігання автотранспорту menu_pickto - процедура яка прорисовує головне меню menu_text - процедура виведення пунктів меню menu_vibor – процедура для управляння головним меню pamka - процедура яка малює рамку tabl - процедура яка виводить на екран таблицю vvod – процедура введення інформації, та занесення її до файлу viv - процедура пошуку за певними критеріями 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. Сердюченко В.Я. Розробка алгоритмів та програмування на мові TurboPascal. – X.,1995.
|