baza dan pl









/* 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 8
BORODO STRESZCZENIE antastic pl
notatek pl sily wewnetrzne i odksztalcenia w stanie granicznym
WSM 10 52 pl(1)
amd102 io pl09
PPP HOWTO pl 6 (2)
bridge firewall pl 3
NIS HOWTO pl 1 (2)
31994L0033 PL (2)
Jules Verne Buntownicy z Bounty PL
Blaupunkt CR5WH Alarm Clock Radio instrukcja EN i PL
Heidenhain frezarka iTNC 530 G kody pl
Sciaga pl Podział drukarek komputerowych

więcej podobnych podstron