Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: AdrGea en 1 Julio 2011, 21:44 pm



Título: Ayuda!
Publicado por: AdrGea en 1 Julio 2011, 21:44 pm
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

 }


Título: Re: Ayuda!
Publicado por: Edu en 1 Julio 2011, 21:53 pm
Dije cualquier cosa por eso edito xD Intenta ir depurando para ir viendo hasta donde llega y como llega


Título: Re: Ayuda!
Publicado por: Dark Invader en 1 Julio 2011, 22:05 pm
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:

Código
  1. #include<iostream>
  2. #include<conio.h>
  3. #include<stdio.h>
  4. #include<string.h>
  5. #include<ctype.h>
  6. #include<cstdlib>
  7.  
  8. using namespace std;
  9.  
  10. class persona {
  11.  
  12.        int grad;
  13.        char nombre;
  14.        char fecha;
  15.  
  16.     public:
  17.       persona(void);
  18.         persona(char n=0, char fn=0, int g=0): nombre(n), fecha(fn), grad(g){};
  19.  
  20.          void ingresar(char n, char fn, int grad);
  21.          ~persona();
  22.          void visualizar();
  23.  
  24. } ;
  25.  
  26. //******************************************************************************
  27. void persona::ingresar(char n, char fn, int g){
  28.  
  29.      cout<<"Ingresar los datos de la persona: "<<endl;
  30.      cout<<"Ingresar nombre: "<<endl;
  31.      cin>>n;
  32.      nombre=n;
  33.      cout<<"Ingresar fecha de nacimiento: "<<endl;
  34.      cin>>fn;
  35.      fecha=fn;
  36.      cout<<"Ingresar año de graduación: "<<endl;
  37.      cin>>g;
  38.      grad=g;
  39.  
  40. }
  41.  
  42. //****************************************************************************
  43. void persona::visualizar(){
  44.  
  45.          cout<<"Datos de la persona: "<<endl;
  46.          cout<<"Nombre: "<<nombre<<endl;
  47.          cout<<"Fecha de nacimiento: "<<fecha<<endl;
  48.          cout<<"Año de graduación: "<<grad<<endl;
  49.  
  50.  
  51. }
  52.  
  53. //****************************************************************************
  54. int main(){  // declaracion del cuerpo principal del programa
  55. class persona *ptrpersona;
  56. char opc; // declaracion de variable
  57.  
  58. do{
  59. // condicion para el menu se repita hasta que se ingrese la opcion salir
  60.                system("CLS"); //Limpia la pantalla
  61.            cout<<"                MENU  "<<endl;
  62.                cout<<"a.- Ingresar una persona."<<endl;
  63.            cout<<" b.- Visualizar la persona."<<endl;
  64.                cout<<" c.- Salir."<<endl;
  65.            cin>>opc;  // lee la variable
  66.  
  67.  
  68.      switch(opc){
  69.         case'a':system("CLS");
  70.                void persona::ingresar(char n, char fn, int g);
  71.            break;
  72.         case'b':system("CLS");    //se muestra la funcion en pantalla segun la opcion ingresada
  73.            void persona::visualizar();
  74.  
  75.            break;
  76.         case'c':system("CLS");
  77.  
  78.            exit(1);
  79.         default: cout<<"opcion no valida"<<endl;
  80.            system("pause");
  81.            break;
  82.            }
  83. }while(opc!='3');  // condicion para el menu se repita hasta que se ingrese la opcion salir
  84.  
  85. }


Título: Re: Ayuda!
Publicado por: AdrGea en 1 Julio 2011, 22:09 pm
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í...


Título: Re: Ayuda!
Publicado por: Dark Invader en 1 Julio 2011, 23:08 pm
Revisa las clases:

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

Ahi esta el fallo  :silbar:

Salu2