/* 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 */