christioan
Programmer
start:-
initialisierung,
menue,
terminierung.
initialisierung:-
titel,
retractall(wahl(_)),
asserta(wahl(kunde(_))),
write_ln('Load Database...'),
tab(2), consult('c:/frkunden.pl'), nl.
titel:-
write_ln('****************'),
write_ln('* Rent a Video *'),
write_ln('****************'),
nl.
menue:-
nl, write_ln('Mainmenu: '), nl,
write_ln(' 1 - New Customer'),
write_ln(' 2 - Borrow Video'),
write_ln(' 0 - Quit'), nl,
write('Your Choice: '),
get_single_char(Ch),
wahl_ausfuehren(Ch),
Ch \== 0'0, !,
menue. %WHY
menue. %WHY
terminierung:-
titel,
write_ln('Save Database...'),
write(' Customer...'),
rename_file('c:/frkunden.pl', 'c:/frkunden.bak'),
tell('c:/frkunden.pl'), listing(kunde), told,
write_ln(' ok!'),
retractall(wahl(_)).
wahl_ausfuehren(0'1):-
write_ln('Insert new Customer:'), nl,
write('Name: '),
lese_string(Kunde),
bearbeite_kunde(Kunde),
weiter.
wahl_ausfuehren(0'2):-
write_ln('...'), nl.
wahl_ausfuehren(_).
weiter:-
write('Press key. '),
get0(_), nl, nl.
bearbeite_kunde(Kunde):-
atom(Kunde),
write_ln('Adresse: '), nl,
write('Street and Nr.: '), lese_string(Strasse),
write('ZIP : '), lese_string(PLZ),
write('Town : '), lese_string(Ort),
findall(KNr, kunde(KNr,_,_,_,_), Liste1),
sort(Liste1, Liste2),
last(KNr1, Liste2),
KundenNr is KNr1 + 1,
speicher_kunde(kunde(KundenNr,Kunde,Strasse,PLZ,Ort)), !.
speicher_kunde(kunde(KundenNr,Kunde,Strasse,PLZ,Ort)):-
nl, write('Adresse correct (yes/no): '),
lese_string(Antwort),
Antwort = 'yes',
assert(kunde(KundenNr, Kunde, Strasse, PLZ, Ort)),
retract(wahl(kunde(_))),
asserta(wahl(kunde(KundenNr))).
speicher_kunde(_).
%%% einen String einlesen
lese_string(String):-
readln([String|_], _, _, " .,0123456789", uppercase),!.
lese_string('').
**********************************************************
kunde(1, 'Mayer', 'Landgasse 4576', 4551, 'Ried /Trkr.').
kunde(2, 'Rübner', 'Rübelgasse 89', 1160, 'Wien').
*********************************************************
I THOUGHT THAT THIS SHOULD WORK, BUT I GET THE FOLLOWING ERROR-MESSAGE:
ERROR: No permission to modify static_procedure `kunde/5'
^ Exception: (15) assert(kunde(3, Mr.X, A.Street789, 3554, Wien)) ?
DO YOU KNOW WHY??????????????????
initialisierung,
menue,
terminierung.
initialisierung:-
titel,
retractall(wahl(_)),
asserta(wahl(kunde(_))),
write_ln('Load Database...'),
tab(2), consult('c:/frkunden.pl'), nl.
titel:-
write_ln('****************'),
write_ln('* Rent a Video *'),
write_ln('****************'),
nl.
menue:-
nl, write_ln('Mainmenu: '), nl,
write_ln(' 1 - New Customer'),
write_ln(' 2 - Borrow Video'),
write_ln(' 0 - Quit'), nl,
write('Your Choice: '),
get_single_char(Ch),
wahl_ausfuehren(Ch),
Ch \== 0'0, !,
menue. %WHY
menue. %WHY
terminierung:-
titel,
write_ln('Save Database...'),
write(' Customer...'),
rename_file('c:/frkunden.pl', 'c:/frkunden.bak'),
tell('c:/frkunden.pl'), listing(kunde), told,
write_ln(' ok!'),
retractall(wahl(_)).
wahl_ausfuehren(0'1):-
write_ln('Insert new Customer:'), nl,
write('Name: '),
lese_string(Kunde),
bearbeite_kunde(Kunde),
weiter.
wahl_ausfuehren(0'2):-
write_ln('...'), nl.
wahl_ausfuehren(_).
weiter:-
write('Press key. '),
get0(_), nl, nl.
bearbeite_kunde(Kunde):-
atom(Kunde),
write_ln('Adresse: '), nl,
write('Street and Nr.: '), lese_string(Strasse),
write('ZIP : '), lese_string(PLZ),
write('Town : '), lese_string(Ort),
findall(KNr, kunde(KNr,_,_,_,_), Liste1),
sort(Liste1, Liste2),
last(KNr1, Liste2),
KundenNr is KNr1 + 1,
speicher_kunde(kunde(KundenNr,Kunde,Strasse,PLZ,Ort)), !.
speicher_kunde(kunde(KundenNr,Kunde,Strasse,PLZ,Ort)):-
nl, write('Adresse correct (yes/no): '),
lese_string(Antwort),
Antwort = 'yes',
assert(kunde(KundenNr, Kunde, Strasse, PLZ, Ort)),
retract(wahl(kunde(_))),
asserta(wahl(kunde(KundenNr))).
speicher_kunde(_).
%%% einen String einlesen
lese_string(String):-
readln([String|_], _, _, " .,0123456789", uppercase),!.
lese_string('').
**********************************************************
kunde(1, 'Mayer', 'Landgasse 4576', 4551, 'Ried /Trkr.').
kunde(2, 'Rübner', 'Rübelgasse 89', 1160, 'Wien').
*********************************************************
I THOUGHT THAT THIS SHOULD WORK, BUT I GET THE FOLLOWING ERROR-MESSAGE:
ERROR: No permission to modify static_procedure `kunde/5'
^ Exception: (15) assert(kunde(3, Mr.X, A.Street789, 3554, Wien)) ?
DO YOU KNOW WHY??????????????????