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

Ejercicio en C++ no me compila en Borland

Estas en el tema de Ejercicio en C++ no me compila en Borland en el foro de C/C++ en Foros del Web. Hola amigos tengo este codigo ya lo tengo resuelto pero me tira errores y no he podido descifrarlos, es referente a arreglos con objetos,si alguien ...
  #1 (permalink)  
Antiguo 10/02/2014, 12:40
 
Fecha de Ingreso: febrero-2014
Mensajes: 2
Antigüedad: 10 años, 2 meses
Puntos: 0
Ejercicio en C++ no me compila en Borland

Hola amigos tengo este codigo ya lo tengo resuelto pero me tira errores y no he podido descifrarlos, es referente a arreglos con objetos,si alguien me ayuda estare agradecido.

#include <iostream>

using namespace std;

class Alumno
{
private:
int id;
float calificacion;

public:
Alumno()
{
id=0;
calificacion=0;
}

void SetId(int idx)
{
id=idx;
}

void SetCalificacion(float cal)
{
calificacion=cal;
}

int GetId()
{
return id;
}

float GetCalificacion()
{
return calificacion;
}

};


int main()
{
int n, i;
float aux;
cout<<"PROMEDIO DE LOS ALUMNOS."<<endl<<endl;
cout<<"¿Cuántos alumnos son?: ";
cin>>n;
cout<<"Debe ingresar cada una de las calificaciones de los alumnos, el id se asignará en el orden es que se ingresan los datos."<<endl<<endl<<endl;

Alumno Alumnos[n];

for (i=0; i<n; i++)
{
cout<<"Ingrese la calificación del estudiante identificado con el id: "<<i+1<<": ";
cin>>aux;
Alumnos.SetId(i+1);
Alumnos.SetCalificacion(aux);
}


cout<<endl<<endl<<endl<<"Lista de alumnos con su respectivas notas: "<<endl;
aux=0;
for(i=0; i<n; i++)
{
cout<<"Id Alumno: "<<Alumnos.GetId()<<" -> Nota: "<<Alumnos.GetCalificacion()<<endl;
aux+=Alumnos.GetCalificacion();
}


cout<<endl<<endl<<endl<<"El promedio de los alumnos es: "<<aux/n<<endl;



cout<<endl<<endl<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

la compilacion me tira un error en funcion main ,expresion constante requerida, ya lo hecho como 500 veces pero no hay caso,hay algo que se me esta pasando y me ha quemado las neuronas.
  #2 (permalink)  
Antiguo 10/02/2014, 12:51
 
Fecha de Ingreso: febrero-2014
Mensajes: 2
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Ejercicio en C++ no me compila en Borland

En Dev C++ no hay problema el problema es con el Borland
  #3 (permalink)  
Antiguo 10/02/2014, 12:56
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Ejercicio en C++ no me compila en Borland

Antes de nada: indenta el codigo, te servirá para ver mejor lo que estas haciendo a la vez que será un codigo amigable y de facil lectura para quien pueda ayudarte. Esto ayuda en la identificacion de errores.

Ahora lo que te dice el compilador: "... request for member 'SetId' in 'Alumnos', which is of non-class type 'Alumno'..." (bueno, esto es lo que dice el mio)

Traducido significa que estas intentando llamar un metodo de una clase a traves de algo que no es la clase que contiene ese metodo, dicho de otra forma, el array Alumnos[n] por si solo no contiene los metodos de la clase Alumno.

La solucion es facil: tienes que apuntar a un elemento del array para que realmete trabajes con un objeto de tipo Alumno sobre el que puedes llamar a los metodos:
Código C++:
Ver original
  1. //array de clases Alumno
  2. Alumno Alumnos[n];
  3.  
  4. //selecciono el primer elemento del array y ejecuto su SetId
  5. Alumnos[0].SetId(123);

Solo tienes que aplicar esto a tu ciclo.

Saludos
vosk

Etiquetas: borland, compila, ejercicio, funcion, int
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 15:30.