/*
STRUCT
2.- Un programa que sea capaz de almacenar los datos de 50 personas: nombre, dirección, teléfono,
edad (usando una tabla de structs). Deberá ir pidiendo los datos uno por uno. Después deberá aparecer un menú que permita:
>> Mostrar la lista de todos los nombres.
>> Mostrar las personas de una cierta edad.
>> Mostrar las personas cuya inicial sea la que el usuario indique.
>> Salir del programa (lógicamente, este menú debe repetirse hasta que se escoja la opción de “salir”).
*/
#include <iostream>
#include <string.h>
using namespace std;
struct datos
{
char nombre[20], apellido[20], direccion[50];
int tel, edad;
} ;
int main()
{
struct datos datos1[5];
int i, opc, busq1, auxnum=0, auxnum2=0;
char inicial[1], auxnombre[20], auxnombre2[20];
int pcs=0;
cout<<"__________________________________________________"<<endl;
cout<<"Ingrese los datos de las personas"<<endl;
cout<<"__________________________________________________"<<endl;
for (i=0 ; i<5 ; i++)
{
cout<<"<---Persona "<<i+1<<"--->"<<endl;
cout<<"Nombres: ";
cin.getline(datos1[i].nombre, 20);
cout<<"Apellidos: ";
cin.get(datos1[i].apellido, 20);
cin.ignore();
cout<<"Direccion: ";
cin.getline(datos1[i].direccion, 50);
cout<<"Telefono: ";
cin>>datos1[i].tel;
cout<<"Edad: ";
cin>>datos1[i].edad;
cin.ignore();
}
do
{
cout<<"______________________________________________________________________"<<endl;
cout<<"Menu (Escoja el numero para la funcion que desea hacer a continuacion)."<<endl;
cout<<"1. Mostrar la lista de todos los nombres"<<endl;
cout<<"2. Mostrar las personas de una cierta edad"<<endl;
cout<<"3. Buscar una persona por incial."<<endl;
cout<<"4. Salir"<<endl;
cin>>opc;
//1. Mostrar la lista de todos los nombres
if (opc==1)
{
for (i=0 ; i<5 ; i++)
{
cout<<i+1<<":_____________________________________________________________"<<endl;
cout<<".Nombre completo: "<<datos1[i].nombre<<" "<<datos1[i].apellido<<"."<<endl;
cout<<"Direccion: "<<datos1[i].direccion<<endl;
cout<<". Telefono: "<<datos1[i].tel<<endl;
cout<<"Edad: "<<datos1[i].edad<<endl;
cout<<":_________________________________________________________________"<<endl;
}
}
//2. Mostrar las personas de una cierta edad
else if (opc==2)
{
cout<<"Ingrese la edad a buscar: ";
cin>>busq1;
auxnum2= datos1[i].edad;
for (i=0 ; i<5 ; i++)
{
while (auxnum2==busq1)
{
cout<<datos1[i].nombre<<" "<<datos1[i].apellido<<endl;
auxnum++;
}
}
if (auxnum==0)
{
cout<<"No hay personas con esa edad"<<endl;
}
}
//3. Mostrar las personas cuya inicial sea la que el usuario indique.
else if (opc==3)
{
cout<<"Con que letra desea buscar,(del primer nombre o primer apellido): ";
cin.getline(inicial, 1);
strlwr(inicial);
cout<<endl;
for (i=0 ; i<5 ; i++)
{
strcpy(auxnombre, datos1[i].nombre);
strcpy(auxnombre2, datos1[i].apellido);
if (inicial[0]==auxnombre[0])
{
cout<<"Nombre encontrado con la inicial "<<inicial<<datos1[i].nombre<<endl;
pcs++;
}
else if (inicial[0]==auxnombre2[0])
{
cout<<"Apellido encontrado con la inicial "<<inicial<<datos1[i].apellido<<endl;
pcs++;
}
}
if (pcs==0)
{
cout<<"No se encontraron similitudes"<<endl;
}
}
//Opcion salir
else if (opc==4)
{
system("cls");
cout<<"Nos vemos.";
exit(0);
}
//Ver si el usuario desea continuar:
cout<<"Desea continuar 1.Si/2.No?";
cin>>opc;
if (opc!=1)
{
system("cls");
cout<<"Nos vemos.";
exit(0);
}
else if (opc==1)
{
system("cls");
}
}
while(opc!=4);
return 0;
}