Ayuda!

Iniciado por AdrGea, 1 Julio 2011, 21:44 PM

0 Miembros y 1 Visitante están viendo este tema.

AdrGea

Necesito ayuda con este codigo, el switch no me funciona, el programa compila y corre pero al ingresar la opcion nohace nada, alguien me ayuda por favor?

#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<ctype.h>

using namespace std;

class persona {
   
        int grad;
        char nombre;
        char fecha;

     public:
       persona(void);
         persona(char n=0, char fn=0, int g=0): nombre(n), fecha(fn), grad(g){};
             
          void ingresar(char n, char fn, int grad);
          ~persona();
          void visualizar();
             
} ;

//******************************************************************************
void persona::ingresar(char n, char fn, int g){

      cout<<"Ingresar los datos de la persona: "<<endl;
      cout<<"Ingresar nombre: "<<endl;
      cin>>n;
      nombre=n;
      cout<<"Ingresar fecha de nacimiento: "<<endl;
      cin>>fn;
      fecha=fn;
      cout<<"Ingresar año de graduación: "<<endl;
      cin>>g;
      grad=g;

}

//****************************************************************************
void persona::visualizar(){

          cout<<"Datos de la persona: "<<endl;
          cout<<"Nombre: "<<nombre<<endl;
          cout<<"Fecha de nacimiento: "<<fecha<<endl;
          cout<<"Año de graduación: "<<grad<<endl;


}

//****************************************************************************
int main(){  // declaracion del cuerpo principal del programa
class persona *ptrpersona;
char opc; // declaracion de variable

do{
// condicion para el menu se repita hasta que se ingrese la opcion salir
                system("CLS"); //Limpia la pantalla
            cout<<"                MENU  "<<endl;
                cout<<" 1.- Ingresar una persona."<<endl;
            cout<<" 2.- Visualizar la persona."<<endl;
                cout<<" 3.- Salir."<<endl;
            cin>>opc;  // lee la variable
               
           
      switch(opc){
         case'1':system("CLS");
                void persona::ingresar(char n, char fn, int g);
            break;
         case'2':system("CLS");    //se muestra la funcion en pantalla segun la opcion ingresada
            void persona::visualizar();
            
            break;
         case'3':system("CLS");
            
            exit(1);
         default: cout<<"opcion no valida"<<endl;
            system("pause");
            break;
            }
}while(opc!='3');  // condicion para el menu se repita hasta que se ingrese la opcion salir

}

Edu

#1
Dije cualquier cosa por eso edito xD Intenta ir depurando para ir viendo hasta donde llega y como llega

Dark Invader

Te falta la libreria cstdlib para llamar al sistema,además la variable opc es de tipo char,y en el switch la estas metiendo en los case como numeros,no obstante creo que el fallo es de las clases,aunque no lo encuentro:

#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<cstdlib>

using namespace std;

class persona {
   
        int grad;
        char nombre;
        char fecha;

     public:
       persona(void);
         persona(char n=0, char fn=0, int g=0): nombre(n), fecha(fn), grad(g){};
             
          void ingresar(char n, char fn, int grad);
          ~persona();
          void visualizar();
             
} ;

//******************************************************************************
void persona::ingresar(char n, char fn, int g){

      cout<<"Ingresar los datos de la persona: "<<endl;
      cout<<"Ingresar nombre: "<<endl;
      cin>>n;
      nombre=n;
      cout<<"Ingresar fecha de nacimiento: "<<endl;
      cin>>fn;
      fecha=fn;
      cout<<"Ingresar año de graduación: "<<endl;
      cin>>g;
      grad=g;

}

//****************************************************************************
void persona::visualizar(){

          cout<<"Datos de la persona: "<<endl;
          cout<<"Nombre: "<<nombre<<endl;
          cout<<"Fecha de nacimiento: "<<fecha<<endl;
          cout<<"Año de graduación: "<<grad<<endl;


}

//****************************************************************************
int main(){  // declaracion del cuerpo principal del programa
class persona *ptrpersona;
char opc; // declaracion de variable

do{
// condicion para el menu se repita hasta que se ingrese la opcion salir
                system("CLS"); //Limpia la pantalla
            cout<<"                MENU  "<<endl;
                cout<<"a.- Ingresar una persona."<<endl;
            cout<<" b.- Visualizar la persona."<<endl;
                cout<<" c.- Salir."<<endl;
            cin>>opc;  // lee la variable
               
           
      switch(opc){
         case'a':system("CLS");
                void persona::ingresar(char n, char fn, int g);
            break;
         case'b':system("CLS");    //se muestra la funcion en pantalla segun la opcion ingresada
            void persona::visualizar();
           
            break;
         case'c':system("CLS");
           
            exit(1);
         default: cout<<"opcion no valida"<<endl;
            system("pause");
            break;
            }
}while(opc!='3');  // condicion para el menu se repita hasta que se ingrese la opcion salir

}


AdrGea

Gracias por responder, ps igual hace lo mismo, inclusive lo habia cambiado a int solo q este es el codigo de antes, y tmb creo q el problema esta en las clases pero no me sale ningun error y al parecer debria correr así...

Dark Invader

Revisa las clases:

invalid use of qualified-name 'persona::ingresar'
invalid use of qualified-name 'persona::visualizar'

Ahi esta el fallo  :silbar:

Salu2