Ir ao conteúdo
  • Cadastre-se
Natanael David Valim

C++ Como posso diminuir este programa para ums 250 linhas ?

Recommended Posts

Código:

Spoiler

#include <stdio.h>
#include <stdlib.h>


void linha (int);


float circulo(float dia)  //função que calcula a área do círculo 
      {float r, area, PI;
      PI=3.14159265;
      r = dia/2;
      area = PI*r*r;
      return(area);}

float losango(float D1,float D2) //função que calcula a area do losango
      {float area;
      area=(D1*D2)/2;
      return(area);}

float paralelogramo(float alt, float base)    // função que calcula a area do paralelogramo
      {float area;
      area=base*alt;
      return(area);}
     
float trapezio(float B_maior, float b_menor,float alt)  //função que calcula a area do trapézio
      {float area;
      area=((B_maior+b_menor)/2)*alt;
      return(area);}

float tri_equi(float A, float B, float C)           //função que calcula a area do triangulo equilatero
      {float area;
      area= ((A*A)/4)*1.732050808;
      return (area);}
       
float tri(float A, float B, float C)          //função que calcula a area do triangulo
      {float area;
      area=(B*A)/2;
      return(area);}

float esf(float dia)                     //função que calcula o volume da esfera
      {float r, vol;
      r=dia/2;
      vol=((4*3.14159265)/3)*r*r*r;
      return (vol);}
      
float cone(float dia, float alt)           //função que calcula o volume do cone
      {float r, vol;
      r=dia/2;
      vol=(3.14159265/3)*r*r*alt;
      return(vol);}
      
float cilindro(float dia, float alt)       //função que calcula o volume do cilindro
      {float r, vol;
      r=dia/2;
      vol=3.14159265*r*r*alt;
      return(vol);}

float paral(float comp, float larg, float alt)          //função que calcula o volume do paralelepípedo
      {float vol;
      vol=comp*larg*alt;
      return(vol);}

float m_j(float num)                    //função que converte metros para jardas
      {float total;
      total= num*1.09361;
      return (total);}
                   
float j_m(float num)                    //função que converte jardas para metros
      {float total;
      total= num/1.09361;
      return(total);}

float cmcub_polcub(float num)         //função que converte cent. cub. para pol cub
      {float total;
      total=num/16.387064;  
      return(total);}

float polcub_cmcub(float num)        //função que converte pol cub. para cent. cub
      {float total;
      total= num*16.387064; 
      return(total);}

float l_gl(float num)              //função que converte litros em galoes
      {float total;
      total= num*0.2642;
      return(total);}

float gl_l(float num)              //função que converte galoes em litros
      {float total;
      total= num/0.2642;
      return(total);}

float kg_lib(float num)           //função que converte quilos em libras
      {float total;
      total= num*2.20462262;
      return(total);}

float lib_kg(float num)         //função que converte libras em quilos
      {float total;
      total= num/2.20462262;
      return(total);}     
      
float resp=1;      
      
      
main()
{
      int opcao;
      
            do{        //primeiro looping
                                  //menu principal
      printf("\n");
      puts  ("\n\t\xDB********** P R O G R A M A   DE   MEDIDAS **********\xDB");
      printf("\n\n \tEscolha a op%c%co desejada e em seguida tecle <ENTER>\n\n",135,198);                    
      
      printf("\n\t 1 - Calcular %crea de figuras planas.\n",160);
      printf("\t 2 - Calcular volume de s%clidos geom%ctricos.\n",162,130); 
      printf("\t 3 - Convers%co de medidas.\n",198);
      puts("\t 4 - Sair");
      printf("\n\n\t D%cvidas?????\n\n",163);
      puts("\t 5 - Manual");
      printf("\n\t\t\t\tOp%c%co: ",135,198);
      scanf ("%d", &opcao);
      
      
      fflush(stdin);          //limpa o buffer do teclado
      system("cls");          //limpa a tela
      
      switch (opcao)          //escolha
      { 
                     
                case 1:
                do            //segundo looping
                { 
                        //submenu 1
            printf("\n");
      printf  ("\n\t\t\xDB********** %cREA DE FIGURAS PLANAS **********\xDB",181);
           
           
            printf("\n\tEscolha a op%c%co desejada:\n",135,198);
            printf("\n\t 1 - C%crculo.\n",214);
            puts("\t 2 - Losango.");
            puts("\t 3 - Paralelogramo.");
            printf("\t 4 - Trap%czio.\n",130);
            printf("\t 5 - Tri%cngulo.\n\n",131);
            puts("\t 0 - Retornar para o <MENU>\n\n\n");
            printf("\t\t\t\t\tOp%c%co: ",135,198);
            scanf("\n\t%d", &opcao);
      
      fflush(stdin);          
      system("cls");
      
      float dia, area, d1, d2, base, alt;          //declaração das 
      float A, B, C;                                 // variáveis que serão usadas no switch
      
      switch(opcao)    //segunda escolha    
      {
      case 1:           
           
           printf("\n");
      printf  ("\n\t\t\xDB********** %cREA DO C%cRCULO **********\xDB",181,214);
                    
           printf("\n");
           printf("\n\tDigite o di%cmetro do c%crculo: ",131,214);
           scanf("%f", &dia);
           area= circulo(dia);
           printf("\n\n\n\n\n\t>>>  A %crea do c%crculo %c:%f  <<<",181,214,130,area);
           printf("\n\n\t Pressione <ENTER> para retornar ao menu.");
           getch(); break;
                  printf("\n\n\t Voc%c voltar%c para o menu iniciar, tecle <ENTER> para continuar...\n\n",136,160);
           
            
     case 2:
          
           printf("\n");
      printf  ("\n\t\t\xDB********** %cREA DO LOSANGO **********\xDB",181);
           
           printf("\n\tDigite um n%cmero para diagonal 1: ",163); scanf("%f", &d1);
           printf("\n\tDigite um n%cmero para diagonal 2: ",163); scanf("%f", &d2);
           area= losango(d1,d2);
           printf("\n\n\t>>>  A %crea do losango %c:%f  <<<",181,130,area);
           printf("\n\n\t\t Pressione <ENTER> para retornar ao menu.");
           getch(); break;
     
     case 3:
          
          printf("\n");
      printf  ("\n\t\t\xDB********** %cREA DO PARALELOGRAMO **********\xDB",181);
           
          printf("\n\n\n\tDigite um n%cmero para a base: ",163); scanf("%f", &base);
          printf("\n\tDigite um n%cmero para a altura: ",163); scanf("%f", &alt);
          area=paralelogramo(base,alt);
          printf("\n\n\t>>> A %crea do paralelogramo %c:%f <<<",181,130,area);
          printf("\n\n\t\t Pressione <ENTER> para retornar ao menu.");
          getch(); break;
          
     case 4:
          
          printf("\n");
      printf  ("\n\t\t\xDB********** %cREA DO TRAP%CZIO **********\xDB",181,144);
              
          printf("\n\tDigite um valor para a base maior: "); scanf("%f", &B);
          printf("\n\tDigite um valor para a base menor: "); scanf("%f", &base); 
          printf("\n\tDigite um valor para a altura: "); scanf("%f", &alt);
          area=trapezio(B,base,alt);
          printf("\n\n\t>>> A %crea do trap%czio %c:%f <<<",181,130,130,area);
          printf("\n\n\t\t Pressione <ENTER> para retornar ao menu.");
          getch(); break;
     
     case 5:
          printf("\n");
          printf  ("\n\t\t\xDB********** %cREA DO TRI%cNGULO **********\xDB",181,182);
          
          printf("\n\tDigite o lado A do tri%cngulo: ",131); scanf("%f", &A);
          printf("\n\tDigite o lado B do tri%cngulo: ",131); scanf("%f", &B);
          printf("\n\tDigite o lado C do tri%cngulo: ",131); scanf("%f", &C);
           if(A==B && B==C)
          {
             area=tri_equi(A,B,C);
             printf(" \n\n\n\t\t%c um Tri%cngulo Equil%ctero >>> %crea: %f <<<",144,131,160,160,area);
             printf("\n\n\t\t Pressione <ENTER> para retornar ao menu."); getch();
             }
             else
                 if(A!=B && B!=C && A!=C)
            {
              area=tri(A,B,C);
              printf("\n\n\n\t\t%c um Tri%cngulo Escaleno >>> %crea: %f <<<",144,160,160,area);
              printf("\n\n\t\t Pressione <ENTER> para retornar ao menu.");
              getch();
              }
                   else 
                    if(A==C && A!=B && B!=C||A==B&&A!=C&&B!=C||C==B&&C!=A&&B!=A)
                    {
                      area=tri(A,B,C);
                      printf("\n\n\n\t\t%c um Tri%cngulo Is%csceles >>> %crea: %f <<<",144,160,162,160,area);    
                      printf("\n\n\t\t Pressione <ENTER> para retornar ao menu.");
                      getch();
                      }
                      
                      break;
    case 0: break;
         
    default:
                  printf    ("\n\n ******************************* op%c%co inv%clida ********************************\n\n",135,198,160);
                  printf ("\n\n\t\tPressione <ENTER> para retornar ao menu");
                  getch();
      }           //fecha o "segunda escolha"
           
      system("cls"); 
      }              //fecha o segundo looping
      while (opcao!=0);            //condição para voltar para o submenu 1
      break;           //vai direto para o fim do primeiro switch sem testar os demais case      
                  printf("\n\n\t Voc%c voltar%c para o menu iniciar, tecle <ENTER> para continuar...\n\n",136,160);
             
              case 2:
                   
                   do        //terceiro looping
                   {
                             // submenu 2
                             
          printf("\n");
          printf  ("\n\t\t\xDB********** VOLUME DE S%cLIDOS GEOM%CTRICOS **********\xDB",227,144);
          
                        
                             
                       
                   printf("\n\t Escolha a op%c%co desejada:\n",135,198);
                   puts("\n\t 1 - Esfera");
                   puts("\t 2 - Cone Circular");
                   puts("\t 3 - Cilindro");
                   puts("\t 4 - Paralelepipedo");
                   puts("\t 0 - Retornar");
            
            printf("\n\t\t\t\tOp%c%Co: ",135,198); scanf("%d", &opcao);
          
    fflush(stdin);
    system("cls");
    
    float dia, vol, alt, comp, larg;
    switch (opcao)
    {
    case 1:
         
           printf("\n");
          printf  ("\n\t\t\xDB********** 1. VOLUME DA ESFERA **********\xDB");
         
           printf("\n\n\tDigite um n%cmero para o di%cmetro: ",163,131); scanf("%f", &dia);
                vol=esf(dia);         
           printf("\n\n\n\t>>> O volume da esfera %c: %f. <<<",130,vol);

           printf("\n\n\n\t Pressione <ENTER> para retornar ao menu.");
           getch(); break;
       
    case 2:
         
         printf("\n");
          printf  ("\n\t\t\xDB********** 2. VOLUME DO CONE C%cRCULAR **********\xDB",214);
          
           printf("\n\n\tDigite um n%cmero para o di%cmetro da base:  ",163,131); scanf("%f",&dia);
           printf("\n\n\tDigite um m%cmero para a altura:  ",163); scanf("%f",&alt);
           vol=cone(dia,alt); 
           printf("\n\t>>> O volume do cone circular %c: %f. <<<",130,vol );
           printf("\n\n Pressione <ENTER> para retornar ao menu.");
           getch(); break;
               
    case 3:
          printf("\n");
          printf  ("\n\t\t\xDB********** 3. VOLUME CILINDRO **********\xDB",181,182);
          
           printf("\n\n\tDigite um n%cmero para o di%cmetro: ",163,131); scanf("%f",&dia);
           printf("\n\tDigite um n%cmero para a altura:  ",163); scanf("%f",&alt);
           vol= cilindro(dia,alt);
           printf("\n\t>>> O volume do cilindro %c: %f <<<",130,vol);
           printf("\n\n Pressione <ENTER> para retornar ao menu.");
           getch(); break;
           
    case 4:
           printf("\n");
           printf  ("\n\t\t\xDB********** 4. VOLUME DO PARALELEPIPEDO **********\xDB");
                   
           printf("\n\tDigite um n%cmero para o comprimento:  ",163); scanf("%f",&comp);
           printf("\n\tDigite um n%cmero para a largura:  ",163); scanf("%f",&larg);
           printf("\n\tDigite um n%cmero para a altura:  ",163); scanf("%f",&alt);
           vol=paral(comp, larg, alt);
           printf("\n\t>>> O volume do paralelepipedo %c: %f. <<<",130,vol);
           printf("\n\n Pressione <ENTER> para retornar ao menu.");
           getch(); break;
    
    case 0:
           break;       

    default:
           printf ("\n\n ******************************* Op%c%co Inv%clida *******************************",135,198,160);
           printf ("\n\n\tPressione <ENTER> para retornar ao menu.");
           getch();
            }              //fecha o terceiro switch 
            
             system("cls");
             
              }
           while(opcao!=0);        //condição para voltar para o submenu 2
           break;   
        
           case 3:
           do       
           {
                                   //submenu 3
                                   
          printf("\n");
          printf  ("\n\t\t\xDB********** CONVERS%cO DE MEDIDAS **********\xDB",199);
                                       
      printf("\n\t\t\t Escolha uma op%c%co\n",135,198);
      puts("\n Converter:\n");
      printf(" 1 - Metros para Jardas.");                                   printf("\t\t\t 5 - Litros para Gal%ces.\n",228);
      printf("\n 2 - Jardas para Metros.");                                 printf("\t\t\t 6 - Gal%ces para Litros.\n",228);
      printf("\n 3 - Cent%cmetros c%cbicos para Polegadas c%cbicas.",161,163,163);  printf(" 7 - Quilogramas para Libras.\n");
      printf("\n 4 - Polegadas c%cbicas para Cent%cmetros c%cbicos.",163,161,163);  printf(" 8 - Libras para Quilogramas.\n");
            
            
            puts("\n\n\t\t 0 - Retornar");
            printf("\t\t\t\t\tOp%c%co: ",135,198);
            scanf("\n\t%d", &opcao);
      
      system("cls");      
      fflush(stdin);
      
      float num, result;
      
      switch (opcao)
      {
             case 1:
                  
                  printf("\n");
                  printf  ("\n\t\t\xDB********** 1. METROS EM JARDAS **********\xDB");
          
          
                  printf("\n\n\tDigite o valor em metros para ser convertido: ");
                  scanf("%f", &num);
                  result= m_j(num);
                  printf("\n\n\t\t %f m = %f yd", num, result);
                  printf("\n\n Pressione <ENTER> para retornar ao menu.");
                  getch(); break;
           
             case 2:
                  printf("\n");
                  printf  ("\n\t\t\xDB********** 2. JARDAS EM METROS **********\xDB");
          
                  printf("\n\n\tDigite o valor em jardas a ser convertido: ");
                  scanf("%f", &num);
                  result= j_m(num);
                  printf("\n\n\t\t %f yd = %f m", num, result);
                  printf("\n\n Pressione <ENTER> para retornar ao menu.");
                  getch(); break;
             
             case 3:
                  
                  printf("\n");
                  printf  ("\n\t\xDB********** 3. CENT%cMETROS C%cBICOS EM POLEGADAS C%cBICAS **********\xDB",214,233,233);
                
                  printf("\n\n\tDigite o valor em cent%cmetros c%cbicos a ser convertido: ",161,163);
                  scanf("%f", &num);
                  result= cmcub_polcub(num);
                  printf("\n\n\t\t %f cm3 = %f in3", num, result);
                  printf("\n\n Pressione <ENTER> para retornar ao menu.");
                  getch(); break;
           
             case 4:
                  printf("\n");
                  printf("\n\t\xDB********** 4. POLEGADAS C%cBICAS EM CENT%cMETROS C%cBICOS **********\xDB",233,214,233);
          
                  printf("\n\tDigite o valor em polegadas c%cbicas a ser convertido: ",163);
                  scanf("%f", &num);
                  result= polcub_cmcub(num);
                  printf("\n\n\t\t %f in3 = %f cm3", num, result);
                  printf("\n\n Pressione <ENTER> para retornar ao menu.");
                 getch(); break;
            
            case 5:
                 printf("\n");
                 printf  ("\n\t\t\xDB********** LITROS EM GAL%cES **********\xDB",229);
          
                 printf("\n\tDigite o valor em litros a ser convertido: ");
                 scanf("%f", &num);
                 result= l_gl(num);
                 printf("\n\n\t\t %f L = %f gal", num, result);
                 printf("\n\n Pressione <ENTER> para retornar ao menu.");
                 getch(); break;
           
            case 6:
                 printf("\n");
                 printf("\n\t\t\xDB********** 6. GAL%cES EM LITROS **********\xDB",229);
          

                 printf("\n\tDigite o valor em galoes a ser convertido: ");
                 scanf("%f", &num);
                 result= gl_l(num);
                 printf("\n\n\t\t %f gal = %f L", num, result);

                 printf("\n\n Pressione <ENTER> para retornar ao menu.");
                 getch(); break;
           
           case 7:
                printf("\n");
                printf  ("\n\t\t\xDB********** QUILOGRAMAS EM LIBRAS **********\xDB");
          
                printf("\n\tDigite o valor em quilogramas a ser convertido: ");
                scanf("%f", &num);
                result= kg_lib(num);
                printf("\n\n\t\t %f kg = %f lb", num, result);
                printf("\n\n Pressione <ENTER> para retornar ao menu.");
                getch(); break;                                                                                                               
           
           case 8:
                printf("\n");
                printf  ("\n\t\t\xDB********** 8. LIBRAS EM QUILOGRAMAS **********\xDB");
                   
                printf("\n\tDigite o valor em libras a ser convertido: ");
                scanf("%f", &num);
                result= lib_kg(num);
                printf("\n\n\t\t %f lb = %f kg", num, result);
                printf("\n\n Pressione <ENTER> para retornar ao menu.");
                getch(); break;
           
           case 0:break;
                  
           default:
           printf ("\n\n ******************************* opcao inv%clida ********************************\n\n",160);
           printf ("\n\n\n\t\t\t\tPressione <ENTER> para retornar ao menu.");
           getch();
           }
           
           system("cls");
           }
           while(opcao!=0);      //cond. volta para o terceiro submenu
           break;   
           
             case 4:
                  printf("\n");
                printf  ("\n\t\xDB********** Deseja mesmo sair do programa? *********\xDB");
                  printf("\tDigite [1] para <SAIR> / Digite [0] para voltar para o <MENU>");
                  
                  printf("\n\n\n\n\t\t\t\tOp%c%co: ",135,198);
      scanf ("%d", &opcao);
      
      
      fflush(stdin);          //limpa o buffer do teclado
      system("cls");          //limpa a tela
      
      switch (opcao)          //escolha
      
      case 1:do{

                  return(0);
                  
                  }
                  while(resp==1);
                  
                  
                  printf("\n\n\t Voc%c voltar%c para o menu iniciar, tecle <ENTER> para continuar...\n\n",136,160);
           
  
                  break;
                  
                  
                  case 5:
                       
                       printf("\n");
                       printf("\t\t\tManual para o usu%crio do programa.\n\n",160);
                       printf("\n1%c Para qualquer op%c%co desejada digite um n%cmero correspondente.\n ",167,135,198,163);
                       printf(" \n2%c Depois de escolhida a op%c%co tecle <ENTER>.\n ",167,135,198);
                       printf("\n3%c Para qualquer tela existi uma op%c%co de voltar para a tela anterior.",167,135,198);
                       
                       printf("\n\n\n\t\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t Suporte Faculdade Paulo Set%cbal",163);
                        printf("\n\n Pressione <ENTER> para retornar ao menu.");
                                                break;
                       
                  
             default:
             printf ("\n\n ******************************* op%c%co inv%clida ********************************\n\n",135,198,160);
             printf ("\n\t\tPressione <ENTER> para retornar ao menu.");
             }      //fecha o primeito switch
             getch();
             system("cls");
             
}            //fecha o primeiro looping
while (opcao!=4);

 return 0;
 
}

Apresentação do trabalho.zip

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×