Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/07/2011, 14:26
Avatar de baker1562
baker1562
 
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 2 meses
Puntos: 9
Respuesta: Rastreo y muestreo de dato en un arreglo

para evitar hacer un nuevo tema necesito que me ayudes con el mismo case 4: con un while que tengo ahi, si meto un ID que no existe me tira que ingrese un el ID correcto, hasta ahi todo bien, pero si meto un ID correcto me muestra a quien pertenece y me hace un bucle infinito

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 ISBN=0;
  38.     int socio;
  39.     int k;
  40.     int ID;
  41.     int cantidad_libros;
  42.     int cantidad_socios;
  43.     string respuesta;
  44.    
  45.    
  46.     while(respuesta!="N" && respuesta!="n")
  47.     {
  48.        system("color 0f");
  49.        cout<<"******Biblioteca Publica^El Raton Feliz^******"<<endl;
  50.        cout<<endl;
  51.        cout<<"Digite #1, para ingresar nuevo socio."<<endl;
  52.        cout<<"Digite #2, para cambiar estado del socio."<<endl;
  53.        cout<<"Digite #3, para ingresar nuevo libro."<<endl;
  54.        cout<<"Digite #4, para prestar libro."<<endl;
  55.        cout<<"Digite #5, pàra recibir libro."<<endl;
  56.        cout<<"Digite #6, para desplegar lista de libros."<<endl;
  57.        cout<<"Digite #7, para desplegar lista de socios."<<endl;
  58.        cout<<"Digite #8, para desplegar lista de libros prestados actualmente"<<endl;
  59.        cout<<endl;
  60.        cout<<"Que opcion desea realizar?"<<endl;
  61.        cin>>opcion;
  62.        system("cls");
  63.        
  64.        
  65.         switch(opcion){
  66.              
  67.          case 1:
  68.               if(i<4)
  69.               {
  70.               cout<<"******Ingreso de nuevo socio******"<<endl;
  71.               cout<<endl;
  72.               cout<<"Ingrese nombre del socio # "<<i<<":"<<endl;
  73.               cin>>libros[i].nombrefadeIn;
  74.               cout<<endl;
  75.               cout<<"Ingrese apellidos del socio:"<<endl;
  76.               cin>>libros[i].apellidosfadeIn;
  77.               cout<<endl;
  78.               cout<<"Ingrese cedula:"<<endl;
  79.               cin>>libros[i].identificadorfadeIn;
  80.               cout<<endl;
  81.               cout<<"Ingrese fecha de registro:(formato dd/mm/aaaa)"<<endl;
  82.               cin>>libros[i].fecha_registrofadeIn;
  83.               cout<<endl;
  84.               cout<<"Ingrese #1 para usuario activo o ingreso #2 para usuario inactivo:"<<endl;
  85.               cin>>libros[i].estadofadeIn;
  86.               cout<<endl;
  87.               system("cls");
  88.               if(libros[i].estadofadeIn==1)
  89.               {
  90.                 system("color 0e");
  91.                 cout<<"El socio de nombre "<<libros[i].nombrefadeIn<<" esta activo!!!"<<endl;
  92.                 system("pause");
  93.                 system("cls");
  94.                 }
  95.                 else
  96.                 {
  97.                     system("color 0e");
  98.                     cout<<"El socio de nombre "<<libros[i].nombrefadeIn<<" esta inactivo!!!"<<endl;
  99.                     system("pause");
  100.                     system("cls");
  101.                     }
  102.                     cout<<endl;
  103.               i=i+1;
  104.               cantidad_socios=i;
  105.               }
  106.               else
  107.               {  
  108.                   system("color 4e");
  109.                   cout<<"ERROR/No se pueden ingresar mas datos/Memoria de socios llena"<<endl;
  110.               system("pause");
  111.                }
  112.                break;
  113.                
  114.                case 2:
  115.                     cout<<"*******Cambio de estado de los socios******"<<endl;
  116.                     cout<<endl;
  117.                     cout<<"Ingrese numero de socio(valido de 0 a 3)"<<endl;
  118.                     cin>>socio;
  119.                     cout<<endl;
  120.                     k=socio;
  121.                     if(k>3)
  122.                     {
  123.                            system("cls");
  124.                            system("color 0b");
  125.                            cout<<"ERROR//Numero de socio inexistente//Ingrese un numero de socio valido!!!"<<endl;
  126.                            cout<<endl;
  127.                            system("pause");
  128.                            system("cls");
  129.                            
  130.                            break;
  131.                            }
  132.                     if(libros[k].estadofadeIn==1)
  133.                     {
  134.                        cout<<"El socio #"<<k<<" de nombre: "<<libros[k].nombrefadeIn<<" se encuentra activo"<<endl;
  135.                        cout<<endl;
  136.                        cout<<"Para cambia el estado del socio a inactivo, presione #2!!"<<endl;
  137.                        cin>>libros[k].estadofadeIn;
  138.                        cout<<endl;
  139.                        cout<<"Cambio de estado del socio a inactivo, fue hecho satisfactoriamente!!"<<endl;
  140.                        system("pause");
  141.                        system("cls");
  142.                        }
  143.                        else
  144.                        {
  145.                            cout<<"El socio #"<<k<<" de nombre: "<<libros[k].nombrefadeIn<<" se encuentra inactivo"<<endl;
  146.                            cout<<endl;
  147.                            cout<<"Para cambiar el estado del socio a activo, presione#1!!"<<endl;
  148.                            cin>>libros[k].estadofadeIn;
  149.                            cout<<endl;
  150.                            cout<<"Cambio de socio a activo, fue hecho satisfactoriamente!!"<<endl;
  151.                            system("pause");
  152.                            system("cls");
  153.                            }
  154.                            cout<<endl;
  155.                            
  156.                            
  157.                            
  158.                     break;
  159.                    
  160.            case 3:
  161.  
  162.                if(j<4)
  163.                        {
  164.                        cout<<"******Ingreso de Nuevo Libro******"<<endl;
  165.                        cout<<endl;
  166.                        cout<<"Ingrese el nombre del libro nuevo # "<<j<<":"<<endl;
  167.                        cin>>libros[j].nombre_libro;
  168.                        cout<<endl;
  169.                        cout<<"Ingrese numero de edicion:"<<endl;
  170.                        cin>>libros[j].numero_edicionfadeIn;
  171.                        cout<<endl;
  172.                        cout<<"Ingrese editorial:"<<endl;
  173.                        cin>>libros[j].editorialfadeIn;
  174.                        cout<<endl;
  175.                        cout<<"Ingrese el ISBN del libro:"<<endl;
  176.                        cin>>ISBN;
  177.                        cout<<endl;
  178.                        while (buscar(libros,j,ISBN)!=-1){
  179.                          cout << "ERROR//Ya has introducido un libro con ese ISBN" << endl;  
  180.                          cout<<endl;        
  181.                          cout<<"Ingrese el ISBN correcto del libro:"<<endl;
  182.                          cin>>ISBN;
  183.                          system("cls");
  184.                        }        
  185.                        
  186.                        libros[j].ISBN = ISBN;
  187.                        j=j+1;
  188.                        cantidad_libros=j;
  189.                        }
  190.                        else
  191.                        {   system("color 0c");
  192.                            cout<<"ERROR//Memoria de libros llena"<<endl;
  193.                            system("pause");
  194.                            }
  195.                            break;
  196.                            
  197.                    case 4:
  198.                         cout<<"******Prestamo de libro******"<<endl;
  199.                         cout<<endl;
  200.                         cout<<"Ingrese la ID de la persona en cuestion:"<<endl;
  201.                         cin>>ID;
  202.                        
  203.                         while(libros[i].identificadorfadeIn!=ID)
  204.                         {
  205.                         for(int i=0;i<cantidad_socios;i++)
  206.                         if(libros[i].identificadorfadeIn==ID)
  207.                         {
  208.                           cout<<"El socio de con la cedula "<<ID<<" es de nombre: "<<libros[i].nombrefadeIn<<endl;
  209.                           cout<<endl;
  210.                          
  211.                           }
  212.                           else
  213.                           {
  214.                               system("cls");
  215.                               cout<<"ERROR//No existe una persona con ese ID"<<endl;
  216.                               cout<<endl;
  217.                               system("pause");
  218.                               system("cls");
  219.                               cout<<"Ingrese la ID correcto:"<<endl;
  220.                               cin>>ID;
  221.                              
  222.                               }
  223.                               }
  224.                              
  225.                            break;        
  226.                    case 6:
  227.                             cout<<"Nombre del Libro"<<setw(20)<<"ISBN"<<endl;
  228.                             for(int j=0;j<cantidad_libros;j++)
  229.                             cout<<libros[j].nombre_libro<<setw(31)<<libros[j].ISBN<<endl;
  230.                             break;
  231.                            
  232.                      case 7:
  233.                               cout<<"Socios"<<setw(20)<<"Cedula"<<endl;
  234.                               for(int i=0;i<cantidad_socios;i++)
  235.                               cout<<libros[i].nombrefadeIn<<setw(8)<<libros[i].apellidosfadeIn<<setw(13)<<libros[i].identificadorfadeIn<<endl;
  236.                               break;
  237.                               }
  238.                        
  239.        system("color 0f");
  240.        cout<<"******Biblioteca Publica-El Raton Feliz******"<<endl;                
  241.        cout<<"Desea realizar otra accion. s/n?"<<endl;
  242.        cin>>respuesta;
  243.        system("cls");
  244.        }
  245.        return 0;
  246.        }

no se que estoy haciendo mal en while del case 4