nanquim 0 Denunciar post Postado Maio 4, 2015 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
_Isis_ 202 Denunciar post Postado Maio 4, 2015 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
nanquim 0 Denunciar post Postado Maio 5, 2015 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
_Isis_ 202 Denunciar post Postado Maio 5, 2015 #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
nanquim 0 Denunciar post Postado Maio 6, 2015 Í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