/maquina-cafe-java

Simulação de uma máquina de café em Java.

Primary LanguageJavaMIT LicenseMIT

Máquina de Café em Java

Simulação de uma máquina de café escrita em Java.

Café.gif

Desenvolvido para aplicar os estudos na linguagem, esse projeto é um desafio do Movimento Codar, desenvolvido no Eclipse num período de dois dias e refatorado um tempo depois.

O objetivo desse código é simples: simular um sistema simples de uma máquina de café rodado pelo próprio terminal. Foi feito pensando em sua constante execução, como num sistema real, mas empilhando o mínimo de métodos possíveis sobre a stack.

Funcionalidades

Escolha de bebidas ☕

Escolha de bebidas

Essa é a primeira interação do usuário com o sistema.

  • É possível escolher entre 5 bebidas, com três opções de preços. A água quente é gratuita e pula as etapas de verificação de pagamento.

  • Escolher um número não listado lança uma exception personalizada, que é imediatamente tratada interrompendo o método atual da pilha e abrindo um novo, pedindo novamente a entrada do usuário. Esse processo se repete até que o usuário enfim coloque um número válido.

exceptions.EscolhaErradaException: Você escolheu um número inválido(6). Escolha um número entre 0 e 5!

  • Escolher 0 desliga o sistema, usando um System.exit(0).

  • A quantidade de água é exibida logo acima da escolha do usuário. Cada bebida gasta 50ml de água do repositório, que é constantemente atualizado na tela de escolha de bebidas. O repositório zerado impede o preparo de qualquer bebida, com uma exception que é imediatamente tratada, sem interromper a execução do programa.

exceptions.FaltaAguaException: Não há água o suficiente para realizar operação. É necessário reabastecer.

Processamento de Pedido 📋

  • Ao escolher uma bebida que não seja água quente, o sistema pergunta se o usuário deseja escolher o nível de açúcar. O nível padrão são 3 colheres, que o usuário pode alterar, escolhendo de 0 a 5.

  • O usuário pode escolher a forma de pagamento. Ao escolher dinheiro, deve inserir um valor que seja igual a qualquer cédula válida no Brasil em 2021. Ao escolher débito, há a liberdade para colocar como crédito o valor que preferir. Um valor menor que o preço da bebida escolhida resulta em outra exceção, indicando saldo induficiente, e o sistema volta à escolha de bebidas.

  • Essa máquina de café não devolve troco. A cada transação é guardado o valor de "troco" como crédito, que desconta das próximas compras do usuário. Num sistema real, deveria ocorrer alguma forma de reconhecer os usuários e armazenar seus respectivos créditos, esse código simula isso.

Forma de pagamento e armazenador de crédito

Preparo da bebida 🍵

  • Para simular o processo de preparo da bebida, foi utilizado o Thread.sleep(ms) num método da classe abstrata Sistema Interno. Ele "pausa" o programa durante o tempo especificado (em milisegundos).

  • É descrito o preparo de cada bebida com pausas entre cada etapa.

Processo de preparo de um café.

  • No fim, é chamada novamente a tela de escolha de bebida. O processo se repete continuamente, encerrando os processos desnecessários para preservar a memória da stack.

Tecnologias utilizadas
Java Eclipse IDE


Obrigado por ler até aqui! 😄