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

Duda ejercicio con estructuras

Estas en el tema de Duda ejercicio con estructuras en el foro de C/C++ en Foros del Web. Hola. Es mi primer post, al parecer es un gran foro, debo felicitarlos. Bien, al grano. Estoy siguiendo el curso de c.conclase, estoy en la ...
  #1 (permalink)  
Antiguo 04/07/2009, 14:08
Avatar de FTech  
Fecha de Ingreso: julio-2009
Mensajes: 88
Antigüedad: 14 años, 10 meses
Puntos: 0
Duda ejercicio con estructuras

Hola. Es mi primer post, al parecer es un gran foro, debo felicitarlos.

Bien, al grano. Estoy siguiendo el curso de c.conclase, estoy en la parte de estructuras y me gustaría que revisen este código para ver si es el correcto, y si me pueden dar recomendaciones.

Código HTML:
Escribir un programa que almacene en un array los nombres y números de teléfono de 10 personas. El programa debe leer los datos introducidos por el usuario y guardarlos en memoria. Después debe ser capaz de buscar el nombre correspondiente a un número de teléfono y el teléfono correspondiente a una persona. Ambas opciones deben se accesibles a través de un menú, así como la opción de salir del programa. El menú debe tener esta forma, más o menos:

    a) Buscar por nombre
    b) Buscar por número de teléfono
    c) Salir
Código:
#include <iostream>
#include <cstring>

using namespace std;

int b_nom(char name[10]);
int b_tel(char phone[10]);

struct Persona
{
    char Nom[10];
    char Tel[10];//Ver composicion telefono tipo int
}Cliente[5];

int main()
{
    char option;
    char e_nom[10];
    char e_tel[10];
    for(int i=0;i<5;i++)
    {
        cout<<"Nombre:"<<endl;
        cin>>Cliente[i].Nom;
        cout<<"Telefono:"<<endl;
        cin>>Cliente[i].Tel;
    }
    cout << "a) Buscar por nombre" << endl;
    cout << "b) Buscar por numero de telefono" <<endl;
    cout << "c) Salir" <<endl;
    cin >>option;
    switch(option)
    {
        case 'a':
        {
            cout<<"Ingresa nombre:"<<endl;
            cin>>e_nom;
            if(b_nom(e_nom)<5)
            {
                int pos=b_nom(e_nom);
                cout<<"Nombre encontrado"<<endl;
                cout<<"Cliente N:"<<pos+1<<" nombre: "<<Cliente[pos].Nom<<"Tel: "<<Cliente[pos].Tel<<endl;//Devolucion de los datos de cliente encontrado
            }
            else{cout<<"No se encuentra"<<endl;}
        }
        break;
        case 'b':
        {
            cout<<"Ingresa telefono:"<<endl;
            cin>>e_tel;
            if(b_tel(e_tel)<5)
            {
                int pos=b_tel(e_tel);
                cout<<"Nombre encontrado"<<endl;
                cout<<"Cliente N:"<<pos+1<<" nombre: "<<Cliente[pos].Nom<<"Tel: "<<Cliente[pos].Tel<<endl;//Devolucion de los datos de cliente encontrado.
            }
            else{cout<<"No se encuentra"<<endl;}
        }
        break;
        case 'c':cout<<"Adios"<<endl;
            break;
        default:break;
    }
    system("pause");
    return 0;
}
int b_nom(char name[10])//Funcion buscar por nombre
{
    bool encontrado=0;
    int i=0;
    while(i<5&&!encontrado)
    {
        if(strcmp(name,Cliente[i].Nom)==0)
        {
            encontrado=1;
        }
        i++;
    }
    if(i<5){return --i;}
    else{return 6;}
}
int b_tel(char phone[10])//Funcion buscar por telefono
{
    bool encontrado=0;
    int i=0;
    while(i<5&&!encontrado)
    {
        if(strcmp(phone,Cliente[i].Tel)==0)
        {
            encontrado=1;
        }
        i++;
    }
    if(i<5){return --i;}
    else{return 6;}
}
Muchas gracias
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 06:13.