#include"Persona.h"
using namespace std;
/* Implantacion de  los metodos de la clase Persona*/

/*Constructor vacio*/

//Los constructores no tienen valor de retorno
//Constructor por omision
Persona::Persona(){ 
	//Valores asignados por omision
	strcpy(nombre, "Ninguno");
	strcpy(apellido,"Ninguno");
	edad=0;
	cedula=0;
	telefonoHogar=0;
	telefonoCelular=0;
	strcpy(direccion,"Ninguna");
}
//Constructor por copia
Persona::Persona(const Persona& p1){
	strcpy(nombre, p1.nombre);
	strcpy(apellido, p1.apellido);
	edad=p1.edad;
	strcpy(direccion, p1.direccion);
	cedula = p1.cedula;
	telefonoHogar = p1.telefonoHogar;
	telefonoCelular = p1.telefonoCelular;
}
//Constructor parametrico
Persona::Persona(const char _nom[],const char _apel[],
const short &_edad, const char _dir[], const short _ced, const short _telH, const short _telC){
	strcpy(nombre, _nom);
	strcpy(apellido, _apel);
	edad=_edad;
	strcpy(direccion, _dir);
	telefonoHogar = _telH;
	telefonoCelular = _telC;
	cedula = _ced;
}

/*Métodos de acceso*/
char* Persona:: obtenerNombre() {return this->nombre; }

//Es equivalente retornar this->apellido 
char* Persona:: obtenerApellido() { return apellido ;} 

short Persona:: obtenerEdad() {return edad; }

char* Persona:: obtenerDireccion() {return direccion; }
short Persona:: obtenerCedula() {return cedula; }
short Persona:: obtenerTelefonoHogar() {return telefonoHogar; }
short Persona:: obtenerTelefonoCelular() {return telefonoCelular; }

/*Métodos de Modificación*/
void Persona:: asignarNombre(const char _nom[]){
	strcpy(nombre, _nom);
}
void Persona:: asignarApellido(const char _apel[]){
	strcpy(apellido, _apel);
}
void Persona:: asignarEdad(const short& _edad){
	edad=_edad;
}
void Persona:: asignarDireccion(const char  _dir[]){
	strcpy(direccion, _dir);
}
void Persona:: asignarCedula(const short& _ced){
	cedula=_ced;
}
void Persona:: asignarTelefonoHogar(const short& _telH){
	telefonoHogar=_telH;
}
void Persona:: asignarTelefonoCelular(const short& _telC){
	telefonoCelular=_telC;
}
/*Métodos para leer imprimir y asignar*/
void  Persona:: scan(){
	cout<<"Introduzca el nombre de la persona ";
	cin>>nombre;
	cout<<"Introduzca el apellido de la persona ";
	cin>>apellido;
	cout<<"Introduzca la edad de la persona ";
	cin>>edad;
	cout<<"Introduzca la cedula de la persona ";
	cin>>cedula;
	cout<<"Introduzca la direccion de la persona ";
	cin>>direccion;
	cout<<"Introduzca el telefono del hogar de la persona ";
	cin>>telefonoHogar;
	cout<<"Introduzca el telefono celular de la persona ";
	cin>>telefonoCelular;
}
//Metodo para mostrar los valores de los atributos
void Persona::print(){
	cout<<"Nombre: "<<nombre<<endl;
	cout<<"Apellido: "<<apellido<<endl;
	cout<<"Edad: "<<edad<<endl;
	cout<<"Cedula: "<<cedula<<endl;
	cout<<"Direccion: "<<direccion<<endl;
	cout<<"telefonoHogar: "<<telefonoHogar<<endl;
	cout<<"telefonoCelular: "<<telefonoCelular<<endl;
}
void Persona::set(const Persona& p1){
	strcpy(nombre, p1.nombre);
	strcpy(apellido, p1.apellido);
	edad=p1.edad;
}
//Destructor 
Persona::~Persona(){
/*Vacio*/	
}

