•
жаңа бөлімді қосу;
•
қызметкерді тегі бойынша жою;
•
қызметкерді бөлімнің коды бойынша жою;
•
қызметкерлерді қарап шығу;
•
бөлімдерді қарап шығу.
Бағдарлама :
facts%аталмаған қор
dbotdel(integer КодОтд, string Атауы,integer КодРук)
facts-fsotrudniki%аталған қор
dbsotrudniki(integer ҚызмКод, String Фам,integer БөлКод)
predicates
otdel(integer,string,integer)%бөлімдер
sotrudniki(integer,string,integer)% қызметкерлер
process(integer)%мəзірді өңдеу
assertdbotdely% фактілерді инициалдау — бөлімдер
assertdbsotr% фактілерді инициалдау — қызметкерлер
repeat%
шырғалану
menu%мəзір clauses
%
шырғалану
repeat.
repeat:-repeat.
%Бастапқы
деректер
otdel(1,"Бухгалтерия",10).
otdel(2,"Өткізу",20).
sotrudniki(100,"ИвановА.И.",1).
sotrudniki(200,"КотовО.К.",1).
sotrudniki(300,"КимИ.К.",1).
167
sotrudniki(400,"ЗвереваО.С.",2).
sotrudniki(500,"ХватоваМ.И.",2).
%Фактілерді қалыптастыру
assertdbotdely:-
otdel(KOtd,N,KR uk),
assertz(dbotdel(KOtd,N,KR ),
fail.
assertdbotdely:-!.
assertdbsotr:-
sotrudniki(KSotr,N,KO ,
assertz(dbsotrudniki(KSotr,N,KOtd)
, fsotrudniki),fail.
assertdbsotr:-!.
%мəзірді
шығару
menu:-
repeat,
write(
,,
Кодты енгізіңіз\п1-Бөлімді
қосу"),
write(" \n2-Қызметкерлерді жою"),
write(" \n3-Қызметкерлерді жою"),
write(" \n4- Қ
ы з м е т к е р л е р
\
П
5-
Бөлімдер"),
write(" \n6-Exit\n > "),
readint(Exec),process(Exec),Exec=
6,n l,!.
%Мəзірдің пəрмендерін өңдеу
process(l): -
write(" Код="),readint(K),nl,
write(" Атауы="),readln(N),nl,
write(" БасшКод ="),readint(KR),
assertz(dbotdel(K,N,KR)).
process(2): -
write(" Тегі="),readln(N),
168
retract(dbsotrudniki(_,N,_),fsotrudniki)
process(3): -
write(" Бөлім кодын енгізіңіз="),
readint(KOtd),retractall(dbsotrudniki(_,,KOtd),
fsotrudnik
i).
process
(4): -
dbsotrudniki(KSotr,N,KOtd),
write(KSotr," \t",N,"\t",KOtd),
nl,fail.
process(5): -
dbotdel(KOtd,N,KRuk),write(KOtd,"
\t",N," \t",KRuk),
nl,fail.
process(6
): -
write(" \nExit ").
goal
% мақсатты бағыт
assertdbotdely, assertdbsotr, menu.
169
Достарыңызбен бөлісу: |