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

Programa en C++ que no compila, tiene errores, auxilio por favor!!

Estas en el tema de Programa en C++ que no compila, tiene errores, auxilio por favor!! en el foro de C/C++ en Foros del Web. Miren, tengo este programa, ya le movi muchas cosas y asi y el caso es que ni siquiera compila, aqui esta el codigo y nada ...
  #1 (permalink)  
Antiguo 13/10/2011, 13:15
 
Fecha de Ingreso: octubre-2011
Mensajes: 1
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta Programa en C++ que no compila, tiene errores, auxilio por favor!!

Miren, tengo este programa, ya le movi muchas cosas y asi y el caso es que ni siquiera compila, aqui esta el codigo y nada mas son unas pequeñas dudillas, el programa debe de pedir informacion de alumnos y ordenarlos y despues imprimirlos.


#include <cstdlib>
#include <iostream>

using namespace std;

class alumno
{
private:

int clave;
char nombre[30];
int calif;

public:

alumno();
void pedir (void);
void ordenar (void);
void imprimir (void);
};


int main ()
{
int op;
alumno al[3];
alumno *ap_lista;
ap_lista=al;
do
{
cout << "Elige una opcion" << endl << "1. Dar de alta\n2.Ordenar\n3.Imprimir\n4.Salir\n";
cout << "Opcion: ";
switch (op)
{
case 1:
ap_lista.pedir(); //'pedir' has not been declared
cout << "Desea volver al menu?\n1. Si\n2. No\nOpcion---> ";
cin >> op;
break;
case 2:
ap_lista.ordenar(); //'ordenar' has not been declared
cout << "Desea volver al menu?\n1. Si\n2. No\nOpcion---> ";
cin >> op;
break;
case 3:
ap_lista.imprimir(); ////'imprimir' has not been declared
cout << "Desea volver al menu?\n1. Si\n2. No\nOpcion---> ";
cin >> op;
break;
case 4:
cout << "Adios!";
op=2;
break;
default:
cout << "Opcion no valida" << endl;
op=1;
break;
}
}
while (op=!2 && op==1);
return 0;
}

void alumno::pedir()
{
for(int i=0;i<=3;i++)
{
cout << "Dame clave: ";
cin >> (ap_lista+i)->clave; //'ap_lista' undeclared (first use function)
cin.get();
cout << "Dame el nombre: ";
cin.getline((ap_lista+i)->nombre,30);
cout << "Dame la calificacion: ";
cin >> calif;
}
}

void alumno::ordenar()
{
int tmp;
for(int i=0;i<3;i++)
{
for(int j=i+1;j<3;j++)
{
if((*(ap_lista+i))>(*(ap_lista+j))) //'ap_lista' undeclared (first use
function)
{
tmp=*(ap_lista+i);
*(ap_lista+i)=*(ap_lista+j);
*(ap_lista+j)=tmp;
}
}
}

void alumno::imprimir() //expected primary-expression before 'void'
{
for(int i=0;i<=3;i++)
{
cout << endl << (ap_lista+i)->clave
cout << " " << (ap_lista+i)->nombre
cout << " " << (ap_lista+i)->calif << endl;
}
} //expected ´}' at end of input



asi es como me marcan los errores, en serio que ya trate de muchas maneras y no me sale, por favor ayuda!!
  #2 (permalink)  
Antiguo 13/10/2011, 13:45
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Programa en C++ que no compila, tiene errores, auxilio por favor!!

Le estas fallando severamente a los cosas.

Cuando haces esto: alumno al[3]; tienes tres objetos alumno. Pero no se conocen entre ellos.

Entonces en el metodo pedir, por darte un ejemplo no deberia ir el for:

Código C++:
Ver original
  1. void alumno::pedir()
  2. {
  3. cout << "Dame clave: ";
  4. cin >> clave;
  5. cin.get();
  6. cout << "Dame el nombre: ";
  7. cin.getline(nombre,30);
  8. cout << "Dame la calificacion: ";
  9. cin >> calif;
  10. }
  11. }

Cuando llamas a un metodo de una clase este se ejecuta en su entorno.

Para llamar al metodo pedir seria (dentro del main):

ap_lista[1].pedir(); (reemplaza al 1 por otro numero o una variable).

Segerencia: Estudiar mejor clasas y arrays. Saludos

Etiquetas: clases, compila, objetos, programa
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 16:55.