Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС
Курсова робота
з дисципліни «Основи програмування та алгоритмічні мови»
на тему: «Автоматизована реєстрація і облік викрадених автомобілів»
Харків, 2009
Зміст
Вступ
1. Основна частина
1.1 Неформальна постановка задачі
1.2 Формальна постановка задачі
1.3 Структура зберігаючих даних:
2. Алгоритми
2.1 Алгоритм основної програми
2.2 Алгоритм процедури Vvod
2.3 Алгоритм процедури Red
3. Вихідний код програми
Висновок
Список використаної літератури
Швидкий розвиток комп’ютерних технологій надав можливість багатьом одержувати, зберігати та обробляти інформацію в електронному вигляді, але виникла така проблема, що такої інформації стало дуже багато а обробляти її при такій кількості дуже нелегко. Таким чином я вирішив обрати темою своєї курсової роботі саме створення програми для автоматизованої реєстрації і обліку викрадених автомобілів. Ця програма полегшить обробку електронного обігу інформації.
Я вибрав мову програмування Турбо Паскаль, з метою закріплення своїх навиків з програмування.
Вихідним продуктом курсової роботи буду програма під назвою «реєстрація і облік викрадених автомобілів».
1.1 Неформальна постановка задачі
Розробити програму -«реєстрація і облік викрадених автомобілів» для автоматизації обробки інформації по викраденим автомобілям.
- Введення користувачем відомостей про викрадені автомобілі та збереження їх в типізований файл:
o ФІО власника викраденого авто;
o Марка авто;
o Колір автомобіля;
o Дата викрадення авто;
o Номер автомобіля.
- Можливість редагування даної бази
- Можливість видалення відомостей які втратили свою суть
- Організація пошуку за критеріями:
o ФІО власника;
o Дата викрадення автотранспорту;
o Марка авто;
o Номер автомобіля;
- Можливість перегляду всіх існуючих відомостей;
- Зручний інтерфейс для користувача;
- В складних випадках створення підказок для користувача;
- Швидкість та простота роботи в даній програмі;
Вихідні дані:
Нехай П={П1
,П2
,…,Пi
}, де ( i=1, 2, ..., N ) – множина викрадених автомобілів.
Gi
є Пi
– ФІО власника авто яке викралиFi
є Пi
– марка викраденого автоDi
є Пi
– колір викраденого автомобіляHi
є Пi
– Дата реєстрації викрадання автомобіляJi
є Пi
– Реєстраційний номер автомобіля,
Li
є Пi
–Прапорець, яки дорівнює одиниці при поверненні авто
Таким чином отримуємо нову сукупність Пij
– яка більш розширена в плані інформації про викрадені автомобілі.
Результат:
Множина Рij
, яка формуються з вхідних даних а саме множини Пij.
Нову множину O=||Оi
||, яка надаєстатистичні дані обраховуючи множинуПij.
Математична модель:
n
O1
=∑T1
, де T1
– кількість викрадених автомобілів за рік
j
=1
n
O2
=∑T2
, де T2
– кількість знайдених автомобілів за рік
j
=1
O3
=O1
- O2
– кількість автомобілів які ще не знайдені в даному році
1.3
Структура зберігаючих даних:
Mah – тип запис для занесення даних про автомобілі
· Cv – перемінні строкового типу для зберігання кольору
· Nom – перемінні строкового типу для зберігання номеру
· md – перемінні строкового типу для зберігання моделі
· hz – перемінні строкового типу для зберігання ФІБ власника
vvod - процедура для введення та зберігання відомостей
poisk; - процедура для пошуку певних відомостей за певним критерієм
red - процедура для до записи в існуючу базу
menu - процедура для створення управляючого меню
2.1 Алгоритм основної програми
2.2
Алгоритм процедури Vvod
3. Вихідний код програми
uses crt,dos;
type mah=record
cv,nom:string[10];
md:string[10];
hz:string[20];
end;
var mas:mah;f:file of mah;c:char;
{.........vvod.............}
procedure vvod;
var i,n:integer; s:PathStr;
begin
assign(f,'d:\fil');
rewrite(f);
clrscr;
writeln('vvedi kol-vo avtom');
read(n);
for i:=1 to n do
begin
seek(f,filesize(f));
with mas do
begin
writeln('vvedi nomer avtomobila');
readln;
readln(nom);
writeln('cvet avtomobila');
readln(cv);
writeln('vvedi HIO hozaina avtomobila');
readln(hz);
writeln('vvedi model avtomobila');
readln(md);
end;
write(f,mas);
end;
close(f);
end;
{.............poisk..........}
procedure poisk;
var n,i:integer;d:string; s:PathStr;ch:char;
begin
clrscr;
window(1,1,80,50);
textbackground(7);
clrscr;
{window();}
S:=FSearch('fil','d:\');
If S='' then
writeln('basi net')
else
writeln('1-naiti');
writeln('2-posmotret vse');
writeln('0-vixod v gl.meny');
ch:=readkey;
case ch of
'1':
begin
clrscr;
writeln('po hem ishem?');
writeln('1-po modeli');
writeln('2-po cvetu');
writeln('3-po nomeru');
writeln('4-po hozainu');
assign(f,'d:\fil');
reset(f);
ch:=readkey;
case ch of
'1':begin
writeln('vvedi model');
readln(d);
for i:=0 to filesize(f)-1 do
begin
seek(f,i);
read(f,mas);
with mas do
begin
if d=md then
begin
clrscr;
writeln('model avtomobila: ',md);
writeln('cvet avtomobila: ',cv);
writeln('nomer avtomobila: ',nom);
writeln('ima hozaina: ',hz);
end;
end;
end;
end;
'2':begin
writeln('vvedi cvet');
readln(d);
for i:=0 to filesize(f)-1 do
begin
seek(f,i);
read(f,mas);
with mas do
if d=cv then
begin
clrscr;
writeln('model avtomobila: ',md);
writeln('cvet avtomobila: ',cv);
writeln('nomer avtomobila: ',nom);
writeln('ima hozaina: ',hz);
end;
end;
end;
'3':begin
clrscr;
writeln('vvedi nomer');
readln(d);
for i:=0 to filesize(f)-1 do
begin
seek(f,i);
read(f,mas);
with mas do
if d=nom then
begin
clrscr;
writeln('model avtomobila: ',md);
writeln('cvet avtomobila: ',cv);
writeln('nomer avtomobila: ',nom);
writeln('ima hozaina: ',hz);
end;
end;
end;
'4':begin
writeln('vvedi hozaina');
readln(d);
for i:=0 to filesize(f)-1 do
begin
seek(f,i);
read(f,mas);
with mas do
if d=hz then
begin
clrscr;
writeln('model avtomobila: ',md);
writeln('cvet avtomobila: ',cv);
writeln('nomer avtomobila: ',nom);
writeln('ima hozaina: ',hz);
end;
end;
end;
'0':exit;
end;
close(f);
end;
'2':begin
assign(f,'d:\fil');
reset(f);
clrscr;
for i:=0 to filesize(f)-1 do
begin
seek(f,i);
read(f,mas);
writeln('zapis #',i+1);
with mas do
begin
writeln('model avtomobila: ',md);
writeln('cvet avtomobila: ',cv);
writeln('nomer avtomobila: ',nom);
writeln('ima hozaina: ',hz);
writeln;
end;
end;
close(f);
readln;
end;
end;
end;
{..................redak.....................}
procedure red;
var i,p,n,l:integer;s:PathStr;v:char;k:string[10];
begin
clrscr;
window(1,1,80,50);
textbackground(4);
clrscr;
window(20,1,60,50);
textbackground(3);
clrscr;
textcolor(5);
writeln('1-dopis v konec');
writeln('2-izmenit staryu');
writeln('0-vixod v gl.meny');
v:=readkey;
case v of
'1':begin
clrscr;
S:=FSearch('fil','d:\');
If S='' then
begin
assign(f,'d:\fil');
rewrite(f);
close(f);
end;
assign(f,'d:\fil');
reset(f);
clrscr;
writeln('vvedi kol-vo dopisivaemih avtom');
read(n);
for i:=1 to n do
begin
seek(f,filesize(f));
with mas do
begin
writeln('vvedi nomer avtomobila');
readln;
readln(nom);
writeln('cvet avtomobila');
readln(cv);
writeln('vvedi HIO hozaina avtomobila');
readln(hz);
writeln('vvedi model avtomobila');
readln(md);
end;
write(f,mas);
end;
close(f);
end;
'2':begin
clrscr;
S:=FSearch('fil','d:\');
If S='' then
writeln('basi net')
else
begin
assign(f,'d:\fil');
reset(f);
for i:=0 to filesize(f)-1 do
begin
seek(f,i);
read(f,mas);
writeln('zapis #',i+1);
with mas do
begin
writeln('model avtomobila: ',md);
writeln('cvet avtomobila: ',cv);
writeln('nomer avtomobila: ',nom);
writeln('ima hozaina: ',hz);
end;
writeln;
end;
writeln('vvedi nomer izmenaemoy');
readln(l);
clrscr;
seek(f,l-1);
read(f,mas);
with mas do
begin
writeln('1-model avtomobila: ',md);
writeln('2-cvet avtomobila: ',cv);
writeln('3-nomer avtomobila: ',nom);
writeln('4-ima hozaina: ',hz);
end;
writeln('vvedi chto bydem menat');
v:=readkey;
case v of
'1':begin
with mas do
begin
writeln('staraya model-',md);
write('vvedi novuy: ');
readln(k);
md:=k;
end;
seek(f,l-1);
write(f,mas);
close(f);
end;
'2':begin
with mas do
begin
writeln('stariy cvet-',cv);
write('vvedi novuy: ');
readln(k);
cv:=k;
end;
seek(f,l-1);
write(f,mas);
close(f);
end;
'3':begin
with mas do
begin
writeln('stariy nomer-',md);
write('vvedi novuy: ');
readln(k);
nom:=k;
end;
seek(f,l-1);
write(f,mas);
close(f);
end;
'4':begin
with mas do
begin
writeln('stariy hozain-',md);
write('vvedi novuy: ');
readln(k);
hz:=k;
end;
seek(f,l-1);
write(f,mas);
close(f);
end;
end;
end;
end;
end;
end;
procedure menu;
begin
window(1,1,80,50);
textbackground (5);
clrscr;
textcolor(0);
window(20,10,40,25);
textbackground(3);
clrscr;
gotoxy(6,8);
writeln('1-zapolnit');
window(40,10,60,25);
textbackground(4);
clrscr;
gotoxy(6,8);
writeln('2-poisk');
window(20,26,39,40);
textbackground(2);
clrscr;
gotoxy(3,8);
writeln('3-redaktirovat');
window(40,26,60,40);
textbackground(6);
clrscr;
gotoxy(6,8);
writeln('0-vihod');
end;
{.............................proga.................................}
begin
TextMode(C80 + Font8x8);
clrscr;
repeat
menu;
c:=readkey;
case c of
'1':vvod;
'2':poisk;
'3':red;
{'0':halt;}
end;
until c='0';
end. {.......kon........}
В даній курсовій роботі я створив програму реєстрації та автоматизованого створення звіту на рік по викраденим машинам. В ОВС дуже важливо своєчасно володіти інформацією, для швидкого та правильного розкриття злочинів. Саме цей продукт спрямований на одержання працівником міліції достовірної і важливої інформації.
Цією роботою я виконав для себе два завдання: по-перше я створив корисну програму яка може принести користь людям, а по-друге я вдосконалив свої навички в програмуванні та на власному досвіді впевнився що Паскаль досить могутня платформа для створення програм такого типу.
В даній роботі було створено досить велику кількість процедур, які можливо використати і в інших програмних проектах, були використані різні типи даних, а також були застосовані процедури та функції які були створені раніше, ці процедури та функції я брав з модулів CRT та DOS
1. Струков В.М. Основи алгоритмизации и програмирования. Часть 2. Учебное пособие. – Харьков: Изд. Нац. ун-та внутр.дел,2003. – 188 с.
2. Сердюченко В.Я. Розробка алгоритмів та програмування на мові TurboPascal. – X.,1995.
3. Немнюгин С.А. TurboPascal. – СПб.: Питер, 2002. – 496 с.: ил.
|