Ola para todos
Estou fazendo um programa para calcular o troco para informar quanto vai devolver notas e moedas, mas o codigo que fiz nao esta dando certo, estou bem confuso, alguem poderia me ajudar ?
import java.util.List;
public interface IMaquina {
List montarTroco(double troco);
}
public class Troco {
public enum ECedula {
NOTA100(100), NOTA50(50), NOTA20(20), NOTA10(10), NOTA5(5), NOTA2(2), MOEDA100(
1), MOEDA50(0.5), MOEDA25(0.25), MOEDA10(0.1), MOEDA5(0.05), MOEDA1(
0.01);
ECedula(double valor) {
this.valor = valor;
}
private double valor;
public double getValor() {
return valor;
}
}
private ECedula tipo;
private int quantidade;
public void adicionaQuantidade(int qtde) {
quantidade += qtde;
}
public Troco(ECedula tipo, int quantidade) {
super();
this.tipo = tipo;
this.quantidade = quantidade;
}
public ECedula getTipo() {
return tipo;
}
public int getQuantidade() {
return quantidade;
}
@Override
public String toString() {
return quantidade + " - " + tipo;
}
}
import java.text.DecimalFormat;
import java.util.List;
public class CalculaTroco implements IMaquina {
@Override
public List<Troco> montarTroco(double troco) {
DecimalFormat formatador = new DecimalFormat("###,##0.00");
String result;
double Vtroco;
int i, vlr, ct;
//Vtroco = pago - conta;
result ="\nTroco = R$"+ formatador.format(Vtroco) +"\n\n";
// definindo as notas do troco (parte inteira)
vlr = (int)Vtroco;
i = 0;
while (vlr != 0) {
ct = vlr / nota[i]; // calculando a qtde de notas
if (ct != 0) {
result = result + (ct +"nota(s) de R$"+ nota[i] +"\n");
vlr = vlr % nota[i]; // sobra
}
i = i + 1; // próxima nota
}
result = result +"\n";
// definindo os centavos do troco (parte fracionária)
vlr = (int)Math.round((Vtroco - (int)Vtroco) * 100);
i = 0;
while (vlr != 0) {
ct = vlr / centavos[i]; // calculando a qtde de moedas
if (ct != 0) {
result = result + (ct +"moeda(s) de"+ centavos[i] +
"centavo(s)\n");
vlr = vlr % centavos[i]; // sobra
}
i = i + 1; // próximo centavo
}
return(result);
}
}