/* Name: Copyright: Author: Date: 2/06/2023 14:40 Description: Programa para generar los siguientes reportes: *Cargar la estructura con los datos. *Listar toda la población que puede votar en las próximas elecciones. *Listar aquellos ciudadanos que pueden prestar servicio militar. *Listar aquellos ciudadanos que tienen el pie plano. *Listar aquellos ciudadano(a)s adultos mayores *Salir */ #include #include #include #include #define MAX 30 #define N 4 typedef struct personas { char nombre[MAX]; char apellido[MAX]; int nacionalidad; char estado[MAX]; char ciudad[MAX]; char municipio[MAX]; char parroquia[MAX]; int cedula; int sexo; int edad; int pies; int servicio; int estadoCivil; }PERSONAS; PERSONAS vec[N], mayores[N], militar[N], piesPlanos[N]; char opc; int mayor = 0, piePlano = 0, milicia = 0; void cargarDatos(PERSONAS vec[]) { for (int i = 0; i < N; i++) { printf("Datos persona %d:\n",i+1); printf("\nNombre: "); scanf("%s", &vec[i].nombre); printf("\nApellido: "); scanf("%s", &vec[i].apellido); printf("\nEdad: "); scanf("%d", &vec[i].edad); if (vec[i].edad >= 18) { mayores[i] = vec[i]; mayor++; } printf("\nCedula de Identidad: "); scanf("%d", &vec[i].cedula); printf("\nSexo (1-Masculino / 2-Femenino): "); scanf("%d", &vec[i].sexo); switch (vec[i].sexo) { case 1: { printf("\nTiene pies planos?: 1-Si 2-No: "); scanf("%d", &vec[i].pies); if (vec[i].pies == 1) { piesPlanos[i] = vec[i]; piePlano++; } printf("\nPresto servicio militar? 1-Si 2-En curso 3-Aun no: "); scanf("%d", &vec[i].servicio); switch (vec[i].servicio) { case 1: { break; } case 2: { break; } case 3: { militar[i] = vec[i]; milicia++; break; } default: { break; } } break; } case 2: { break; } default: { break; } } printf("\nEstado civil: 1-Soltero 2-Casado 3-Viudo 4-Divorciado: "); scanf("%d", &vec[i].estadoCivil); printf("\nNacionalidad (1-Venezolano / 2-Extranjero): "); scanf("%d", &vec[i].nacionalidad); printf("\nParroquia: "); scanf("%s", &vec[i].parroquia); printf("\nMunicipio: "); scanf("%s", &vec[i].municipio); printf("\nCiudad: "); scanf("%s", &vec[i].ciudad); printf("\nEstado: "); scanf("%s", &vec[i].estado); printf("\n"); } } void menu() { while (opc != 'f') { printf("\nAutor del Programa: XXXXXXXXXX\n"); printf("Fecha: 13/06/2023\n"); printf("Menu de Opciones\n\n"); printf("Descripcion:\n\n"); printf("a - Cargar la estructura con los datos."); printf("\nb - Listar toda la poblacion que puede votar en las proximas elecciones."); printf("\nc - Listar aquellos ciudadanos que pueden prestar servicio militar."); printf("\nd - Listar aquellos ciudadanos que tienen el pie plano."); printf("\ne - Listar aquellos ciudadano(a)s adultos mayores"); printf("\nf - Salir\n"); printf("\nElija una opcion: "); scanf("%c", &opc); system("cls"); switch (opc) { case 'a': { cargarDatos(vec); getchar(); break; } case 'b': { printf("\nPoblacion que puede votar en las proximas elecciones\n\n"); for (int i = 0; i < mayor; i++) { printf("%s %s Edad: %d ",mayores[i].nombre , mayores[i].apellido , vec[i].edad); if (vec[i].sexo == 1) printf("Sexo: Masculino\n"); else printf("Sexo: Femenino\n"); } getchar(); break; } case 'c': { printf("\nCiudadanos que pueden prestar servicio militar\n\n"); for (int i = 0; i < milicia; i++) { printf("%s %s Edad: %d ",militar[i].nombre , militar[i].apellido , vec[i].edad); printf("Sexo: Masculino\n"); } getchar(); break; } case 'd': { printf("\nCiudadanos que tienen el pie plano\n\n"); for (int i = 0; i < piePlano; i++) { printf("%s %s Edad: %d ",piesPlanos[i].nombre , piesPlanos[i].apellido , vec[i].edad); printf("Sexo: Masculino\n"); } getchar(); break; } case 'e': { printf("\nCiudadano(a)s adultos mayores\n\n"); for (int i = 0; i < mayor; i++) { printf("%s %s Edad: %d ",mayores[i].nombre , mayores[i].apellido , vec[i].edad); if (vec[i].sexo == 1) printf("Sexo: Masculino\n"); else printf("Sexo: Femenino\n"); } getchar(); break; } case 'f': { puts("Hasta luego, gracias por usar el programa\n"); break; } } } } int main() { menu(); system("pause"); return 0; }