Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/07/2011, 11:17
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Buscar dato en arreglo

Yo lo haría mediante una función para modularizar más las cosas.

Si te fijas, la función buscar devuelve el índice del array donde se encuentre un elemento y si esté no se encuentra, devuelve -1.

Código C++:
Ver original
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4.  
  5. using namespace std;
  6.  
  7.  typedef struct{
  8.     int ISBN;
  9.     char nombre_libro[100];
  10.     char editorialfadeIn[100];
  11.     int numero_edicionfadeIn;
  12.     char autorfadeIn[100];
  13.     int identificadorfadeIn;
  14.     char nombrefadeIn[100];
  15.     char apellidosfadeIn[100];
  16.     int fecha_registrofadeIn;
  17.     int estadofadeIn;
  18.  } datos_libros;
  19.  
  20.  
  21.  
  22. int buscar(datos_libros vector[],int longitud, int valor){
  23.  
  24.    for(int i=0;i<longitud;i++){
  25.       if (vector[i].ISBN == valor)
  26.           return i;
  27.    }
  28.    return -1;
  29.  }
  30.  
  31.  
  32. int main ()
  33. {
  34.    
  35.     datos_libros libros[4];
  36.     int opcion;
  37.     int i = 0;
  38.     int j = 0;
  39.     int z;
  40.     int y;
  41.     string respuesta;
  42.     int ISBN = 0;
  43.    
  44.    
  45.     while( respuesta.compare("N")!=0 && respuesta.compare("n")!=0)
  46.     {
  47.        cout<<"******Biblioteca Publica^El Raton Feliz^******"<<endl;
  48.        cout<<endl;
  49.        cout<<"Digite #1, para ingresar nuevo socio."<<endl;
  50.        cout<<"Digite #2, para cambiar estado del socio."<<endl;
  51.        cout<<"Digite #3, para ingresar nuevo libro."<<endl;
  52.        cout<<"Digite #4, para prestar libro."<<endl;
  53.        cout<<"Digite #5, pàra recibir libro."<<endl;
  54.        cout<<"Digite #6, para desplegar lista de libros."<<endl;
  55.        cout<<"Digite #7, para desplegar lista de socios."<<endl;
  56.        cout<<"Digite #8, para desplegar lista de libros prestados actualmente"<<endl;
  57.        cout<<endl;
  58.        cout<<"Que opcion desea realizar?"<<endl;
  59.        cin>>opcion;
  60.        system("cls");
  61.        
  62.           if(opcion==1)
  63.             {
  64.               if(i<4)
  65.               {
  66.               cout<<"******Ingreso de nuevo socio******"<<endl;
  67.               cout<<endl;
  68.               cout<<"Ingrese nombre del socio # "<<i<<":"<<endl;
  69.               cin>>libros[i].nombrefadeIn;
  70.               cout<<"Ingrese apellidos del socio:"<<endl;
  71.               cin>>libros[i].apellidosfadeIn;
  72.               cout<<"Ingrese cedula:"<<endl;
  73.               cin>>libros[i].identificadorfadeIn;
  74.               cout<<"Ingrese fecha de registro:(formato dd/mm/aaaa)"<<endl;
  75.               cin>>libros[i].fecha_registrofadeIn;
  76.               i=i+1;
  77.               }
  78.               else
  79.               {
  80.                   cout<<"ERROR/No se pueden ingresar mas datos/Memoria de socios llena"<<endl;
  81.               system("pause");
  82.                }
  83.                }
  84.                else
  85.                {
  86.                    if(opcion==3)
  87.                      {
  88.                        if(j<4)
  89.                        {
  90.                        cout<<"******Ingreso de Nuevo Libro******"<<endl;
  91.                        cout<<endl;
  92.                        cout<<"Ingrese el nombre del libro nuevo # "<<j<<":"<<endl;
  93.                        cin>>libros[j].nombre_libro;
  94.                        cout<<"Ingrese el ISBN del libro:"<<endl;
  95.                        cin>>ISBN;
  96.                        if (buscar(libros,4,ISBN)!=-1)                    
  97.                         {
  98.                             cout << "Ya has introducido un libro con ese ISBN" << endl;
  99.                             continue;
  100.                        }
  101.                        libros[i].ISBN = ISBN;
  102.                        j=j+1;
  103.                        }
  104.                        else
  105.                        {
  106.                            cout<<"ERROR//Memoria de libros llena"<<endl;
  107.                            }
  108.                            }
  109.                            else
  110.                            {
  111.                          if(opcion==6)
  112.                          {
  113.                             cout<<"Nombre del Libro"<<setw(20)<<"ISBN"<<endl;
  114.                             z=j;
  115.                             for(int j=0;j<z;j++)
  116.                             cout<<libros[j].nombre_libro<<setw(16)<<libros[j].ISBN<<endl;
  117.                             }
  118.                             else
  119.                             {
  120.                          if(opcion==7)
  121.                          {
  122.                               cout<<"Socios"<<setw(20)<<"Cedula"<<endl;
  123.                               y=i;
  124.                               for(int i=0;i<y;i++)
  125.                               cout<<libros[i].nombrefadeIn<<setw(8)<<libros[i].apellidosfadeIn<<setw(13)<<libros[i].identificadorfadeIn<<endl;
  126.                               }
  127.                               }
  128.                               }
  129.                               }
  130.        cout<<"Desea realizar otra accion. s/n?"<<endl;
  131.        cin>>respuesta;
  132.        system("cls");
  133.        }
  134.        return 0;
  135.        }