Foros del Web » Programación para mayores de 30 ;) » C/C++ »

AYUDA: colaboracion con pequeño programa de registro

Estas en el tema de AYUDA: colaboracion con pequeño programa de registro en el foro de C/C++ en Foros del Web. buenas tardes, quisiera que me dieran alguna idea de como hacer un trabajo de la U, las instrucciones del mismo son las siguientes: Elabore un ...
  #1 (permalink)  
Antiguo 14/09/2010, 18:45
 
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 13 años, 7 meses
Puntos: 0
AYUDA: colaboracion con pequeño programa de registro

buenas tardes, quisiera que me dieran alguna idea de como hacer un trabajo de la U, las instrucciones del mismo son las siguientes:

Elabore un programa que haga las funciones de una organizador de pasatiempos. Las funciones específicamente son:

1. Agregar una persona (nombre sin apellidos) y sus pasatiempos (nadar, caminar, leer, etc)
2. Borrar una persona
3. Listar todas las personas
4. Listar todos los pasatiempos de una persona en particular
5. Listar todas las personas que compartan un pasatiempo en particular
Si el usuario decide agregar un nombre que ya está en la lista, los pasatiempos ya asignados podrán ser reemplazados por otros nuevos.

Recomendaciones

1. Diseñe una clase persona, y cree instancias cada vez que se agrega una persona. La clase contendrá los atributos de nombres y pasatiempos.
2. Use diferentes funciones y modularice bien su programa.
3. Si usa memoria dinámica DEBE liberar la memoria antes de destruir objetos o cerrar el programa.

Al ejecutar este programa, esta deberá ser la salida:

1. Agregar un nombre y sus pasatiempos
2. Borrar un nombre y sus pasatiempos
3. Listar todos los nombres
4. Listar todos los pasatiempos de una persona en particular
5. Listar todas las personas con un pasatiempo en particular

Ingrese su seleccion (0 para salir): 1

Ingrese el nombre de la persona: Fulano
Ingrese los pasatiempos (retorno para salir) de Fulano
Pasatiempo #1: Leer
Pasatiempo #2: Nadar
Pasatiempo #3: ....

gracias de antemano por su colaboracion
  #2 (permalink)  
Antiguo 14/09/2010, 19:57
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: AYUDA: colaboracion con pequeño programa de registro

Hay algo que no entiendo, en que hay que ayudarte? Porque la verdad te dieron todo explicitado. Que clases usar. Modularizar el problema. Uso de memoria dinamica. Y el formato de los menues. No es mas que sentarse y empezar a programar.

Cuando tengas alguna duda en un pedazo de codigo podremos ayudarte mejor!!
  #3 (permalink)  
Antiguo 14/09/2010, 20:52
 
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: AYUDA: colaboracion con pequeño programa de registro

no quise ser molestia para nadie pero lo que no se, es empezar.
tal vez si me ayudasen a conseguir alguna pagina donde pudiera estudiar esos
puntos y algunos ejemplos de clases, se lo agradecería mas!!!!
  #4 (permalink)  
Antiguo 14/09/2010, 21:51
 
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: AYUDA: colaboracion con pequeño programa de registro

por ejemplo, hice este codigo de prueba y me un error que no entiendo como solucionarlo...

codigo:
#include <iostream>
using namespace std;

class Persona {
private:
char* nombre;
char* pasatiempos;

public:
void imprimirinfo();
void Setnombre(char* nombre);
void Setpasatiempos(char* pasatiempos);
};

void Persona::imprimirinfo()
{
cout<<"nombre: "<<nombre<<endl;
cout<<"pasatiempo: "<<pasatiempos<<endl;
}

int main()
{
//creando un objeto de la clase Persona
Persona persona;

//asignando valores a las variables miembro
persona.Setnombre("Jairo");
persona.Setpasatiempos("correr");

//imprimiendo los datos
persona.imprimirinfo();

return 0;
}


el error:

archivo.cpp:(.text+0x91): undefined reference to `Persona::Setnombre(char*)'
archivo.cpp:(.text+0xa5): undefined reference to `Persona::Setpasatiempos(char*)'
  #5 (permalink)  
Antiguo 15/09/2010, 04:32
 
Fecha de Ingreso: noviembre-2009
Mensajes: 186
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: AYUDA: colaboracion con pequeño programa de registro

no te parece que tendrias que definir `Persona::Setnombre y Persona::Setpasatiempos en vez de solo declararlos??
  #6 (permalink)  
Antiguo 20/09/2010, 21:21
 
Fecha de Ingreso: septiembre-2010
Mensajes: 8
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: AYUDA: colaboracion con pequeño programa de registro

ya resolvi la situacion y el programa me quedo asi:

Código C++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include "clase.hpp"
  5. using namespace std;
  6.  
  7. //programa que crea un registro de personas con
  8. //sus respectivos pasatiempos
  9.  
  10. //prototipo de funciones
  11. void func_crea_objeto(string fulano);
  12. void func_borra_objeto(string mengano);
  13. void func_lista_objetos();
  14. void func_lista_pasatiempos(string sutano);
  15. void func_lista_personas(string pasatiempo);
  16.  
  17. //declaro el vector donde guardare cada objeto de la clase
  18. vector<Persona> objetos;
  19.  
  20. //programa principal
  21. int main()
  22. {
  23.     cout<<"programa registro de pasatiempos\n"<<endl
  24.         <<"escoja una de las siguientes opciones"<<endl
  25.         <<"o teclee 0 para salir:\n"<<endl
  26.         <<"teclee 1 para agragar un nombre y sus pasatiempos"<<endl
  27.         <<"teclee 2 para borrar un nombre y sus pasatiempos"<<endl
  28.         <<"teclee 3 para listar todos los nombres"<<endl
  29.         <<"teclee 4 para listar los pasatiempos de alguien en particular"<<endl
  30.         <<"teclee 5 para listar las personas con un pasatiempo en particular\n"<<endl;
  31.  
  32.     cout<<"Ingrese su eleccion (0 para salir): ";
  33.     int x;
  34.     cin>>x;
  35.     while ((x != 0)&&((x==1)||(x==2)||(x==3)||(x==4)||(x==5)))//necesario para que el bucle no quede enciclado
  36.     {                                                         //si le introduce otro valor a x
  37.         if((x==1)||(x==2)||(x==3)||(x==4)||(x==5))
  38.         {
  39.             if(x == 1)
  40.             {
  41.                 cout<<"\nIngrese el nombre de la persona: ";
  42.                 string fulano;
  43.                 cin>>fulano;
  44.                 func_crea_objeto(fulano);//llamo a la funcion
  45.                 cout<<"\ningrese otra opcion (0 para salir): ";
  46.                 cin>>x;
  47.             }
  48.  
  49.             if(x == 2)
  50.             {
  51.                 cout<<"\nIngrese el nombre de la persona que quiere eliminar: ";
  52.                 string mengano;
  53.                 cin>>mengano;
  54.                 func_borra_objeto(mengano);//llamo a la funcion
  55.                 cout<<"\ningrese otra opcion (0 para salir): ";
  56.                 cin>>x;    
  57.             }
  58.  
  59.             if(x == 3)
  60.             {
  61.                 func_lista_objetos();//llamo a la funcion
  62.                 cout<<"\ningrese otra opcion (0 para salir): ";
  63.                 cin>>x;    
  64.             }
  65.  
  66.             if(x == 4)
  67.             {
  68.                 cout<<"\nTeclee el nombre de quien desea saber los pasatiempos: ";
  69.                 string sutano;
  70.                 cin>>sutano;
  71.                 func_lista_pasatiempos(sutano);//llamo a la funcion
  72.                 cout<<"\ningrese otra opcion (0 para salir): ";
  73.                 cin>>x;    
  74.             }
  75.  
  76.             if(x == 5)
  77.             {
  78.                 cout<<"\nTeclee el pasatiempo: ";
  79.                 string pasatiempo;
  80.                 cin>>pasatiempo;
  81.                 func_lista_personas(pasatiempo);//llamo a la funcion
  82.                 cout<<"\ningrese otra opcion (0 para salir): ";
  83.                 cin>>x;
  84.             }
  85.         }
  86.         else
  87.         {
  88.             cout<<"esa opcion no es valida"<<endl
  89.                 <<"escoja una de las opciones (0 para salir): ";
  90.             cin>>x;
  91.         }
  92.     }
  93.  
  94. return 0;
  95. }
  96.  
  97. /*************************DECLARO FUNCIONES***************************/
  98.  
  99. void func_crea_objeto(string fulano)
  100. {
  101.     //creando un objeto de la clase Persona
  102.     Persona persona;
  103.    
  104.     //asignando valores a las variables miembro de la clase
  105.     persona.Setnombre(fulano);
  106.     cout<<"Introduzca los pasatiempos ('0' para salir) de " <<fulano<<":"<<endl;
  107.     cout<<"Pasatiempo #1: ";
  108.     string pas;
  109.     cin>>pas;
  110.     int a = 2;
  111.     while(pas != "0")
  112.     {
  113.         persona.Setpasatiempos(pas);
  114.         cout<<"Pasatiempo #"<<a<<": ";
  115.         cin>>pas;
  116.         a = a + 1;
  117.     }
  118.     objetos.push_back(persona);//introsuzco el objeto en un vector
  119. }
  120.  
  121. void func_borra_objeto(string mengano)
  122. {
  123.     int prueba = 0;
  124.     for(unsigned i = 0; i < objetos.size(); i++)
  125.     {
  126.         if((objetos[i].devuelve_nombre()) == mengano)
  127.         {
  128.             objetos.erase(objetos.begin() + i);//borro el objeto solicitado
  129.             cout<<"\nLos datos de "<<mengano<<" han sido eliminados"<<endl;
  130.             prueba = 1;
  131.         }
  132.     }
  133.     if(prueba == 0)
  134.         cout<<"Ese nombre no esta en el registro"<<endl;
  135. }
  136.  
  137. void func_lista_objetos()
  138. {
  139.     cout<<"\nTenemos a:"<<endl;
  140.     for(unsigned i = 0; i < objetos.size(); i++)
  141.     {
  142.         cout<<objetos[i].devuelve_nombre()<<" con "//obtengo el nombre de la persona
  143.             <<(objetos[i].devuelve_vector()).size()<<" pasatiempo(s)"<<endl;//obtengo la cantidad de pasatiempos
  144.     }
  145. }
  146.  
  147. void func_lista_pasatiempos(string sutano)
  148. {
  149.     for(unsigned i = 0; i < objetos.size(); i++)
  150.     {
  151.         if((objetos[i].devuelve_nombre()) == sutano)
  152.         {
  153.             if((objetos[i].devuelve_vector()).size() == 0)//en caso de que la persona no tenga pasatiempos
  154.                 cout<<sutano<<" no tiene pasatiempos"<<endl;
  155.            
  156.             else    
  157.             {
  158.                 for(unsigned j = 0; j < (objetos[i].devuelve_vector()).size(); j++)//recorro el vector de pasatiempos del objeto 'persona'
  159.                 {
  160.                     cout<<objetos[i].devuelve_vector()[j]<<endl;
  161.                 }
  162.             }
  163.         }
  164.     }
  165. }
  166.  
  167. void func_lista_personas(string pasatiempo)
  168. {
  169.     int prueba = 0;
  170.     for(unsigned i = 0; i < objetos.size(); i++)
  171.     {
  172.         for(unsigned j = 0; j < (objetos[i].devuelve_vector()).size(); j++)
  173.         {
  174.             if(objetos[i].devuelve_vector()[j] == pasatiempo)
  175.             {
  176.                 cout<<objetos[i].devuelve_nombre()<<endl;
  177.                 prueba = 1;
  178.             }
  179.         }
  180.     }
  181.     if(prueba == 0) cout<<"Nadie practica esa actividad"<<endl;
  182. }

Y esta es la clase que utilice:

Código C++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. class Persona {
  7.     private:
  8.         string nombre;
  9.         vector<string> pasatiempos;
  10.    
  11.     public:
  12.         void Setnombre(string nombre);
  13.         string devuelve_nombre();
  14.         void Setpasatiempos(string actividad);
  15.         vector<string> devuelve_vector();
  16. };
  17.  
  18. void Persona::Setnombre(string persona)
  19. {
  20.     nombre = persona;
  21. }
  22.  
  23. string Persona::devuelve_nombre()
  24. {
  25.     return nombre;
  26. }
  27.  
  28. void Persona::Setpasatiempos(string actividad)
  29. {
  30.     pasatiempos.push_back(actividad);
  31. }
  32.  
  33. vector<string> Persona::devuelve_vector()
  34. {
  35.     return pasatiempos;
  36. }

Etiquetas: colaboracion, programa, registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:03.