Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: jeff23 en 26 Octubre 2015, 16:40 PM

Título: Podrían decirme en qué me equivoqué en este fragmento de código?
Publicado por: jeff23 en 26 Octubre 2015, 16:40 PM
Código (cpp) [Seleccionar]
void buscar(){
   string val;
   cout<<"digite el nombre a buscar";
   cin>>val;
   for(int i=0; i<miAgenda.size(); i++){
           if(val==miAgenda[i].nombres){
                   cout<<"nombre"<<miAgenda[i].nombres;
           }
           if(val==miAgenda[i].apellidos){
                   cout<<"apellido"<<miAgenda[i].apellidos;
           }
           if(val==miAgenda[i].email){
                   cout<<"correo"<<miAgenda[i].email;
           }
           if(val==miAgenda[i].fijo){
                   cout<<"tel.fijo"<<miAgenda[i].fijo;
           }
           if(val==miAgenda[i].celular){
                   cout<<"tel.cel"<<miAgenda[i].celular;
           }
   }
}

int main() {
   int np;
   char op = '0';

   while(op < '3'){
        system("CLS");
       menu();
       cin >> op;
       switch(op) {
           case '1':
                       buscar();
                       break;
           case '2':
                       break;
           default:
               cout << "\n\n\tERROR!";
               system("PAUSE");
               op = '0';
       }
   }
   cout << "\n\n\tGracias NOS VEMOS...\n\n";

 return 0;
}

La cosa es que tengo que hacer una función para buscar datos,ya la hice,pero no me funciona...



Mod: Los códigos deben ir en etiquetas GeSHi
Título: Re: Podrían decirme en qué me equivoqué en este fragmento de código?
Publicado por: ivancea96 en 26 Octubre 2015, 17:04 PM
Cita de: jeff23 en 26 Octubre 2015, 16:40 PM
La cosa es que tengo que hacer una función para buscar datos,ya la hice,pero no me funciona...

¿Qué no funciona? ¿Tira error? ¿No busca bien? Cual es el problema.
Título: Re: Podrían decirme en qué me equivoqué en este fragmento de código?
Publicado por: jeff23 en 27 Octubre 2015, 01:45 AM
El código se ejecuta,pero no funciona,osea,es como si ignorara ese fragmento
Título: Re: Podrían decirme en qué me equivoqué en este fragmento de código?
Publicado por: jeff23 en 27 Octubre 2015, 02:02 AM
Aquí está el código completo:

Código (cpp) [Seleccionar]
#include <cstdlib>
#include <iostream>
#include <vector>

using namespace std;


struct Persona{
    string nombres;
    string apellidos;
    char celular[10];
    char fijo[7];
    string email;

};
vector<Persona> miAgenda;

void menu(){
    cout<< "\n\tMENU PRINCIPAL";
    cout<< "\n\t1. Entrada de datos";
    cout<< "\n\t2. Mostrar datos";
    cout<< "\n\t3. Salir del programa";
    cout<< "\n\t4. Buscar datos";
    cout<< "\n\tEscoja opcion ";
}

void entrarDatos(){
    Persona p;

    cout<<"\n\tDigite su Nombres: ";
    cin>>p.nombres;
    cout<<"\n\tDigite su Apellidos: ";
    cin>>p.apellidos;
    cout<<"\n\tDigite su correo: ";
    cin>>p.email;
    cout<<"\n\tDigite su Telefono Fijo: ";
    cin>>p.fijo;
    cout<<"\n\tDigite su Telefono: celular ";
    cin>>p.celular;

    miAgenda.push_back(p);
}

void mostrarDatos(){

    cout<<"\n\t====== Agenda ======";
    for(int i=0; i<miAgenda.size();i++){
        cout<<"\n\tNombre : "<<miAgenda[i].nombres;
        cout<<"\n\tApellidos : "<<miAgenda[i].apellidos;
        cout<<"\n\tCorreo : "<<miAgenda[i].email;
        cout<<"\n\tTel.Fijo : "<<miAgenda[i].fijo;
        cout<<"\n\tTel.Cel : "<<miAgenda[i].celular;
        cout<<"\n\t------------------------------------";
    system("pause");
    }
}

void buscar(){
    string val;
    cout<<"digite el nombre a buscar";
    cin>>val;
    for(int i=0; i<miAgenda.size(); i++){
            if(val==miAgenda[i].nombres){
                    cout<<"nombre"<<miAgenda[i].nombres;
            }
            if(val==miAgenda[i].apellidos){
                    cout<<"apellido"<<miAgenda[i].apellidos;
            }
            if(val==miAgenda[i].email){
                    cout<<"correo"<<miAgenda[i].email;
            }
            if(val==miAgenda.fijo){
                    cout<<"tel.fijo"<<miAgenda[i].fijo;
            }
            if(val==miAgenda[i].celular){
                    cout<<"tel.cel"<<miAgenda[i].celular;
            }
    }
}

int main() {
    int np;
    char op = '0';

    while(op < '3'){
         system("CLS");
        menu();
        cin >> op;
        switch(op) {
            case '1':
                        entrarDatos();
                        break;
            case '2':
                        mostrarDatos();
                        break;
            case '3':
                        buscar();
                        break;
            case '4':
                        break;

            default:
                cout << "\n\n\tERROR!";
                system("PAUSE");
                op = '0';
        }
    }
    cout << "\n\n\tGracias NOS VEMOS...\n\n";

  return 0;
}
Título: Re: Podrían decirme en qué me equivoqué en este fragmento de código?
Publicado por: ivancea96 en 27 Octubre 2015, 09:54 AM
Debes aprender a encontrar los errores.
Te doy unas pautas:

Con esto te quiero decir, que te va a ser más fácil a ti buscar el error, que a los demás. No tires la toalla, y sigue buscando. Analiza el código bloque a bloque, hasta ver exactamente qué falla.