Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС
Курсова робота
з дисципліни «Основи програмування та алгоритмічні мови»
на тему: «Автоматизована реєстрація і облік викрадених автомобілів»
Харків, 2009
Зміст
1.1 Неформальна постановка задачі
1.2 Формальна постановка задачі
1.3 Структура зберігаючих даних:
2.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– кількість автомобілів які ще не знайдені в даному році
Mah – тип запис для занесення даних про автомобілі
· Cv – перемінні строкового типу для зберігання кольору
· Nom – перемінні строкового типу для зберігання номеру
· md – перемінні строкового типу для зберігання моделі
· hz – перемінні строкового типу для зберігання ФІБ власника
vvod - процедура для введення та зберігання відомостей
poisk; - процедура для пошуку певних відомостей за певним критерієм
red - процедура для до записи в існуючу базу
menu - процедура для створення управляючого меню
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.................................}