Разработка информационно справочной системы Картотека ГАИ
CODE=9003
/*
**************************
* КУРСОВАЯ РАБОТА *
*
*
* КьJьKенскьH ОЃEги *
*
*
**************************
*/
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
/*Процедура созданЃE ъBыMвньBЃEЃEЃE ЃEзагрузЃE базы даыLых*/
start:-
makewindow(1,2,7,"КартотеЃE ГАИ",0,0,25,80),
clearwindow,
load,
patch.
/*Процедура управленЃE ъBыMвным ЃEЃE*/
patch:-
repeat,
cursor(7,0), write("
0 - О ЃEьBpамЃE... "),nl,
write("
1 - ЃEррекция даыLых"),nl,
write("
2 - ЃEъBЃEтр базы"),nl,
write("
3 - загрузЃE базы"),nl,
write("
4 - сохранение базы"),nl,
write("
5 - создание ыMвоЃEбазы"),nl,
write("
6 - ввьC ыMвыЃEдаыLых"),nl,
write("
7 - ЃEъBЃEтр-добавление"),nl,
write(" 8
- выхоЃEиз ЃEьBраЃEЃE),nl,
write("
=>"),
readint(Choice),
Choice >= 0,
Choice < 9,
clearwindow,
process(Choice),
clearwindow, Choice
= 8,
retractall(_),
removewindow.
/*Процедура ЃEисЃE ЃEзагрузЃE файлЃEсодержащегЃEбазу даыLых*/
load:-
existfile("olia.dat"),
consult("olia.dat"),
cursor(1,2),
write("БазЃEзагруженЃE).
load:-
cursor(1,2),
write("Нет базы ъь дискЃE).
/*ПpъGедуpЃEввьCЃEыMвыЃEдаыLых*/
process(6):-
makewindow(1,2,7,"ВвоЃEыMвыЃEдаыLых",0,0,25,80),
nl,
write("Введите ЃEЃEдкьAый ыMЃEЃE
:"),readint(K),nl,
write("Введите ФамилЃE.И.О.
:"),readln(F),nl,
write("Введите ыMЃEрньH знак
:"),readint(G),nl,
write("Введите ЃEркЃEавтоЃEбиЃE :"),readln(Y),nl,
write("Введите райоЃEучетЃE
:"),readln(T),nl,
write("Введите числЃEавтотранспъAтных"),nl,
write("
ЃEьGсшествий :"),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.
/*Процедура ЃEъBЃEтрЃEдобавленЃE*/ process(7):-
makewindow(1,2,7,"ПросмъCЃEдобавление",0,0,25,80), nl, write("Введите ыMЃEЃEзаЃEси:"),readint(A),nl,nl,
svod(N,FIO,NZ,MA,RU,CHP), A=N, write("НьKер заЃEси
:"),write(A),nl, write("ФамилЃE.И.О. :"),write(FIO),nl, write("НьKерыMЃEзнак
:"),write(NZ),nl, write("МарЃE автоЃEбиЃE :"),write(MA),nl, write("РайЃE учетЃE
:"),write(RU),nl, write("ЧисЃE автотранспъAтных "),nl, write(" ЃEьGсшествий
:"),write(CHP),nl,nl,nl, write("НажЃEте ъь ЃEбую ЃEавишЃE), readchar(_), removewindow, !. process(7):-
write("Этого ыMЃEра заЃEси ыDЃEЃEбазе."),
write("ПьAторите введеныZЃEыMЃEЃEзаЃEси ЃEЃEьCьJжайтЃEввьC даыLых"),nl,nl,nl,
write("Введите ыMЃEЃE"), readint(A),nl, A=N1, write("Введите ФамилЃE.И.О.
:"),readln(F),nl, write("Введите ыMЃEрньH знак
:"),readint(Y),nl, write("Введите ЃEркЃEавтоЃEбиЃE :"),readln(J),nl, write("Введите райоЃEучетЃE
:"),readln(G),nl,
write("Введите
числЃEавтотранспъAтных"),nl, write("
ЃEьGсшествий:"),readint(K),nl,
FIO1=F,NZ1=Y,MA1=J,RU1=G,CHP1=K,
assertz(svod(N1,FIO1,NZ1,MA1,RU1,CHP1)), removewindow, fail.
/*ПpъGедуpЃEвывода даыLых ЃEЃEьBpамЃE*/ process(0):-
makewindow(1,2,7,"О ЃEьBpамЃE...",0,0,25,80),
write("
ИыSыЌЃEциЃEыM-спpавъHъья системЃE),nl,nl,
write("
ЃEртъCекЃEГАИ "),nl,nl,
write("
ЯзыЃETURBO-PROLOG v.2.0. "),nl,nl,
write("
автоp:КьJьKенскЃE О. "),nl,nl,
write("
МИРЭА, гp.ИТ-1-95 (ЃE 1995 ЃE "),nl,nl,nl,nl,
write("НажЃEте ъь ЃEбую ЃEавишЃE), readchar(_), removewindow.
/*Процедура изЃEыDыGя содержимьBЃEзаЃEсеЃEбазы даыLых*/
process(1):-
makewindow(1,2,7,"КыЌpекция даыLых",0,0,25,80),
nl,
select(N),
X=N,
svod(X,FIO,NZ,MA,RU,CHP),
write("НьKер заЃEси
:"),write(N),nl,
write("ФамилЃE.И.О. :"),write(FIO),nl,
write("НьKерыMЃEзнак
:"),write(NZ),nl,
write("МарЃE автоЃEбиЃE :"),write(MA),nl,
write("РайЃE учетЃE
:"),write(RU),nl,
write("ЧисЃE автотранспъAтных"),nl,
write(" ЃEьGсшествий:"),write(CHP),nl,
nl,
write("Введите ФамилЃE.И.О.
:"),readln(FIO1),nl,
write("Введите ыMЃEрньH знак
:"),readint(NZ1),nl,
write("Введите ЃEркЃEавтоЃEбиЃE :"),readln(MA1),nl,
write("Введите райоЃEучетЃE
:"),readln(RU1),nl,
write("Введите числЃEавтотранспъAтных"),nl,
write("
ЃEьGсшествий:"),readint(CHP1),nl,
X1=X,
retract(svod(X,FIO,NZ,MA,RU,CHP)),
assert(svod(X1,FIO1,NZ1,MA1,RU1,CHP1)),
!,
removewindow.
/*Процедура ЃEъBЃEтрЃEсодержимьBЃEбазы даыLых*/
process(2):-
makewindow(1,2,7,"ПросмъCp базы",0,0,25,80),
nl,
write("--------------------------------------------------------------------"),nl,
write("
КАРТОТЕКА ГАИ
"),nl,
write("--------------------------------------------------------------------"),nl,
write("!ЃEЃEЃE! фаЃEЃEя ! ыMЃEрньH ! ЃEркЃE ! райоЃE ! числЃEавто !"),nl,
write("!ыMЃEЃE! И.О.владелЃEЃE знак ! ЃEЃEшиыZ! учетЃE ! ЃEьGсшествий!"),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("НажЃEте ъь ЃEбую ЃEавишЃE),
readchar(_),
removewindow.
/*Процедура загрузЃE ЃEЃEЃEть базы даыLых*/
process(3):-
nl,
makewindow(2,15,4,"ЗагрузкЃE,5,5,20,70),
write("1 - БазЃEбудеЃEзагруженЃEиз указаныMго файлЃE),nl,
write("2 - БазЃEбудеЃEзагруженЃEиз файлЃEolia.dat"),nl,
write("3 - ВыхьC ЃEъBыMвньD ЃEЃE"),nl,
write("==>"),
readint(C),
C>0,C<4,
lod(C),
!,
removewindow.
/*Процедура сохраненЃE базы даыLых*/
process(4):-
nl,
makewindow(2,15,4,"ЗаписЃE,5,5,20,70),
write("1 - БазЃEбудеЃEзаЃEсаъь ЃEуказаныZЃEфайл"),nl,
write("2 - БазЃEбудеЃEзаЃEсаъь ЃEфайл olia.dat"),nl,
write("3 - ВыхьC ЃEъBыMвньD ЃEЃE"),nl,
write("==>"),
readint(I),
I>0,I<4,
sve(I),!,
removewindow.
/*Процедура выбора созданЃE
ыMвоЃEбазы*/
process(5):-
nl,
makewindow(3,2,7,"СьFдаыGЃEыMвоЃEбазы",0,0,25,80),
write("1 - БазЃEбудеЃEсозданЃEЃE Ф.И.О. владелЃEЃEЃEЃEшиыZ"),nl,
write("2 - БазЃEбудеЃEсозданЃEЃE ыMЃEрньKЃEзнакЃEЃEЃEшиыZ"),nl,
write("3 - БазЃEбудеЃEсозданЃEЃE ЃEркЃEЃEЃEшиыZ"),nl,
write("4 - ВыхьC ЃEъBыMвньD ЃEЃE"),nl,
write("==>"),
readint(O),
O>0,O<5,
procedure(O),
removewindow.
process(_).
/*Процедура созданЃE ыMвоЃEбазы даыLых ЃEее сохраненЃE*/
procedure(1):- makewindow(1,2,7,"СьFдаыGЃEыMвоЃEбазы ЃE Ф.И.О. владелЃEЃEЃEЃEшиыZ",0,0,25,80),
nl,
cursor(7,10),
retractall(_,svod1),
nl,
write("ЕслЃEвы хотите узъьть даыLые ЃEЃEЃEшиыD , то"),
nl,
write("Введите Ф.И.О. владелЃEЃEЃEЃEшиыZ:"),
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("!ЃEЃEЃE! ФамилЃE !ыMЃEрньH! ЃEркЃE ! райоЃE ! числЃEавто.!"),nl,
write("!ыMЃEЃE! И.О. владелЃEЃE! знак ! ЃEЃEшиыZ! учетЃE !ЃEьGсшествий!"),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("БазЃEсохраненЃEЃEфайлЃEnot.dat"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
removewindow,
!.
procedure(1):-
write("-------------------------------------------------------------------"),
nl,
write("НевьFЃEжнЃEсохранитЃEсозданыRю базу"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
makewindow(1,2,7,"ККАРТОТЕКА ГАИ",0,0,25,80). procedure(2):-
makewindow(1,2,7,"СьFдаыGЃEыMвоЃEбазы ЃE ыMЃEрньKЃEзнакЃEЃEЃEшиыZ",0,0,25,80),
nl,
cursor(7,10),
retractall(_,lolo),
nl,
write("ЕслЃEвы хотите узъьть даыLые ЃEвладелЃEЃEЃEЃEшиыZ, то"),nl,
write("Введите ыMЃEрньH знак ЃEЃEшиыZ:"),
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("!ЃEЃEЃE! ФамилЃE !ыMЃEрньH! ЃEркЃE ! райоЃE ! числЃEавто.!"),nl,
write("!ыMЃEЃE! И.О. владелЃEЃE! знак !атьKь@иля! учетЃE !ЃEьGсшествий!"),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("БазЃEсохраненЃEЃEфайлЃEnot1.dat"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
removewindow,
!.
procedure(2):-
write("-------------------------------------------------------------------"),
nl,
write("НевьFЃEжнЃEсохранитЃEсозданыRю базу"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_), makewindow(1,2,7,"КАРТОТЕКА ГАИ",0,0,25,80).
procedure(3):-
makewindow(1,2,7,"СьFдаыGЃEбазы даыLых ЃE ЃEркЃEавтоЃEбиЃE",0,0,25,80),
nl,
cursor(7,10),
retractall(_,kuku),
nl, write("ЕслЃEвы хотите узъьть даыLые ЃEыMЃEраЃEавтоЃEбиЃE, то"),
nl,
write("Введите ЃEркЃEавтоЃEбиЃE:"),
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("!ЃEЃEЃE! ФамилЃE !ъьЃEрньH! ЃEркЃE ! райоЃE ! числЃEавто.!"),nl,
write("!ыMЃEЃE! И.О. владелЃEЃE! знак !автоЃEбиЃE! учетЃE !ЃEьGсшествий!"),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("БазЃEсохраненЃEЃEфайлЃEnot.dat"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
removewindow,
!.
procedure(3):-
write("-------------------------------------------------------------------"),
nl,
write("НевьFЃEжнЃEсохранитЃEсозданыRю базу"),
nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_),
makewindow(1,2,7,"ХАРАКТЕРИСТИКА ПРЕДПРИЯТИЯ",0,0,25,80).
/*Процедура заЃEси ъь диск*/
sve(1):-
write("Введите имя файлЃE:"),
readln(N),
save(N),
write("Все ЃEЃEЃEдкЃE),
beep,
!.
sve(1):-
write("ОшибкЃEь@ЃEъь, ъьжмитЃEЃEбую ЃEавишЃE),
readchar(_).
sve(2):-
save("olia.dat").
sve(3).
/*Процедура чтенЃE ЃEдискЃE/
lod(1):-
retractall(_),
write("Введите имя файлЃE:"),
readln(N),
existfile(N),
consult(N),
write("Все ЃEЃEЃEдкЃE),
beep,
!.
lod(1):-
nl,
write("ДаныMго файлЃEыDЃEъь дискЃE),nl,
write("НажЃEте ЃEбую ЃEавишЃE),
readchar(_).
lod(2):-
retractall(_),
existfile("olia.dat"),
consult("olia.dat"),
write("Все ЃEЃEЃEдкЃE),
beep, !.
lod(2):-
write("ФайЃE olia.dat ыDЃEъь дискЃE),nl,
write("ъьжмитЃEЃEбую ЃEавишЃE),
readchar(_).
lod(3).
repeat.
repeat:- repeat.
/*ВыбъA заЃEси*/
select(N):-
nl,
write("1 - известен ыMЃEЃEзаЃEси"),nl,
write("2 - известъь Фамиля И.О. владелЃEЃE),nl,
write("3 - известен ыMЃEрньH знак"),nl,
write("4 - известъь ЃEркЃEавтоЃEбиЃE "),nl,
write("5 - известен райоЃEучетЃE),nl,
write("==>"),
readint(X),
sel(X,N). sel(1,N):-
nl,
write("Введите ыMЃEЃEзаЃEси
:"),
readint(N),
svod(M,_,_,_,_,_),
M=N.
sel(1,N):-
N=0.
sel(2,N):-
nl,
write("Введите ФамилЃE И.О. владелЃEЃE"), readln(L),
svod(Z,L,_,_,_,_),
N=Z.
sel(2,N):-
N=0.
sel(3,N):-
nl,
write("Введите ыMЃEрньH знак: "),
readint(F),
svod(Z,_,F,_,_,_),
N=Z.
sel(3,N):- N=0.
sel(4,N):-
nl,
write("Введите ЃEркЃEавтоЃEбиЃE:"),
readln(Q),
svod(Z,_,_,Q,_,_),
N=Z.
sel(4,N):-
N=0.
sel(5,N):-
nl,
write("Введите райоЃEучетЃE"),
readln(W),
svod(Z,_,_,_,W,_),
N=Z. sel(5,N):- N=0. sel(6,N):- nl, write("Введите числЃEавто ЃEьGсшествий:"), readint(C), svod(Z,_,_,_,_,C), N=Z. sel(6,N):- N=0.
|