Documente Academic
Documente Profesional
Documente Cultură
Programarea Logica
Programarea Logica
Se cere:
a) adăugarea datelor;
b) afişarea datelor;
c) redactarea;
d) ștergerea datelor;
După executarea fiecărei operații, programul urmează să revină în meniu sau să iasă din
program cu salvarea ulterioară a modificărilor efectuate. Luați în considerație erorile care pot
fi comise de utilizatori la executarea operațiilor.
Programul:
domains
abonat,nr_tel,adresa,pachet,contract=string
file=f
database
servicii(abonat,nr_tel,adresa,pachet,contract)
predicates
nume_abonat(string,string,string,string,string)
nr_abonat(string,string,string,string,string)
menu
option(integer)
start
afisare
clauses
nume_abonat(Abonat,Nr,A,P,C):-servicii(Abonat,Nr,A,P,C).
nr_abonat(Abonat,Nr,A,P,C):-servicii(Abonat,Nr,A,P,C).
menu:-
makewindow(1,0,7,"",0,0,25,80),
makewindow(2,7,3,"***Meniu***",3,4,15,25),
shiftwindow(2),
write("1-Adaugarea datelor"),nl,
write("5-Redactarea"),nl,
write("6-Stergerea datelor"),nl,
write("0-Iesire"),nl,
shiftwindow(3),cursor(1,1),
readint(C),
option(C).
option(1):- clearwindow,
write("Abonat"),nl,readln(Name),nl,
write("Telefon"),nl,readln(Nr),nl,
write("Adresa"),nl,readln(Adresa),nl,
write("Pachet"),nl,readln(Pachet),nl,
write("Contract"),nl,readln(Contract),nl,
assert(servicii(Name,Nr,Adresa,Pachet,Contract)),
option(2):- clearwindow,
write("Nume abonat:"),nl,readln(Abonat),nume_abonat(Abonat,Nr,A,P,C),nl,
write("Numar de telefon:",Nr),nl,
write("Adresa:",A),nl,
write("Pachet:",P),nl,
write("Contract:",C),nl,
readchar(_),menu.
option(3):- clearwindow,
write("Nr de telefon:"),nl,readln(Nr),nr_abonat(Abonat,Nr,A,P,C),nl,
write("Adresa:",A),nl,
write("Pachet:",P),nl,
write("Contract:",C),nl,
readchar(_),menu.
option(4):- clearwindow,
afisare,readchar(_),menu.
option(5):- clearwindow,
write("Abonat"),nl,
readln(Name),
retract(servicii(Name,_,Adresa,Pachet,Contract)),
assert(servicii(Name,Nr,Adresa,Pachet,Contract)),nl,
menu.
option(6): clearwindow,
nl,readln(Nr),retract(servicii(_,Nr,_,_,_)),
menu.
option(0):-save("servicii.ddb"),retractall(_).
option(_):-menu.
servicii(Name,Nr,Adresa,Pachet,Contract),
nl,write("Abonat:",Name),
nl,write("Telefon:",Nr),
nl,write("Adresa:",Adresa),
nl,write("Pachet:",Pachet),
nl,write("Contract:",Contract),nl,fail.
start:-
existfile("servicii.ddb"),!,
consult("servicii.ddb"),menu.
start:-openwrite(f,"servicii.ddb"),closefile(f),menu.
goal
start.