Sign in to follow this  
daniel

Problem Whit C++ Coding Need Help

Recommended Posts

hola tengo un problema con la codificacion de c++ en un programa importante que necesito para la universidad. por favor espero que me ayuden hace 3 dias que estoy buscando la solucion y nada

 

Hi I have a problem with the encoding of c + + on a major program I need for college. I hope please help me 3 days ago I'm looking for the solution and nothing

 

codding:

 

#include<iostream>

using namespace std;

//-----------------CLASE FECHA POR AGREGACION-----------------------

class Fecha{

 

public:

int iDia, iMes, iAnio;

Fecha(int iD=0,int iM=0, int iA=0)

{

setDia(iD);

setMes(iM);

setAnio(iA);

}

void setDia(int d){iDia =d;}

void setMes(int m){iMes =m;}

void setAnio(int a){iAnio =a;}

 

int getDia(){return iDia;}

int getMes(){return iMes;}

int getAnio(){return iAnio;}

 

void mostrarFecha();

};

void Fecha::mostrarFecha()

{

cout<<getDia()<<"/"<<getMes()<<"/"<<getAnio()<<endl;

}

 

//--------------------CLASE SOCIO-------------------------------------------

class Socio{

string sNombre, sDNI;

Fecha *fAsociacion;

int iSocio;

static int iCantidad;

 

public:

Socio(string sNombre, string sDNI, int iSocio){

setNombre(sNombre);

setDNI(sDNI);

setSocio(iSocio);

}

void setNombre(string n){sNombre = n;}

void setDNI(string dni){sDNI = dni;}

void setSocio(int s){iSocio = s;}

 

string getNombre(){return sNombre;}

string getDNI(){return sDNI;}

int getSocio(){return iSocio;}

 

Socio(string,string,int,int,int);

virtual void mostrar() = 0;

};

int Socio :: iCantidad = 1000;

Socio :: Socio(string nom,string dni,int da,int md,int ad)

{

iSocio = iCantidad;

iCantidad = iCantidad+2;

sNombre = nom;

sDNI = dni;

fAsociacion = new Fecha(da,md,ad);

}

void Socio :: mostrar()

{

cout<<"\nNombre:"<<getNombre()<<endl;

cout<<"\nDni:"<<getDNI()<<endl;

cout<<"\n Nro. de Socio:"<<getSocio()<<endl;

cout<<"\nfecha de asociacion:";

fAsociacion->mostrarFecha();

}

//------------------------CADETE ----------------------------------------

class Cadete : public Socio{

int iCuota;

static int iValor;

 

public:

Cadete(string sNombre, string sdni, int da, int md, int ad,int iCuota) : Socio(sNombre,sdni, da,md,ad){

setCuota(iCuota);

}

void setCuota(int c){iCuota = c;}

int getCuota(){return iCuota;}

 

void mostrar();

 

};

int Cadete :: iValor = 5;

if(Cadete.getAnio()=<1999){

iCuota = iValor-3;

}

else{

iCuota = iValor;

};

void Cadete :: mostrar(){

cout<<"----------------SOCIO CADETE-----------------"<<endl;

Socio :: mostrar();

cout<<endl<<"\nValor de Cuota: $"<<getCuota();

};

//-----------------------ACTIVO------------------------------------------

class Activo : public Socio{

int iPago;

static int iaCuota;

 

public:

Activo(string sNombre, string sdni, int da,int md, int ad, int iPago) : Socio(sNombre,sdni,da,md,ad){

setPago(iPago);

}

void setPago(int p){iPago = p;}

int getPago(){return iPago;}

 

void mostrar();

};

 

int Activo :: iaCuota = 10;

if(Activo.Anio()=<1999)

{

iPago = iaCuota - 3;

}

else

{

iPago = iaCuota;

};

void Activo :: mostrar(){

cout<<"----------------SOCIO ACTIVO-----------------"<<endl;

Socio :: mostrar();

cout<<endl<<"\nValor de Cuota: $"<<getPago();

 

--------------------------------------------------------------------------------------------------------

error:

 

86 G:\programas facultad\ej. prog 2\ej4.tp9.cpp expected unqualified-id before "if"

86 G:\programas facultad\ej. prog 2\ej4.tp9.cpp expected `,' or `;' before "if"

89 G:\programas facultad\ej. prog 2\ej4.tp9.cpp expected unqualified-id before "else"

89 G:\programas facultad\ej. prog 2\ej4.tp9.cpp expected `,' or `;' before "else"

113 G:\programas facultad\ej. prog 2\ej4.tp9.cpp expected unqualified-id before "if"

113 G:\programas facultad\ej. prog 2\ej4.tp9.cpp expected `,' or `;' before "if"

117 G:\programas facultad\ej. prog 2\ej4.tp9.cpp expected unqualified-id before "else"

117 G:\programas facultad\ej. prog 2\ej4.tp9.cpp expected `,' or `;' before "else"

 

----------------------------------------------------------------------------------------------------------

como pueden ver los errores estan en los 2 "if"

As you can see the errors are within 2 "if"

 

espero su ayuda gracias

Share this post


Link to post
Share on other sites

Bueno son varios los errores, vayamos por parte:

 

En primer lugar: vos ten?s una clase Cadete que hereda de Socio, hasta ah? vamos perfecto.

Luego vos haces

if (Cadete.getAnio() => 1999)

 

Ese if tiene 4 errores.

 

1- Para acceder a una funci?n miembro de una clase no se usa el operador "." sino "::".

2- getAnio es una funci?n miembro de la clase Fecha. Vos hiciste herencia de Socio, pero Socio NO HEREDA DE FECHA por lo tanto NUNCA vas a poder acceder a esa funci?n al menos que lo hagas heredar.

 

La clase Socio te quedar?a as?:

 

class Socio : public Fecha

 

3- Est?s haciendo p?sima la comparaci?n. El operador Mayor o igual es: >= . El operador MENOR O IGUAL es: <=. Lo pusiste al revez vos, entonces el if te quedar?a as?:

 

if (Cadete::getAnio() >= 1999)

 

4- Qu? hace un if / else FUERA de una funci?n? Esas comprobaci?nes se hacen siempre adentro de una funci?n. Digamos que el if est? en cualquier lado menos donde deber?a estar.

 

En el pr?ximo if comet?s exactamente el mismo error:

 

if(Activo.Anio()=<1999)

 

1- En primer lugar el operador era :: como dijimos antes.

2- Anio no existe, habr?s querido decir: getAnio()

3- El operador est? mal, igual que el anterior.

4- El if est? fuera de una funci?n, igual que el anterior.

 

Un abrazo.

Share this post


Link to post
Share on other sites

ok algunos errores de los q me deci estaban asi lo modifique sigue el mismo problema y con el tema de la clase Fecha no estoy usando herencia estoy usando agregacion es decir la funcion socio no depende de Fecha, como veras los setter y getter se encuentran en la class Fecha o sea q tengo q llamar a fecha. No solo eso probe tambien cambiando Cadete por Fecha :: getAnio() y nada.

 

probe como me dijist y nada sigue igual :'(

 

ME SIGUE TIRANDO ESACTAMENTE LOS MISMOS ERRORES!

 

UNA PREGUNTA MEDIO ESTUPIDA QUE NO ME ACUERDO A QUE LIBRERIA PERTENECE EL IF?

 

Y lo del if fuera de funcion?? no entiendo otros programas que hice no me dieron ese error . Supongo que lo que me queres decir es que lo tengo q definir dentro de la estructura, en ese caso como hago? creo una funcion ej:

void calcularfundador() dentro de la estructura? y la defino afuera: void Cadete :: calcular fundador(){ y el if aca?)

 

 

SOS UN GRANDE CALU NO SABES LO Q ME SALVA ESTE FORO NO LO HABIA VISTO!! EMPIEZO A AYUDAR Y A PEDIR AYUDA COMO DEGENERADO JAJAJAJ .

 

GRACIAS AUDIOSLAVE POR RESPONDER... me sumo a ayudar d1.

el embole q me da q un programa de mas de 1200 lineas me tire error en 2 putos if

Edited by daniel

Share this post


Link to post
Share on other sites

Jaja pudiste solucionarlo entonces?

 

no se soluciono nada sigue igual esto respondeme porq me parece raro...

 

Y lo del if fuera de funcion?? no entiendo otros programas que hice no me dieron ese error . Supongo que lo que me queres decir es que lo tengo q definir dentro de la estructura, en ese caso como hago? creo una funcion ej:

void calcularfundador() dentro de la estructura? y la defino afuera: void Cadete :: calcular fundador(){ y el if aca?)

 

Share this post


Link to post
Share on other sites

Ojo, una estructura es muy distinto de una funci?n.

 

Las sentencias condicionales (tales como if, else, fo, while, for) van siempre dentro de una funci?n.

 

Mir? tu codigo y comparalo con el mio.

 

En el mio yo compile y funciona todo perfecto ya.

 

#include <iostream>

using namespace std;

class Fecha
{
public:
    int iDia, iMes, iAnio;
    Fecha (int iD=0,int iM=0, int iA=0)
    {
        setDia(iD);
        setMes(iM);
        setAnio(iA);
    }
    void setDia(int d){iDia =d;}
    void setMes(int m){iMes =m;}
    void setAnio(int a){iAnio =a;}
            
    int getDia(){return iDia;}
    int getMes(){return iMes;}
    int getAnio(){return iAnio;}
    
    void mostrarFecha();
};

void Fecha::mostrarFecha()
{
    cout<<getDia()<<"/"<<getMes()<<"/"<<getAnio()<<endl;
}

//--------------------CLASE SOCIO-------------------------------------------                      
class Socio : public Fecha
{
    string sNombre, sDNI;
    Fecha *fAsociacion;
    int iSocio;
    static int iCantidad;
    
public:
    Socio(string sNombre, string sDNI, int iSocio) 
    {
        setNombre(sNombre);
        setDNI(sDNI);
        setSocio(iSocio);
    }
    void setNombre(string n){sNombre = n;}
    void setDNI(string dni){sDNI = dni;}
    void setSocio(int s){iSocio = s;}
                          
    string getNombre(){return sNombre;}
    string getDNI(){return sDNI;}
    int getSocio(){return iSocio;}

    Socio(string,string,int,int,int);                          
    virtual void mostrar() = 0;
};

int Socio :: iCantidad = 1000;

Socio :: Socio(string nom,string dni,int da,int md,int ad)
{
      iSocio = iCantidad;
      iCantidad = iCantidad+2;
      sNombre = nom;
      sDNI = dni;
      fAsociacion = new Fecha(da,md,ad);
}

void Socio :: mostrar()
{
     cout << "\nNombre:" << getNombre() << endl;
     cout<<"\nDni:"<<getDNI()<<endl;
     cout<<"\n Nro. de Socio:"<<getSocio()<<endl;
     cout<<"\nfecha de asociacion:";
     fAsociacion->mostrarFecha();
}
//------------------------CADETE ----------------------------------------
class Cadete : public Socio
{
    int iCuota;
    static int iValor;
    
public:
    Cadete(string sNombre, string sdni, int da, int md, int ad,int iCuota) : Socio(sNombre,sdni, da,md,ad)
    {
        setCuota(iCuota);
    }
    void setCuota(int c){iCuota = c;}
    int getCuota(){return iCuota;}
    
    void mostrar();
};
int Cadete::iValor = 5;



void Cadete :: mostrar(){
if(Cadete::getAnio() <= 1999){
iCuota = iValor-3;
}
else{
iCuota = iValor;
}

     cout<<"----------------SOCIO CADETE-----------------"<<endl;
     Socio :: mostrar();
     cout<<endl<<"\nValor de Cuota: $"<<getCuota();
     };
//-----------------------ACTIVO------------------------------------------
class Activo : public Socio {
      int iPago;
      static int iaCuota;
      
      public:
             Activo(string sNombre, string sdni, int da,int md, int ad, int iPago) : Socio(sNombre,sdni,da,md,ad){
                           setPago(iPago);
                           }
                           void setPago(int p){iPago = p;}
                           int getPago(){return iPago;}
                          
                           void mostrar();
                           };
                          
int Activo :: iaCuota = 10;                  
                        
void Activo :: mostrar(){
    if(Activo::getAnio() <= 1999)
                                    {
                                        iPago = iaCuota - 3;
                                    }
                                    else
                                    {
                                        iPago = iaCuota;  
                                    };  

     cout<<"----------------SOCIO ACTIVO-----------------"<<endl;
     Socio :: mostrar();
     cout<<endl<<"\nValor de Cuota: $"<<getPago();
}

 

Fijate que los IF los puse adentro de la funci?n mostrar.

Share this post


Link to post
Share on other sites

a eso me referia o sea el id tengo q meterlo dentro de una funcion definida dentro de la estructura ahora si t entendi ahi funciono no me hizo falta poner el : public Fecha{ pasa que fecha lo estoy usando como metodo de agregacion gracias Audioslave me salvast la renegada jajaja

Share this post


Link to post
Share on other sites

Buenisimo si te funcion?.

 

Yo lo tuve que hacer asi porque no tengo m?s codigo que el que pusiste ac?, quiz? que vos al tener otras cosas te funcione de otra manera.

 

Un abrazo!

Share this post


Link to post
Share on other sites

mira todo lo que estaba estudiando que copado, la unica cagada q te equivocas en una boludes y no te anda el programa jaja, pero es cuestion de practicar nomas, la practica es fundamental para este tipo de cosas :D tengo que seguir con esto!!! pero este a?o me parece q sale a?o sabatico para el estudio jaja. Saludos a todos

 

 

Soy_Virgen

Aiacos

Edited by RaZor_Kill

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this