% adbook.dem
import AddressBook in "adbookln.tu"
var AB : ^AddressBook
new AB % allocate addressbook
AB->Load() % Load contents of book if any from file.
var name, address : string
var command : string
var inBook, success : boolean
put "Address Book Program"
put "You must give a command and supply the requested information "
put skip, "Enter(e), Delete(d), Change(c), LookUp(l), Print(p)"
put skip, "Quit(q), Initialize (i), Finalize (f), Load (o), Save (s)"
% Read and handle each command.
loop
put "Command: " ..
get command : *
case command of % Handle each command.
label "e" : % Enter
put " Give name: " ..
get name : *
put " Give address: " ..
get address : *
AB-> LookUp (name, address, inBook)
if not inBook then
AB-> Enter (name, address, success)
if not success then
put "Sorry, cannot enter item"
end if
else
put "Sorry, name already in book."
end if
label "d" : % Delete
put " Give name: " ..
get name : *
AB-> LookUp (name, address, inBook)
if inBook then
AB-> Delete (name)
put "Entry deleted"
else
put " Sorry, name not in book."
end if
label "c" : % Change
put " Give name: " ..
get name : *
AB-> LookUp (name, address, inBook)
if inBook then
put " Give new address: " ..
get address : *
AB-> Change (name, address)
else
put " Sorry, name not in book."
end if
label "l" : % Look up
put " Give name: " ..
get name : *
AB-> LookUp (name, address, inBook)
if inBook then
put " Address is: ", address
else
put " Sorry, name not in book."
end if
label "p" : % Print
AB->PrintOut()
label "q" : % Quit
exit
label "o" : % Load from file "adbook.dat"
AB->Load()
label "s" : % Save into file "adbook.dat"
AB->Save()
label "i" :
AB->Initialize()
label "f" :
AB->Finalize()
label :
put " Sorry, don't understand command: ", command
end case
end loop
AB->Save() % Save contents of book in a file.
put "Quitting, address book has been saved."