Ajuda para melhorar o código, não consigo exibir o resultado correto

3 respostas
N

Desenvolvi esse código que simula um caixa eletrônico que para saca precisa atender os seguintes requisitos:

1 -Para Efetuar saque deve fazer uma simulação de saque no caixa eletrônico. Quando o usuário escolher esta opção, o programa deverá solicitar o valor do saque e em seguida  efetuar o saque , mostrando na tela quantas cédulas de cada valor foram emitidas. NOT OK

O problema é aqui Não to conseguindo exibir a quantidade de cédulas de cada valor que foram emitidas

Pelos teste de mesa a lógica parece está certa mais não estou conseguindo fazer funcionar

2 - programa deve fazer o cálculo de quais cédulas serão emitidas visando emitir o menor número de notas possível, dando prioridade para as cédulas de maior valor. Para simular o saque, o programa deve fazer a devida atualização na matriz de quantidades de cédulas disponíveis.OK

Matriz de cédulas

Coluna 0 Coluna 1
(valor das células) ( quantidade de cédulas)

100 100
50 200
20 300
10 350
5 450
2 500

3 - Se as notas de algum valor acabarem, o programa deve tentar efetuar o saque através das demais notas existentes, caso seja possível, sempre visando emitir o menor número de cédulas. OK

4- Se não for possível a realização do saque solicitado com a quantidade de notas existentes, o programa deverá emitir a mensagem  Saque não realizado por falta de cédulas OK

if (saque <= Total){
	for (int i = 0; i < 6; i++) {   
		for (int j = 0; j < 1; j++) {   
			while ( saque >= Notas[i][j+1] && Notas[i][j] > 0 ){  
				saque -= Notas[i][j+1];
				Notas[i][j] -= 1;
				Retorno[i] += 1;
                                TotalNotas += 1;
                        }
                        Resultado += Retorno[i] + " notas de " + Notas[i][j] + "\n" ;
                }
       	}
	JOptionPane.showMessageDialog(null, "Para efetuar o saque forma necessárias " + Resultado );    	
		
}else{
		
	JOptionPane.showMessageDialog(null,"Valor indisponivel para saque \n o valor total disponivel e: " + Total);    
	}

Alguém pode me dar alguma idéia para resolver isso :?: :?: :?:

3 Respostas

T

Só tome cuidado com o seguinte fato: for (int j = 0; j < 1; j++) é um loop que executa APENAS UMA vez (ou seja, para o valor j = 0. É isso mesmo?

N

é isso mesmo eu quero que ele percorra somente a COLUNA 0 que é a coluna que possui o valor das notas.

Talvez um outro código seria melhor, alguém tem alguma idéia ?

N

Consegui corrigir o problema, eu estava trabalhando com os valores da Matriz invertidos.

Juntamente a parte do código que eu não postei.

Criado 13 de abril de 2008
Ultima resposta 16 de abr. de 2008
Respostas 3
Participantes 2