fbpx

Ayuda en ejercicio 2. Módulo Estructuras.

  • Ayuda en ejercicio 2. Módulo Estructuras.

    Posted by Paola Vega Oviedo on 11 febrero, 2020 en 8:06 pm

    Hola, les comparto mi código del ejercicio 2 de estructuras es que tengo una duda en la última parte ya que solicita que indique al usuario que elija una letra y el código busque a todas las personas que su nombre empiece con dicha letra. (Esta en el caso 3 del código). En fin, no se como hacer que solo tome la primer letra de cada nombre en la estructura y si me pudieran ayudar en eso se los agradecería mucho.

    /*Ejercicio 2 (Estructuras). Programa capaz de almacenar datos de 50 personas: nombre, direccion, telefono, edad (usando una

    tabla de structs).*/

    #include<iostream>

    #include<cstdlib>

    #include<string.h>

    using namespace std;

    //Estructura de la persona.

    struct persona{

    char nombre[30], edad[3];

    long int telefono;

    };

    //Estructura de la direccion.

    struct direccion{

    char calle[20], colonia[20], delegacion[20];

    int cp;

    };

    //Estructura del registro.

    struct registro{

    persona per;

    direccion dir;

    };

    int main(){

    registro nRegistro[3];

    for(int i = 0; i < 3; i++){

    fflush(stdin);

    cout<<“– Registro”<<i+1<<” –“<<endl<<endl;

    cout<<“Nombre: “;

    cin.getline(nRegistro[i].per.nombre,20);

    cout<<“Edad: “;

    cin.getline(nRegistro[i].per.edad,4);

    fflush(stdin);

    cout<<“Telefono: “;

    cin>>nRegistro[i].per.telefono;

    fflush(stdin);

    cout<<“Calle donde vive: “;

    cin.getline(nRegistro[i].dir.calle,20);

    cout<<“Colonia: “;

    cin.getline(nRegistro[i].dir.colonia,20);

    cout<<“Delegacion: “;

    fflush(stdin);

    cin.getline(nRegistro[i].dir.delegacion,20);

    cout<<“Codigo postal: “;

    cin>>nRegistro[i].dir.cp;

    cout<<endl<<endl;

    }

    char respuesta = ‘s’;

    int opcion;

    do{

    cout<<“————————————————————————–“<<endl;

    cout<<“Si desea ver la lista de todos los nombres pulse 1.”<<endl;

    cout<<“Si desea mostrar todas las personas de una cierta edad pulse 2.”<<endl;

    cout<<“Si quiere ver todas las personas cuya inicial sea la que ud desee pulse 3.”<<endl;

    cin>>opcion;

    cout<<“————————————————————————–“<<endl<<endl;

    switch(opcion){

    case 1:

    for( int i = 0; i < 3; i++){

    cout<<nRegistro[i].per.nombre<<endl;

    }

    break;

    case 2:

    int Edad[3], buscar ;

    char resultados[3];

    for(int i = 0; i < 3; i ++){

    resultados[i] = ‘F’;

    }

    for( int i = 0; i < 3; i++){

    Edad[i] = atoi(nRegistro[i].per.edad);

    }

    cout<<endl<<“Ingrese edad: “;

    cin>>buscar;

    for(int i = 0; i < 3; i++){

    if(Edad[i] == buscar){

    resultados[i] = ‘V’;

    }

    }

    cout<<endl<<“Las personas encontradas con la edad de “<<buscar<<” son: “<<endl<<endl;

    for(int j = 0; j < 3; j++){

    if(resultados[j] == ‘V’){

    cout<<nRegistro[j].per.nombre<<endl;

    }

    }

    cout<<endl;

    break;

    case 3:

    char inicial[2], bandera = ‘F’;

    cout<<“Escriba letra inicial: “;

    cin>>inicial;

    cout<<“Las personas: “<<endl;

    for(int i = 0; i < 3; i++){

    if(strcmpi(nRegistro[i].per.nombre,inicial) == 0){

    bandera = ‘V’;

    cout<<nRegistro[i].per.nombre<<endl;

    }

    }

    if(bandera == ‘V’){

    cout<<endl<<“Tienen la inicial “<<inicial;

    }else{

    cout<<endl<<“No hay coincidencias.”;

    }

    break;

    }

    cout<<endl<<“Desea regresar al menu? (S/N):”;

    cin>>respuesta;

    cout<<endl;

    }while(respuesta == ‘s’ || respuesta == ‘S’);

    return 0;

    }

    Angel Sánchez Espinoza respondido 2 años, 4 meses 2 Miembros · 1 Responde
  • 1 Responde
  • Angel Sánchez Espinoza

    organizador
    12 febrero, 2020 en 7:44 pm

    Hola Paola, una disculpa por contestar hasta ahora. Realmente donde se guarda el nombre es un arreglo de caracteres, estocen deberías de hacer una comparación entre letra que usaste para buscar y el primer caracteres del arreglo nombre (que es la primera letra del nombre). Y listo 😀

    Te adjunto una imagen de ejemplo. Espero haberte ayudado.

Start of Discussion
0 de 0 respuestas Junio 2018
Ahora