Ir ao conteúdo

C++


jappinha

Posts recomendados

Postado

eae galera, tenho de fazer um trampo em c++ e n to conseguindo, alguém pode dar uma olhada aí no enunciado e me ajudar com o trabalho?

Uma pesquisa sobre algumas características físicas da população de uma determinada região do Brasil coletou os seguintes dados, referentes a cada habitante, para serem analisados:

Sexo:

-Feminino = F

-Masculino = M

Cor de olhos:

-Azuis = A

-Verdes = V

-Castanhos = C

Cor de cabelo:

-Loiro = L

-Castanho = T

-Preto = P

Idade em anos

Para cada habitante foi preparada uma entrada com esses dados (fazer a consistência da entrada de dados) e a última entrada, que não corresponde a ninguém, conterá o valor de idade igual a –1. Fazer um programa (em linguagem C) que determine:

1. A porcentagem de habitantes do sexo masculino e feminino em relação ao total de habitantes da região pesquisada.

2. A porcentagem de habitantes do sexo masculino cuja idade está entre 25 e 60 anos e que tenham olhos verdes e cabelo loiro.

3. A porcentagem de habitantes do sexo feminino cuja idade está entre 15 e 40 anos e que tenham olhos azuis e cabelo preto.

4. Se a maior porcentagem é de crianças (de 0 a 12 anos), adolescentes (de 13 a 19 anos) ou adultos (maior que 20 anos).

o que deve sair é:

Nº de total de habitantes:

% sexo masculino:

% sexo feminino:

% do item 2:

% do item 3:

% do item 4:

Postado

Acho que é assim..tem como melhorar a parte de verificar campo..e talzz

#include <stdio.h>

#include <conio.h>

#include <string.h>

struct TPesquisa{

                char sexo;

                char olhos;

                char cabelos;

                int  idade;

};

char VerificaCampo(char s,int cond){

  if (cond==0)

                while((s!='A')&&(s!='V')&&(s!='C')&&(s!='a')&&(s!='v')&&(s!='c'))

                 s=getch();

  else if(cond==1)

                        while((s!='L')&&(s!='T')&&(s!='P')&&(s!='l')&&(s!='t')&&(s!='p'))

                          s=getch();

                   else

                  while((s!='m')&&(s!='f')&&(s!='M')&&(s!='F'))

                  s=getch();

  return s;

}

int EntradadeDados(TPesquisa *C){

  int i=-1;

  char s;

  do{

                 i++;

                 printf("Informe o sexo:(M,F)");

                 C.sexo=VerificaCampo(s,2);

                 printf(" %c",C.sexo);

                 printf("\nInforme a cor dos olhos:(A = Azuis, V = Verdes, C = Castanhos)");

                 C.olhos=VerificaCampo(s,0);

                 printf(" %c",C.olhos);

                 printf("\nInforme a cor dos cabelos:(L = Louro, T = Castanho, P = Pretos)");

                 C.cabelos=VerificaCampo(s,1);

                 printf(" %c",C.cabelos);

                printf("\nInforme a idade:(-1 para encerrar)");

                scanf("%i",&C.idade);

                clrscr();

  }while(C.idade!=-1);

  return i;

}

void Calculo(float& masc,float& fem,float& idadem,float& idadef,int tam,TPesquisa *C){

  int i;

  for(i=0;i<tam;i++){

               if(C.sexo=='M'){

                        masc++;

                     if((C.idade>=25)&&(C.idade<=60))

                                    idadem++;

               }

               else

               if((C.idade>=15)&&(C.idade<=40))

                        idadef++;

  }

  fem=tam-masc;

  if (masc!=0){

           idadem = (idadem*100)/masc;//PORCENTAGEM MASC ITEM2

           masc = (masc*100)/tam;//PORCENTAGEM MASC ITEM1

  }

  if (fem!=0){

           idadef = (idadef*100)/fem;//PORCENTAGEM FEM ITEM3

           fem = (fem*100)/tam;//PORCENTAGEM FEM ITEM1

  }

}

void Item4(int tam,TPesquisa *C,float& criancas,float& adolescentes,float& adultos){

  int i;

  for(i=0;i<tam;i++){

                if((C.idade<=12)&&(C.idade>=0))

                         criancas++;

                else if(C.idade<=19)

                               adolescentes++;

                       else if(C.idade>=20)

                                      adultos++;

  }

  criancas=(criancas*100)/tam;

  adolescentes=(adolescentes*100)/tam;

  adultos=(adultos*100)/tam;

}

void Saida(float masc,float fem,float idadem,float idadef,float criancas,float

     adolescentes,float adultos){

  printf("ITEM 1\n\n");

  printf("%2.2f habitantes do sexo masculino\n",masc);

  printf("%2.2f habitantes do sexo feminino\n\n",fem);

  printf("ITEM 2\n\n");

  printf("%2.2f habitantes do sexo masculino com idade entre 25 e 60     \n\n",idadem);

  printf("ITEM 3\n\n");

  printf("%2.2f habitantes do sexo feminino com idade entre 25 e 60\n\n",idadef);

  printf("ITEM 4\n\n");

  if((criancas>adolescentes)&&(criancas>adultos))

             printf("%2.2f pocentagem de criancas",criancas);

  else if(adolescentes>adultos)

                   printf("%2.2f porcentagem de adolescentes",adolescentes);

         else printf("%2.2f porcentagem de adultos",adultos);

}

void main(void){

  int tam;

  float masc=0,fem=0,idadem=0,idadef=0;

  float criancas=0,adolescentes=0,adultos=0;

  TPesquisa C[100];

  clrscr();

  tam=EntradadeDados©;//o vetor possui um a menos, pois comeca do 0

  Calculo(masc,fem,idadem,idadef,tam,C);

  Item4(tam,C,criancas,adolescentes,adultos);

  Saida(masc,fem,idadem,idadef,criancas,adolescentes,adultos);

  getch();

}

PS1: Eu não ia responder...mas como estamos em processo permanente de aprendizado..resovi fazer...e postar...mas da proxima vez..vê se tenta responder..posta pelo menos uma parte do codigo que você fez;

esse tipo de problema desenvolve a sua logica..e sem ela você não faz nda.

PS2: Por Favor não leve a mal a minha critica...pois ela é construtiva :D

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!