// 4a.cpp
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
#define MAX_CALLES 2
#define MAX_CASAS 3
// Definición de las estructuras
struct casa {
int cuadra; // número de la cuadra en el que está situada la casa
int numero; // número de la vivienda
};
struct calle {
char nombre[20];
casa casas[MAX_CASAS];
};
void inicializar(struct calle ciudad[]);
int buscar(char nombreCalle[], struct calle ciudad[]);
int main(void) {
int i, j;
char nombreCalle[20];
calle ciudad[MAX_CALLES];
// Solicitando datos
inicializar(ciudad);
//Consultando datos de una calle
cout<<endl<<"Consulta..."<<endl;
cout<<"Ingrese el nombre de la calle donde hará la entrega: ";
cin.getline (nombreCalle, 20);
i = buscar(nombreCalle, ciudad);
if (i==-1)
cout<<"No existe esa calle"<<endl;
else{
cout<<"La calle "<<nombreCalle<<" tiene las siguientes viviendas:"<<endl;
for (j=0;j<MAX_CASAS;j++){
cout<<"Cuadra: "<<ciudad[i].casas[j].cuadra
<<" Número "<<ciudad[i].casas[j].numero<<endl;
}
}
return 0;
}
void inicializar(struct calle ciudad[]){
/* Inicializa las componentes del vector ciudad Parámetros: struct calle ciudad[]
Retorno: Ninguno */
int i, j;
for(i=0; i<MAX_CALLES; i++){
cout<<"Ingrese el nombre de la calle donde hará la entrega: "<<endl;
cin.getline (ciudad[i].nombre, 20);
for (j=0; j<MAX_CASAS; j++){
cout<<"Introduzca la cuadra (en número): ";
cin>>ciudad[i].casas[j].cuadra;
cout<<"Introduzca el número de la casa: ";
cin>>ciudad[i].casas[j].numero;
}
cin.ignore();
}
return;
}
int buscar(char nombreCalle[], struct calle ciudad[]){
/* Busca una calle dentro de la estructura ciudad Parámetros: struct calle ciudad[]
char nombreCalle -> Calle a buscar
Retorno: Pos que ocupa nombreCalle en el vector ciudad Si no está devuelve -1 */
int i;
int encontrado=0;
//Se busca la calle dentro de la ciudad.
i=0;
while ((i<MAX_CALLES)&&(encontrado==0)){
if (strcmp (ciudad[i].nombre, nombreCalle)==0)
encontrado=1;
else
//En la siguiente iteración se analiza la siguiente
//componente del vector
i=i+1;
}
if (!encontrado)
i=-1;
return (i);
}