Jump to content

Ayuda Con Programa De Censo Plis


Recommended Posts

el problema es que no se me ocurre como usar una sola variable de joven, adulto, tecera edad, etc para todas las comunas

 

ya que de no ser asi tendria que escribir extremadamente muchas variables

aqui el problema:

 

Se ha realizado un censo en el país y se le pide que construya un programa en lenguaje C que

solicite los siguientes datos por cada habitante: nombre provincia, nombre comuna, rut persona,

nombre persona, apellido persona y edad persona. Los datos se ingresan agrupados por provincia y

dentro de la provincia sub-agrupados por comuna, es decir, todos los habitantes de una misma comuna,

luego todos los de otra comuna perteneciente a la misma provincia y así sucesivamente, cuando no hay

más habitantes se ingresa como nombre de provincia “ZZZ”.

El programa debe entregar como resultado por cada Comuna: el número de habitantes que tiene,

el número de habitantes de la tercera edad (mayor a 65 años), número de habitantes adultos (mayor a

21 años), número de habitantes jóvenes (mayor a 13 años) y número de habitantes niños. Además, se

debe entregar el nombre(s) de la(s) persona(s) más anciana de la comuna.

El programa también debe entregar los mismos datos anteriores por Provincia censada y al final

debe proporcionar la provincia con más ancianos, la provincia con menos niños.

Un ejemplo de la salida de su programa podría ser:

Provincia: ARICA

Comuna: Arica

Habitantes: 186.500

Tercera Edad: 36.500 Adultos: 50.000 Jóvenes: 90.000 Niños: 30.000

Persona más anciana (98 años): 4.567.234-2 Felipe Sandoval, 4.345.245-3 María Pérez.

Comuna: Camarones

Habitantes: 1.500

Tercera Edad: 400 Adultos: 800 Jóvenes: 200 Niños: 100

Persona más anciana (102 años): 3.671.245-2 Mónica Ramírez.

Total Habitantes Provincia ARICA: 188.000

Tercera Edad: 36.900 Adultos: 50.800 Jóvenes: 90.200 Niños: 30.100

Persona más anciana de la Provincia ARICA (102 años): 3.671.245-2 Mónica Ramírez vive en Comuna

de Camarones.

Provincia: PUTRE

:

:

Provincia con más ancianos (2000.000): SANTIAGO

Provincia con menos niños (3.000): Aysén

 

si logran ayudarme les hago un queque virtual :D

Edited by sinetik
Link to comment
Share on other sites

aqui el trabajo es con estructuras

no se si podi usar base de datos, o leer archvio, o teni que dejar todo en memoria mientras corre el programa.

para los 3 usai estructuras, pero si es en memoria ocupa una lista enlazada para guardar las cosas, sino las vas escribiendo en el archivo o en la bd al final del ingreso.

 

creas una estructura persona que tenga los campos que necesitas, incluido como campo la comuna y la provincia asi sabes a cual pertenece cada persona, no tienes que crear variables distintas si al final son todas personas y comparten los mismos datos, solo teni que tener el campo de la comuna o provincia para poder identificarlo despues y entregar los resultados.

Link to comment
Share on other sites

// integrantes: felipe morales - es todo lo que alcance a intentar, incluso tuve que aprender cosas que nunca vimos en clases como estructuras de control y punteros D: pero hice lo que pude

 

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

 

#define Elementos 500

 

char rut[20];

int edad;

int edad_masanciana=-0.1;

char nom_pers[15];

char apell_pers[15];

 

 

struct estructura_comuna {

char nom_com[20];

int habitantes;

int terceraedad;

int adultos;

int jovenes;

int ninos;

char masanciana[120];

} comuna ;

 

struct estructura_provincia{

char nom_provincia[20];

struct estructura_comuna comuna;

} provincia ;

 

struct estructura_provincia *p = &provincia;

struct estructura_comuna *c = &comuna;

 

 

int main()

{

 

(*c).habitantes=0;

(*c).terceraedad=0;

(*c).adultos=0;

(*c).jovenes=0;

(*c).ninos=0;

 

int num_provincia;

 

printf("programa de registro para censo.\n\n");

printf("inicio");

printf("\n------");

 

printf("\n\nnombre de la provincia(*zzz* para terminar): ");

scanf("%s",(*p).nom_provincia);

 

if(strcmp((*p).nom_provincia,"zzz")!=0)

{

for(num_provincia=0;strcmp((*p).nom_provincia,"zzz")!=0;num_provincia++)

{

 

printf("nombre de la comuna: ");

scanf("%s",(*c).nom_com);

printf("Rut de la persona: ");

scanf("%s",&rut);

printf("nombre de la persona: ");

scanf("%s",nom_pers);

printf("apellido de la persona: ");

scanf("%s",apell_pers);

printf("edad de la persona: ");

scanf("%s",&edad);

 

if(edad<=18)

{

(*c).ninos=(*c).ninos+1;

}

else if(edad<=24)

{

(*c).jovenes=(*c).jovenes+1;

}

else if(edad<=60)

{

(*c).adultos=(*c).adultos+1;

}

else

{

(*c).terceraedad=(*c).terceraedad+1;

}

 

if(edad>edad_masanciana)

{

strcpy((*c).masanciana,rut);

strcat((*c).masanciana," - ");

strcat((*c).masanciana,nom_pers);

strcat((*c).masanciana," ");

strcat((*c).masanciana,apell_pers);

}

 

printf("\n\n------------------------------------------------------------");

printf("\nnombre de la provincia(*zzz* para terminar): ");

scanf("%s",(*p).nom_provincia);

}

}

}

 

 

al final tuve que mandar eso nomas, no pude hacer mas. De todas maneras quisiera aprender = como hacerlo aunque ya no me sirva para la nota :D

 

obiamente falta otro for para los datos de salida, pero me importa saber acerca de las estructuras si estab bien echas, y si esta anidada?

Edited by sinetik
Link to comment
Share on other sites

te falto caleta, kiza era mucho trabajo derrepente los profes se van en vola, pero dan arto tiempo para investigar toa la wea y hacelro, o fuiste poco especifico en los alcances del programa, si se podia trabajar con archivos, estrucutras, listas, bd.

 

asi mirandolo de reojo sin compilarlo, te falto la struct persona.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...