All pastes #2056180 Raw Edit

Anonymous

public text v1 · immutable
#2056180 ·published 2011-05-10 12:36 UTC
rendered paste body
domains
	 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.