Название: Автоматизована реєстрація і облік автомобілей
Вид работы: курсовая работа
Рубрика: Информатика и программирование
Размер файла: 27.28 Kb
Скачать файл: referat.me-140680.docx
Краткое описание работы: Розробка програми реєстрації автомобілів для збереження та перегляду інформації про модель машини, рік її випуску, об'єм двигуна і витрати палива. Складання алгоритмів розв'язання поставленої задачі та написання тексту програми в середовищі Turbo Pascal.
Автоматизована реєстрація і облік автомобілей
Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС
Курсова робота
з дисципліни "Основи програмування та алгоритмічні мови"
на тему: "Автоматизована реєстрація і облік автомобілей"
Харків
Зміст
Вступ
1. Основна частина
1.1 Неформальна постановка задачі
1.2 Формальна постановка задачі
1.3 Структура зберігаючих даних:
2. Алгоритми
2.1 Алгоритм основної програми
2.2 Алгоритм процедури vvod
3. Вихідний код програми
Висновок
Список використаної літератури
Вступ
Реєстрація автомобілів для полегшення роботи багатьох служб. Сьогодні це питання не стоїть так гостро як декілька років назад. Розроблено багато програм які полегшують роботу з таким видом інформації як електронний. Але моєю задачею є створити програму яка буду мати невеликі розміри та виконуватиме всі необхідні функції.
Призначення даного продукту полегшити роботу працівникам ОВС, але при цьому мати найпростіший інтерфейс з максимальною працевіддачею.
Я вибрав мову програмування TurboPascal бо важаю її найбільш оптимальною для вирішення даної задачі та з метою закріплення своїх навиків з програмування в даному середовищі.
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. Сердюченко В.Я. Розробка алгоритмів та програмування на мові TurboPascal. – X.,1995.
3. Немнюгин С.А. TurboPascal. – СПб.: Питер, 2002. – 496 с.: ил.
Похожие работы
-
Автоматизований облік надходження, зберігання і збуту продукції на товарній базі
Розробка програми "товарна база", призначеної для збереження та перегляду, а також автоматизованої обробки інформації, що надає користувач. Формальна та неформальна постановка задачі. Структура зберігаючих даних. Вихідний код програми, її апробація.
-
Автоматизований облік власників автомобілей
Розробка програми "Авто" для введення та збереження інформації про власників та їхні автомобілі. Побудова математичної моделі. Критерії вибору та пошуку даних. Структура введених та збережених у файлах програми даних. Алгоритм основної програми та її код.
-
Автоматизований аналіз злочинності по областям
Розробка програми "Злочин", що призначена для збереження та перегляду, а також автоматичного аналізу всієї інформації про злочинність. Порядок і основні принципи формування структури даних, постановка задачі. Написання та лістинг розробленої програми.
-
Автоматизований аналіз злочинності
Створення програми "Аналізатор злочинності в регіоні". Структура зберігаючих даних. Неформальна постановка задачі. Алгоритм основної програми. Введення і збереження інформації. Можливість перегляду всіх існуючих документів. Вихідний код програми.
-
Автоматизоване нарахування заробітної плати
Методика та особливості створення програми "Автоматизоване нарахування платні" для збереження, перегляду та аналізу введеної інформації, її алгоритм та вихідний код. Аналіз факторів, які впливають на формування заробітної платні робітника підприємства.
-
Рефакторинг. Виключення дублювання коду. Розробка бібліотек класів та знайомство з багатопроектними рішеннями
Розробка програми для розв’язання квадратних рівнянь з текстовим та графічним інтерфейсами користувача без дублювання їх коду. Алгоритм розв’язання квадратного рівняння у програмах з будь-яким інтерфейсом користувача, а саме: "консольний" та "форма".
-
Довідкова система по кримінальному праву
Створення довідкової системи по зменшенню витрат часу на здобуття інформації по кримінальному праву. Розробка алгоритму основної програми на мові програмування Turbo Pascal з підключенням модуля СRT, якій відповідає за графіку і DOS та працює з файлами.
-
База даних по приватним підприємствам регіону
Програма "Приватка" для збереження та перегляду всієї інформації, що стосується пошуку підприємства. Розробка алгоритму та програмування на мові Turbo Pascal. Формальна та неформальна постановка задачі. Структура зберігаючих даних. Вихідний код програми.
-
База даних по обліку вогнепальної зброї
Розробка програми "Облік вогнепальної зброї" для більш простої та оптимальної обробки інформації по зброї. Алгоритм процедури Zap. Занесення відомостей по вогнепальній зброї користувачем та зберігання її до типізованого файлу. Вихідний код програми.
-
Аналіз успішності групи
Розробка програми мовою Turbo Pascal для автоматизації процесу перевірки оцінок та аналізу успішності групи, для збереження і перегляду всієї інформації стосовно навчання. Формальна постановка задачі, створення алгоритму та вихідного коду програми.