Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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:"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
#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;
}Í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.
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.