Coder Social home page Coder Social logo

qxd0007-junkfood's Introduction

JunkFood

junkfood

Máquinas de junk food só servem para duas coisas, não só vender comidas que fazem mal para saúde, como também, rejeitar as notas velhas que você tem.

O objetivo dessa atividade é implementar uma classe responsável por uma máquina de vender JunkFood. Na máquina existem várias espirais. Diante disso, uma espiral contém uma certa quantidade de produtos do mesmo tipo e mesmo preço. O usuário insere o dinheiro, compra o produto e recebe o troco.

Requisitos

  • Inicializando a máquina
    • Iniciar a máquina definindo o número de espirais e a quantidade máxima de produtos em uma espiral.
  • Inicializar uma espiral
    • Para iniciar uma espiral vazia coloque um " - " no nome do produto para informar que não há produto definido
    • A quantidade de produto e o preço devem estar zerados.
  • Definir produto na espiral
    • Verifique se a espiral informada existe na maquina.
    • Difinir quais produtos há em cada espiral passando o nome do produto, a quantidade e o preço buscando a espiral com o índice correspondente.
    • Se a quantidade de produtos excerder a quantidade máxima que a espiral suporta, não defina os produtos na espiral.
  • Resetar uma espiral
    • Limpar todas as informações da espiral voltando ao seu estado original buscando apenas com o índice correspondente.
      • Ao vender todos os produtos na espiral, deve ser possível limpar todas as informações na espiral voltando ao seu estado original.
  • Inserir Dinheiro
    • Adicione o dinheiro na espiral.
      • Abstraia como o dinheiro será inserido na máquina. Crédito, débito, bitcoin, cédula nova ou velha, ficha de fliperama. Portanto, tudo será válido.
      • Receba o dinheiro do usuário e adicione ao saldo.
  • Vender Produto
    • Permita que o cliente possa comprar um produto de uma espiral.
      • Verifique se produto existe na espiral informada com o índice e se o valor do pagamento é suficiente.
  • Receber Troco
    • Permita que o cliente possa receber o seu troco.
  • Visualizar Faturamento
    • Deve ser possível ver o faturamento total da máquina.

Diagrama

digrama uml

Exemplo de execução

public class Runner {

    public static void main(String[] args) {

        Maquina maquina = new Maquina(3, 5);
        System.out.println(maquina);
        /*
            saldo: 0.0
            0[  -  : 0 U : 0.0 RS]
            1[  -  : 0 U : 0.0 RS]
            2[  -  : 0 U : 0.0 RS]
        */

        maquina.alterarEspiral(2, "Ruffles", 4, 5.25);
        maquina.alterarEspiral(1, "Doritos", 2, 4.50);
        maquina.alterarEspiral(0, "Sensações", 1, 7.00);
        System.out.println(maquina);
        /*
            saldo: 0.0
            0[ Sensações : 1 U : 7.0 RS]
            1[ Doritos : 2 U : 4.5 RS]  
            2[ Ruffles : 4 U : 5.25 RS] 
        */

        maquina.inserirDinheiro(6.00);
        if(!maquina.vender(0)){
            System.out.println("fail: não foi possível comprar o item, saldo insuficiente.");
            //fail: não foi possível comprar o item, saldo insuficiente.
        }

        maquina.inserirDinheiro(3.25);
        maquina.vender(0);
        System.out.println(maquina);
        /*
            saldo: 2.25
            0[  -  : 0 U : 0.0 RS]
            1[ Doritos : 2 U : 4.5 RS]
            2[ Ruffles : 4 U : 5.25 RS]
        */

        if(!maquina.vender(0)){
            System.out.println("fail: não foi possível comprar o item, espiral sem produtos.");
            //fail: não foi possível comprar o item, espiral sem produtos.
        }

        maquina.inserirDinheiro(7.50);
        maquina.vender(2);
        System.out.println(maquina);
        /*
            saldo: 4.50
            0[  -  : 0 U : 0.0 RS]
            1[ Doritos : 2 U : 4.5 RS]
            2[ Ruffles : 3 U : 5.25 RS]
        */

        if(!maquina.vender(4)){
            System.out.println("fail: não foi possível comprar o item, espiral não encontrada com o índice informado.");
            //fail: não foi possível comprar o item, espiral não encontrada com o índice informado.
        }

        double troco = maquina.receberTroco();
        System.out.println(troco);
        // 4.50

        double faturamento = maquina.getFaturamento();
        System.out.println(faturamento);
        // 12.25
    }  
}

Relatório de Entrega

Não esqueça de preencher o seguinte formulário Link para formulário ao completar a atividade.

qxd0007-junkfood's People

Contributors

ileis avatar brunomateus avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.