/* listato di database2 scritto com prolog.v.3 su MAC */ /* gestione archivio con seguenti campi */ /* nome,qualifica,regione,credito,debito */
/* attivando esegue viene installato menu a tendina con varie ozioni selezionabili */ /* cancella,uscita....carchivio..ccliente ..*/ /* selezionando opzione viene eseguito programma relativo */
(cfr.esempio simile con prolog su dos-windows)
'<LOAD'(X):-esegue.
esegue:- install_menu(scelta,[inizio,informa,archivio,cliente,regione, creditori,debitori,qualifica,linea,fine]).
scelta(inizio):-cancella. scelta(fine):-uscita. scelta(informa):-informazioni. scelta(archivio):-carchivio. scelta(cliente):-ccliente. scelta(regione):-cregione. scelta(creditori):-ccreditori. scelta(debitori):-cdebitori. scelta(qualifica):-cqualifica. scelta(linea):-interlinea.
cancella:-whide(database2),wfront(user).
uscita:- message('premi Enter perfinire'),whide(user),wfront(database2), wshow(database2).
interlinea:- nl,write('-----------------------------------------'),nl.
informazioni:- wfront(informare),wshow(informare).
carchivio:-!,dati(N,Q,R,C,D),write([N,Q,R,C,D]),nl,fail.
ccliente:- prompt_read(['scrivi nome cliente da cercare:'],Cliente), cercacliente(Cliente). cercacliente(Cliente):-!, dati(N,Q,R,C,D),N = Cliente,write([N,Q,R,C,D]),nl,fail.
cregione:- prompt_read(['scrivi nome regione da cercare:'],Regione), cercaregione(Regione). cercaregione(Regione):-!, dati(N,Q,R,C,D),R = Regione,write([N,Q,R,C,D]),nl,fail.
cqualifica:- prompt_read(['scrivi qualifica da cercare:'],Qualifica), cercaqualifica(Qualifica). cercaqualifica(Qualifica):-!, dati(N,Q,R,C,D),Q = Qualifica,write([N,Q,R,C,D]),nl,fail.
ccreditori:- dati(N,Q,R,C,D),Saldo is C-D,Saldo >=0,write([N,Q,R,C,D,'saldo=',Saldo]),nl,fail.
cdebitori:- dati(N,Q,R,C,D),Saldo is C-D,Saldo <0,write([N,Q,R,C,D,'saldo=',Saldo]),nl,fail.
dati(rossi,studente,veneto,150000,5000). dati(verdi,dottore,lazio,30000,5000). dati(rossi,dottore,veneto,150000,5000). dati(verdi,tecnico,lazio,50000,5000). dati(rossini,studente,emilia,15000,500000). dati(bassi,dottore,lazio,30000,5000). dati(grassi,studente,veneto,150000,5000). dati(zanella,dottore,lazio,30000,5000). dati(rossini,studente,veneto,150000,450000). dati(pascoli,dottore,emilia,30000,50000).
/* significato opzioni SCELTA */ /* inizio..........attiva ricerca */ /* fine.............uscita da ricerca */ /* informa.....significato opzioni */ /* linea...........stampa interlinea */ /* archivio.....stampa archivio completo */ /* cliente.......cerca cliente da indicare */ /* regione......cerca abitanti in regione R */ /* creditori...stampa elenco creditori */ /* debitori.....stampa elenco debitori */ /* qualifica...cerca clienti con qualifica Q */ /* -----------------------------------*/ /* premi clic in alto a sinistra per eliminare finestra */