AYUDA CON UN PROGRAMA

Iniciado por mantequita, 10 Octubre 2019, 02:12 AM

0 Miembros y 1 Visitante están viendo este tema.

mantequita

Hola a todos, como se encuentran
tengo que realizar un programa que haga uso de apuntadores, sin embargo tengo algunas dudas sobre como "agrupar" datos
resulta que el programa solicita informacion de 10 personas, como ciudad, barrio, direccion,nombre y apellido.
y mediante un menu, la opcion 1 deberia ser agrupar a las 10 personas por ciudades, es decir, si 3 personas escogieron Barcelona, estas 3 personas deberian aparecer en la misma ciudad, agrupadas, ahi entra mi duda, como puedo hacerlo
ademas de esto, el segundo menu debe agrupar a las personas por barrio, ademas de ciudad, mediante el ingreso de una ciudad, el programa enseña los barrios que tiene esta ciudad y las personas que pertenecen a estos barrios. 
Anexo el codigo que me encuentro manejando, por favor, cualquier ayuda me serviria mucho.
gracias!!!

//-----------------// :huh:
#include <iostream>
using namespace std;

struct persona{
char nombre[30];
char apellido[30];
char ciudad[30];
char barrio[30];
char direccion[30];
}datos[10];

void ingresar(struct persona *datos);
void menu(struct persona *datos);
int main(){
ingresar(datos);
menu(datos);
return 0;
}

void ingresar(struct persona *datos)
{
for(int i=0;i<10;i++){
cout<<"---------------Datos de la persona "<<i+1<<"---------------"<<endl;
cout<<"Ingrese nombre de la persona: ";
cin>>datos.nombre;
cout<<"Ingrese apellido de la persona: ";
cin>>datos.apellido;
cout<<"Ingrese ciudad de la persona: ";
cin>>datos.ciudad;
cout<<"Ingrese barrio de la persona: ";
cin>>datos.barrio;
cout<<"Ingrese direccion de la persona: ";
cin>>datos.direccion;
}
}

void ciudad(struct persona *datos);
void barrio(struct persona *datos);
void cambiar(struct persona *datos);
void menu(struct persona *datos){
short opcion;
while(opcion!=4){
cout<<"-----------------------Menu-----------------------"<<endl;
cout<<"1. Mostrar personas que viven en la misma ciudad"<<endl;
cout<<"2. Mostrar personas que viven en el mismo barrio"<<endl;
cout<<"3. Reemplazar letras"<<endl;
cout<<"4. Salir"<<endl;
cin>>opcion;
switch(opcion){
case 1:
ciudad(datos);
break;
case 2:
barrio(datos);
break;
case 3:
cambiar(datos);
break;
case 4:
cout<<"*********************************"<<endl;
cout<<"Vuelva Pronto..."<<endl;
system("exit");
break;
default:
cout<<"*********************************"<<endl;
cout<<"Opcion incorrecta"<<endl;
cout<<"*********************************"<<endl;
break;


}
}
}

void ciudad(struct persona *datos)
{
for(int i=0;i<10;i++){
if(datos.ciudad==datos.ciudad){
cout<<"--------------------------------"<<endl;
cout<<"Ciudad: "<<datos.ciudad<<endl;
cout<<"--------------------------------"<<endl;
cout<<"Nombre: "<<datos.nombre<<endl;
cout<<"Apellido: "<<datos.apellido<<endl;
cout<<"Barrio: "<<datos.barrio<<endl;
cout<<"Direccion: "<<datos.direccion<<endl;
}else{
   if(datos.ciudad!=datos.ciudad){
      
   }
}
}
}
void barrio(struct persona *datos)
{
for(int i=0;i<10;i++){
if(datos.ciudad==datos.ciudad){
cout<<"--------------------------------"<<endl;
cout<<"Barrio: "<<datos.barrio<<endl;
}else{
if(datos.barrio!=datos.barrio){
   
}
}
}
}
void cambiar(struct persona *datos)
{
for(int i=0;i<10;i++){
//if(nota=nota){
cout<<"--------------------------------"<<endl;
cout<<"Direccion: "<<datos.direccion<<endl;
cout<<"Nombre: "<<datos.nombre<<endl;
cout<<"Apellido: "<<datos.apellido<<endl;
//}else{
cout<<"--------------------------------"<<endl;
}
}


K-YreX

Eso de "agrupar" es muy ambiguo. No sé qué es lo que te están pidiendo exactamente... :rolleyes:
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

mantequita

Cita de: YreX-DwX en 10 Octubre 2019, 02:56 AM
Eso de "agrupar" es muy ambiguo. No sé qué es lo que te están pidiendo exactamente... :rolleyes:
Gracias por responder
en este caso "agrupar" es imprimir todos los datos pertenecientes a una ciudad, es decir
si tengo una persona 1.
nombre: a
ciudad: Barcelona
edad: 14
una persona 2.
nombre: b
ciudad: Malaga
edad: 20
y una persona 3.
nombre: c
ciudad: Barcelona
edad: 20

el programa deberia imprimirme las personas de barcelona "agrupadas"
algo como:
ciudad BARCELONA:
nombre: a
edad: 14

nombre: c
edad: 20

CalgaryCorpus

Recorre el arreglo obteniendo todas las ciudades distintas. Mete esas ciudades distintas en un arreglo de strings.

Luego recorre el arreglo de strings y por cada uno de las ciudades, recorres el arreglo y escribes los datos de las personas que sean de esa ciudad.
Aqui mi perfil en LinkedIn, invitame un cafe aqui