Ola, eu precisava de ajuda com uma maquina de snaks, eu já fiz um codigo inicial, mas preciso de adicionar mais umas coisas:
1) Criar uma estrutura produto para guardar os dados relativos a designação, preço, quantidade em stock, total de quantidade vendida de todos os produtos disponibilizados na máquina; 2) Criar um procedimento/função para configurar os produtos disponíveis na máquina, acedido através da opção -99; 3) O menu de produtos a exibir na máquina deverá ser construído dinamicamente através do dados armazenados na estrutura de dados (designação).
int op, custo=0, moeda, creditos;
do {
//exibir o menu de produtos
system("cls");
printf("\t");
printf("%c", 218);
for (int i=1; i<48; i++)
printf("%c", 196);
printf("%c", 191);
printf("\n\n\t Digite a sua op%c%co: ", 135, 198);
scanf("%d", &op);
fflush(stdin);
/*se for digitado -99 significa que a maquina vai
ser desligada, por isso não será necessário correr
o bloco de instruções do switch, ficando assim o
programa mais rápido a ser executado e finalizado*/
if (op!=-99) {
//verificar qual o produto e o respetivo custo
switch(op) {
case 1 : printf("\n\tCaf%c longo", 130);
custo=70;
break;
case 2 : printf("\n\tCaf%c curto", 130);
custo=70;
break;
case 3 : printf("\n\tCaf%c pingado", 130);
custo=80;
break;
case 4 : printf("\n\tCappucino");
custo=95;
break;
case 5 : printf("\n\tChocolate");
custo=85;
break;
case 6 : printf("\n\tGal%co", 132);
custo=95;
break;
case 7 : printf("\n\tCh%c de lim%co", 160, 132);
custo=60;
break;
/*se for digitada uma opçao invalida, então a var custo terá o valor zero,
o que significa que não se vai ser feito o pedido de inserção de moedas*/
if (custo>0) {
//controlar inserção de moedas
//colocar a variável creditos a zero
creditos=0;
do {
printf("\n\tCreditos= %d. ", creditos);
printf("Em falta = %d.", creditos<custo? custo-creditos: 0);
printf("\n\tInsira moeda: ");
scanf("%d", &moeda);
fflush(stdin);
//verificar se as moedas são as aceites pela maquina
if (moeda==5 || moeda==10 || moeda==20 || moeda==50 || moeda==100 || moeda==200)
creditos += moeda;
} while (creditos < custo);
//verificar se existe troco a dar
if (creditos > custo)
printf("\n\tO seu troco= %d.", creditos-custo);
printf("\n\tRetire a sua bebida. Obrigado.\n\n");
system("pause");
Pergunta
Miguel N
Ola, eu precisava de ajuda com uma maquina de snaks, eu já fiz um codigo inicial, mas preciso de adicionar mais umas coisas:
1) Criar uma estrutura produto para guardar os dados relativos a designação, preço, quantidade em stock, total de quantidade vendida de todos os produtos disponibilizados na máquina; 2) Criar um procedimento/função para configurar os produtos disponíveis na máquina, acedido através da opção -99; 3) O menu de produtos a exibir na máquina deverá ser construído dinamicamente através do dados armazenados na estrutura de dados (designação).
Obrigado
Codigo:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main() {
int op, custo=0, moeda, creditos;
do {
//exibir o menu de produtos
system("cls");
printf("\t");
printf("%c", 218);
for (int i=1; i<48; i++)
printf("%c", 196);
printf("%c", 191);
printf("\n\t%c (1) Caf%c longo\t\t(70 c%cntimos)\t%c", 179, 130, 136, 179);
printf("\n\t%c (2) Caf%c curto\t\t(70 c%cntimos)\t%c", 179, 130, 136, 179);
printf("\n\t%c (3) Caf%c pingado\t\t(80 c%cntimos)\t%c", 179, 130, 136, 179);
printf("\n\t%c (4) Cappucino\t\t\t(95 c%cntimos)\t%c", 179, 136, 179);
printf("\n\t%c (5) Chocolate\t\t\t(85 c%cntimos)\t%c", 179, 136, 179);
printf("\n\t%c (6) Gal%co\t\t\t(95 c%cntimos)\t%c", 179, 198, 136, 179);
printf("\n\t%c (7) Ch%c de lim%co\t\t(60 c%cntimos)\t%c", 179, 160, 198, 136,179);
printf("\n\t%c", 192);
for (int i=1; i<48; i++)
printf("%c", 196);
printf("%c", 217);
printf("\n\n\t Digite a sua op%c%co: ", 135, 198);
scanf("%d", &op);
fflush(stdin);
/*se for digitado -99 significa que a maquina vai
ser desligada, por isso não será necessário correr
o bloco de instruções do switch, ficando assim o
programa mais rápido a ser executado e finalizado*/
if (op!=-99) {
//verificar qual o produto e o respetivo custo
switch(op) {
case 1 : printf("\n\tCaf%c longo", 130);
custo=70;
break;
case 2 : printf("\n\tCaf%c curto", 130);
custo=70;
break;
case 3 : printf("\n\tCaf%c pingado", 130);
custo=80;
break;
case 4 : printf("\n\tCappucino");
custo=95;
break;
case 5 : printf("\n\tChocolate");
custo=85;
break;
case 6 : printf("\n\tGal%co", 132);
custo=95;
break;
case 7 : printf("\n\tCh%c de lim%co", 160, 132);
custo=60;
break;
default: printf("\n\tOp%c%co inv%clida.", 135, 132, 160);
custo=0;
getch();
}
/*se for digitada uma opçao invalida, então a var custo terá o valor zero,
o que significa que não se vai ser feito o pedido de inserção de moedas*/
if (custo>0) {
//controlar inserção de moedas
//colocar a variável creditos a zero
creditos=0;
do {
printf("\n\tCreditos= %d. ", creditos);
printf("Em falta = %d.", creditos<custo? custo-creditos: 0);
printf("\n\tInsira moeda: ");
scanf("%d", &moeda);
fflush(stdin);
//verificar se as moedas são as aceites pela maquina
if (moeda==5 || moeda==10 || moeda==20 || moeda==50 || moeda==100 || moeda==200)
creditos += moeda;
} while (creditos < custo);
//verificar se existe troco a dar
if (creditos > custo)
printf("\n\tO seu troco= %d.", creditos-custo);
printf("\n\tRetire a sua bebida. Obrigado.\n\n");
system("pause");
}
}
} while (op!=-99);
puts("\t\t\t---bye---");
return 0;
}
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.