#include <iostream>
#include <string>
#include <vector>
#include "clase.hpp"
using namespace std;
//programa que crea un registro de personas con
//sus respectivos pasatiempos
//prototipo de funciones
void func_crea_objeto(string fulano);
void func_borra_objeto(string mengano);
void func_lista_objetos();
void func_lista_pasatiempos(string sutano);
void func_lista_personas(string pasatiempo);
//declaro el vector donde guardare cada objeto de la clase
vector<Persona> objetos;
//programa principal
int main()
{
cout<<"programa registro de pasatiempos\n"<<endl
<<"escoja una de las siguientes opciones"<<endl
<<"o teclee 0 para salir:\n"<<endl
<<"teclee 1 para agragar un nombre y sus pasatiempos"<<endl
<<"teclee 2 para borrar un nombre y sus pasatiempos"<<endl
<<"teclee 3 para listar todos los nombres"<<endl
<<"teclee 4 para listar los pasatiempos de alguien en particular"<<endl
<<"teclee 5 para listar las personas con un pasatiempo en particular\n"<<endl;
cout<<"Ingrese su eleccion (0 para salir): ";
int x;
cin>>x;
while ((x != 0)&&((x==1)||(x==2)||(x==3)||(x==4)||(x==5)))//necesario para que el bucle no quede enciclado
{ //si le introduce otro valor a x
if((x==1)||(x==2)||(x==3)||(x==4)||(x==5))
{
if(x == 1)
{
cout<<"\nIngrese el nombre de la persona: ";
string fulano;
cin>>fulano;
func_crea_objeto(fulano);//llamo a la funcion
cout<<"\ningrese otra opcion (0 para salir): ";
cin>>x;
}
if(x == 2)
{
cout<<"\nIngrese el nombre de la persona que quiere eliminar: ";
string mengano;
cin>>mengano;
func_borra_objeto(mengano);//llamo a la funcion
cout<<"\ningrese otra opcion (0 para salir): ";
cin>>x;
}
if(x == 3)
{
func_lista_objetos();//llamo a la funcion
cout<<"\ningrese otra opcion (0 para salir): ";
cin>>x;
}
if(x == 4)
{
cout<<"\nTeclee el nombre de quien desea saber los pasatiempos: ";
string sutano;
cin>>sutano;
func_lista_pasatiempos(sutano);//llamo a la funcion
cout<<"\ningrese otra opcion (0 para salir): ";
cin>>x;
}
if(x == 5)
{
cout<<"\nTeclee el pasatiempo: ";
string pasatiempo;
cin>>pasatiempo;
func_lista_personas(pasatiempo);//llamo a la funcion
cout<<"\ningrese otra opcion (0 para salir): ";
cin>>x;
}
}
else
{
cout<<"esa opcion no es valida"<<endl
<<"escoja una de las opciones (0 para salir): ";
cin>>x;
}
}
return 0;
}
/*************************DECLARO FUNCIONES***************************/
void func_crea_objeto(string fulano)
{
//creando un objeto de la clase Persona
Persona persona;
//asignando valores a las variables miembro de la clase
persona.Setnombre(fulano);
cout<<"Introduzca los pasatiempos ('0' para salir) de " <<fulano<<":"<<endl;
cout<<"Pasatiempo #1: ";
string pas;
cin>>pas;
int a = 2;
while(pas != "0")
{
persona.Setpasatiempos(pas);
cout<<"Pasatiempo #"<<a<<": ";
cin>>pas;
a = a + 1;
}
objetos.push_back(persona);//introsuzco el objeto en un vector
}
void func_borra_objeto(string mengano)
{
int prueba = 0;
for(unsigned i = 0; i < objetos.size(); i++)
{
if((objetos[i].devuelve_nombre()) == mengano)
{
objetos.erase(objetos.begin() + i);//borro el objeto solicitado
cout<<"\nLos datos de "<<mengano<<" han sido eliminados"<<endl;
prueba = 1;
}
}
if(prueba == 0)
cout<<"Ese nombre no esta en el registro"<<endl;
}
void func_lista_objetos()
{
cout<<"\nTenemos a:"<<endl;
for(unsigned i = 0; i < objetos.size(); i++)
{
cout<<objetos[i].devuelve_nombre()<<" con "//obtengo el nombre de la persona
<<(objetos[i].devuelve_vector()).size()<<" pasatiempo(s)"<<endl;//obtengo la cantidad de pasatiempos
}
}
void func_lista_pasatiempos(string sutano)
{
for(unsigned i = 0; i < objetos.size(); i++)
{
if((objetos[i].devuelve_nombre()) == sutano)
{
if((objetos[i].devuelve_vector()).size() == 0)//en caso de que la persona no tenga pasatiempos
cout<<sutano<<" no tiene pasatiempos"<<endl;
else
{
for(unsigned j = 0; j < (objetos[i].devuelve_vector()).size(); j++)//recorro el vector de pasatiempos del objeto 'persona'
{
cout<<objetos[i].devuelve_vector()[j]<<endl;
}
}
}
}
}
void func_lista_personas(string pasatiempo)
{
int prueba = 0;
for(unsigned i = 0; i < objetos.size(); i++)
{
for(unsigned j = 0; j < (objetos[i].devuelve_vector()).size(); j++)
{
if(objetos[i].devuelve_vector()[j] == pasatiempo)
{
cout<<objetos[i].devuelve_nombre()<<endl;
prueba = 1;
}
}
}
if(prueba == 0) cout<<"Nadie practica esa actividad"<<endl;
}