Ir ao conteúdo
  • Cadastre-se

C Soma de produtos em um cardápio através de função


Thiago Hartmann

Posts recomendados

Olá a todos!
Sou iniciante em C, estou cursando o 1º semestre em ads na faculdade, estou fazendo um trabalho onde preciso elaborar um software para uma pizzaria, contendo cardápio, preço dos produtos, login e etc...

estou com um problema em relação ao cardápio, onde não sei como somar os valores dos itens escolhidos pelo "cliente" através do cardápio por funções se puderem me ajudar em relação a como colocar os preços referentes a cada produto para que eles somem automaticamente quando o cliente escolher o que deseja, pois não sei se devo fazer como constantes globais, ou somente dentro da função, ja tentei de diversas maneiras, mas não consigo concluir. Atualmente o código se encontra assim

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


void entrada (){
printf ("*************************************\n");
printf ("****          Bem Vindo          ****\n");
printf ("****              a              ****\n");
printf ("****          UNIPIZZA           ****\n");
printf ("*************************************\n");
}

 int menu (){
    int op;
    printf (" \nCardápio \n\n");
    printf ("1 - Pizzas. \n");
    printf ("2 - Bebidas. \n");
    printf ("3 - Finalizar o pedido.\n");
    printf ("Digite a opção desejada: \n");
    scanf("%d", &op);
    getch()-48;
    printf ("\n");
    ;
    return op;
}

int controladorapizza (int op) {
int oppizza, m, c, fc,qq, p;

    printf ("\n1 - Pizza Mussarela - 18,00 R$ \n");
    printf ("2 - Pizza Calabresa - 18,00 R$ \n");
    printf ("3 - Pizza Franco com Catupiry - 18,00 R$ \n");
    printf ("4 - Pizza Quatro Queijos - 22,00 R$ \n");
    printf ("5 - Pizza Portuguesa - 22,00 R$ \n");
    printf ("Digite a opção desejada: \n");
    scanf ("%d", &oppizza);

    switch (oppizza){
      case 1:
          printf ("\nVocê adicionou pizza de Mussarela a sua bandeja!\n");
          break;
      case 2:
          printf ("\nVocê adicionou pizza de Calabresa a sua bandeja!\n");

          break;
      case 3:
          printf ("\nVocê adicionou pizza de Frango com Catupiry a sua bandeja!\n");

          break;
      case 4:
          printf ("\nVocê adicionou pizza de Quatro Queijos a sua bandeja!\n");

          break;

      case 5:
          printf ("\nVocê adicionou pizza de Portuguesa a sua bandeja!\n");

          break;

      default:
        printf ("\nValor incorreto, tente novamente\n");

    break;}
return oppizza;
}
int controladorabebida (int op) {
int opbebida, s, sv, rl, rlv, r, rv;
char str [10];

    printf ("\n1 - Suco - 5,00 R$ \n");
    printf ("2 - Refrigerante Lata - 4,00 R$\n");
    printf ("3 - Refrigerante 2L - 13,00 R$\n");
    printf ("Digite a opção desejada: \n");
    scanf ("%d", &opbebida);

    switch (opbebida){
    case 1:
    printf ("\nInforme o sabor do suco: \n");
    scanf ("%s", &str);
    printf ("\nVocê adicionou suco de %s a sua bandeja!\n", str);


    break;

    case 2:
    printf ("\nInforme o refrigerante lata: ");
    scanf ("%s", &str);
    printf ("\nVocê adicionou %s lata a sua bandeja!\n", str);

    break;

    case 3:
    printf ("\nInforme o refrigerante 2 Litros: ");
    scanf ("%s", &str);
    printf ("\nVocê adicionou %s 2 Litros a sua bandeja!\n", str);

    break;

    default:
    printf ("\nComando incorreto, tente novamente\n");
    break;}

    return opbebida;

}


int main(){
    setlocale(LC_ALL,"");
    int op,oppizza,opbebida, total;
    const int entrega = 5, pizzam = 18, pizzac = 18, pizzafc = 18, pizzaqq = 22, pizzap = 22, suco = 5, refrilata = 4, refri2 = 13;
    entrada();
    do{
        op = menu(op);
        switch(op){
        case 1:
        oppizza =  controladorapizza(oppizza);
            break;
        case 2:
        opbebida = controladorabebida(opbebida);
            break;

        total = entrega+opbebida+oppizza;
        printf ("O total de seu pedido é: %d", total);
        }
    }while(op != 3 );
         total = entrega+opbebida+oppizza;
        printf ("O total de seu pedido é: %d", total);
    printf("\n\n\n");
    return 0;
}

Obrigado!

Link para o comentário
Compartilhar em outros sites

//int controladorapizza (int op) {
float controladorapizza (int op) {
//int oppizza, m, c, fc,qq, p;
int oppizza;
float precos[5] = {18, 18, 18, 22, 22};
(...)
//return oppizza;
return precos[oppizza-1];
(...)
int main(){
setlocale(LC_ALL,"");
int op,oppizza,opbebida;//, total;
float total = 0;

Faça o meso para as bebidas.

Link para o comentário
Compartilhar em outros sites

@Flávio Pedroza Obrigado, deu certo em relação as pizzas, porém quando vou fazer em relação as bebidas, da erro devido as strings na função, eu teria que fazer outra função no caso? ou tem como fazer na mesmo? Desculpe se a pergunta for "*****", mas estava tentando fazer funcionar aqui desde sua dica!

Link para o comentário
Compartilhar em outros sites

Consegui resolver, o código ficou assim:

 

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


void entrada (){
printf ("*************************************\n");
printf ("****          Bem Vindo          ****\n");
printf ("****              a              ****\n");
printf ("****          UNIPIZZA           ****\n");
printf ("*************************************\n");
}

 int menu (){
    int op;
    printf (" \nCardápio \n\n");
    printf ("1 - Pizzas. \n");
    printf ("2 - Bebidas. \n");
    printf ("3 - Finalizar o pedido.\n");
    printf ("Digite a opção desejada: \n");
    scanf("%d", &op);

    printf ("\n");
    ;
    return op;
}

int controladorapizza (int op) {
int oppizza;

    printf ("\n1 - Pizza Mussarela - 18,00 R$ \n");
    printf ("2 - Pizza Calabresa - 18,00 R$ \n");
    printf ("3 - Pizza Franco com Catupiry - 18,00 R$ \n");
    printf ("4 - Pizza Quatro Queijos - 22,00 R$ \n");
    printf ("5 - Pizza Portuguesa - 22,00 R$ \n");
    printf ("Digite a opção desejada: \n");
    scanf ("%d", &oppizza);

    switch (oppizza){
      case 1:
          printf ("\nVocê adicionou pizza de Mussarela a sua bandeja!\n");
          break;
      case 2:
          printf ("\nVocê adicionou pizza de Calabresa a sua bandeja!\n");

          break;
      case 3:
          printf ("\nVocê adicionou pizza de Frango com Catupiry a sua bandeja!\n");

          break;
      case 4:
          printf ("\nVocê adicionou pizza de Quatro Queijos a sua bandeja!\n");

          break;

      case 5:
          printf ("\nVocê adicionou pizza de Portuguesa a sua bandeja!\n");

          break;

      default:
        printf ("\nValor incorreto, tente novamente\n");

    break;}
return oppizza;
}
int controladorabebida (int op) {
int opbebida;
char str [10];

    printf ("\n1 - Suco - 5,00 R$ \n");
    printf ("2 - Refrigerante Lata - 4,00 R$\n");
    printf ("3 - Refrigerante 2L - 13,00 R$\n");
    printf ("Digite a opção desejada: \n");
    scanf ("%d", &opbebida);

    switch (opbebida){
    case 1:
    printf ("\nInforme o sabor do suco: \n");
    scanf ("%s", &str);
    printf ("\nVocê adicionou suco de %s a sua bandeja!\n", str);


    break;

    case 2:
    printf ("\nInforme o refrigerante lata: ");
    scanf ("%s", &str);
    printf ("\nVocê adicionou %s lata a sua bandeja!\n", str);

    break;

    case 3:
    printf ("\nInforme o refrigerante 2 Litros: ");
    scanf ("%s", &str);
    printf ("\nVocê adicionou %s 2 Litros a sua bandeja!\n", str);

    break;

    default:
    printf ("\nComando incorreto, tente novamente\n");
    break;}

    return opbebida;

}

int somapizza (int oppizza){
int precopizza;

 switch (oppizza){
      case 1:
          precopizza = 18;
          break;
      case 2:
          precopizza = 18;

          break;
      case 3:
          precopizza = 18;

          break;
      case 4:
          precopizza = 22;

          break;

      case 5:
          precopizza = 22;

          break;}
          return precopizza;
          }


int somabebida (int opbebida){
int precobebida;

 switch (opbebida){
      case 1:
          precobebida = 5;
          break;
      case 2:
          precobebida = 4;

          break;
      case 3:
          precobebida = 13;

          break;
    }
          return precobebida;
          }

int main(){
    setlocale(LC_ALL,"");
    int op,oppizza,opbebida;
    float tpiz = 0;
    float tbeb = 0;
    float totalpedido;
    int precopizza,precobebida;
    entrada();
    do{
        op = menu(op);
        switch(op){
        case 1:
        oppizza =  controladorapizza(oppizza);
        precopizza = somapizza(oppizza);
        tpiz = precopizza + tpiz;
            break;
        case 2:
        opbebida = controladorabebida(opbebida);
        precobebida = somabebida(opbebida);
        tbeb = precobebida + tbeb;

            break;
        }

    }while(op != 3 );
    totalpedido = tpiz+tbeb;
    printf ("O valor total de seu pedido é: %.2f", totalpedido);
    printf("\n\n\n");
    return 0;
}

Obrigado a todos pela ajuda!
 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...