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

Problema con muestreo de If

Estas en el tema de Problema con muestreo de If en el foro de C/C++ en Foros del Web. Hola, buenas, tengo un problema 2 problemas desde hace horas y agradeceria mucho su ayuda, en el programa en el la opcion 2 (case 2), ...
  #1 (permalink)  
Antiguo 02/07/2011, 00:29
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 8 meses
Puntos: 9
Pregunta Problema con muestreo de If

Hola, buenas, tengo un problema 2 problemas desde hace horas y agradeceria mucho su ayuda, en el programa en el la opcion 2 (case 2), en cambio de estado de socio, si yo introduzco un numero de socio mayor a 3, me muestra:"ERROR numero de socio inexistente(eso quiero que me muestre), pero me salen las opciones del IF que le sigue, como hago para que solo me muestre el error si el numero es mayor que 4(antes se tiene que ingresar a la opcion 1 del programa y agregar un nuevo socio)

Código C++:
Ver original
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. using namespace std;
  5.  
  6.  typedef struct{
  7.     int ISBN;
  8.     char nombre_libro[100];
  9.     char editorialfadeIn[100];
  10.     int numero_edicionfadeIn;
  11.     char autorfadeIn[100];
  12.     int identificadorfadeIn;
  13.     char nombrefadeIn[100];
  14.     char apellidosfadeIn[100];
  15.     int fecha_registrofadeIn;
  16.     int estadofadeIn;
  17.  } datos_libros;
  18.  
  19.  
  20.  int buscar(datos_libros vector[],int longitud, int valor){
  21.  
  22.    for(int i=0;i<longitud;i++){
  23.       if (vector[i].ISBN == valor)
  24.           return i;
  25.    }
  26.    return -1;
  27.  }
  28.  
  29.  
  30. int main ()
  31. {
  32.    
  33.     datos_libros libros[4];
  34.     int opcion;
  35.     int i = 0;
  36.     int j = 0;
  37.     int z;
  38.     int y;
  39.     int ISBN=0;
  40.     int socio;
  41.     int k;
  42.     string respuesta;
  43.    
  44.    
  45.     while(respuesta!="N" && respuesta!="n")
  46.     {
  47.        system("color 0f");
  48.        cout<<"******Biblioteca Publica^El Raton Feliz^******"<<endl;
  49.        cout<<endl;
  50.        cout<<"Digite #1, para ingresar nuevo socio."<<endl;
  51.        cout<<"Digite #2, para cambiar estado del socio."<<endl;
  52.        cout<<"Digite #3, para ingresar nuevo libro."<<endl;
  53.        cout<<"Digite #4, para prestar libro."<<endl;
  54.        cout<<"Digite #5, pàra recibir libro."<<endl;
  55.        cout<<"Digite #6, para desplegar lista de libros."<<endl;
  56.        cout<<"Digite #7, para desplegar lista de socios."<<endl;
  57.        cout<<"Digite #8, para desplegar lista de libros prestados actualmente"<<endl;
  58.        cout<<endl;
  59.        cout<<"Que opcion desea realizar?"<<endl;
  60.        cin>>opcion;
  61.        system("cls");
  62.        
  63.        
  64.         switch(opcion){
  65.              
  66.          case 1:
  67.               if(i<4)
  68.               {
  69.               cout<<"******Ingreso de nuevo socio******"<<endl;
  70.               cout<<endl;
  71.               cout<<"Ingrese nombre del socio # "<<i<<":"<<endl;
  72.               cin>>libros[i].nombrefadeIn;
  73.               cout<<endl;
  74.               cout<<"Ingrese apellidos del socio:"<<endl;
  75.               cin>>libros[i].apellidosfadeIn;
  76.               cout<<endl;
  77.               cout<<"Ingrese cedula:"<<endl;
  78.               cin>>libros[i].identificadorfadeIn;
  79.               cout<<endl;
  80.               cout<<"Ingrese fecha de registro:(formato dd/mm/aaaa)"<<endl;
  81.               cin>>libros[i].fecha_registrofadeIn;
  82.               cout<<endl;
  83.               cout<<"Ingrese #1 para usuario activo o ingreso #2 para usuario inactivo:"<<endl;
  84.               cin>>libros[i].estadofadeIn;
  85.               cout<<endl;
  86.               system("cls");
  87.               if(libros[i].estadofadeIn==1)
  88.               {
  89.                 system("color 0e");
  90.                 cout<<"El socio de nombre "<<libros[i].nombrefadeIn<<" esta activo"<<endl;
  91.                 }
  92.                 else
  93.                 {
  94.                     system("color 0e");
  95.                     cout<<"El socio de nombre "<<libros[i].nombrefadeIn<<" esta inactivo"<<endl;
  96.                     }
  97.                     cout<<endl;
  98.               i=i+1;
  99.               }
  100.               else
  101.               {  
  102.                   system("color 4e");
  103.                   cout<<"ERROR/No se pueden ingresar mas datos/Memoria de socios llena"<<endl;
  104.               system("pause");
  105.                }
  106.                break;
  107.                
  108.                case 2:
  109.                     cout<<"*******Cambio de estado de los socios******"<<endl;
  110.                     cout<<endl;
  111.                     cout<<"Ingrese numero de socio(valido de 0 a 3)"<<endl;
  112.                     cin>>socio;
  113.                     cout<<endl;
  114.                     k=socio;
  115.                     if(k>3)
  116.                     {
  117.                            
  118.                            cout<<"ERROR//Numero de socio inexistente"<<endl;
  119.                            }
  120.                     if(libros[k].estadofadeIn==1)
  121.                     {
  122.                        cout<<"El socio #"<<k<<" de nombre: "<<libros[k].nombrefadeIn<<" se encuentra activo"<<endl;
  123.                        }
  124.                        else
  125.                        {
  126.                            cout<<"El socio #"<<k<<" de nombre: "<<libros[k].nombrefadeIn<<" se encuentra inactivo"<<endl;
  127.                            }
  128.                            cout<<endl;
  129.                            
  130.                     break;
  131.                    
  132.            case 3:
  133.  
  134.                if(j<4)
  135.                        {
  136.                        cout<<"******Ingreso de Nuevo Libro******"<<endl;
  137.                        cout<<endl;
  138.                        cout<<"Ingrese el nombre del libro nuevo # "<<j<<":"<<endl;
  139.                        cin>>libros[j].nombre_libro;
  140.                        cout<<endl;
  141.                        cout<<"Ingrese numero de edicion:"<<endl;
  142.                        cin>>libros[j].numero_edicionfadeIn;
  143.                        cout<<endl;
  144.                        cout<<"Ingrese editorial:"<<endl;
  145.                        cin>>libros[j].editorialfadeIn;
  146.                        cout<<endl;
  147.                        cout<<"Ingrese el ISBN del libro:"<<endl;
  148.                        cin>>ISBN;
  149.                        cout<<endl;
  150.                        while (buscar(libros,j,ISBN)!=-1){
  151.                          cout << "ERROR//Ya has introducido un libro con ese ISBN" << endl;  
  152.                          cout<<endl;        
  153.                          cout<<"Ingrese el ISBN correcto del libro:"<<endl;
  154.                          cin>>ISBN;
  155.                          system("cls");
  156.                        }        
  157.                        
  158.                        libros[j].ISBN = ISBN;
  159.                        j=j+1;
  160.                        }
  161.                        else
  162.                        {   system("color 0c");
  163.                            cout<<"ERROR//Memoria de libros llena"<<endl;
  164.                            system("pause");
  165.                            }
  166.                            break;
  167.                            {
  168.                    case 6:
  169.                             cout<<"Nombre del Libro"<<setw(20)<<"ISBN"<<endl;
  170.                             z=j;
  171.                             for(int j=0;j<z;j++)
  172.                             cout<<libros[j].nombre_libro<<setw(31)<<libros[j].ISBN<<endl;
  173.                             break;
  174.                            
  175.                      case 7:
  176.                               cout<<"Socios"<<setw(20)<<"Cedula"<<endl;
  177.                               y=i;
  178.                               for(int i=0;i<y;i++)
  179.                               cout<<libros[i].nombrefadeIn<<setw(8)<<libros[i].apellidosfadeIn<<setw(13)<<libros[i].identificadorfadeIn<<endl;
  180.                               }
  181.                               }
  182.                        
  183.        cout<<"        Biblioteca Publica El Raton Feliz        "<<endl;                
  184.        cout<<"Desea realizar otra accion. s/n?"<<endl;
  185.        cin>>respuesta;
  186.        system("cls");
  187.        }
  188.        return 0;
  189.        }

de antemano les agradezco su ayuda
  #2 (permalink)  
Antiguo 02/07/2011, 05:06
 
Fecha de Ingreso: marzo-2011
Mensajes: 94
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Problema con muestreo de If

Le añades un break y listo ;)

Código C++:
Ver original
  1. #
  2. case 2:
  3.  
  4.                     cout<<"*******Cambio de estado de los socios******"<<endl;
  5.  
  6.                     cout<<endl;
  7.  
  8.                     cout<<"Ingrese numero de socio(valido de 0 a 3)"<<endl;
  9.  
  10.                     cin>>socio;
  11.  
  12.                     cout<<endl;
  13.  
  14.                    k=socio;
  15.  
  16.                     if(k>3)
  17.  
  18.                     {
  19.  
  20.                            
  21.  
  22.                            cout<<"ERROR//Numero de socio inexistente"<<endl;
  23.  
  24.                            break; // Asi no sigue con el resto del case
  25.  
  26.                            }

Última edición por Checho360; 02/07/2011 a las 05:13
  #3 (permalink)  
Antiguo 02/07/2011, 10:06
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Problema con muestreo de If

jajajaja solo era eso, hay cosas simples que no veo, muchas gracias por tu ayuda, te lo agradesco

Última edición por baker1562; 02/07/2011 a las 10:12

Etiquetas: ifelse, muestreo
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 06:16.