Ir ao conteúdo
  • Cadastre-se

C Criação de Cardápio em C


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 consigo fazer com que após escolher se o cliente deseja escolher a bebida ou a pizza, ele siga para o submenu relacionado, segue o código que fiz até agora, já pesquisei em diversos lugares mas n consegui encontrar a solução.


 

#include <stdio.h>
#include <stdlib.h>
#include <locale.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 ("Digite a opção desejada: \n");
    scanf("%d", &op);
    return op;
}

int controladorapizza (int op) {
int oppizza;

switch (op){

case 1:
    printf ("1 - 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 ("Você adicionou pizza de Mussarela a sua bandeja!");

          break;
      case 2:
          printf ("Você adicionou pizza de Calabresa a sua bandeja!");

          break;
      case 3:
          printf ("Você adicionou pizza de Quatro Queijos a sua bandeja!");

          break;
      case 4:
          printf ("Você adicionou pizza de Portuguesa a sua bandeja!");

          break;

      default:
        printf ("Valor incorreto, tente novamente");
    }
    break; }
return oppizza;
}
int controladorabebida (int op) {
int opbebida, s, rl, r;
switch (op){
    case 2:
    printf ("1 - Suco - 5,00 R$ \n");
    printf ("2 - Refrigerante Lata - 4,00 R$");
    printf ("3 - Refrigerante 2L - 13,00 R$");
    printf ("Digite a opção desejada: \n");
    scanf ("%d", &opbebida);

    switch (opbebida){
    case 1:
    printf ("Informe o sabor do suco: ");
    scanf ("%d", &s);

    break;

    case 2:
    printf ("Informe o refrigerante: ");
    scanf ("%d", &rl);

    break;

    case 3:
    printf ("Informe o refrigerante: ");
    scanf ("%d", &r);

    break;

    default:
    printf ("Valor incorreto, tente novamente");}
    }

    return opbebida;

}

    void main () {
    setlocale(LC_ALL, "");
    int op, oppizza, opbebida;

    entrada();
    op = menu(op);
    oppizza = controladorapizza(oppizza);
    opbebida = controladorabebida(opbebida);
    }

 

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 uma função específica para isso.

 

Obrigado!

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

@Thiago Hartmann    não pode usar void main ,  use int main ,  e esse submenu que você quer pode ser colocado lá dentro da função main , logo depois de voltar da chamada do menu , coloque um switch op , com o case de opção 1 ou 2 , sendo que a opção 1 é a controladoradepizza e a opção 2 é controladoradebebidas .   assim  :

#include <conio.h>
int menu(){
    int op;
    printf("\n====  Cardápio ====\n\n");
    printf(" 0 - Sair Do Programa\n"  );  
    printf(" 1 - Pizzas\n"            );
    printf(" 2 - Bebidas\n"           );
    printf("Digite a opção desejada: ");
    op = getch()-48                    ;
    printf("\n"                       );
    return       op                    ;
}
int main(){
    setlocale(LC_ALL,"");
    int op,oppizza,opbebida;
    entrada();
    do{
        op = menu(op);
        switch(op){
        case 1:
            controladorapizza(oppizza);
            break;
        case 2:
            controladorabebida(opbebida);
            break;
        }
    }while(op != 0 );
    printf("\n\n\n");
    return 0;
}

 

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

@KXSY     não , ali está seguindo o que está escrito no menu , e que seja feito da forma certa , mas se alguém quiser digitar algo que não pode ,  claro que vai dar ruim  , aí para evitar precisaria  fazer mais algumas linhas de código para compensar .   mas sim o último três será ignorado , pois o getch() só pegar um caractere de cada vez , assim se digitar dois ou três números , apenas o primeiro fará efeito .

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!