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.
Respostas
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();
}