SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: antonioraer en Viernes 8 de Septiembre de 2006, 20:51

Título: Ayuda C++
Publicado por: antonioraer en Viernes 8 de Septiembre de 2006, 20:51
Tengo que crear un programa en c++, y necesito crear dos clases, una llamado jugador, con el nombre, edad... y otra equipo.
Tengo que crear varios equipos, e introducir en ellos a los jugadores q tb creare, esto se puede crear al iniciar el programa, o si se quiere introducirlo a mano.
Si alguien me pudiera ayudar se lo agradeceria muchisimo!
LLevo un monton de dias pero no me sale
Título: Re: Ayuda C++
Publicado por: Max_D en Viernes 8 de Septiembre de 2006, 21:19
Digamos que tienes las clases:
Código: Text
  1. class Jugador {
  2.    private:
  3.           char nombre[50];
  4.           int edad;
  5.           char demarcacion[30];
  6.    public:
  7.           Jugador();
  8.           Jugador(char *, int, char *);
  9.           char * GetNombre();
  10.           int GetEdad();
  11.           char *GetDemarcacion();
  12.           void SetNombre(char *);
  13.           void SetEdad(int);
  14.           void SetDemarcacion(char *);
  15. }
  16.  
  17. class Equipo  {
  18.    private:
  19.           Jugador plantilla[25];
  20.           int nplazas;
  21.           char nombre[30];
  22.           int fundacion;
  23.    public:
  24.           Equipo();
  25.           Equipo(char *);
  26.           void AddJugador(Jugador);
  27.           Jugador GetJugador(int);
  28.           void DeleteJugador(int);
  29.           int GetNPlazas();
  30. }
  31.  


Esta es una de las muchas posibilidades para definir las clases Jugador y Equipo, las implementaciones faltan, solo es para darte una idea de por donde puedes ir. Espero que continues  :comp:
Título: Re: Ayuda C++
Publicado por: Eternal Idol en Viernes 8 de Septiembre de 2006, 21:40
Si, lo podes cargar de un archivo por ejemplo, tenes que usar memoria dinamica para ir creando los objetos pertinentes. Y no te olvides de los destructores que no figuran por alla arriba, de paso usa memoria dinamica para los datos de tamaño dinamico como las cadenas.
Título: Re: Ayuda C++
Publicado por: antonioraer en Viernes 8 de Septiembre de 2006, 22:02
muchas gracias x contestarme, y ademas tan rapido.
No voy a coger los equipos y los jugadores de un archivo, simplemente creare unos cuantos al iniciar el programa desde el main supongo.
creia que la clase equipo tendria que ser amiga de la clase jugador, y me he hecho un lio tremendo.
Ahora voy a ver como puedo seguir, muchisimas gracias por la ayuda!!!
Título: Re: Ayuda C++
Publicado por: Max_D en Viernes 8 de Septiembre de 2006, 22:10
El uso de memoria dinamica no lo incluí porque solo queria dar una idea de las clases, puestos a hacerlo bien podrias utilizar la stl por ejemplo, que aporta mucha eficiencia.  :P
Título: Re: Ayuda C++
Publicado por: Eternal Idol en Viernes 8 de Septiembre de 2006, 22:14
Cita de: "Max_D"
El uso de memoria dinamica no lo incluí porque solo queria dar una idea de las clases, puestos a hacerlo bien podrias utilizar la stl por ejemplo, que aporta mucha eficiencia.  :P
En realidad lo que aporta la STL es facilidad y uniformidad al codigo, la implementacion mas eficiente es siempre la que uno haga especificamente para un problema en particular.
Título: Re: Ayuda C++
Publicado por: geobeid en Sábado 9 de Septiembre de 2006, 01:27
no necesitan ser amigas.
por cuestion de proligidad de ultima genera los  GETTERS y SETTER que necesites y chau.
usa un arreglo de jugadores como atributo de equipo.

chau  :comp:
Título: Re: Ayuda C++
Publicado por: Bicholey en Sábado 9 de Septiembre de 2006, 07:33
:rolleyes:  :rolleyes:  :rolleyes:


Quiza se les haga tonta la pregunta , pero cual es la diferencia entre usar clases y estructuras????
Título: Re: Ayuda C++
Publicado por: Eternal Idol en Sábado 9 de Septiembre de 2006, 08:22
Cita de: "Bicholey"
:rolleyes:  :rolleyes:  :rolleyes:


Quiza se les haga tonta la pregunta , pero cual es la diferencia entre usar clases y estructuras????
Investiga sobre POO.
Título: Re: Ayuda C++
Publicado por: RadicalEd en Sábado 9 de Septiembre de 2006, 16:05
Cita de: "Bicholey"
:rolleyes:  :rolleyes:  :rolleyes:


Quiza se les haga tonta la pregunta , pero cual es la diferencia entre usar clases y estructuras????
Una simple las estructuras no puede heredar de otras estructuras.
Título: Re: Ayuda C++
Publicado por: Eternal Idol en Sábado 9 de Septiembre de 2006, 16:16
Cita de: "RadicalEd"
Una simple las estructuras no puede heredar de otras estructuras.
Ojo que eso no es cierto en C++:

Código: Text
  1.  
  2. struct x
  3. {
  4.   int p;
  5. };
  6.  
  7. struct y : x
  8. {
  9.   int t;
  10. };
  11.  
  12.  

y tiene dos campos t y el heredado de x p.
Título: Re: Ayuda C++
Publicado por: antonioraer en Sábado 9 de Septiembre de 2006, 18:38
Tengo otra dudilla.
Código: Text
  1.  
  2. class Equipo  {
  3.   private:
  4.          Jugador plantilla[25];
  5.          int nplazas;
  6.          char nombre[30];
  7.          int fundacion;
  8.   public:
  9.          Equipo();
  10.          Equipo(char *);
  11.          void AddJugador(Jugador);
  12.          Jugador GetJugador(int);
  13.          void DeleteJugador(int);
  14.          int GetNPlazas();
  15.  
  16.  
Como podria introducir un jugador en un equipo determinado?
Es decir la funcion AddJugador a que equipo se lo añades.
Si yo quisiera agregar a raul, al numancia como lo podria hacer
Título: Re: Ayuda C++
Publicado por: Diodo en Sábado 9 de Septiembre de 2006, 18:56
Raul al Numancia?? eso es imposible jejeje  :lol:

Bueno deberias implementar un metodo AddJugador que tuviera cuidado de no sobreescribir un jugador encima de otro
Tambien habria que ver si quieres añadir jugadores ordenados en el vector de jugadores, es decir que se feuran colocando desde 0 a 25 segun vayas llamando a AddJugador  o desordenados, segun el numero de camiseta y que se insertaran en esa posicion del vector (para esto tendrias que crear un metodos AddJugador con 2 argumentos: el jugador, y el numero de camiseta o  posicion del vector.
Para el primer caso bastaria con recorrer el vector leyendo jugadores hasta que diera null (posicion vacia) e insertar el jugador en esa posicion

El ejemplo que pones de añadir Raul al Numancia seria algo asi.

Código: Text
  1. Equipo numancia=new Equipo(/* argumentos de contruccion*/);
  2. Jugador raul=new Jugador(/* posibles argumentos de construccion*/);
  3. numancia.AddJugador(raul);
  4.  

Basicamente es eso. El manejo de la lista de jugadores ya depende mas de como quieras hacerla

salu2
Título: Re: Ayuda C++
Publicado por: Eternal Idol en Sábado 9 de Septiembre de 2006, 19:10
Que bueno ... Raul al Numancia ... ya se lo merece jaja  :devil: Y de paso que el entrenador sea Luis Aragones  :lol:
Título: Re: Ayuda C++
Publicado por: geobeid en Sábado 9 de Septiembre de 2006, 21:10
PERDON SI ME EQUIVOCO ( Y ESTA VES NO TENGASEN CUENTA LA ORTOGRAFIA BICHOLEY JEJEJE) PERO LA DIFERENCIA ENTRE UN STRUCT Y UN OBJECT SON:
BASICAMENTE EL STRUCT NO ES MAS QUE UNA FORMA DE ORDENAR LOS DATOS AGRUPANDOLOS Y EL OBJETO YA ES OTRA COSA MAS COMPLEJA DE ENTENDER.
ES UN CONJUNTO DE ATRIBUTOS Y METODOS :smartass:  :kicking:

POR FAVOR SI ME EQUIBOCO CORRIJANME ( REPITO NO LA PARTE ORTOGRAFICA LOL)
Título: Re: Ayuda C++
Publicado por: Eternal Idol en Sábado 9 de Septiembre de 2006, 21:20
Cita de: "geobeid"
PERDON SI ME EQUIVOCO ( Y ESTA VES NO TENGASEN CUENTA LA ORTOGRAFIA BICHOLEY JEJEJE) PERO LA DIFERENCIA ENTRE UN STRUCT Y UN OBJECT SON:
    </li>
  • SI NO SE ESPECIFICAS LO CONTRARIO CUALQUIER COSA QUE PONGAS DENTRO DE UN STRUCT ESTA DENTRO DEL PUBLIC. POR EL CONTRARIO EN EL OBJETO TODO ESTA EN EL MODO PRIVADO A MENOS QUE LO PONGAS DENTRO DEL PUBLIC.
    </li>
  • DENTRO DE UN STRUCT SOLO PODES DEFINIR ATRIBUTOS DE LA ESTRUCTURAS ( VARIABLES). EN EL OBJETO ADEMAS DE ATRIBUTOS TENES METODOS Y ADEMAS SI ESTAS USANDO C++ Y NO C ( PORQUE TENGO ENTENDIDO QUE C NO LO SOPORTA) PODES SOBRECARGAR CUALQUIER OPERADOR, ETC ETC
    </li>
BASICAMENTE EL STRUCT NO ES MAS QUE UNA FORMA DE ORDENAR LOS DATOS AGRUPANDOLOS Y EL OBJETO YA ES OTRA COSA MAS COMPLEJA DE ENTENDER.
ES UN CONJUNTO DE ATRIBUTOS Y METODOS :smartass:  :kicking:

POR FAVOR SI ME EQUIBOCO CORRIJANME ( REPITO NO LA PARTE ORTOGRAFICA LOL)

En C++ aplica la primera parte de lo que decis, la segunda no. Y por cierto, la contraposicion es entre estructuras y clases (un objeto es una instancia de una clase).
Título: Re: Ayuda C++
Publicado por: Eternal Idol en Sábado 9 de Septiembre de 2006, 22:04
Aca les dejo un ejemplo de codigo valido de C++:

Código: Text
  1.  
  2. #include &#60;windows.h&#62;
  3. #include &#60;stdio.h&#62;
  4.  
  5. struct persona
  6. {
  7.   int Edad;
  8.  
  9.   persona(int edad)
  10.   {
  11.     Edad = edad;
  12.   }
  13.  
  14.   ~persona() { }
  15.  
  16.   void decirEdad()
  17.   {
  18.     printf(&#34;%d&#092;r&#092;n&#34;, Edad);
  19.   }
  20. };
  21.  
  22. void main()
  23. {
  24.   persona juan(17);
  25.   juan.decirEdad();
  26. }
  27.  
  28.  
Título: Re: Ayuda C++
Publicado por: Bicholey en Domingo 10 de Septiembre de 2006, 10:08
:P  :P  :P  :P


Ok muchas gracias por refrescar mis recuerdos de C++ porque cuando yo fui ala escuela y vi C++ solo aprendi estructuras jamas vi clases , solo una pregunta màs en C++ las clases pueden usar el polimorfismo  ????
Título: Re: Ayuda C++
Publicado por: Diodo en Domingo 10 de Septiembre de 2006, 10:13
C++ => POO => Si tiene polimorfismo
Título: Re: Ayuda C++
Publicado por: Diodo en Domingo 10 de Septiembre de 2006, 10:15
Citar
cuando yo fui ala escuela y vi C++ solo aprendi estructuras jamas vi clases

Eso es para jubilar al profesor de por vida. Es como quitarle al cafe la cafeina
Título: Re: Ayuda C++
Publicado por: Bicholey en Domingo 10 de Septiembre de 2006, 10:17
:lol:  :lol:  :lol:  :lol:

Teneis mucha razòn, y eso que no conociste ami profe de ASM era malisimo.
Título: Re: Ayuda C++
Publicado por: ArKaNtOs en Domingo 10 de Septiembre de 2006, 10:23
Bueno al menos los tuyos eran 2 malos a mi me pasa lo contrario aqui son 2 a 4 buenos y todos los demas Sucks UNACH = Vasofia :P
Título: Re: Ayuda C++
Publicado por: Eternal Idol en Domingo 10 de Septiembre de 2006, 11:48
Cita de: "Bicholey"
:P  :P  :P  :P


Ok muchas gracias por refrescar mis recuerdos de C++ porque cuando yo fui ala escuela y vi C++ solo aprendi estructuras jamas vi clases , solo una pregunta màs en C++ las clases pueden usar el polimorfismo  ????
La respuesta a esa y muchas otras preguntas en: Wikipedia (http://en.wikipedia.org/wiki/C%2B%2B)