Ir para conteúdo
Fórum Script Brasil
  • 0

Simular maquina de venda automatica


JoaoSilvaI

Pergunta

Elabore um programa em “C++” que simule o funcionamento de uma máquina de venda automática. Deverá ter em conta as seguintes indicações:

- Só aceita moedas de 0.05, 0.10, 0.20, 0.50, 1.00 e 2.00 euros;

- Só dará troco se tiver moedas suficientes para tal;

- Inicialmente a máquina deve ter 5 moedas de 0.05, 0.10, 0.20, 0.50 euros; - Deve vender 6 produtos diferentes;

- Inicialmente deve estar carregada com 5 unidades de cada produto; - Deve dar indicações de produto esgotado e troco indisponível.

A máquina deve permitir escolher o modo Utilizador ou Manutenção. No primeiro, o utilizador deverá introduzir uma quantia, selecionar produto, receber produto e troco caso seja necessário. No modo manutenção, deverá permitir carregar produtos, carregar moedas, tirar moedas (neste caso deve dizer quantas e o valor total), o acesso a este modo tem que ser feito pela validação de um código de acesso (400855).

A parte da manutenção e a parte de dar o troco que não consigo fazer
 

#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include <conio.h>
extern char resp[ ]="400855";
char rl[40];
int ModoMan(int moe,int cenas)
{

gets(rl);
while(strcmp(rl,resp) !=0)
puts("Resposta errada. Tente de novo.");
gets(rl);

puts("Correcto! ");
}
main()

{
    
    float combeb[5]={1,1.10,1.20,1,0.50};
    int indice,moe,cenas,i;
    float saldo = 0;
    int moeda,creditos;
    int stock[6]={5,5,5,5,5,5};
    float valor[6] = {0.05,0.10,0.20,0.50,1,2};
    int caso = 1;
    int TROCO[6];                                
    float troco;
    int cont;
    int custo=0;
    int quantidade;

system("color 0B");
    printf("%c",201);
    for(i=0;i<30;i++)
       printf("%c",205);
    printf("%c\n",187);
    printf("%c",204);
    for(i=0;i<30;i++)
       printf("%c",205);
    printf("%c\n",185);
    
    while(caso)
    {       
            
            printf("\nSeu saldo Atual e de: euro%.2f\n\n",saldo);
            printf("ESCOLHA A OPCAO:\n\n",186,186);
            printf("0 - Sair\n",186,186);
            printf("1 - Depositar Moeda\n",186,135,198,186);
            printf("2 - Escolher bebidas\n",186,135,198,186);
            printf("3 - Modo Admistrador\n",186,198,186);
            printf("\nOPCAO:",186,186);
            scanf("%i", &caso);

            switch(caso)
            {
                  case 1:
                       {
                           system("cls");
                         printf("\n\nDeposite a sua moeda\n\n");
                         printf("0 - 0.05 centimos\n");
                         printf("1 - 0.10 centimos\n");
                         printf("2 - 0.20 centimos\n");
                         printf("3 - 0.50 centimos\n");
                         printf("4 - 1 Euro\n");
                         printf("5 - 2 Euros\n\n");
                         printf("MOEDA:");
                         scanf("%i",&moeda);
                         saldo = saldo + valor[moeda];
                         break;
                      }
                  case 2:
                      {
                         system("cls");
                         printf("\n\nEscolha a bebida que deseja\n");
                         printf("0 - Sair - 0.50euro\n ");
                         printf("1 - Ice Tea Limao - 1euro\n");
                         printf("2 - Ice tea de pêssego   - 1.10euro\n");
                         printf("3 - Bogo   - 1.20€\n");
                         printf("4 - Agua 1L - 1euro\n -");
                         printf("5 -Bolachas De Agua e sal - 0.50euro\n ");
                         printf("6 -Bolachas  - 0.50euro\n ");
                         printf("bebidas:\n");
                         scanf("%i", &indice);
                         break;
                     }
                   case 3:
                       {
                           printf("Digite o codigo de acesso: ");
                           scanf("%c",&rl);
                           ModoMan(moe,cenas);
                           printf("1- Carregar produtos\n");
        
                           printf("2- Carregar moedas\n");
                           printf("3- Tirar Moedas\n");
               

                        
         
                                  cont = 0; 
                                  printf("\n\nO seu troco e:\n\n");
                                  while(cont<6)
                                  {
                                               printf("MOEDAS DE euro%.2f: %i\n", valor[cont], TROCO[cont]);
                                               cont++;
                                               }    
                                  saldo = 0;                            
                         }
                         
                         {
                                  printf("\n\n====== Saldo Insuficiente ======");

                         }
                       break;
                       }
            if(caso>2)
            {
                      printf("OPCAO INVALIDA!!\n\n");
                      }  
            } 
    if(saldo != 0)
    { 
              cont = 5;
              while (cont >= 0)
              {     
                    TROCO[cont] = 0;
                    while(saldo >= valor[cont])
                    {
                                TROCO[cont] = TROCO[cont]+1;
                                saldo = saldo - valor[cont];
                                }
                    cont = cont -1;
                    }
              cont = 0; 
              printf("\n\nO seu troco e:\n\n");
              while(cont<6)
              {
                           printf("MOEDAS DE euro%.2f: %i\n", valor[cont], TROCO[cont]);
                           cont++;
                           }    
              saldo = 0;  
              }
    printf("\n\nOBRIGADO! VOLTE SEMPRE!\n\n");
    system("PAUSE");

            return 0;
            }

  

        

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

pra facilitar quando editar o texto e for inserir o código use"<>"

5.JPG

para a parte do troco sugiro inserir um sistema matemático com if primeiro eu n entendi como você esta usando as suas variáveis (digitei código o dia td estou com visão embaçada

 

Eu faria da seguinte forma:

  • Criaria uma variável para a moeda inserida (minset == float);
  • Criaria uma variável para o valor dos itens;
  • Criaria a variável item == int para poder usar comando de teclado numérica para selecionar oi item

Desse modo eu colocaria um código onde eu peço para inserir o valor da moeda(digamos que seja um detector de acordo com o tamanho), vamosdizer que eu inseri 25c, eu digito o código do produto, vamos dizer que seja 1 (nesse caso minsert). o item 1 custa 10c, logo dentro dele do case do switch ele executa a operação matemática, dai usa o if, se o resultado for maior que zero esse é o valor do troco que sairá, em cadeia outro if que diz que não há troco se subtrair o valor inserido com o do produto e der zero, por fim outro if que diz que o valor sendo inferior a zero (negativo) o produto não é liberado.

quanto a manutenção: Você tem que usar um jeito de contabilizar as moedas, logo sugiro prender a um for (agora n sei fazer isso T_T);

 

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...