rendered paste bodydomains
name,car,nomer,usluga,detal,marka,oplata,kontakt,probeg = symbol
kol,klass,days,key,y,z = integer
database-avtoservis
klient(name,car,nomer,detal,oplata,kontakt,probeg)
predicates
rpt
menu
key_menu1(key,y)
key_menu2(key,y)
go(integer)
see(symbol)
del(symbol)
saves(integer)
clearb
clauses
rpt.
rpt:-!,rpt.
saves(1):- save("avtoser.dat",avtoservis),clearb.
saves(0):- save("avtoser.dat",avtoservis),clearb,consult("avtoser.dat",avtoservis).
clearb:-retract(klient(_,_,_,_,_,_,_)),fail;true.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
key_menu1(0,Y) :- inkey(Key), key_menu1(Key,Y).
key_menu1(72,Y) :- field_attr(Y,0,27,2),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(2,0).
key_menu1(80,Y) :- field_attr(Y,0,27,2),
Y<4,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu1(13,Y) :- Y=4,
removewindow,
cursorform(2,2),
exit
;
cursorform(14,15),
go(Y),
readchar(_),
removewindow,
rpt,
keypressed,
removewindow,
menu.
%8888888888888888888888888888888888888888888888888888888
key_menu2(0,Y) :- inkey(Key), key_menu2(Key,Y).
key_menu2(72,Y) :- field_attr(Y,0,27,2),
Y>0,!,
Z=Y-1,
cursor(Z,0)
;
cursor(2,0).
key_menu2(80,Y) :- field_attr(Y,0,27,2),
Y<1000,!,
Z=Y+1,
cursor(Z,0)
;
cursor(0,0).
key_menu2(13,Y) :- Y=1000,
removewindow,
cursorform(2,2),
exit
;
cursorform(14,15),
readln(L),
see(L),
rpt,
keypressed,
menu.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
menu :- makewindow(1,7,7,"Avtoservis",0,0,8,29),
clearwindow,
write("Add to baze"),nl,
write("Del from baze"),nl,
write("Find in baze"),nl,
write("See baze"),nl,
write("Exit"),nl,
cursor(0,0),
rpt,
cursor(Y,_),
field_attr(Y,0,27,112),
inkey(Key),key_menu1(Key,Y),
fail.
%====================================================
go(0):-cursorform(2,2),
rpt,makewindow(2,7,7,"Oformlenie",0,29,12,30),
write("Imya Klienta: "),nl,readln(A),nl,
write("Marka: "),nl,readln(B),nl,
write("Probeg: "),readln(G),nl,
write("Gos Nomer: "),readln(C),nl,
write("Remont detali: "),readln(D),nl,
write("Oplata: "),readln(E),nl,
write("Telefon: "),readln(F),nl,
assertz(klient(A,B,C,D,E,F,G)),
saves(0),removewindow,menu.
go(1):-makewindow(2,7,7,"Baza",0,29,30,50),
write("Gos Nomer: "),readln(M),nl,
del(M).
go(2):-makewindow(2,7,7,"Baza",0,29,30,50),
write("Dlya poiska vvedite "),nl,
write("Gos Nomer: "),readln(V),nl,
see(V).
go(3):-makewindow(2,7,7,"Baza",0,29,30,50),
klient(A,B,C,D,E,F,G),
write(C),nl,fail;true,
cursor(0,0),
rpt,
cursor(Y,_),
field_attr(Y,0,27,112),
inkey(Key),key_menu2(Key,Y),
fail.
go(4):-cursorform(2,2),exit.
%==================================================================
see(C):-cursorform(2,2),
removewindow,
makewindow(50,100,7,"Prosmotr",0,29,30,30),
klient(A,B,C,D,E,F,G),
write("Klient: ",A),nl,
write("Telefon: ",F),nl,
write("Marka: ",B),nl,
write("Probeg: ",G," km"),nl,
write("Gos Nomer: ",C),nl,
write("Usluga: Remont (zamena)"),nl,
write("detal': ",D),nl,
write("Oplata: ",E," rub."),nl,nl,nl,
write("Press any key to continue...").
%==================================================================
del(C):-retract(klient(_,_,C,_,_,_,_)),fail;true,saves(1),menu.
%==================================================================
goal
consult("avtoser.dat",avtoservis),
menu.