• Jueves 14 de Noviembre de 2024, 04:33

Autor Tema:  array de objetos (S.O.S)  (Leído 1917 veces)

camaradakoba

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
array de objetos (S.O.S)
« en: Miércoles 11 de Marzo de 2009, 05:41 »
0
muchas gracias por la ayuda, pero corriendo el riesgo de parecer conchudo me atrevo a solicitarla nuevamente, ahorra meti una funcion pero me sale 1 error
Código: C++
  1.  
  2. # include <iostream.h>
  3. # include <string.h>
  4. # include <conio.h>
  5. int j, k;
  6. int iniciar_movimiento (int ii, int codigoi, char nombrei, long CUIi,char nombrehi, int tiempo_vidai,int mesi, int diai, int anioi);
  7.  
  8. class fecha
  9. {
  10.     public:
  11.     fecha (int mes, int dia, int anio);
  12.       void  mostrar_fecha(void);
  13.  
  14.  
  15.     int mes;
  16.       int dia;
  17.       int anio;
  18.    };
  19. class herramienta
  20. {
  21.     public:
  22.     herramienta (char *nombreh, int tiempo_vida);
  23.       ~herramienta(void);
  24.       herramienta(void);
  25.       void  mostrar_herramienta(void);
  26.  
  27.  
  28.     char nombreh[64];
  29.     int tiempo_vida;
  30.  
  31.    };
  32. class alumno
  33. {
  34.     public:
  35.     alumno (char *nombre, long CUI);
  36.       ~alumno(void);
  37.       void  mostrar_alumno(void);
  38.       alumno (void);
  39.  
  40.       char nombre[64];
  41.  
  42.       long CUI;
  43.  
  44.    };
  45. class movimiento
  46. {
  47.     public:
  48.     movimiento (int codigo, char *nombre, long CUI,char *nombreh, int tiempo_vida,int mes, int dia, int anio);
  49.       ~movimiento(void);
  50.       void  mostrar_movimiento(void);
  51.       movimiento (void);
  52.  
  53.       int codigo;
  54.       alumno *alumno_solicitante;
  55.       fecha *fecha_movimiento;
  56.       herramienta *herramienta_solicitada;
  57.    };
  58. fecha::fecha (int mes, int dia, int anio)
  59. {
  60.     fecha::mes=mes;
  61.    fecha::dia=dia;
  62.    fecha::anio=anio;
  63.    }
  64. void fecha::mostrar_fecha(void)
  65. {
  66.     cout<<mes<<"/"<<dia<<"/"<<anio<<"n";
  67.    }
  68. alumno::alumno (char *nombre, long CUI)
  69. {
  70.     strcpy(alumno::nombre,nombre);
  71.    alumno::CUI=CUI;
  72.  
  73.    }
  74. alumno::alumno (void)
  75. {
  76.     }
  77. alumno::~alumno(void)
  78. {
  79.  
  80.    }
  81. void alumno::mostrar_alumno(void)
  82. {
  83.     cout<< "Nombre: "<<nombre<<"n";
  84.     cout<< "CUI: "<<CUI<<"n";
  85.     }
  86. herramienta::herramienta (char *nombreh, int tiempo_vida)
  87. {
  88.     strcpy(herramienta::nombreh,nombreh);
  89.    herramienta::tiempo_vida=tiempo_vida;
  90.  
  91.    }
  92. herramienta::herramienta (void)
  93. {
  94.     }
  95. herramienta::~herramienta (void)
  96. {
  97.     }
  98. void herramienta::mostrar_herramienta(void)
  99. {
  100.     cout<< "Nombre: "<<nombreh<<"n";
  101.     cout<< "Tiempo de vida: "<<tiempo_vida<<"n";
  102.     }
  103.  
  104. movimiento::movimiento (int codigo, char *nombre, long CUI,char *nombreh, int tiempo_vida,int mes, int dia, int anio)
  105. {
  106.  
  107.    movimiento::codigo=codigo;
  108.  
  109.    alumno_solicitante=new alumno(nombre, CUI);
  110.    herramienta_solicitada=new herramienta(nombreh, tiempo_vida);
  111.    fecha_movimiento=new fecha(mes, dia, anio);
  112.    }
  113. movimiento::movimiento (void)
  114. {
  115.     }
  116. movimiento::~movimiento (void)
  117. {
  118.     }
  119. void movimiento::mostrar_movimiento(void)
  120. {
  121.     cout<< "Codigo: "<<codigo<<"n";
  122.     alumno_solicitante->mostrar_alumno();
  123.    herramienta_solicitada->mostrar_herramienta();
  124.    fecha_movimiento->mostrar_fecha();
  125.  
  126.     }
  127.  
  128. void main()
  129. {
  130.    int i;
  131.     int opcion, asiento;
  132.  
  133.    int codigotemp, tiempo_vidatemp, mestemp, diatemp, aniotemp;
  134.    char *nombretemp, *nombrehtemp;
  135.    long CUItemp;
  136.  
  137.    do{
  138.       cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Menu ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍnn   1.Ingresar una operacion n   2.Consultar un alumnon   3.Consultar una operacionn   0.Salir  nÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍnnn" ;
  139.     cout<<"Elige una opcion: n" ;
  140.       cin>>opcion;
  141.       i=0;
  142.       switch(opcion)
  143.       {
  144.          int respuesta;
  145.          case 0:
  146.  
  147.          break;
  148.  
  149.          case 1:
  150.  
  151.          cout<< "n Codigo: "; cin>>codigotemp;
  152.          cout<< "n Nombre del alumno: "; cin>>*nombretemp;
  153.          cout<< "n CUI: "; cin>>CUItemp;
  154.          cout<< "n Nombre de la herramienta: "; cin>>*nombrehtemp;
  155.          cout<< "n Tiempo de vida: "; cin>>tiempo_vidatemp;
  156.          cout<<"Mes: "; cin>>mestemp;
  157.          cout<<"Dia: ";cin>>diatemp;
  158.          cout<<"Año: ";cin>>aniotemp;
  159.          i= iniciar_movimiento (i, codigotemp,*nombretemp, CUItemp, *nombrehtemp, tiempo_vidatemp, mestemp, diatemp, aniotemp) ;
  160.  
  161.          i=i+1;
  162.          break;
  163.  
  164.             case 2:
  165.  
  166.             break;
  167.  
  168.          case 3:
  169.  
  170.  
  171.             break;
  172.  
  173.          default:
  174.             cout<<"Seleccione una operacion validan" ;
  175.             break;
  176.  
  177.             }
  178.  
  179.  
  180.       }
  181.    while(opcion!=0);
  182.    }
  183. movimiento movimientos[100];
  184. int iniciar_movimiento (int ii, int codigoi, char *nombrei, long CUIi,char *nombrehi, int tiempo_vidai,int mesi, int diai, int anioi)
  185. {
  186.    movimiento movimientotemp(codigoi, *nombrei, CUIi, *nombrehi, tiempo_vidai, mesi, diai, anioi);
  187.     movimientos[ii]=movimientotemp;
  188.    return (ii);
  189.    }
  190.  
  191.  
me sale Error:  proyecto1.9.cpp(185,99):Could not find a match for movimiento::movimiento(int,char,long,char,int,int,int,int)'

no se que hacer, en verdad agradeceria cualquier ayuda
« última modificación: Viernes 13 de Marzo de 2009, 00:33 por camaradakoba »

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: array de objetos (S.O.S)
« Respuesta #1 en: Miércoles 11 de Marzo de 2009, 09:55 »
0
¿Cuál es el problema, en qué línea, qué error te da o qué resultado incorrecto te da, etc...?

camaradakoba

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: array de objetos (S.O.S)
« Respuesta #2 en: Jueves 12 de Marzo de 2009, 17:36 »
0
listo camarada ya modifique el primer post y anote el error que da al compilar, si alguien pudiese ayudarnos se lo agradeceria

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: array de objetos (S.O.S)
« Respuesta #3 en: Jueves 12 de Marzo de 2009, 17:51 »
0
Como dice el error no podes inicializar una variable local en un case, tenes que sacar esto de ahi de alguna manera:
movimiento movimientotemp (codigotemp,nombretemp, CUItemp, nombrehtemp, tiempo_vidatemp, mestemp, diatemp, aniotemp) ;

Por ejemplo podrias ponerlo antes del switch sin parametros y usar una funcion tipo init en donde esta ahora.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

camaradakoba

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: array de objetos (S.O.S)
« Respuesta #4 en: Viernes 13 de Marzo de 2009, 00:36 »
0
camarada gracias, pero eun tengo un problemita, en el primer post lo explico, en verdad agradeceria cualquier ayuda

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: array de objetos (S.O.S)
« Respuesta #5 en: Viernes 13 de Marzo de 2009, 08:07 »
0
Mira lo que dice el error:
movimiento::movimiento(int,char,long,char,int,int,int,int)'

El constructor:
movimiento::movimiento (int codigo, char *nombre, long CUI,char *nombreh, int tiempo_vida,int mes, int dia, int anio)

Y la linea del problema:
movimiento movimientotemp(codigoi, *nombrei, CUIi, *nombrehi, tiempo_vidai, mesi, diai, anioi);

Le estas pasando UN caracter y no una cadena de caracteres, tenes que sacar los dos asteriscos (*).

PD. Ahora no sigas modificando el mensaje inicial sino las respuestas anteriores pierden sentido, gracias.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

camaradakoba

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: array de objetos (S.O.S)
« Respuesta #6 en: Viernes 13 de Marzo de 2009, 23:21 »
0
camaradas, un favor arregle el problema que tenia antes y compilo, pero cuando quise correrlo me aparecio
Error:  Error: Unresolved external 'iniciar_movimiento(int,int,char,long,char,int,int,int,int)' referenced from D:MIS DOCUMENTOSKOBAPROYECTO LP2.0PROYECTO2.0.OBJ
y ahora estoy mas confundido que antes, por favor si alguien pudiese ayudarme con esto, la verdad es que ya no entiendo, garcias
Código: C++
  1.  
  2. # include <iostream.h>
  3. # include <string.h>
  4. # include <conio.h>
  5. int j, k;
  6. int iniciar_movimiento (int ii, int codigoi, char nombrei, long CUIi,char nombrehi, int tiempo_vidai,int mesi, int diai, int anioi);
  7.  
  8. class fecha
  9. {
  10.     public:
  11.     fecha (int mes, int dia, int anio);
  12.       void  mostrar_fecha(void);
  13.  
  14.  
  15.     int mes;
  16.       int dia;
  17.       int anio;
  18.    };
  19. class herramienta
  20. {
  21.     public:
  22.     herramienta (char *nombreh, int tiempo_vida);
  23.       ~herramienta(void);
  24.       herramienta(void);
  25.       void  mostrar_herramienta(void);
  26.  
  27.  
  28.     char nombreh[64];
  29.     int tiempo_vida;
  30.  
  31.    };
  32. class alumno
  33. {
  34.     public:
  35.     alumno (char *nombre, long CUI);
  36.       ~alumno(void);
  37.       void  mostrar_alumno(void);
  38.       alumno (void);
  39.  
  40.       char nombre[64];
  41.  
  42.       long CUI;
  43.  
  44.    };
  45. class movimiento
  46. {
  47.     public:
  48.     movimiento (int codigo, char *nombre, long CUI,char *nombreh, int tiempo_vida,int mes, int dia, int anio);
  49.       ~movimiento(void);
  50.       void  mostrar_movimiento(void);
  51.       movimiento (void);
  52.  
  53.       int codigo;
  54.       alumno *alumno_solicitante;
  55.       fecha *fecha_movimiento;
  56.       herramienta *herramienta_solicitada;
  57.    };
  58. fecha::fecha (int mes, int dia, int anio)
  59. {
  60.     fecha::mes=mes;
  61.    fecha::dia=dia;
  62.    fecha::anio=anio;
  63.    }
  64. void fecha::mostrar_fecha(void)
  65. {
  66.     cout<<mes<<"/"<<dia<<"/"<<anio<<"n";
  67.    }
  68. alumno::alumno (char *nombre, long CUI)
  69. {
  70.     strcpy(alumno::nombre,nombre);
  71.    alumno::CUI=CUI;
  72.  
  73.    }
  74. alumno::alumno (void)
  75. {
  76.     }
  77. alumno::~alumno(void)
  78. {
  79.  
  80.    }
  81. void alumno::mostrar_alumno(void)
  82. {
  83.     cout<< "Nombre: "<<nombre<<"n";
  84.     cout<< "CUI: "<<CUI<<"n";
  85.     }
  86. herramienta::herramienta (char *nombreh, int tiempo_vida)
  87. {
  88.     strcpy(herramienta::nombreh,nombreh);
  89.    herramienta::tiempo_vida=tiempo_vida;
  90.  
  91.    }
  92. herramienta::herramienta (void)
  93. {
  94.     }
  95. herramienta::~herramienta (void)
  96. {
  97.     }
  98. void herramienta::mostrar_herramienta(void)
  99. {
  100.     cout<< "Nombre: "<<nombreh<<"n";
  101.     cout<< "Tiempo de vida: "<<tiempo_vida<<"n";
  102.     }
  103.  
  104. movimiento::movimiento (int codigo, char *nombre, long CUI,char *nombreh, int tiempo_vida,int mes, int dia, int anio)
  105. {
  106.  
  107.    movimiento::codigo=codigo;
  108.  
  109.    alumno_solicitante=new alumno(nombre, CUI);
  110.    herramienta_solicitada=new herramienta(nombreh, tiempo_vida);
  111.    fecha_movimiento=new fecha(mes, dia, anio);
  112.    }
  113. movimiento::movimiento (void)
  114. {
  115.     }
  116. movimiento::~movimiento (void)
  117. {
  118.     }
  119. void movimiento::mostrar_movimiento(void)
  120. {
  121.     cout<< "Codigo: "<<codigo<<"n";
  122.     alumno_solicitante->mostrar_alumno();
  123.    herramienta_solicitada->mostrar_herramienta();
  124.    fecha_movimiento->mostrar_fecha();
  125.  
  126.     }
  127.  
  128. void main()
  129. {
  130.    int i;
  131.     int opcion;
  132.  
  133.    int codigotemp, tiempo_vidatemp, mestemp, diatemp, aniotemp;
  134.    char *nombretemp, *nombrehtemp;
  135.    long CUItemp;
  136.  
  137.    do{
  138.       cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ Menu ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍnn   1.Ingresar una operacion n   2.Consultar un alumnon   3.Consultar una operacionn   0.Salir  nÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍnnn" ;
  139.     cout<<"Elige una opcion: n" ;
  140.       cin>>opcion;
  141.       i=0;
  142.       switch(opcion)
  143.       {
  144.  
  145.          case 0:
  146.  
  147.          break;
  148.  
  149.          case 1:
  150.  
  151.          cout<< "n Codigo: "; cin>>codigotemp;
  152.          cout<< "n Nombre del alumno: "; cin>>nombretemp;
  153.          cout<< "n CUI: "; cin>>CUItemp;
  154.          cout<< "n Nombre de la herramienta: "; cin>>nombrehtemp;
  155.          cout<< "n Tiempo de vida: "; cin>>tiempo_vidatemp;
  156.          cout<<"Mes: "; cin>>mestemp;
  157.          cout<<"Dia: ";cin>>diatemp;
  158.          cout<<"Año: ";cin>>aniotemp;
  159.          i= iniciar_movimiento (i, codigotemp,*nombretemp, CUItemp, *nombrehtemp, tiempo_vidatemp, mestemp, diatemp, aniotemp) ;
  160.  
  161.          i=i+1;
  162.          break;
  163.  
  164.             case 2:
  165.  
  166.             break;
  167.  
  168.          case 3:
  169.  
  170.  
  171.             break;
  172.  
  173.          default:
  174.             cout<<"Seleccione una operacion validan" ;
  175.             break;
  176.  
  177.             }
  178.  
  179.  
  180.       }
  181.    while(opcion!=0);
  182.    }
  183. movimiento movimientos[100];
  184. int iniciar_movimiento (int ii, int codigoi, char *nombrei, long CUIi,char *nombrehi, int tiempo_vidai,int mesi, int diai, int anioi)
  185. {
  186.    movimiento movimientotemp(codigoi, nombrei, CUIi, nombrehi, tiempo_vidai, mesi, diai, anioi);
  187.     movimientos[ii]=movimientotemp;
  188.    return (ii);
  189.    }
  190.  
  191.  

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: array de objetos (S.O.S)
« Respuesta #7 en: Sábado 14 de Marzo de 2009, 00:57 »
0
Por favor, mira el codigo y hace AL MENOS que coincidan los tipos ... arriba tenes una cosa y despues implementas otra ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

camaradakoba

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: array de objetos (S.O.S)
« Respuesta #8 en: Sábado 14 de Marzo de 2009, 17:05 »
0
camarada, gracias por la ayuda, se que mis conocimientos en c son menos que mediocres lo que me lleva a hacer barrabasadas en el codigo y se que puedan tener errores que para alguien con un mejor nivel sean obvios, tampoco intento que me resuelban el problema, siendo sinceros seria de la paja pero va contra la idea de foro que yo creo es compartir y aprender, puede que este cayendo pesado pero agradeceria alguien me apoye diciendome dinde me quivoco, en verdad gracias

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: array de objetos (S.O.S)
« Respuesta #9 en: Sábado 14 de Marzo de 2009, 17:29 »
0
int iniciar_movimiento (int ii, int codigoi, char nombrei, long CUIi,char nombrehi, int tiempo_vidai,int mesi, int diai, int anioi);

 int iniciar_movimiento (int ii, int codigoi, char *nombrei, long CUIi,char *nombrehi, int tiempo_vidai,int mesi, int diai, int anioi)
 {
   movimiento movimientotemp(codigoi, nombrei, CUIi, nombrehi, tiempo_vidai, mesi, diai, anioi);
    movimientos[ii]=movimientotemp;
   return (ii);
   }  

Mira lo que esta en negrita, eso tiene que coincidir.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.