preciso de ajuda para melhorar esse programa, o que posso mudar ou acrescentar ?
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
void entrada ();
int menu ();
void controladocervejas (float * preco);
void controladorabebida (float * preco);
//Função principal
int main(){
int op;
float precototal=0;
setlocale(LC_ALL,"");
//Apresentação do programa
entrada();
do{
op = menu();
switch(op){
case 1:
controladocervejas(&precototal);
break;
case 2:
controladorabebida(&precototal);
break;
}
}while(op != 3 );
//Encerrando o programa e imprimindo o custo dos produtos
printf("\n----------------------------------------\nCusto total dos produtos: %.2f\n----------------------------------------\n", precototal);
return 0;
}
void entrada (){
printf ("**************************************************\n");
printf ("**** Bem Vindo ****\n");
printf ("**** A ****\n");
printf ("**** adega do moises ****\n");
printf ("**************************************************\n");
}
int menu (){
int op;
printf (" \nCardapio \n\n");
printf ("1 - Cervejas lata 350ml \n");
printf ("2 - Refrigerantes e sucos. \n");
printf ("3 - Finalizar o pedido.\n");
printf ("Digite a opção desejada: \n");
scanf("%d", &op);
return op;
}
void controladocervejas (float * preco) { //preço é um ponteiro que apontará para a variavel cujo o endereço seja passado, no caso precototal da função int main
int opcervejas;
printf ("\n1 - Brahma Duplo malte Fardo - 33,48 R$ \n");
printf ("2 - Skol Puro malte Fardo - 30,00 R$ \n");
printf ("3 - Skol Fardo - 27,00 R$ \n");
printf ("4 - Brahma Fardo - 27,00 R$ \n");
printf ("5 - Sub zero Frado - 25,00 R$ \n");
printf ("Digite a opção desejada: \n");
scanf ("%d", &opcervejas);
switch (opcervejas){
case 1:
printf ("\nVocê adicionou Brahma Duplo malte Fardo no seu carrinho!\n");
*preco += 33,48; //Acrescentando produto no preço
break;
case 2:
printf ("\nVocê adicionou Skol Puro malte Fardo no seu carrinho!\n");
*preco += 30,00;
break;
case 3:
printf ("\nVocê adicionou Skol Fardo no seu carrinho!\n");
*preco += 27,00;
break;
case 4:
printf ("\nVocê adicionou Brahma Fardo no seu carrinho!\n");
*preco += 27,00;
break;
case 5:
printf ("\nVocê adicionou Sub zero Frado no seu carrinho!\n");
*preco += 25,00;
break;
default:
printf ("\nValor incorreto, tente novamente\n");
break;
}
}
void controladorabebida (float * preco) {
int opbebida;
char str [20];
printf ("\n1 - Suco Dell vale - 6,00 R$ \n");
printf ("2 - Refrigerante Lata - 3,00 R$\n");
printf ("3 - Refrigerante 2L - 6,99,00 R$\n");
printf ("Digite a opção desejada:");
scanf ("%d", &opbebida);
switch (opbebida){
case 1:
printf ("\nInforme o sabor do suco: \n");
scanf ("%s", str); //Não é &str, pois str já é um ponteiro, um endereço de memória
printf ("\nVocê adicionou suco de %s no seu carrinho!\n", str);
*preco += 6;
break;
case 2:
printf ("\nInforme o refrigerante lata: ");
scanf ("%s", str);
printf ("\nVocê adicionou %s lata no seu carrinho!\n", str);
*preco += 3;
break;
case 3:
printf ("\nInforme o refrigerante 2 Litros: ");
scanf ("%s", str);
printf ("\nVocê adicionou %s 2 Litros no seu carrinho!\n!\n", str);
*preco += 6,99;
break;
default:
printf ("\nComando incorreto, tente novamente\n");
break;
}
}