Cita:
1. Escribir un programa que almacene en un array los nombres y números de teléfono
de 2 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
Pulsa una opción:
de 2 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
Pulsa una opción:
Código C++:
Primero intento llenar el array con un bucle pero cuando acaba vuelve a empezar.Ver original
#include <iostream> #include <string.h> #define MAX 31 #define MP 2 using namespace std; /*-----------------------------------------------------------------------------------------------------------------*/ struct persona { char nom[MAX],tel[MAX]; persona (); } t[MP]; /*-----------------------------------------------------------------------------------------------------------------*/ char menu (); void cercar_per_nom (); void cercar_per_telefon (); void mostrar_persona (persona p); void no_trobat (const char p1[],char p2[]); /*-----------------------------------------------------------------------------------------------------------------*/ int main() { char x; do { x = menu (); switch (x) { case 'a': cercar_per_nom (); break; case 'b': cercar_per_telefon (); break; } } while (x != 'c'); return 0; } /*-----------------------------------------------------------------------------------------------------------------*/ persona::persona() { int i; for (i = 0; i < MP; i++) { cout << "Introdueix el nom i telefon " << " i == " <<i << " < " << MP << " : "; cin >> t[i].nom >> t[i].tel; } } /*-----------------------------------------------------------------------------------------------------------------*/ char menu () { char x; do { cout << "a) Cercar per nom\nb) Cercar per numero de telefon\nc) Sortir" << endl; cin.get(x); } while (x < 'a' || x > 'c'); return x; } /*-----------------------------------------------------------------------------------------------------------------*/ void cercar_per_nom () { int i; char nom[MAX]; cout << "Introdueix el nom que vols cercar: "; cin >> nom; i = 0; if (i == MP) mostrar_persona (t[i]); else no_trobat ("nom",nom); cin.get(); } /*-----------------------------------------------------------------------------------------------------------------*/ void cercar_per_telefon() { int i; char tel[MAX]; cout << "Introdueix el telefon pel que vols cercar: "; cin >> tel; i = 0; if (i == MP) mostrar_persona (t[i]); else no_trobat ("telefon",tel); cin.get(); } /*-----------------------------------------------------------------------------------------------------------------*/ void mostrar_persona (persona p) { cout << "Nom: " << p.nom << " Telefon: " << p.tel; } /*-----------------------------------------------------------------------------------------------------------------*/ void no_trobat (const char p1[],char p2[]) { cout << "No s'ha trobat cap persona amb el " << p1 << " : " << p2; } /*-----------------------------------------------------------------------------------------------------------------*/
