A aplicação Ponto de Venda (PoS - Point of Sale) simula um módulo de frente de caixa de supermercado integrado com o respectivo cadastro de produtos, controlando também seus estoques, em que baixas são dadas sempre que uma venda é concluída.
- Java SE Development Kit 11 ou superior
O workspace contém a seguinte estrutura:
.
├── bin
├── lib
├── resources
└── src
└── utils
bin
- Local da saída da compilaçãolib
- Local das dependências de projetoresources
- Local de arquivos utilitários (ex.: arquivos de dados)src
- Local dos arquivos de código fonte da codebase
Note
lib
não existirá se o projeto não tiver dependênciasbin
não é versionado, logo só existirá localmente, conforme especificado abaixo
Criar o diretório bin
se ele já não existir
mkdir bin
Note
O comando de criação de diretório pode variar dependendo do SO
Compilar os arquivos de código fonte de src
para dentro do diretório bin
javac -cp "src" -d "bin" src/App.java
Executar a classe App
(main) compilada dentro do diretório bin
java -cp "bin" App
Os operadores da aplicação PoS têm reportado que quando lançam uma venda para o cliente retirar mais tarde, quando o cliente chega para pegar os produtos, identifica-se que não existem mais produtos em estoque, e olhando a aplicação, o estoque está negativo. É necessária uma investigação detalhada para correção do comportamento defeituoso.
Cálculo de troco detalhado
Como um operador da aplicação PoS quero que a mesma calcule o valor do troco para pagamentos em dinheiro de forma precisa e detalhada, levando em consideração a forma mais otimizada possível de fornecer o troco em cédulas e moedas para que eu saiba exatamente quais cédulas e moedas devo entregar ao cliente, e consiga fazê-lo sem prejudicar o caixa.
- Quando o operador lança um pedido e sinaliza pagamento em dinheiro, a aplicação deve calcular o valor do troco de forma precisa e livre de erros
- A aplicação deve comparar o valor total do pedido com o valor pago em dinheiro e determinar se há troco (diferença entre valor pago e valor total do pedido)
- A aplicação deve calcular o troco considerando as seguintes opções (R$):
- Cédulas: 200, 100, 50, 20, 10, 5 e 2
- Moedas: 1, 0.50, 0.25, 0.10, 0.05 e 0.01
- A aplicação deve determinar a combinação mais otimizada possível, o que significa a menor quantidade possível de cédulas e moedas
- O valor do troco deve ser expresso de forma clara e detalhada, indicando a quantidade das cédulas e moedas a serem entregues
- A aplicação deve ser capaz de lidar com diferentes valores de pedido e pagamentos em dinheiro
- Funcionalidade Cálculo de troco detalhado implementada e testada com sucesso
- Aplicação fornece a combinação mais otimizada possível de cédulas e moedas para o troco
- A interface do usuário exibe o valor do troco de maneira clara e detalhada
- A aplicação está em conformidade com os critérios de aceitação definidos