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

Buscar dato en arreglo

Estas en el tema de Buscar dato en arreglo en el foro de C/C++ en Foros del Web. Hola, antes que nada deseo darle las gracias a Alexg88 y a Sam90 por ayudar con el tema anterior, el problema que quiero que me ...
  #1 (permalink)  
Antiguo 30/06/2011, 22:18
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Exclamación Buscar dato en arreglo

Hola, antes que nada deseo darle las gracias a Alexg88 y a Sam90 por ayudar con el tema anterior, el problema que quiero que me brinden ayuda es en el siguiente, en la opcion 3 del programa siguiente, tengo que introducir el nombre del libro y el ISBN del libro dicho, el problema es que a la hora de introducir el ISBN tengo que buscar entre el arreglo que no alla un numero igual, en sintesis si si meto 123 y este esta en memoria, el programa me tiene que decir que ya existe ese numero y me tiene que dar la opcion de introducir un ISBN que no exista, ayuda que no puedo con eso!!

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. int main ()
  21. {
  22.    
  23.     datos_libros libros[4];
  24.     int opcion;
  25.     int i = 0;
  26.     int j = 0;
  27.     int z;
  28.     int y;
  29.     string respuesta;
  30.    
  31.    
  32.     while(respuesta!="N" && respuesta!="n")
  33.     {
  34.        cout<<"******Biblioteca Publica^El Raton Feliz^******"<<endl;
  35.        cout<<endl;
  36.        cout<<"Digite #1, para ingresar nuevo socio."<<endl;
  37.        cout<<"Digite #2, para cambiar estado del socio."<<endl;
  38.        cout<<"Digite #3, para ingresar nuevo libro."<<endl;
  39.        cout<<"Digite #4, para prestar libro."<<endl;
  40.        cout<<"Digite #5, pàra recibir libro."<<endl;
  41.        cout<<"Digite #6, para desplegar lista de libros."<<endl;
  42.        cout<<"Digite #7, para desplegar lista de socios."<<endl;
  43.        cout<<"Digite #8, para desplegar lista de libros prestados actualmente"<<endl;
  44.        cout<<endl;
  45.        cout<<"Que opcion desea realizar?"<<endl;
  46.        cin>>opcion;
  47.        system("cls");
  48.        
  49.           if(opcion==1)
  50.             {
  51.               if(i<4)
  52.               {
  53.               cout<<"******Ingreso de nuevo socio******"<<endl;
  54.               cout<<endl;
  55.               cout<<"Ingrese nombre del socio # "<<i<<":"<<endl;
  56.               cin>>libros[i].nombrefadeIn;
  57.               cout<<"Ingrese apellidos del socio:"<<endl;
  58.               cin>>libros[i].apellidosfadeIn;
  59.               cout<<"Ingrese cedula:"<<endl;
  60.               cin>>libros[i].identificadorfadeIn;
  61.               cout<<"Ingrese fecha de registro:(formato dd/mm/aaaa)"<<endl;
  62.               cin>>libros[i].fecha_registrofadeIn;
  63.               i=i+1;
  64.               }
  65.               else
  66.               {
  67.                   cout<<"ERROR/No se pueden ingresar mas datos/Memoria de socios llena"<<endl;
  68.               system("pause");
  69.                }
  70.                }
  71.                else
  72.                {
  73.                    if(opcion==3)
  74.                      {
  75.                        if(j<4)
  76.                        {
  77.                        cout<<"******Ingreso de Nuevo Libro******"<<endl;
  78.                        cout<<endl;
  79.                        cout<<"Ingrese el nombre del libro nuevo # "<<j<<":"<<endl;
  80.                        cin>>libros[j].nombre_libro;
  81.                        cout<<"Ingrese el ISBN del libro:"<<endl;
  82.                        cin>>libros[j].ISBN;
  83.                        j=j+1;
  84.                        }
  85.                        else
  86.                        {
  87.                            cout<<"ERROR//Memoria de libros llena"<<endl;
  88.                            }
  89.                            }
  90.                            else
  91.                            {
  92.                          if(opcion==6)
  93.                          {
  94.                             cout<<"Nombre del Libro"<<setw(20)<<"ISBN"<<endl;
  95.                             z=j;
  96.                             for(int j=0;j<z;j++)
  97.                             cout<<libros[j].nombre_libro<<setw(16)<<libros[j].ISBN<<endl;
  98.                             }
  99.                             else
  100.                             {
  101.                          if(opcion==7)
  102.                          {
  103.                               cout<<"Socios"<<setw(20)<<"Cedula"<<endl;
  104.                               y=i;
  105.                               for(int i=0;i<y;i++)
  106.                               cout<<libros[i].nombrefadeIn<<setw(8)<<libros[i].apellidosfadeIn<<setw(13)<<libros[i].identificadorfadeIn<<endl;
  107.                               }
  108.                               }
  109.                               }
  110.                               }
  111.        cout<<"Desea realizar otra accion. s/n?"<<endl;
  112.        cin>>respuesta;
  113.        system("cls");
  114.        }
  115.        return 0;
  116.        }


de antemano les agradezco su ayuda!! saludos!!!
  #2 (permalink)  
Antiguo 01/07/2011, 06:47
Avatar de afrika026  
Fecha de Ingreso: junio-2011
Mensajes: 85
Antigüedad: 12 años, 10 meses
Puntos: 19
Respuesta: Buscar dato en arreglo

te dejo el codigo de comparación del ISBN:

#include <iomanip>


using namespace std;

typedef struct{
int ISBN;
char nombre_libro[100];
char editorialfadeIn[100];
int numero_edicionfadeIn;
char autorfadeIn[100];
int identificadorfadeIn;
char nombrefadeIn[100];
char apellidosfadeIn[100];
int fecha_registrofadeIn;
int estadofadeIn;
} datos_libros;

int main ()
{

datos_libros libros[4];
int opcion;
int i = 0;
int j = 0;
int z;
int y;
string respuesta;


while(respuesta!="N" && respuesta!="n")
{
cout<<"******Biblioteca Publica^El Raton Feliz^******"<<endl;
cout<<endl;
cout<<"Digite #1, para ingresar nuevo socio."<<endl;
cout<<"Digite #2, para cambiar estado del socio."<<endl;
cout<<"Digite #3, para ingresar nuevo libro."<<endl;
cout<<"Digite #4, para prestar libro."<<endl;
cout<<"Digite #5, pàra recibir libro."<<endl;
cout<<"Digite #6, para desplegar lista de libros."<<endl;
cout<<"Digite #7, para desplegar lista de socios."<<endl;
cout<<"Digite #8, para desplegar lista de libros prestados actualmente"<<endl;
cout<<endl;
cout<<"Que opcion desea realizar?"<<endl;
cin>>opcion;
system("cls");

if(opcion==1)
{
if(i<4)
{
cout<<"******Ingreso de nuevo socio******"<<endl;
cout<<endl;
cout<<"Ingrese nombre del socio # "<<i<<":"<<endl;
cin>>libros[i].nombrefadeIn;
cout<<"Ingrese apellidos del socio:"<<endl;
cin>>libros[i].apellidosfadeIn;
cout<<"Ingrese cedula:"<<endl;
cin>>libros[i].identificadorfadeIn;
cout<<"Ingrese fecha de registro:(formato dd/mm/aaaa)"<<endl;
cin>>libros[i].fecha_registrofadeIn;
i=i+1;
}
else
{
cout<<"ERROR/No se pueden ingresar mas datos/Memoria de socios llena"<<endl;
system("pause");
}
}
else
{
if(opcion==3)
{
if(j<4)
{
cout<<"******Ingreso de Nuevo Libro******"<<endl;
cout<<endl;
cout<<"Ingrese el nombre del libro nuevo # "<<j<<":"<<endl;
cin>>libros[j].nombre_libro;
cout<<"Ingrese el ISBN del libro:"<<endl;
/////////////////////////////////////////////////////////////////////////////////
// Este es el bloque que tenes que agregar
int _ISBN = 0; // ISBN a comparar
bool _flag_repetidos = true; // si es false sale del while con el ISBN escrito en el array
while (_flag_repetidos){
cin>>_ISBN;
for (int i=0; i<4; i++){
if (_ISBN=libros[i].ISBN){
cout << "Ya existe el ISBN" <<endl;
}
else
{
libros[j].ISBN=_ISBN;
_flag_repetidos = false;
}
}
}
//Final del bloque de comparación
///////////////////////////////////////////////////////////////////////////

j=j+1;
}
else
{
cout<<"ERROR//Memoria de libros llena"<<endl;
}
}
else
{
if(opcion==6)
{
cout<<"Nombre del Libro"<<setw(20)<<"ISBN"<<endl;
z=j;
for(int j=0;j<z;j++)
cout<<libros[j].nombre_libro<<setw(16)<<libros[j].ISBN<<endl;
}
else
{
if(opcion==7)
{
cout<<"Socios"<<setw(20)<<"Cedula"<<endl;
y=i;
for(int i=0;i<y;i++)
cout<<libros[i].nombrefadeIn<<setw(8)<<libros[i].apellidosfadeIn<<setw(13)<<libros[i].identificadorfadeIn<<endl;
}
}
}
}
cout<<"Desea realizar otra accion. s/n?"<<endl;
cin>>respuesta;
system("cls");
}
return 0;
}
  #3 (permalink)  
Antiguo 01/07/2011, 11:17
 
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.        }
  #4 (permalink)  
Antiguo 01/07/2011, 11:52
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Buscar dato en arreglo

Cita:
Iniciado por alexg88 Ver Mensaje
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.        }

El ISBN es un arreglo

cin>>ISBN;

esta linea no lo guarda en un sola posicion o la esta guardando en cada posicion del arreglo, es que hago esto, y a la hora del muestreo de libros, los libros me salen desordenados
  #5 (permalink)  
Antiguo 01/07/2011, 11:54
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Buscar dato en arreglo

El ISBN es un int que es como lo has definido tú. No sé que problema tienes.
  #6 (permalink)  
Antiguo 01/07/2011, 12:02
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Buscar dato en arreglo

ya esta, el problema es lo siguiente, si meto en el primero 123, todo bien, pero en el segundo meto 123, me dice que ya existe hasta ahi bien, pero no se como hacer un tipo de while ahi mismo para meter el nuevo ISBN, para que no salga, porque si sale, contara el libro nuevo,porque si esta mal y salgo, y le doy la opcion 6, le de muestreo, me sale que en el primero use 123(hasta ahi bien) y en el segundo me sale 148(en que momento ingrese esos numero) O_o AYUDAAAAAAAA
  #7 (permalink)  
Antiguo 01/07/2011, 12:07
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Buscar dato en arreglo

osea en sintesis y para no enredar, quisiera hacer una instruccion donde meta un ISBN y si es repetido, me pregunte si deseo ingresar otro, pero que no me deje salir de la opcion 3, hasta que ingrese un ISBN correcto, porque si sale, el contara queya se ingreso un libro nuevo!!
  #8 (permalink)  
Antiguo 01/07/2011, 12:16
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Buscar dato en arreglo

Yo he probado lo que tu dices y si funciona, no muestra dos libros, sólo el primero.

En cualquier caso si quieres obligar al usuario a meter de nuevo el ISBN solo hace falta otro bucle.

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.         switch(opcion){
  63.              
  64.          case 1:
  65.               if(i<4)
  66.               {
  67.               cout<<"******Ingreso de nuevo socio******"<<endl;
  68.               cout<<endl;
  69.               cout<<"Ingrese nombre del socio # "<<i<<":"<<endl;
  70.               cin>>libros[i].nombrefadeIn;
  71.               cout<<"Ingrese apellidos del socio:"<<endl;
  72.               cin>>libros[i].apellidosfadeIn;
  73.               cout<<"Ingrese cedula:"<<endl;
  74.               cin>>libros[i].identificadorfadeIn;
  75.               cout<<"Ingrese fecha de registro:(formato dd/mm/aaaa)"<<endl;
  76.               cin>>libros[i].fecha_registrofadeIn;
  77.               i=i+1;
  78.               }
  79.               else
  80.               {
  81.                   cout<<"ERROR/No se pueden ingresar mas datos/Memoria de socios llena"<<endl;
  82.               system("pause");
  83.                }              
  84.              break;
  85.            case 3:
  86.               if(j<4)
  87.                        {
  88.                        cout<<"******Ingreso de Nuevo Libro******"<<endl;
  89.                        cout<<endl;
  90.                        cout<<"Ingrese el nombre del libro nuevo # "<<j<<":"<<endl;
  91.                        cin>>libros[j].nombre_libro;
  92.                        cout<<"Ingrese el ISBN del libro:"<<endl;
  93.                        cin>>ISBN;
  94.                         while (buscar(libros,j,ISBN)!=-1){
  95.                          cout << "Ya has introducido un libro con ese ISBN" << endl;           
  96.                          cout<<"Ingrese el ISBN del libro:"<<endl;
  97.                          cin>>ISBN;
  98.                        }       
  99.                        
  100.                        libros[j].ISBN = ISBN;
  101.                        j=j+1;
  102.                        }
  103.                        else
  104.                        {
  105.                            cout<<"ERROR//Memoria de libros llena"<<endl;
  106.                            }
  107.                            break;
  108.                          
  109.            case 6:
  110.                          
  111.                             cout<<"Nombre del Libro"<<setw(20)<<"ISBN"<<endl;
  112.                             z=j;
  113.                             for(int j=0;j<z;j++)
  114.                             cout<<libros[j].nombre_libro<<setw(16)<<libros[j].ISBN<<endl;
  115.                             break;
  116.                            
  117.            case 7:
  118.                        
  119.                               cout<<"Socios"<<setw(20)<<"Cedula"<<endl;
  120.                               y=i;
  121.                               for(int i=0;i<y;i++)
  122.                               cout<<libros[i].nombrefadeIn<<setw(8)<<libros[i].apellidosfadeIn<<setw(13)<<libros[i].identificadorfadeIn<<endl;
  123.               }
  124.        }
  125.                              
  126.                              
  127.        cout<<"Desea realizar otra accion. s/n?"<<endl;
  128.        cin>>respuesta;
  129.        system("cls");
  130.         return 0;
  131.        }

Fíjate que he cambiado los if anidados por switch que es muy útil en este caso.
  #9 (permalink)  
Antiguo 01/07/2011, 12:40
Avatar de baker1562  
Fecha de Ingreso: marzo-2011
Ubicación: Puntarenas
Mensajes: 261
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Buscar dato en arreglo

jejeje, muchisimas gracias me sirvio muchisimo, usare case en vez de if, grax por tu!!!

Etiquetas: arrays, busquedas, elementos, arreglos
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 05:59.