Ir para conteúdo

POWERED BY:

Arquivado

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

nanquim

Menu com Contagem de Opções - C++

Recommended Posts

Olá, bom dia. Sou iniciante e estou tendo problemas com um exercício.

Preciso criar um menu em c++, até aí tudo bem. Só que no final preciso que o programa exiba a quantidade de vezes que cada opção foi escolhida.

Li alguma coisa sobe aninhar o switch num while, mas não entendi muito bem e não acho mais o link. Segue o que eu fiz até agora [e começo a achar que não é a melhor solução] e obrigada desde já.

Ah, eu incluí uma variável "opção" que eu vi num outro fórum, mas não funciona porque, e se o user escolher mais de uma? aí não presta...

 

#include <iostream>
using namespace std;

int main (void); {

 float vfabrica, vadd, vtot,ipi;
 int opcao;

 cout<<"\nEntre com o valor de fábrica do carro.\n";
 cin>>vfab;

 cout<<"\nQuais adicionais você quer?\t\t0 - Nenhum opcional\t1 - Trio elétrico\t2 - Ar condicionado\t3 - Direção hidráulica\t4 - Completo (trio, ar e direção)\n";
 switch(vadd)
  case 0:
  cin<<opcao;
  cout<<"\nNenhum adicional.\t";
  vtot=vfab;
  break;
  case 1:
  cin<<opcao;
  vadd=vfab * 1.02;
  cout<<"Trio elétrico = ",vadd,"\t";
  vtot=vfab + vadd;
  break;
  case 2:
  cin<<opcao;
  vadd=vfab * 1.02;
  cout<<"Ar condicionado = ",vadd,"\t";
  vtot=vfab + vadd;
  break;
  case 3:
  cin<<opcao;
  vadd=vfa * 1.02;
  cout<<"Direção hidráulica = ",vadd,"\t";
  vtot=vfab + vadd;
  break;
  case 4:
  cin<<opcao;
  ipi=vfab * 1.08;
  vadd=ipi * 1.06;
  desc=vadd / 1.35;
  vtot=desc;
  cout<<"Completo = ",vadd,"\t";
  break;
 cout<<"\nValor total do carro com adicionais: ",vtot;
 cout<<"\nOpção escolhida:"

Compartilhar este post


Link para o post
Compartilhar em outros sites

1- Enquanto a opção digitada não for a de sair o programa segue. Transforme isso em um while.

2- Use duas variáveis de opção se for o caso.

3- Assim que a opção for lida, incremente o contador da ocorrência da opção.

É mais fácil se usar array p/ os contadores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, Isis. Obrigada por responder, e tão rápido. Então, o professor ainda não falou nada sobre array e o que eu li na internet me confundiu um pouco. De qualquer forma, refiz com o while... Tem como me dizer se eu tô viajando?

 

float vfabrica, vadd, desc, vtot
int cont1, cont2............
char resp


cout<<Entre valor de fábrica
cin>>vfab


//contadores:
cont0 = 0
cont1 = 0
cont2 = 0
cont3 = 0
cont4 = 0


cout<<"opções do menu - 0 a 4"


do
vadd = 2% do vfab
vtot = vfab + vadd


//fiz isso pra cada um ter um contador:
if (op == 1)
cont1 ++
if (op == 2)
cont2 ++ 
if (op == 3)
cont3 ++


else
if(op == 0)
cout<<Nenhum adicional
vtot = vfab
if(op == 4)
vadd = 6%
vparc = vfab + vadd + ip1
vtot = vparc / 1.35(desconto)


cout<<"\nDeseja continuar?(s/n)"


while(resposta == n || resposta == N)




SAÍDAS:
vtot
contadores

Compartilhar este post


Link para o post
Compartilhar em outros sites


#include <iostream>

using namespace std;

 

enum {NENHUM, TRIO, AR, DIRECAO, COMPLETO, SAIR};

 

void menu_opcoes() {

cout << "0- NENHUM\n";

cout << "1- Trio elétrico\n";

cout << "2- Ar-condicionado\n";

cout << "3- Direção hidráulica\n";

cout << "4- Completo (Trio + Ar + Direção)\n";

cout << "5- Sair\n";

cout << ">>";

}

 

float calcular_valor_total(int opcao, float valor_fabrica) {

float valor_total;

if (opcao == NENHUM) valor_total = valor_fabrica;

if (opcao == TRIO || opcao == AR || opcao == DIRECAO) valor_total = valor_fabrica + valor_fabrica*1.02F;

if (opcao == COMPLETO) {

float valor_ipi = valor_fabrica * 1.08F;

float extra_adicional = valor_ipi * 1.06F;

float valor_desconto = extra_adicional/1.35F;

valor_total = valor_desconto;

}

return valor_total;

}

 

 

int main (void) {

 

float valor_fabrica, valor_total;

int opcao=-1;

int cont_nenhum = 0, cont_trio = 0, cont_ar = 0, cont_direcao = 0, cont_completo = 0;

 

while (opcao != SAIR) {

cout << "Informe o valor de fábrica do carro:";

cin >> valor_fabrica;

 

 

menu_opcoes();

cin >> opcao;

 

if (opcao < NENHUM || opcao > SAIR) {

cout << "Opção inválida\n";

} else if (opcao >= NENHUM && opcao < SAIR) {

 

if (opcao == NENHUM) {cont_nenhum++;}

else if (opcao == TRIO) {cont_trio++;}

else if (opcao == AR) {cont_ar++;}

else if (opcao == DIRECAO) {cont_direcao++;}

else if (opcao == COMPLETO) {cont_completo++;}

 

valor_total = calcular_valor_total(opcao, valor_fabrica);

cout << "Valor total do carro: " << valor_total << endl;

}

};

 

cout << "Contador das escolhas:" << endl;

cout << "NENHUM = " << cont_nenhum << endl;

cout << "TRIO = " << cont_trio << endl;

cout << "AR = " << cont_ar << endl;

cout << "DIRECAO = " << cont_direcao << endl;

cout << "COMPLETO = " << cont_completo << endl;

return 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ísis, que lindo! Não vou copiar porque me sinto culpada, tô usando como "inspiração" pra refazer o meu [e também é suspeito eu ter ficado esperta de terça pra quarta...].

 

Obrigada, flor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.