Вход

Разработка информационно-справочной системы "Картотека ГАИ"

Курсовая работа по программированию
Дата добавления: 31 августа 1997
Язык курсовой: Русский
Word, rtf, 115 кб (архив zip, 14 кб)
Курсовую можно скачать бесплатно
Скачать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу




CODE=9003


/* **************************

* КУРСОВАЯ РАБОТА *

* *

* Коломенской Ольги *

* *

**************************

*/



domains

z,nz,n,n1,chp,i=integer

fio,ma,ru,k=symbol

database -svod1

svod1(n,k,nz,ma,ru,chp)

database -lolo

lolo(n,fio,i,ma,ru,chp)

database -kuku

kuku(n,fio,nz,k,ru,chp)

database

svod(n,fio,nz,ma,ru,chp)

predicates


start

patch

load

select(i)

sel(i,i)

process(i)

procedure(i)

sve(i)

lod(i)

repeat



goal

start.


clauses

/*Процедура создания основного меню и загрузки базы данных*/

start:-

makewindow(1,2,7,"Картотека ГАИ",0,0,25,80),

clearwindow,

load,

patch.

/*Процедура управления основным меню*/

patch:-

repeat,

cursor(7,0),

write(" 0 - О пpогpамме... "),nl,

write(" 1 - коррекция данных"),nl,

write(" 2 - просмотр базы"),nl,

write(" 3 - загрузка базы"),nl,

write(" 4 - сохранение базы"),nl,

write(" 5 - создание новой базы"),nl,

write(" 6 - ввод новых данных"),nl,

write(" 7 - просмотр-добавление"),nl,

write(" 8 - выход из программы"),nl,

write(" =>"),

readint(Choice),

Choice >= 0,

Choice < 9,

clearwindow,

process(Choice),

clearwindow,

Choice = 8,

retractall(_),

removewindow.

/*Процедура поиска и загрузки файла содержащего базу данных*/

load:-

existfile("olia.dat"),

consult("olia.dat"),

cursor(1,2),

write("База загружена").

load:-

cursor(1,2),

write("Нет базы на диске").

/*Пpоцедуpа ввода новых данных*/

process(6):-

makewindow(1,2,7,"Ввод новых данных",0,0,25,80),

nl,

write("Введите порядковый номер :"),readint(K),nl,

write("Введите Фамилию.И.О. :"),readln(F),nl,

write("Введите номерной знак :"),readint(G),nl,

write("Введите марку автомобиля :"),readln(Y),nl,

write("Введите район учета :"),readln(T),nl,

write("Введите число автотранспортных"),nl,

write(" происшествий :"),readint(P),nl,

N1=K,FIO1=F,NZ1=G,MA1=Y,RU1=T,CHP1=P,

assertz(svod(N1,FIO1,NZ1,MA1,RU1,CHP1)),

removewindow,

fail.

/*Процедура просмотра-добавления*/

process(7):-

makewindow(1,2,7,"Просмотр-добавление",0,0,25,80),

nl,

write("Введите номер записи:"),readint(A),nl,nl,

svod(N,FIO,NZ,MA,RU,CHP),

A=N,

write("Номер записи :"),write(A),nl,

write("Фамилия.И.О. :"),write(FIO),nl,

write("Номерной знак :"),write(NZ),nl,

write("Марка автомобиля :"),write(MA),nl,

write("Район учета :"),write(RU),nl,

write("Число автотранспортных "),nl,

write(" происшествий :"),write(CHP),nl,nl,nl,

write("Нажмите на любую клавишу"),

readchar(_),

removewindow,

!.

process(7):-

write("Этого номера записи нет в базе."),

write("Повторите введенный номер записи и продолжайте ввод данных"),nl,nl,nl,

write("Введите номер:"),

readint(A),nl,

A=N1,

write("Введите Фамилию.И.О. :"),readln(F),nl,

write("Введите номерной знак :"),readint(Y),nl,

write("Введите марку автомабиля :"),readln(J),nl,

write("Введите район учета :"),readln(G),nl,

write("Введите число автотранспортных"),nl,

write(" происшествий:"),readint(K),nl,

FIO1=F,NZ1=Y,MA1=J,RU1=G,CHP1=K,

assertz(svod(N1,FIO1,NZ1,MA1,RU1,CHP1)),

removewindow,

fail.


/*Пpоцедуpа вывода данных о пpогpамме*/

process(0):-

makewindow(1,2,7,"О пpогpамме...",0,0,25,80),

write(" Инфоpмационно-спpавочная система"),nl,nl,

write(" картотеки ГАИ "),nl,nl,

write(" Язык-TURBO-PROLOG v.2.0. "),nl,nl,

write(" автоp:Коломенская О. "),nl,nl,

write(" МИРЭА, гp.ИТ-1-95 (с) 1995 г. "),nl,nl,nl,nl,

write("Нажмите на любую клавишу"),

readchar(_),

removewindow.


/*Процедура изменения содержимого записей базы данных*/

process(1):-

makewindow(1,2,7,"Коppекция данных",0,0,25,80),

nl,

select(N),

X=N,

svod(X,FIO,NZ,MA,RU,CHP),

write("Номер записи :"),write(N),nl,

write("Фамилия.И.О. :"),write(FIO),nl,

write("Номерной знак :"),write(NZ),nl,

write("Марка автомабиля :"),write(MA),nl,

write("Район учета :"),write(RU),nl,

write("Число автотранспортных"),nl,

write(" происшествий:"),write(CHP),nl,

nl,

write("Введите Фамилию.И.О. :"),readln(FIO1),nl,

write("Введите номерной знак :"),readint(NZ1),nl,

write("Введите марку автомабиля :"),readln(MA1),nl,

write("Введите район учета :"),readln(RU1),nl,

write("Введите число автотранспортных"),nl,

write(" происшествий:"),readint(CHP1),nl,

X1=X,

retract(svod(X,FIO,NZ,MA,RU,CHP)),

assert(svod(X1,FIO1,NZ1,MA1,RU1,CHP1)),

!,

removewindow.



/*Процедура просмотра содержимого базы данных*/

process(2):-

makewindow(1,2,7,"Просмотp базы",0,0,25,80),

nl,

write("--------------------------------------------------------------------"),nl,

write(" КАРТОТЕКА ГАИ "),nl,

write("--------------------------------------------------------------------"),nl,

write("!поряд.! фамилия ! номерной ! марка ! район ! число авто !"),nl,

write("!номер ! И.О.владельца! знак ! а.машины! учета ! происшествий!"),nl,

write("--------------------------------------------------------------------"),nl,

svod(N,FIO,NZ,MA,RU,CHP),

cursor(Z,_),

cursor(Z,0),write(N),

cursor(Z,9),write(FIO),

cursor(Z,24),write(NZ),

cursor(Z,35),write(MA),

cursor(Z,45),write(RU),

cursor(Z,55),write(CHP),

cursor(Z,68),write("!"),

nl,

fail.

process(2):-

write("-------------------------------------------------------------------"),

nl,

write("Нажмите на любую клавишу"),

readchar(_),

removewindow.


/*Процедура загрузки в память базы данных*/

process(3):-

nl,

makewindow(2,15,4,"Загрузка",5,5,20,70),

write("1 - База будет загружена из указанного файла"),nl,

write("2 - База будет загружена из файла olia.dat"),nl,

write("3 - Выход в основное меню"),nl,

write("==>"),

readint(C),

C>0,C<4>

lod(C),

!,

removewindow.

/*Процедура сохранения базы данных*/

process(4):-

nl,

makewindow(2,15,4,"Запись",5,5,20,70),

write("1 - База будет записана в указанный файл"),nl,

write("2 - База будет записана в файл olia.dat"),nl,

write("3 - Выход в основное меню"),nl,

write("==>"),

readint(I),

I>0,I<4>

sve(I),!,

removewindow.

/*Процедура выбора создания новой базы*/

process(5):-

nl,

makewindow(3,2,7,"Создание новой базы",0,0,25,80),

write("1 - База будет создана по Ф.И.О. владельца а.машины"),nl,

write("2 - База будет создана по номерному знаку а.машины"),nl,

write("3 - База будет создана по марке а.машины"),nl,

write("4 - Выход в основное меню"),nl,

write("==>"),

readint(O),

O>0,O<5>

procedure(O),

removewindow.

process(_).


/*Процедура создания новой базы данных и ее сохранения*/

procedure(1):-

makewindow(1,2,7,"Создание новой базы по Ф.И.О. владельца а.машины",0,0,25,80),

nl,

cursor(7,10),

retractall(_,svod1),

nl,

write("Если вы хотите узнать данные о а.машине , то"),

nl,

write("Введите Ф.И.О. владельца а.машины:"),

readln(X),

svod(N,FIO,NZ,MA,RU,CHP),

S=FIO,

S=X,

N1=N,NZ1=NZ,MA1=MA,RU1=RU,CHP1=CHP,

assert(svod1(N1,S,NZ1,MA1,RU1,CHP1)),

fail.


procedure(1):-

write("-------------------------------------------------------------------"),nl,

write(" КАРТОТЕКА ГАИ "),nl,

write("-------------------------------------------------------------------"),nl,

write("!поряд.! Фамилия !номерной! марка ! район ! число авто.!"),nl,

write("!номер ! И.О. владельца ! знак ! а.машины! учета !происшествий!"),nl,

write("-------------------------------------------------------------------"),nl,

svod1(N1,S,NZ1,MA1,RU1,CHP1),

cursor(Z,_),

cursor(Z,0),write(N1),

cursor(Z,9),write(S),

cursor(Z,24),write(NZ1),

cursor(Z,35),write(MA1),

cursor(Z,45),write(RU1),

cursor(Z,55),write(CHP1),

cursor(Z,68),write("!"),

fail.

procedure(1):-

write("-------------------------------------------------------------------"),

save("not.dat",svod1),

nl,

write("База сохранена в файле not.dat"),

nl,

write("Нажмите любую клавишу"),

readchar(_),

removewindow,

!.


procedure(1):-

write("-------------------------------------------------------------------"),

nl,

write("Невозможно сохранить созданную базу"),

nl,

write("Нажмите любую клавишу"),

readchar(_),

makewindow(1,2,7,"ККАРТОТЕКА ГАИ",0,0,25,80).


procedure(2):-

makewindow(1,2,7,"Создание новой базы по номерному знаку а.машины",0,0,25,80),

nl,

cursor(7,10),

retractall(_,lolo),

nl,

write("Если вы хотите узнать данные о владельце а.машины, то"),nl,

write("Введите номерной знак а.машины:"),

readint(X),

svod(N,FIO,NZ,MA,RU,CHP),

S=NZ,

S=X,

N1=N,FIO1=FIO,MA1=MA,RU1=RU,CHP1=CHP,

assert(lolo(N1,FIO1,S,MA1,RU1,CHP1)),

fail.


procedure(2):-

write("-------------------------------------------------------------------"),nl,

write(" КАРТОТЕКА ГАИ "),nl,

write("-------------------------------------------------------------------"),nl,

write("!поряд.! Фамилия !номерной! марка ! район ! число авто.!"),nl,

write("!номер ! И.О. владельца ! знак !атомобиля! учета !происшествий!"),nl,

write("-------------------------------------------------------------------"),nl,

lolo(N1,FIO1,S,MA1,RU1,CHP1),

cursor(Z,_),

cursor(Z,0),write(N1),

cursor(Z,9),write(FIO1),

cursor(Z,24),write(S),

cursor(Z,35),write(MA1),

cursor(Z,45),write(RU1),

cursor(Z,55),write(CHP1),

cursor(Z,68),write("!"),

fail.

procedure(2):-

write("-----------------------------------------------------------------------------"),

save("not1.dat",lolo),

nl,

write("База сохранена в файле not1.dat"),

nl,

write("Нажмите любую клавишу"),

readchar(_),

removewindow,

!.


procedure(2):-

write("-------------------------------------------------------------------"),

nl,

write("Невозможно сохранить созданную базу"),

nl,

write("Нажмите любую клавишу"),

readchar(_),

makewindow(1,2,7,"КАРТОТЕКА ГАИ",0,0,25,80).


procedure(3):-

makewindow(1,2,7,"Создание базы данных по марке автомобиля",0,0,25,80),

nl,

cursor(7,10),

retractall(_,kuku),

nl,

write("Если вы хотите узнать данные о номерах автомобиля, то"),

nl,

write("Введите марку автомобиля:"),

readln(X),

svod(N,FIO,NZ,MA,RU,CHP),

S=MA,

S=X,

N1=N,FIO1=FIO,NZ1=NZ,RU1=RU,CHP1=CHP,

assert(kuku(N1,FIO1,NZ1,S,RU1,CHP1)),

fail.


procedure(3):-

write("-------------------------------------------------------------------"),nl,

write(" КАРТОТЕКА ГАИ "),nl,

write("-------------------------------------------------------------------"),nl,

write("!поряд.! Фамилия !намерной! марка ! район ! число авто.!"),nl,

write("!номер ! И.О. владельца ! знак !автомобиля! учета !происшествий!"),nl,

write("-------------------------------------------------------------------"),nl,

kuku(N1,FIO1,NZ1,S,RU1,CHP1),

cursor(Z,_),

cursor(Z,0),write(N1),

cursor(Z,9),write(FIO1),

cursor(Z,24),write(NZ1),

cursor(Z,35),write(S),

cursor(Z,45),write(RU1),

cursor(Z,55),write(CHP1),

cursor(Z,68),write("!"),

fail.

procedure(3):-

write("-------------------------------------------------------------------"),

save("not2.dat",kuku),

nl,

write("База сохранена в файле not.dat"),

nl,

write("Нажмите любую клавишу"),

readchar(_),

removewindow,

!.


procedure(3):-

write("-------------------------------------------------------------------"),

nl,

write("Невозможно сохранить созданную базу"),

nl,

write("Нажмите любую клавишу"),

readchar(_),

makewindow(1,2,7,"ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ",0,0,25,80).


/*Процедура записи на диск*/

sve(1):-

write("Введите имя файла :"),

readln(N),

save(N),

write("Все в порядке"),

beep,

!.


sve(1):-

write("Ошибка обмена, нажмите любую клавишу"),

readchar(_).


sve(2):-

save("olia.dat").



sve(3).

/*Процедура чтения с диска*/

lod(1):-

retractall(_),

write("Введите имя файла :"),

readln(N),

existfile(N),

consult(N),

write("Все в порядке"),

beep,

!.


lod(1):-

nl,

write("Данного файла нет на диске"),nl,

write("Нажмите любую клавишу"),

readchar(_).


lod(2):-

retractall(_),

existfile("olia.dat"),

consult("olia.dat"),

write("Все в порядке"),

beep,

!.


lod(2):-

write("Файла olia.dat нет на диске"),nl,

write("нажмите любую клавишу"),

readchar(_).


lod(3).


repeat.

repeat:- repeat.


/*Выбор записи*/

select(N):-

nl,

write("1 - известен номер записи"),nl,

write("2 - известна Фамилия И.О. владельца"),nl,

write("3 - известен номерной знак"),nl,

write("4 - известна марка автомобиля "),nl,

write("5 - известен район учета"),nl,

write("==>"),

readint(X),

sel(X,N).


sel(1,N):-

nl,

write("Введите номер записи :"),

readint(N),

svod(M,_,_,_,_,_),

M=N.


sel(1,N):-

N=0.


sel(2,N):-

nl,

write("Введите Фамилию И.О. владельца:"),

readln(L),

svod(Z,L,_,_,_,_),

N=Z.


sel(2,N):-

N=0.


sel(3,N):-

nl,

write("Введите номерной знак: "),

readint(F),

svod(Z,_,F,_,_,_),

N=Z.


sel(3,N):-

N=0.


sel(4,N):-

nl,

write("Введите марку автомабиля:"),

readln(Q),

svod(Z,_,_,Q,_,_),

N=Z.


sel(4,N):-

N=0.


sel(5,N):-

nl,

write("Введите район учета:"),

readln(W),

svod(Z,_,_,_,W,_),

N=Z.

sel(5,N):-

N=0.

sel(6,N):-

nl,

write("Введите число авто происшествий:"),

readint(C),

svod(Z,_,_,_,_,C),

N=Z.

sel(6,N):-

N=0.

© Рефератбанк, 2002 - 2017