CODIGO JAVA TABLA DE AMORTIZACIONES
Siguiendo con esta orgia de codigo Java inservible para nada mas que a los estudiantes de Informatica, ahora presento el siguiente caso: Un codigo capaz de entregar una tabla de amortizacion debidamente formateada en sus detalles numericos (con solo dos decimales) y que debe obtenerse a partir de algunos valores basicos entregados via entrada estandar (teclado) por le usuario: Tasa de Interes, Valor Cuota, Deuda Original, Fecha de Inicio y Tiempo de Pago. import java.text.DecimalFormat;
import java.io.*;
public class CalculoCredito {
/**
* Todos los atributos 'double' seran formateados
* para que aparescan con solo dos cifras despues de la coma.
*/
public DecimalFormat DoubleFormat = new DecimalFormat("0.00");
/**
* Definicion de Variables
*/
public double credito;
public double tasa;
public double cuota;
public double intereses;
public double amortiz;
public double resto;
public double cuotaSUM;
public double interesSUM;
public double amortizSUM;
public int anyo;
public int mes;
public int tiempo;
CalculoCredito(double startCredito, double laCuota,
double tasaSatz, int startMes, int startAnyo,
int laufTiempo) {
credito = resto = startCredito;
tiempo = laufTiempo;
tasa = tasaSatz;
cuota = laCuota;
mes = startMes;
anyo = startAnyo;
interes = amortiz = 0.0;
}
public static void main(String[] args) throws IOException {
int error = 1;
do {
try {
CalculoCredito CreditoCuotas = new
CalculoCredito(Input( "Total Credito" ),
Input( "Cuota ( Credito > Cuota > 0 )" ),
Input( "Tasa de Interes ( 0 - 100 )" ),
( int )Input( "Mes ( 1 - 12 )" ),
( int )Input( "Anyo ( => 2006 )" ),
( int )Input( "Periodo de Tiempo ( en Anyos => 1 )" ) );
CreditoCuotas.checkEntradas();
CreditoCuotas.printHeader();
do {
CreditoCuotas.resultado();
} while ( CreditoCuotas.resto > 0.0 );
error = 0;
}
catch ( Except e ) {
System.out.println( e.toString() );
}
catch ( NumberFormatException e ) {
System.out.println( "Por Favor Hagalo Bien!\n" +
"Por Favor, intentelo Nuevamente.\n" +
"===============================\n\n" );
}
} while (error == 1);
}
public static double Input( String s ) throws IOException,
NumberFormatException {
BufferedReader Input = new BufferedReader (
new InputStreamReader( System.in ));
System.out.print( "Por favor ingrese " + s );
String InputString = Input.readLine();
return Double.parseDouble( InputString );
}
public void printHeader() {
System.out.println("\n\nCalculo de Tasa de Amortizacion con "
+ "Cuotas de Igual Valor\n" +
"Tasa nominal: \t" + DoubleFormat.format( tasa ) +
"%\tCredito Inicial: " + DoubleFormat.format( credito ) +
" EUR\n" + "Tiempo: \t\t" + tiempo +
" Anyo(s)\tInicio: \t" + mes + "/" + anyo + "\n\n" +
"Mes" + "\t" + "Cuota"+"\t\t" + "Intereses" +
"\t\t" + "Amortizacion" + "\t\t" + "Resto");
}
public void print() {
if ( mes >= 10 ) {
System.out.println( mes + "." + anyo + "\t\t" +
DoubleFormat.format( cuota ) + " EUR\t\t" +
DoubleFormat.format( interes ) + " EUR\t\t" +
DoubleFormat.format( amortiz ) + " EUR\t\t" +
DoubleFormat.format( resto ) + " EUR");
} else {
System.out.println(" " + mes + "." + anyo + "\t\t" +
DoubleFormat.format( cuota ) + " EUR\t\t" +
DoubleFormat.format( interes ) + " EUR\t\t" +
DoubleFormat.format( amortiz ) + " EUR\t\t" +
DoubleFormat.format( resto ) + " EUR");
}
}
public void resultados() {
if (zinsen != 0.0)
monat++;
if (mes > 12) {
mes = 1;
anyo++;
System.out.println("Summen: \t" +
DoubleFormat.format( cuotaSUM ) + " EUR\t\t" +
DoubleFormat.format( interesSUM ) + " EUR\t\t" +
DoubleFormat.format( amortizSUM ) + " EUR\t\t p.a.\n\n" +
"Zahlmonat" + "\t" + "Rate"+"\t\t" + "Zinsen" +
"\t\t" + "Tilgung" + "\t\t" + "Rest");
ratenSUM = zinsenSUM = tilgungSUM = 0;
}
// zinsen = (int)(rest * zins / 12.0 + 0.5) / 100.0;
zinsen = (int)(rest * zins) / 1200.0;
tilgung = rate - zinsen;
rest = rest - tilgung;
ratenSUM += rate;
zinsenSUM += zinsen;
tilgungSUM += tilgung;
if (rest > 0.0) {
print();
} else {
System.out.println("Summen: \t" +
DoubleFormat.format(ratenSUM) + " EUR\t\t" +
DoubleFormat.format(zinsenSUM) + " EUR\t\t" +
DoubleFormat.format(tilgungSUM) + " EUR\t\t p.a.\n\n");
}
}
public void checkEntradas() throws Except {
if(kredit <= 0.0)
throw new Except("\n\nSie sollten einen sinnvollen Kredit " +
"angeben!\nBitte versuchen Sie nochmal.\n" +
"=======================================\n\n");
if(kredit <= rate)
throw new Except("\n\nSie sollten eine sinnvolle Rate " +
"angeben!\nBitte versuchen Sie nochmal.\n" +
"======================================\n\n");
if(zins <= 0.0 || zins >= 100.0)
throw new Except("\n\nSie sollten einen sinnvollen Zinssatz " +
"angeben!\nPor Favor Intente de nuevo.\n" +
"=========================================\n\n");
if(monat < 0 || monat > 12 || jahr < 2006)
throw new Except("\n\nDebe Ingresar un Valor Correcto Para Fecha" +
"!\nPor Favor Intente de nuevo.\n" +
"==========================================\n\n");
if(zeit <= 0)
throw new Except("\n\nDebe Ingresar un Valor Correcto Para " +
"Tiempo!\nPor Favor Intente de nuevo.\n" +
"=========================================\n\n");
}
}
class Except extends Exception {
private String s;
public Except(String e) {
s = e;
}
public String toString() {
return s;
}
}
1 comentarios:
Hola; tengo un problema con las variables (con la mayoría), me tira errores por ellas.
Publicar un comentario