Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС
Курсова робота
з дисципліни "Основи програмування та алгоритмічні мови"
на тему: "Автоматизована реєстрація і облік автомобілей"
Харків
Зміст
Вступ
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);
w