/* Predykat glowny */
/* UWAGA: Wczytywanie termu należy każdorazowo konczyć kropką + Enter */
poczatek :-
abolish(student, 3),
abolish(wyklad, 2),
write('Zaladowac baze danych?'), nl,
get_single_char(X),
( X = 116,
[baza]
; !
),
menu.
menu :-
write(' 1. - dopisywanie studenta'), nl,
write(' 2. - dopisywanie wykladu'), nl,
write(' 3. - usuwanie studenta'),nl,
write(' 4. - usuwanie wykladu'),nl,
write(' 5. - przegladanie '),nl,
write(' 6. - koniec '), nl,
read(X),
wykonaj(X).
wykonaj(1):-
write('Podaj numer studenta'), nl,
read(Nr), nl,
write('Podaj nazwisko studenta'), nl,
read(Nazw), nl,
write('Podaj rok studenta'), nl,
read(Rok), nl,
assertz(student(Nr,Nazw,Rok)),
write('Nastepny student?'),
read(Odp),
( Odp = t,
wykonaj(1)
; menu
).
wykonaj(2):-
write('Podaj rok'), nl,
read(Rok),!, nl,
write('Podaj nazwe wykladu'), nl,
read(Wykl),!, nl,
assertz(wyklad(Rok, Wykl)),
write('Nastepny wyklad?'), nl,
read(Odp),
( Odp = t,
wykonaj(2)
;
menu
).
wykonaj(3) :-
write('Podaj nazwisko'), nl,
read(Nazw), !, nl,
( retract(student(_,Nazw,_)), !
;
write('Nie bylo nazwiska w bazie')
), nl,
write('Nastepny student?'), nl,
read(Odp), nl,
( Odp = t,
wykonaj(3)
;
menu
).
wykonaj(4) :-
write('Podaj wyklad'),
read(Wykl), !,
( retract(wyklad(_,Wykl))
;
write('Nie bylo wykladu w bazie')
),
write('Nastepny wyklad?'),
read(Odp),
( Odp = t,
wykonaj(4)
;
menu
).
wykonaj(5) :-
menu_przegladania.
wykonaj(6):-
write('Zachowac zmiany w bazie?'),
read(X),
( X = t,
tell('baza'),
zapis(stud),
zapis(wykl),
told
;
!
).
menu_przegladania:-
write(' 1. - spis wykladow studenta'), nl,
write(' 2. - koniec przegladania'),nl,
read(X),
przegladaj(X).
przegladaj(1):-
write('Podaj nazwisko studenta'),
read(Nazw),
podaj_wyklady(Nazw),nl,
write('Przegladamy dalej studentow?'),
read(Odp),
( Odp = t,
przegladaj(1)
; menu_przegladania
).
przegladaj(2) :-
menu.
podaj_wyklady(Nazw) :-
student(_,Nazw,Rok),
wyklad(Rok, Wykl),
write(Wykl),nl,
fail.
podaj_wyklady(_).
zapis(stud):-
student(X,Y,Z),
write(student(X,Y,Z)), write('.'), nl,
fail.
zapis(stud).
zapis(wykl):-
wyklad(X,Y),
write(wyklad(X,Y)), write('.'), nl,
fail.
zapis(wykl).
Wyszukiwarka
Podobne podstrony:
TI 99 08 19 B M pl(1)bootdisk howto pl 8BORODO STRESZCZENIE antastic plnotatek pl sily wewnetrzne i odksztalcenia w stanie granicznymWSM 10 52 pl(1)amd102 io pl09PPP HOWTO pl 6 (2)bridge firewall pl 3NIS HOWTO pl 1 (2)31994L0033 PL (2)Jules Verne Buntownicy z Bounty PLBlaupunkt CR5WH Alarm Clock Radio instrukcja EN i PLHeidenhain frezarka iTNC 530 G kody plSciaga pl Podział drukarek komputerowychwięcej podobnych podstron