Hola a todos. Os paso mi código en tres clases. Ejercicio CU00907C del tutorial de java avanzado.
Gracias.
package practicas.avanzadas;
import java.math.BigDecimal;
import java.math.RoundingMode;
/**
* Partiendo de un importe inicial y un porcentaje de impuestos a pagar,
* calcular el porcentaje total y el total a pagar
* @author pepote21
* @version 20170129
*/
public class E907_C {
private BigDecimal impInicial,porcImpuestos,impuesto,impFinal;
public E907_C(){
impInicial=BigDecimal.valueOf(0.0);
porcImpuestos=BigDecimal.valueOf(0.0);
impuesto=BigDecimal.valueOf(0.0);
impFinal=BigDecimal.valueOf(0.0);
}
public BigDecimal getImpInicial() {
return impInicial;
}
public void setImpInicial(BigDecimal impInicial) {
this.impInicial = impInicial;
}
public BigDecimal getPorcImpuestos() {
return porcImpuestos;
}
public void setPorcImpuestos(BigDecimal porcImpuestos) {
this.porcImpuestos = porcImpuestos;
}
public BigDecimal getImpuesto() {
return impuesto;
}
public void setImpuesto(BigDecimal impInicial,BigDecimal porcImpuestos) {
impuesto=impInicial.multiply(porcImpuestos).divide(BigDecimal.valueOf(100));
impuesto=impuesto.setScale(2, RoundingMode.HALF_UP);
System.out.println("El impuesto a pagar es: "+impuesto);
}
public BigDecimal getImpFinal() {
return impFinal;
}
public void setImpFinal(BigDecimal impInicial,BigDecimal impuesto) {
impFinal = impInicial.add(impuesto);
impFinal=impFinal.setScale(2,RoundingMode.CEILING);
System.out.println("El importe final es: "+impFinal);
}
}
package practicas.avanzadas;
import java.math.BigDecimal;
import java.util.Scanner;
/**
* entrada de teclado para BigDecimal
* @author pepote21
* @version 20170129
*/
public class EntradaDeTecladoE907_C {
private BigDecimal entrada;
Scanner sc;
public EntradaDeTecladoE907_C(){
entrada=BigDecimal.valueOf(0.0);
sc=new Scanner(System.in);
}
public void setEntrada(){
entrada=BigDecimal.valueOf(sc.nextDouble());
}
public BigDecimal getEntrada(){
return entrada;
}
}
package practicas.avanzadas;
import java.math.BigDecimal;
/**
* principal para calculo de impuestos
* @author pepote21
* @version 20170129
*/
public class PrincipalE907_C {
public static void main(String[] args){
EntradaDeTecladoE907_C a=new EntradaDeTecladoE907_C();
E907_C b=new E907_C();
System.out.println("Por favor introduzca el importe inicial");
a.setEntrada();
BigDecimal impInicial=a.getEntrada();
System.out.println("Por favor introduzca el porcentaje de impuestos");
a.setEntrada();
BigDecimal porcImpuestos=a.getEntrada();
b.setPorcImpuestos(porcImpuestos);
b.setImpuesto(impInicial,porcImpuestos);
b.setImpFinal(impInicial,b.getImpuesto());
}
}