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

Error al comprobar telefono en aplicacion agenda

Estas en el tema de Error al comprobar telefono en aplicacion agenda en el foro de C/C++ en Foros del Web. Hola estoy haciendo una aplicacion que es una agenda y una vez mas no funciona U,u... el usuario introduce los datos en la agenda y ...
  #1 (permalink)  
Antiguo 06/07/2011, 07:54
 
Fecha de Ingreso: mayo-2011
Ubicación: Almeria (España)
Mensajes: 51
Antigüedad: 13 años, 6 meses
Puntos: 3
Exclamación Error al comprobar telefono en aplicacion agenda

Hola estoy haciendo una aplicacion que es una agenda y una vez mas no funciona U,u... el usuario introduce los datos en la agenda y despues ago un meno pra buscar numero mediente nombre. El usuario introduce el nombre pero no se encuentra el telefono.

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3. //COPYRIGHT (C) JESUS MARTIN BERLANGA 2011 TODOS LOS DERECHOS RESERVADOS
  4. //SOLO SE PERMITE EXHIBIR ESTE TEXTO MENCIONANDO AL AUTOR Y ESTA LICENCIA
  5.  
  6. struct Persona{          
  7.            char Nombree[60];
  8.            int Numeroo;
  9. }PNumero[10];
  10.  
  11. int opcion;
  12. int bucle1;
  13. int bucle2;
  14. char nombrebs[60];
  15. int telefonobs;
  16. int comprobar;
  17.  
  18. int main()
  19. {
  20.     cout << "Programa dessarollado por Jesus Martin Berlanga." << endl;
  21.     cout << "COPYRIGHT (C) JESUS MARTIN BERLANGA 2011 TODOS LOS DERECHOS RESERVADOS" << endl;
  22.     cout << "SOLO SE PERMITE EXHIBIR ESTE TEXTO MENCIONANDO AL AUTOR Y ESTA LICENCIA" << endl;
  23.    
  24.     inicio:
  25.            
  26.     cout << endl;
  27.    
  28.     cout << "Introduce el nombre y telefono de la primera persona separados por un espacio para la agenda" << endl;
  29.     cin >> PNumero[0].Nombree >> PNumero[0].Numeroo;
  30.  
  31.     cout << "Introduce el nombre y telefono de la segunda persona separados por un espacio para la agenda" << endl;
  32.     cin >> PNumero[1].Nombree >> PNumero[1].Numeroo;
  33.    
  34.     cout << "Introduce el nombre y telefono de la tercera persona separados por un espacio para la agenda" << endl;
  35.     cin >> PNumero[2].Nombree >> PNumero[2].Numeroo;
  36.    
  37.     cout << "Introduce el nombre y telefono de la cuarta persona separados por un espacio para la agenda" << endl;
  38.     cin >> PNumero[3].Nombree >> PNumero[3].Numeroo;
  39.    
  40.     cout << "Introduce el nombre y telefono de la quinta persona separados por un espacio para la agenda" << endl;
  41.     cin >> PNumero[4].Nombree >> PNumero[4].Numeroo;
  42.    
  43.     cout << "Introduce el nombre y telefono de la sexta persona separados por un espacio para la agenda" << endl;
  44.     cin >> PNumero[5].Nombree >> PNumero[5].Numeroo;
  45.    
  46.     cout << "Introduce el nombre y telefono de la septima persona separados por un espacio para la agenda" << endl;
  47.     cin >> PNumero[6].Nombree >> PNumero[6].Numeroo;
  48.    
  49.     cout << "Introduce el nombre y telefono de la octaba persona separados por un espacio para la agenda" << endl;
  50.     cin >> PNumero[7].Nombree >> PNumero[7].Numeroo;
  51.    
  52.     cout << "Introduce el nombre y telefono de la novena persona separados por un espacio para la agenda" << endl;
  53.     cin >> PNumero[8].Nombree >> PNumero[8].Numeroo;
  54.    
  55.     cout << "Introduce el nombre y telefono de la decima persona separados por un espacio para la agenda" << endl;
  56.     cin >> PNumero[9].Nombree >> PNumero[9].Numeroo;
  57.    
  58.     Menu:
  59.     cout << "Menu:" << endl;
  60.     cout << "1) Buscar por nombre" << endl;
  61.     cout << "2) Buscar por número de teléfono" << endl;
  62.     cout << "3) Salir" << endl;
  63.     cout << "Pulsa una opción(escribe 1, 2 o 3):" << endl;
  64.     cin >> opcion;
  65.    
  66.     bucle1 = 0;
  67.     switch(opcion)
  68.     {
  69.                   case 1:
  70.                        cout << "Escribe nombre a buscar:" << endl;
  71.                        cin >> nombrebs;
  72.                        while(bucle1 < 10)
  73.                        {
  74.                               if(nombrebs == PNumero[bucle1].Nombree)
  75.                               {
  76.                                cout << "Telefono del nombre " << nombrebs << "es " <<  PNumero[bucle1].Numeroo << endl;
  77.                               }    
  78.                               bucle1++;  
  79.                        }
  80.                      break;
  81.                   case 2:
  82.                        cout << "Escribe telefono a buscar:" << endl;
  83.                        cin >> telefonobs;
  84.                        while(bucle2 < 10)
  85.                        {
  86.                               if(telefonobs == PNumero[bucle1].Numeroo)
  87.                               {
  88.                                cout << "Nombre del telefono " << telefonobs << " es " <<  PNumero[bucle1].Nombree << endl;
  89.                               }    
  90.                               bucle2++;  
  91.                        }
  92.                     break;
  93.                   case 3:
  94.                        goto final;
  95.                        break;
  96.                  default:
  97.                     goto Menu;
  98.     }
  99.    
  100.     cout << "Introduce 1 para reiniciar y otro caracter y/o numero para salir:" << endl;
  101.     cin >> comprobar;
  102. if(comprobar == 1)
  103.     {
  104.        goto inicio;
  105.     }
  106. else
  107.     {
  108.        goto final;
  109.     }    
  110. final:
  111. return 0;

De verdad y mira que lo he intentado arreglar, pero no se lo que falla =S.
  #2 (permalink)  
Antiguo 06/07/2011, 08:18
Avatar de afrika026  
Fecha de Ingreso: junio-2011
Mensajes: 85
Antigüedad: 13 años, 5 meses
Puntos: 19
Respuesta: Error al comprobar telefono en aplicacion agenda

el error lo tenes en el case 2:
en la linea: if(telefonobs == PNumero[bucle1].Numeroo)
figura bucle1, y tiene que figurar bucle2: if(telefonobs == PNumero[bucle2].Numeroo)
  #3 (permalink)  
Antiguo 06/07/2011, 08:54
 
Fecha de Ingreso: marzo-2011
Mensajes: 94
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Error al comprobar telefono en aplicacion agenda

Además tendrías que hacer una función para comparar cadenas (o utilizar una de las que traen algunas librerías). Las cadenas no se comparan así, tendrías que comparar componente a componente.

Un saludo!
  #4 (permalink)  
Antiguo 06/07/2011, 17:11
 
Fecha de Ingreso: marzo-2011
Mensajes: 94
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Error al comprobar telefono en aplicacion agenda

Una solucion a tu problema podría ser :

Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3. //COPYRIGHT (C) JESUS MARTIN BERLANGA 2011 TODOS LOS DERECHOS RESERVADOS
  4. //SOLO SE PERMITE EXHIBIR ESTE TEXTO MENCIONANDO AL AUTOR Y ESTA LICENCIA
  5.  
  6. int comparar (char *s1, char *s2);
  7.  
  8. struct Persona{          
  9.            char Nombree[60];
  10.            int Numeroo;
  11. }PNumero[10];
  12.  
  13. int opcion;
  14. int bucle1;
  15. int bucle2;
  16. char nombrebs[60];
  17. int telefonobs;
  18. int comprobar;
  19.  
  20. int main()
  21. {
  22.     cout << "Programa dessarollado por Jesus Martin Berlanga." << endl;
  23.     cout << "COPYRIGHT (C) JESUS MARTIN BERLANGA 2011 TODOS LOS DERECHOS RESERVADOS" << endl;
  24.     cout << "SOLO SE PERMITE EXHIBIR ESTE TEXTO MENCIONANDO AL AUTOR Y ESTA LICENCIA" << endl;
  25.    
  26.     inicio:
  27.            
  28.     cout << endl;
  29.    
  30.     cout << "Introduce el nombre y telefono de la primera persona separados por un espacio para la agenda" << endl;
  31.     cin >> PNumero[0].Nombree >> PNumero[0].Numeroo;
  32.  
  33.     cout << "Introduce el nombre y telefono de la segunda persona separados por un espacio para la agenda" << endl;
  34.     cin >> PNumero[1].Nombree >> PNumero[1].Numeroo;
  35.    
  36.     cout << "Introduce el nombre y telefono de la tercera persona separados por un espacio para la agenda" << endl;
  37.     cin >> PNumero[2].Nombree >> PNumero[2].Numeroo;
  38.    
  39.     cout << "Introduce el nombre y telefono de la cuarta persona separados por un espacio para la agenda" << endl;
  40.     cin >> PNumero[3].Nombree >> PNumero[3].Numeroo;
  41.    
  42.     cout << "Introduce el nombre y telefono de la quinta persona separados por un espacio para la agenda" << endl;
  43.     cin >> PNumero[4].Nombree >> PNumero[4].Numeroo;
  44.    
  45.     cout << "Introduce el nombre y telefono de la sexta persona separados por un espacio para la agenda" << endl;
  46.     cin >> PNumero[5].Nombree >> PNumero[5].Numeroo;
  47.    
  48.     cout << "Introduce el nombre y telefono de la septima persona separados por un espacio para la agenda" << endl;
  49.     cin >> PNumero[6].Nombree >> PNumero[6].Numeroo;
  50.    
  51.     cout << "Introduce el nombre y telefono de la octaba persona separados por un espacio para la agenda" << endl;
  52.     cin >> PNumero[7].Nombree >> PNumero[7].Numeroo;
  53.    
  54.     cout << "Introduce el nombre y telefono de la novena persona separados por un espacio para la agenda" << endl;
  55.     cin >> PNumero[8].Nombree >> PNumero[8].Numeroo;
  56.    
  57.     cout << "Introduce el nombre y telefono de la decima persona separados por un espacio para la agenda" << endl;
  58.     cin >> PNumero[9].Nombree >> PNumero[9].Numeroo;
  59.    
  60.  
  61.     Menu:
  62.  
  63.     cout << "Menu:" << endl;
  64.  
  65.     cout << "1) Buscar por nombre" << endl;
  66.  
  67.     cout << "2) Buscar por número de teléfono" << endl;
  68.  
  69.     cout << "3) Salir" << endl;
  70.  
  71.     cout << "Pulsa una opción(escribe 1, 2 o 3):" << endl;
  72.  
  73.     cin >> opcion;
  74.    
  75.     bucle1 = 0;
  76.     switch(opcion)
  77.     {
  78.                   case 1:
  79.                        cout << "Escribe nombre a buscar:" << endl;
  80.                        cin >> nombrebs;
  81.                        while(bucle1 < 10)
  82.                        {
  83.                               if(comparar (& nombrebs[0], & PNumero[bucle1].Nombree[0]))
  84.                               {
  85.                                cout << "Telefono del nombre " << nombrebs << "es " <<  PNumero[bucle1].Numeroo << endl;
  86.                               }    
  87.                               bucle1++;  
  88.                        }
  89.                      break;
  90.                   case 2:
  91.                        cout << "Escribe telefono a buscar:" << endl;
  92.                        cin >> telefonobs;
  93.                        while(bucle2 < 10)
  94.                        {
  95.                               if(telefonobs == PNumero[bucle2].Numeroo)
  96.                               {
  97.                                cout << "Nombre del telefono " << telefonobs << " es " <<  PNumero[bucle1].Nombree << endl;
  98.                               }    
  99.                               bucle2++;  
  100.                        }
  101.                     break;
  102.                   case 3:
  103.                        goto final;
  104.                        break;
  105.                  default:
  106.                     goto Menu;
  107.     }
  108.    
  109.     cout << "Introduce 1 para reiniciar y otro caracter y/o numero para salir:" << endl;
  110.     cin >> comprobar;
  111. if(comprobar == 1)
  112.     {
  113.        goto inicio;
  114.     }
  115. else
  116.     {
  117.        goto final;
  118.     }    
  119. final:
  120. return 0;
  121.  
  122. }
  123.  
  124. int comparar (char *s1, char *s2){
  125.    
  126.     int i = 0;
  127.    
  128.     while (*(s1 + i) != '\0' || *(s2 + i) != '\0'){
  129.        
  130.         if (*(s1 + i) != *(s2 + i)){
  131.            
  132.             return 0;
  133.            
  134.         }
  135.        
  136.         i++;
  137.        
  138.     }
  139.    
  140.     if (*(s1 + i) != *(s2 + i)){
  141.        
  142.         return 0;
  143.        
  144.     }
  145.    
  146.     return 1;
  147.    
  148. }

Lo que hice fue añadir una función aparte que se llama "comparar" y compara todos los elementos del array nombre de las estructuras.
Un saludo!!

Última edición por Checho360; 06/07/2011 a las 17:16

Etiquetas: agenda, funcion, programa, aplicaciones
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:22.