%
%  >> o = PersonListe( 'Siemens' )
%  >> o = o.getPerson( 2 )
%  >> o = o.addPerson( 'Willy', 4711 )
%  >> o.printPerson()
%  >> o.findPerson( 4711 )
%  >> o.findName() 
% 
%  pers = Array mit Elementen der Klasse Person
%
classdef PersonListe
  
  properties 
    company = '';               % Firmenname
    pers    = Person.empty();   % Leere Person-Liste
  end   % properties 
  
  methods
    
    function o = PersonListe( company )  % Konstruktor 
      o.company = company;
    end
    
    function o = getPerson( o, num_pers )
      for( n = 1:num_pers )    % Einleseschleife: von 1 bis num_pers
        name  = input( 'Name: ', 's' );    % als Text
        telnr = input( 'Tel.-Nr.: ' );     % als Zahl 
        o.pers(n) = Person( name, telnr );   % neues Objekt von Person 
      end
    end

    function o = addPerson( o, name, telnr )
      anz = length( o.pers );
      n = anz + 1;  % nächste Nummer
      % neues Objekt von Person
      o.pers(n) = Person( name, telnr );    
    end
    
    function printPerson( o )

      num_pers = length( o.pers );           % Zahl der Personen
      fprintf( '\nPersonen von %s: \n', o.company );   % Überschrift
      fprintf(   '---------------------\n' );
      for( n = 1:num_pers )                % Ausgabeschleife
        o.pers(n).print;
      end   
    end
    
    function findPerson( o, tnr )

      gefunden = 0;
      num_pers = length( o.pers );           % Zahl der Personen
      for( n = 1:num_pers )                  % Suchschleife
        if( o.pers(n).telnr == tnr )         % Test der Nummer 
            o.pers(n).info();
            gefunden = 1;
        end
      end 

      if( gefunden == 0 )
        fprintf( 'Keine Person zu Telnr. %g bei %s! \n', tnr, o.company );
      end
    end    

    function findName( o )
      name = input( 'Name der gesuchten Person: ', 's' );

      num_pers = length( o.pers );         % Zahl der Personen
      gefunden = 0;
      for( n = 1:num_pers )                % Suchschleife
        if( strcmp( name, o.pers(n).name ) )  % Test des Namens 
            fprintf( '%s hat die Telefonnummer %g \n', ...
                     o.pers(n).name, o.pers(n).telnr );
            gefunden = 1;     
        end
      end      

      if( gefunden == 0 )
          fprintf( '%s gibt es nicht bei %s. \n', name, o.company  );
      end
    end
    
  end    % methods

end   % classdef 