Автоматизована реєстрація і облік автомобілей
В даній курсовій роботі були виконане всі поставлені задачі. Було продемонстровано мій рівень програмування в середовищі Турбо Паскаль. Результатом цієї роботи є програмний продукт, який має зручний інтерфейс, простоту в застосуванні та виконує всі покладені в основу функції. Я вибрав мову програмування Turbo Pascal бо важаю її найбільш оптимальною для вирішення даної задачі та з метою… Читати ще >
Автоматизована реєстрація і облік автомобілей (реферат, курсова, диплом, контрольна)
Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС Курсова робота з дисципліни «Основи програмування та алгоритмічні мови»
на тему: «Автоматизована реєстрація і облік автомобілей»
Харків
Зміст
- Вступ
- 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{Љ®(r)а¤Ё вл, а ЄЁ ўе®¤лҐ},
{x01,y01{Љ®(r)а¤Ё вл ўлў®¤ ⥪бв ў а ЄҐ}{: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 с.: ил.