Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/07/2011, 17:11
Checho360
 
Fecha de Ingreso: marzo-2011
Mensajes: 94
Antigüedad: 13 años
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