#ifndef __RegTelefonico__
#define __RegTelefonico__

#include "Registro.hpp"
#include <string>
#include <stdio.h>

using namespace std;


/// Clase para manipular registros telefonicos
/**
 * Clase para manipular registros telefonicos
 * @author Antonio Carrillo Ledesma
 * @date Verano 2011
 * @version 0.0.1
 * @bug No errors detected
 * @todo ...
 */
class RegTelefonico : public Registro
{

private:

   string Nombre;
   string Direccion;
   string Telefonos;



public:



   /**
    * Constructor de la clase.
    *
    */
   RegTelefonico(void)
   {
   }



   /// Visualiza el contenido del registro
   int visualizaRegistro(void)
   {
      printf("\n\nNombre:    %s", Nombre.c_str());
      printf("\nDireccion: %s", Direccion.c_str());
      printf("\nTelefonos: %s", Telefonos.c_str());
      return 0; //Ok
   }

   /// Adiciona un registro
   int adicionaRegistro(void)
   {
      // Cadena temporal
      char cad[81];

      printf("\nNombre: ");
      ut.leerCadena(cad, 80);
      Nombre.assign(cad);


      printf("\nDireccion: ");
      ut.leerCadena(cad, 80);
      Direccion.assign(cad);

      printf("\nTelefonos: ");
      ut.leerCadena(cad, 80);
      Telefonos.assign(cad);

     return 0; // Ok
   }

   /// Modifica el contenido del registro
   int modificarRegistro(void)
   {
      // Cadena temporal
      char cad[81];

      // Visualiza el nombre y permite su modificacion
      printf("\nNombre:    %s", Nombre.c_str());
      printf("\nNuevo Nombre: ");
      ut.leerCadena(cad, 80);
      Nombre.assign(cad);

      printf("\nDireccion: %s", Direccion.c_str());
      printf("\nNueva Direccion: ");
      ut.leerCadena(cad, 80);
      Direccion.assign(cad);

      printf("\nTelefonos: %s", Telefonos.c_str());
      printf("\nNuevos Telefonos: ");
      ut.leerCadena(cad, 80);
      Telefonos.assign(cad);

      return 0; // Ok
   }

   /// Leer un registro
   int leerRegistro(FILE *file)
   {
      char cad[100];

      cad[0] = 0;
      fread(cad,1,80,file);
      Nombre.assign(cad);

      fread(cad,1,80,file);
      Direccion.assign(cad);


      fread(cad,1,80,file);
      Telefonos.assign(cad);

      return 0; // Ok
   }

   /// Graba un registro
   int grabarRegistro(FILE *file)
   {
      fwrite(Nombre.c_str(),1,80,file);
      fwrite(Direccion.c_str(),1,80,file);
      fwrite(Telefonos.c_str(),1,80,file);

      return 0; // Ok
   }

};


#endif