Ir ao conteúdo
  • Cadastre-se

C++ Código em C++ não compilando


Shifther

Posts recomendados

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define TAM 100
#include <locale.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
struct tipo_imc {
	char nome[50];
	int freq;
	int intenc;
	int dura;
};
struct tipo_imc imc[TAM]; 

int menu(); 
void CADASTRAMENTO(void);
void PESQUISA(void);
void LISTAR(void);
void intencidade(void);
void frequenc(void);


int continuar;
int cont=0;


int main() {
	
    char bvnome[40];  
    int i;
    int opções;
    do{                 
        opções=menu(); // chamada da função MENU
    	switch(opções){
            case 1:
                 CADASTRAMENTO(); 
                 break;
            case 2:
                 system("cls");
                 LISTAR();  
                 system("pause");
                 break;
            case 3:
                 PESQUISA();     
                 break;           
            case 4:
                 exit(0);
                 break;
                        }
            }while(opções!=4);           
            printf("\n\n");
	
	return 0;
}

int menu(void){ 
	int a;  
  	do{    
     	system("cls");
    	printf("\n\n");   
   		printf("\t\t [MENU] \n\n");
		printf("1-   [CADASTRAMENTO DE DADOS]\n");
	    printf("2-   [LISTAR]\n");
	    printf("3-   [PESQUISAR]\n");
	    printf("4-   [SAIR]\n");       
	    printf("\n\n");
        scanf("%d",&a);
   
     }
     while((a<1) || (a>4));
    
 return a;    
}

void CADASTRAMENTO(){
 system("cls");
 int i;
     
    if(cont < TAM){
    	for(i=0; i<TAM; i++){    		
        printf("\tCADASTRAMENTO\n");
        printf("\tDE  DADOS\n\n");
                      
        printf("Por favor, preencha os campos abaixo: \n\n");                          
         //~~~~~~~~~~~~~~~~~~~~
        fflush(stdin); //Limpar Buffer do Teclado
        printf("\n\n");
        			  printf(" Nome completo :   ");
                      gets(imc[i].nome);
                      printf("\n\n");
                     //~~~~~~~~~~~~~~~~~~~~
                     system("cls");
                     printf("\t\t[INTENSIDADE]\n\n");
                   	 printf("[5] Pesada - Respiração pesada e sustentada por toda a atividade com forte transpiração após alguns minutos (como corre um pouco abaixo ou na intensidade máxima).\n");	
					 printf("[4] Pesada intermitente - Respiração pesada intermitente com transpiração média (como no tênis).\n");
				  	 printf("[3] Moderadamente pesada - Respiração moderada constante (como no ciclismo).\n");
					 printf("[2] Moderada - Respiração um pouco acima da normal, com picos de respiração moderada (como no vôlei).\n");
					 printf("[1] Leve - Respiração constante um pouco acima da normal (Como na caminhada).\n");
					 scanf("%d",&imc[i].intenc);
					 printf("\n\n");					 
                     //~~~~~~~~~~~~~~~~~~~~
                     system("cls");
                     printf("\t\t[DURAÇÂO]\n");
					 printf("[4] Acima de 30 min\n");
					 printf("[3] 20 a 30 min\n");
					 printf("[2] 10 a 20 min\n");
					 printf("[1] Abaixo de 10 min\n\n");
					 scanf("%d",&imc[i].dura);
                     //~~~~~~~~~~~~~~~~~~~~
                     printf("\n\n");
                     //~~~~~~~~~~~~~~~~~~~~
                     system("cls");
                     printf("\t\t[FREQÜÊNCIA]\n\n");
					 printf("[5] Diariamente ou 6 vezes por semana\n");
					 printf("[4] 3 a 5 vezes por semana\n");
					 printf("[3] 1 a 2 vezes por semana\n");
					 printf("[2] Poucas vezes ao mês\n");
					 printf("[1] Uma ou menos vezes por mês\n");
					 scanf("%d",&imc[i].freq);
                     //~~~~~~~~~~~~~~~~~~~~

                     printf("\n\n");
                     //~~~~~~~~~~~~~~~~~~~~
                     system("cls");
                     printf("\n\n");
                     printf("\t    Cadastro concluido com sucesso!   ");
					 printf("\n\n");
                     system("PAUSE");
                     
                     printf("\n\n");
                     system("cls"); 
                   
                     cont++;
                     break;
        }            
	}	
	if(cont < TAM){
    	system("cls");
    	printf("\t\tDeseja continuar?   \n\n");
    	printf(" 1 - Sim   \n\n 2 - não\n\n");
    	scanf("%d",&continuar);
   	 	
			while(continuar!=1 && continuar!=2){
        	system("cls");
       	 	printf("\t\tDeseja continuar?   \n\n");
       	 	printf(" 1 - Sim   \n\n 2 - não\n\n");
        	scanf("%d",&continuar);                   
       	 }
    	if(continuar==1){
    		CADASTRAMENTO();
    	}
	}
		if(cont == TAM)
              {
               printf("\n\n No momento, memoria esta cheia! \n\n");
               system("pause");
              } 
}

void PESQUISA() // FUNÇÃO  PESQUISA
     {
     int i;
     char nome_busca[50];
     int nao_tem=999;
     system("cls");
     fflush(stdin); //Limpar Buffer do Teclado
     printf(" Informe o [Nome Completo] %c   ",26);
     gets(nome_busca);
           
    for(i=0; i<TAM; i++){ 
      if(strcmp(imc[i].nome,nome_busca)==0){ // So vai listar as Fichas com os Nomes iguais aos digitados.
      	int score = imc[i].dura * imc[i].freq * imc[i].intenc;
        printf(" ------------------------------------------------------------------\n");                        
        printf(" Nome Completo:  %s",imc[i].nome);                          
        printf("\n\n");
        if (score){
        	if (score== 80 >= 100){
			printf("\tEscore\n\n80 a 100   \tAvaliação\n\n[Estilo de vida muito ativo]    \tCategoria de Capacidade Física\n\n[Alta]\n");
			}
        	else if (score == 60 >= 79 ){
        		printf("\tEscore\n\n[60 a 79]	\tAvaliação\n\n[Ativo e saudável]\n	\tCategoria de Capacidade Física\n\n[Muito boa]\n");
			}else if(score == 40 >= 59 ){
				printf("\tEscore\n\n[40 a 59]	\tAvaliação\n\n[Aceitável (poderia ser melhor)]\n	\tCategoria de Capacidade Física\n\n[Boa]\n");
			}else if(score == 20 >= 39){
				printf("\tEscore\n\n[20 a 39]	\tAvaliação\n\n[Não suficientemente boa]\n	\tCategoria de Capacidade Física\n\n[Pobre]\n");
			}else if(score == 0 >= 20){
				printf("\tEscore\n\n[Menor que 20]	\tAvaliação\n\n[Sedentário]\n	\tCategoria de Capacidade Física\n\n[Muito Pobre]\n");
			}	
		}        
        printf("");
        printf(" ------------------------------------------------------------------\n");  
        nao_tem=0;
      }
    }
    if(nao_tem==999){
      system("cls");
      printf("\n  não foi encontrado nenhum dado correspondente. \n\n");
      printf("  Certifique-se de que todas as palavras estejam escritas corretamente.\n\n\n\n\n\n");
    }
    system("PAUSE");                
    system("cls");
    printf("\t\tDeseja continuar?   \n\n");
    printf(" 1 - Sim   \n\n 2 - não\n\n");
    scanf("%d",&continuar);
    
    while(continuar!=1 && continuar!=2){    
    system("cls");
    printf("\t\tDeseja continuar?   \n\n");
    printf(" 1 - Sim   \n\n 2 - não\n\n");
    scanf("%d",&continuar);                   
    }
    if(continuar==1){    
    PESQUISA();
    } 
    system("cls");
}
//'''''''''''''''''''
void EXCLUIR(void) // FUNÇÃO  EXCLUIR
{
                   
     int i,a;
     char nome_busca[50];
     
     
     system("cls");  
     printf("\n\n\t\t[EXCLUIR]\n\n");
     printf("\n\n");
     fflush(stdin); //Limpar Buffer do Teclado
     printf(" Informe o <Nome Completo> %c   ",26);
     
     int nao_tem=999;
     gets(nome_busca);


            for(i=0; i<TAM; i++)
            {
                     if(!strcmp(imc[i].nome,nome_busca)) 
                      {
                       nao_tem=0;
                       system("cls");
                       printf("\n\n   Exclus%co concluida com sucesso! \n\n\n");
                      
                       printf("\n\n");
                       printf("\n\n");
                      
                       cont--;
                       }

            }
            
     if(nao_tem==999)
     {
     system("cls");
     printf("\n  não foi encontrado nenhum dado correspondente. \n\n");
     printf("  Certifique-se de que todas as palavras estejam escritas corretamente.\n\n\n\n\n\n");
     }
                             
     system("PAUSE");                
     system("cls");
     printf("\t\tDeseja continuar?   \n\n");
     printf(" 1 - Sim   \n\n 2 - não\n\n");
     scanf("%d",&continuar);
     while(continuar!=1 && continuar!=2)
             {
             system("cls");
             printf("\t\tDeseja continuar?   \n\n");
             printf(" 1 - Sim   \n\n 2 - não\n\n");
             scanf("%d",&continuar);                   
             }

     if(continuar==1){
                      EXCLUIR();
                      }         
     system("CLS");                            
}

Crie um programa em C++ que calcule o índice de atividade física de uma pessoa, utilize a imagem abaixo como referencia para os parâmetros de cada um dos indivíduos que utilizar seu programa.

Pergunte o nome do usuário e realize as perguntas abaixo:

Screenshot 2019-09-30 at 22.45.07.png

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

8 minutos atrás, KXSY disse:

Vamos lá

isso e C puro, não tem nada de C++.

 

O seu maior erro foi esse escrever opções com ç e ~ isso são caracteres especiais, que não são permitidos em C.

de uma olhada no livro C Completo e total na pagina 32 que explica melhor.

 

também tem vários erros por causa do gets que não e mais implementados nas versões mais novas do GCC para isso utilize o fgets().

 

recomendo usar a linha de comando e o GCC ou esse compilador online repl.it e também recompilar o programa varias vezes ao invés de fazer tudo e compilar só uma vez.

no caso do 

 int opções

foi equivoco meu, por conta do corretor automático. 

 

e se utilizar o < fgets () > ele precisa de um FILE*

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define TAM 100
#include <locale.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
struct tipo_imc {
	char nome[50];
	long int cod;
	int freq;
	int intenc;
	int dura;
};
struct tipo_imc imc[TAM]; 

int menu(); 
void CADASTRAMENTO(void);
void PESQUISA(void);
void LISTAR(void);
void intencidade(void);
void frequenc(void);


int continuar;
int cont=0;


int main() {
	setlocale(LC_ALL, "Portuguese");
    int j;
    char* times;
    char bvnome[40];  
    int i;
    for(j=0; j<TAM; j++)
        {
        imc[j].cod=7777777;  // Prenchendo os campos de TELEFONE com 7777777 para indicar AGENDA COM ESPAÇO VAZIO
        } 
    int opções;
    do{                 
        opções=menu(); // chamada da função MENU
    	switch(opções){
            case 1:
                 CADASTRAMENTO(); 
                 break;
            case 2:
                 system("cls");
                 LISTAR();  
                 system("pause");
                 break;
            case 3:
                 PESQUISA();     
                 break;           
            case 4:
                 exit(0);
                 break;
                        }
            }while(opções!=4);           
            printf("\n\n");
	
	return 0;
}

int menu(void){ 
	int a;  
  	do{    
     	system("cls");
    	printf("\n\n");   
   		printf("\t\t\t [MENU] \n\n");
		printf("1-   [CADASTRAMENTO DE DADOS]\n");
	    printf("2-   [LISTAR]\n");
	    printf("3-   [PESQUISAR]\n");
	    printf("4-   [SAIR]\n");       
	    printf("\n\n");
        scanf("%d",&a);
   
     }
     while((a<1) || (a>4));
    
 return a;    
}

void CADASTRAMENTO(){
 system("cls");
 int i;
     
    if(cont < TAM){
    	for(i=0; i<TAM; i++){ 
		if(imc[i].cod==7777777){				
        	printf("\tCADASTRAMENTO\n");
        	printf("\t  DE  DADOS\n\n");                      
        	printf("Por favor, preencha os campos abaixo: \n\n");                          
         //~~~~~~~~~~~~~~~~~~~~
        	fflush(stdin); //Limpar Buffer do Teclado
        	printf("\n\n");
        	printf(" Nome completo :   ");
            gets(imc[i].nome);
            printf("\n\n");
        //~~~~~~~~~~~~~~~~~~~~
        	printf("\n\n");
                     printf(" Código :   ");
                    
                     do{
                        scanf("%d",&imc[i].cod);
                        }while(imc[i].cod==7777777);
        //~~~~~~~~~~~~~~~~~~~~
            system("cls");
            printf("\t\t[INTENSIDADE]\n\n");
            printf("Qual a intencidade que você faz os exercicios?\n\n");
            printf("\n[5]- Pesada - Respiração pesada e sustentada por toda a atividade com forte transpiração após alguns minutos (como corre um pouco abaixo ou na intensidade máxima).\n");	
			printf("[4]- Pesada intermitente - Respiração pesada intermitente com transpiração média (como no tênis).\n");
			printf("[3]- Moderadamente pesada - Respiração moderada constante (como no ciclismo).\n");
			printf("[2]- Moderada - Respiração um pouco acima da normal, com picos de respiração moderada (como no vôlei).\n");
			printf("[1]- Leve - Respiração constante um pouco acima da normal (Como na caminhada).\n");
			printf("\n\n");
			scanf("%d",&imc[i].intenc);
			printf("\n\n");					 
            //~~~~~~~~~~~~~~~~~~~~
            system("cls");
            printf("\t\t[DURAÇÂO]\n");
            printf("Qual a duração dos seus exercicios?\n\n");
			printf("[4]- Acima de 30 min\n");
			printf("[3]- 20 a 30 min\n");
			printf("[2]- 10 a 20 min\n");
			printf("[1]- Abaixo de 10 min\n\n");
			printf("\n\n");
			scanf("%d",&imc[i].dura);
			//~~~~~~~~~~~~~~~~~~~~
			
            printf("\n\n");
            //~~~~~~~~~~~~~~~~~~~~
            system("cls");
            printf("\t\t[FREQÜÊNCIA]\n\n");
            printf("Qual a frequência que faz os exercicios?\n\n");
			printf("[5]- Diariamente ou 6 vezes por semana\n");
			printf("[4]- 3 a 5 vezes por semana\n");
			printf("[3]- 1 a 2 vezes por semana\n");
			printf("[2]- Poucas vezes ao mês\n");
			printf("[1]- Uma ou menos vezes por mês\n");
			printf("\n\n");
			scanf("%d",&imc[i].freq);
        //~~~~~~~~~~~~~~~~~~~~

            printf("\n\n");
        //~~~~~~~~~~~~~~~~~~~~
            system("cls");
            printf("\n\n");
            printf("\t    Cadastro concluido com sucesso!   ");
			printf("\n\n");
            system("PAUSE");
            printf("\n\n");
            system("cls"); 
                   
            cont++;
            break;
           } 
		}
	}	
	if(cont < TAM){
    	system("cls");
    	printf("\t\tDeseja continuar?   \n\n");
    	printf(" 1 - Sim   \n\n 2 - não\n\n");
    	scanf("%d",&continuar);
   	 	
			while(continuar!=1 && continuar!=2){
        	system("cls");
       	 	printf("\t\tDeseja continuar?   \n\n");
       	 	printf(" 1 - Sim   \n\n 2 - não\n\n");
        	scanf("%d",&continuar);                   
       	 }
    	if(continuar==1){
    		CADASTRAMENTO();
    	}
	}
		if(cont == TAM)
              {
               printf("\n\n No momento, memoria esta cheia! \n\n");
               system("pause");
              } 
}

void PESQUISA() // FUNÇÃO  PESQUISA
     {
     int i;
     char nome_busca[50];
     int nao_tem=999;
     system("cls");
     fflush(stdin); //Limpar Buffer do Teclado
     printf(" Informe o [Nome Completo] %c   ",26);
     gets(nome_busca);
           
    for(i=0; i<TAM; i++){
	if(imc[i].cod!=7777777){     
	      if(strcmp(imc[i].nome,nome_busca)==0){ // So vai listar as Fichas com os Nomes iguais aos digitados.
	      	int score = imc[i].dura * imc[i].freq * imc[i].intenc;
	         printf(" ------------------------------------------------------------------\n");                        
	         printf(" Nome Completo:  %s",imc[i].nome);                          
	         printf("\n\n");
	         printf(" Código: %d",imc[i].cod);
	         printf("\n\n");
	       	 printf(" Escore: %d",score);
			 printf("\n\n");
			 	        
	        printf("");
	        printf(" ------------------------------------------------------------------\n");  
	        nao_tem=0;
    	  }
    	}
	}
    if(nao_tem==999){
      system("cls");
      printf("\n  não foi encontrado nenhum dado correspondente. \n\n");
      printf("  Certifique-se de que todas as palavras estejam escritas corretamente.\n\n\n\n\n\n");
    }
    system("PAUSE");                
    system("cls");
    printf("\t\tDeseja continuar?   \n\n");
    printf(" 1 - Sim   \n\n 2 - não\n\n");
    scanf("%d",&continuar);
    
    while(continuar!=1 && continuar!=2){    
    system("cls");
    printf("\t\tDeseja continuar?   \n\n");
    printf(" 1 - Sim   \n\n 2 - não\n\n");
    scanf("%d",&continuar);                   
    }
    if(continuar==1){    
    PESQUISA();
    } 
    system("cls");
}
//'''''''''''''''''''
void EXCLUIR(void) // FUNÇÃO  EXCLUIR
{
                   
     int i,a;
     char nome_busca[50];
     
     
     system("cls");  
     printf("\n\n\t\t[EXCLUIR]\n\n");
     printf("\n\n");
     fflush(stdin); //Limpar Buffer do Teclado
     printf(" Informe o <Nome Completo> %c   ",26);
     
     int nao_tem=999;
     gets(nome_busca);


            for(i=0; i<TAM; i++)
            {
                     if(!strcmp(imc[i].nome,nome_busca)){
                       imc[i].cod=7777777; 
                       nao_tem=0;
                       system("cls");
                       printf("\n\n   Exclusão concluida com sucesso! \n\n\n");
                      
                       printf("\n\n");
                       printf("\n\n");
                      
                       cont--;
                       }

            }
            
     if(nao_tem==999)
     {
     system("cls");
     printf("\n  não foi encontrado nenhum dado correspondente. \n\n");
     printf("  Certifique-se de que todas as palavras estejam escritas corretamente.\n\n\n\n\n\n");
     }
                             
     system("PAUSE");                
     system("cls");
     printf("\t\tDeseja continuar?   \n\n");
     printf(" 1 - Sim   \n\n 2 - não\n\n");
     scanf("%d",&continuar);
     while(continuar!=1 && continuar!=2)
             {
             system("cls");
             printf("\t\tDeseja continuar?   \n\n");
             printf(" 1 - Sim   \n\n 2 - não\n\n");
             scanf("%d",&continuar);                   
             }

    if(continuar==1){
        EXCLUIR();
    }         
     system("CLS");                            
}
void LISTAR(void) // FUNÇÃO LISTAR
{
     
     printf(" ------------------------------------------------------------------\n"); 
     printf("\n\n");
    
     int i;
     int nao_tem=999;
     for(i=0; i<TAM; i++)
     {
                     if(imc[i].cod!=7777777){
					 printf(" Nome Completo:  %s \n",imc[i].nome);
                     printf(" ------------------------------------------------------------------\n"); 
                     printf("\n");
                     nao_tem=0;
                     }
                     
      }
            
     if(nao_tem==999)
     {
     system("cls");
     printf("\n  não foi encontrado nenhum dado correspondente. \n\n");
     printf("  Certifique-se de que todas as palavras estejam escritas corretamente.\n\n\n\n\n\n");
     }
            
     system("PAUSE");
     system("cls");
}

No caso consegui resolver ele para (funcionar),mas a parte de FILE* que não consigo entender onde posso adicionar ela

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@Shifther         FILE  eh para criar arquivo , para caso voce queira preservar os dados digitados  e algum tempo depois pegar esses dados no arquivo ,   o fgets serve para pegar dados do srquivo  e do teclado tambem ,  mas nao gosto de usar ele pois ele pega tambem o caractere newline , e na hora de imprimir sempre pula uma linha para baixo ,  entao melhor usar mesmo o comando gets que pega tocos os caracteres digitados , mesmo uma frase inteira .

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!