package p2.exemplos;

 

/*

 * Uso de arrays

 */

 

import java.util.Arrays;

import p1.io.Entrada;

 

public class Cadastro2 {

 

 

   public static void main(String[] args) {

      final int MAX_PESSOAS = 10;

      final String prompt = "Digite o nome de uma pessoa: ";

 

      String[] cadastro = new String[MAX_PESSOAS];

      // entrada dos dados de cadastro

      int numPessoas = cadastraPessoas(prompt, cadastro, MAX_PESSOAS);

 

      // imprime o cadastro antes da ordenação

      imprimeCadastro(cadastro, numPessoas);

 

      // ordena o cadastro

      String[] cadOrdenado = ordenaCadastro(cadastro, numPessoas);

 

      imprimeCadastro(cadOrdenado, numPessoas);

   } // main

 

 

   private static int cadastraPessoas(final String prompt,

                                    String[] cadastro, int maxPessoas) {

      String nome;

      int numPessoas = 0;

      while ((nome = Entrada.in.lerLinha(prompt)) != null) {

         if (numPessoas < maxPessoas) {

            cadastro[numPessoas++] = nome;

         } else {

            System.err.println("Tem dados demais " + "(max de "

                  + maxPessoas + "). " + nome + " nao foi cadastrado.");

         }

      }

      return numPessoas;

   }

 

 

   private static void imprimeCadastro(String[] cadastro,

                                       int numPessoas) {

      System.out.println();

      for (int i = 0; i < numPessoas; i++) {

         System.out.println(cadastro[i]);

      }

   }

 

   private static String[] ordenaCadastro(String[] cadastro,

                                        int numPessoas) {

      String[] cadOrdenado = new String[numPessoas];

      for (int i = 0; i < numPessoas; i++) {

         cadOrdenado[i] = cadastro[i];

      }

      Arrays.sort(cadOrdenado);

      return cadOrdenado;

   }

} // Cadastro1