Faça um programa para controlar um caixa eletrônico. Existem 6 tipos de notas: de 2, de 5,de 10, de 20, de 50, de 100. O programa deve inicialmente ler uma quantidade de notas de cada tipo, simulando o abastecimento inicial do caixa eletrônico. Depois disto, o caixa entra em operação contínua atendendo um cliente após o outro. Para sacar, o cliente fornece o valor do saque a ser efetuado e como resultado da operação, o programa deverá então escrever na tela a quantidade de notas de cada tipo que será dada ao cliente a fim de atender ao seu saque. Sempre que um saque for efetuado por um cliente, a quantidade inicial de dinheiro que foi colocada no caixa é decrementada. O programa deve pagar sempre com as maiores notas possíveis. Sempre que não for possível pagar somente com notas de 100, então o programa tentará complementar com notas de 50, depois com notas de 20, 10, 5 e 2. Antes de efetuar um saque para um cliente, ou seja, escrever na tela as notas que ele irá receber, o programa deve ter certeza que é possível pagá-lo, senão emitirá uma mensagem do tipo “Não Temos Notas Para Este Saque”. Caso o caixa fique abaixo de um certo mínimo, o algoritmo deverá parar de atender aos clientes e emitir uma mensagem do tipo “Caixa Vazio: Chame o Operador”. A interface com usuário (figura 1) do caixa eletrônico já é fornecido para você, juntamente com um contrato (Programa 2) para utilização da interface, que segue abaixo.
Soluções para a tarefa
Oi!
Segue abaixo um exemplar, que serve de inspiração para que você escreva um programa para controlar um caixa eletrônico, seguindo as conformidades estabelecidas pelo enunciado.
public CaixaEletronico(){
//construtor
}
public String pegaRelatorioCedulas() {
String resposta = "";
//logica de pega o relatorio de cedulas
return resposta;
}
public String pegaValorTotalDisponivel() {
String resposta = "";
//logica de pega o valor total disponivel no caixa eletronio
return resposta;
}
public String reposicaoCedulas(Integer cedula, Integer quantidade) {
String resposta = "";
//logica de fazer a reposicao de cedulas e criar uma mensagem (resposta) ao usuario
return resposta;
}
public String sacar(Integer valor) {
String resposta = "";
//logica de sacar do caixa eletronico e criar um mensagem(resposta) ao usuario
return resposta;
}
public String armazenaCotaMinima(Integer minimo) {
String resposta = "";
//logica de armazenar a cota minima para saque e criar um mensagem(resposta) ao usuario
return resposta;
}
public boolean login(Integer conta, String senha) {
//verifica se o conta e a senha sao validos no banco de dados
return true;
}
public String pegaSaldo() {
String resposta = "";
//consulta no banco de dados o saldo do cliente
return resposta;
}
public String transferir(Integer contaDestino, Double valor) {
String resposta = "";
//efetua a transferencia da conta logada para conta do destinatario
return resposta;
}
public String depositar(Integer conta, Double valor) {
String resposta = "";
//efetua o deposito para conta
return resposta;
}
public static void main(String arg[]){
GUI janela = new GUI(new CaixaEletronico());
janela.show();
}