con el tiempo (restando el 30% al mes de impuestos.
Ejecutar este programa desde la línea de comandos.
Usuario se le pedirá que ingrese el número de años que quieren invertir,
cantidad que se quiere depositar cada mes y la cantidad inicial.
Resultados enviados al archivo de pantalla y texto.
Distribuido bajo la GPL de GNU: www.gnu.org
importar el javax.swing.JOptionPane;
Import java.io.*;
importación java.text.DecimalFormat;
clase Compound9
{/ / Comienzo clase Compound9
Declarar variables
flotador de mike mike2 mike3, mike4;
interés del flotador; Monto de intereses
cantidad de flotador, amount2; Monto inicial invertido
doble i = 1;
meses de flotador, meses2; Cantidad de dinero de meses va a ser
depositado/invertido; calculada a partir de años
Float MonthlyAmount; Importe depositado cada mes
inicial de flotador, initial2; Depósito inicial
años, flotador hotel2, hotel3;
int n;
Línea de cadena;
Bravo cadena;
Charlie de la cadena;
int delta, redhat;
int eco;
int foxtrot;
Método para solicitar usuario para entrar en el número de años
Método devuelve float
flotador NumberYears() lanza java.io.IOException
{/ / Método de NumberYears del comienzo
int delta = 0;
hotel flotante; Cantidad de dinero de años va a ser depositado/invertido
Hotel = 0;
Alpha cadena;
{}
trate de {}
Imprimir entrada pregunta a pantalla
System.out.println ("\nHow muchos años ¿desea invertir?");
Utilice la secuencia de entrada estándar en la clase de sistema, teclado de la alimentación
en la variable "isr" de la clase InputStreamReader
InputStreamReader isr = nuevo InputStreamReader(System.in);
Para datos de variable "isr" en la variable "br" de la clase BufferedReader
BufferedReader br = new BufferedReader(isr);
El lector protegido "br" de la lectura en la variable "alfa" de la cadena
Alpha = br.readLine();
Cadena "alfa" del molde en un flotador y devolver el resultado
a la parte principal del programa
Hotel = (Float.parseFloat(alpha));
Delta ++; Incremento hacer-mientras que la variable bandera si se introduce un número
} / / final de bucle de prueba
catch (IOException golf) {/ / iniciar el catch de IOException
System.out.println ("IO Error - error capturado:" + golf.getMessage());
golf.printStackTrace();
} / / End catch Exception IO
Capturar la excepción si se especifica letra
{} catch (NumberFormatException echo)
System.out.println ("usted no entró un número.");
System.out.println ("Error capturado; introducido: "+ echo.getMessage());
echo.printStackTrace();
Cuando el programa llega a este punto, el delta sigue siendo 0
por lo tanto no le el lazo otra vez
} / / Fin de captura
} / / End do
mientras que (delta == 0);
Devuelve el valor en el hotel al programa principal
volver a hotel;
} / / Fin NumberYears método
Método para obtener cantidad depositada mensualmente del usuario
flotador MonthlyDeposit() lanza java.io.IOException
{/ / Método de MonthlyDeposit del comienzo
hacer
{/ / Inicio de bucle
tratar de
{/ / Inicio trate de sección
Imprimir entrada pregunta a pantalla
System.out.println ("\nHow mucho quiero depositar cada mes?");
Utilice la secuencia de entrada estándar en la clase de sistema, teclado de la alimentación
en la variable "isr" de la clase InputStreamReader
InputStreamReader isr = nuevo InputStreamReader(System.in);
Para datos de variable "isr" en la variable "br" de la clase BufferedReader
BufferedReader br = new BufferedReader(isr);
Lectura al lector protegido "br" en la cadena variable "bravo"
Bravo = br.readLine();
"Bravo" de cadena del molde en un flotador
hotel2 = Float.parseFloat(bravo);
Si se produce la excepción en la línea de antes, foxtrot ++ se omitirá
Foxtrot ++;
} / / Fin de la sección de prueba
{} catch (IOException radiografía)
System.out.println ("IO Error - error capturado:" + xray.getMessage());
xray.printStackTrace();
} / / Fin IOException
Capturar la excepción si se especifica letra
{} catch (NumberFormatException hp)
System.out.println ("usted no entró un número.");
System.out.println ("Error capturado; introducido: "+ hp.getMessage());
hp.printStackTrace();
Foxtrot es cero en este punto
} / / Fin de captura para NumberFormatException
} / / Final de bucle
Bandera que determina cuando hacer-mientras que los extremos del lazo
mientras que (foxtrot == 0);
volver hotel2;
} / / Fin MonthlyDeposit método
Método InitialAmount obtiene la cantidad inicial invertida
flotador InitialAmount() lanza java.io.IOException {}
{/ / Inicio de bucle
trate de {}
System.out.println ("\nHow mucho es la inversión inicial?");
Alimentación de entrada de teclado en InputStreamReader "isr"
InputStreamReader isr = nuevo InputStreamReader(System.in);
Alimentan InputStreamReader BufferedReader
BufferedReader br = new BufferedReader(isr);
Leer el BufferedReader en variable "charlie"
Charlie = br.readLine();
Echado la cadena "charlie" en flotador y poner en la variable "hotel3"
hotel3 = (Float.parseFloat(charlie));
Incremento hacer-mientras que la variable bandera si se introduce un número
RedHat ++;
} / / Fin de la sección de prueba
{} catch (IOException redhat2)
System.out.println ("IOError - cogido de error:" + redhat2.getMessage());
redhat2.printStackTrace();
} / / Fin IO catch declaración
{} catch (NumberFormatException suse)
System.out.println ("usted no entró un número");
suse.getMessage();
suse.printStackTrace();
} / / Fin de captura NumberFormat
} / / Final de bucle
mientras que (redhat == 0);
volver hotel3;
} / / Fin InitialAmount método
Método NegativeCheck comprueba si un número negativo
Float NegativeCheck(float kilo) {}
Si (kilo < 0) {}
System.out.println ("introduce un número positivo.");
Mike = 0;
} / / Fin si declaración
Else {}
Mike = 1;
}
volver a mike;
} / / Fin NegativeCheck
Float months() / / método para calcular el número de meses
{
meses = años * 12;
System.out.println ("el número de meses es:" + meses);
volver a meses;
}
Método para calcular el interés, imprimir a la
la pantalla y escribir en un archivo
Float calcular (float months3, initial2 de flotador)
{
probar / / Loop para intentar escribir en un archivo
{
Archivo temp = new File("Compound9.txt"); Crear nuevo archivo
FileWriter fw = nuevo FileWriter(temp); Crear nuevo FileWriter
BufferedWriter out = nuevo BufferedWriter(fw); / / crear nuevo BufferedWriter
Pasar initial2 a la variable "cantidad"
cantidad = initial2;
Calcular el interés durante el primer mes
Calcular el interés mensual (.08/12)
crecimiento anual del 8% (promedio histórico de las poblaciones)
interés = (float) (cantidad *. 00667);
impuestos del 20% sacados
interés = (float) (interés *. 8);
Interés añadido al funcionamiento total
cantidad = (cantidad + intereses);
El resultado con 2 decimales y el formato de poner una coma en (estilo de los E.E.U.U.)
DecimalFormat roundTwo = new DecimalFormat("###,###,###,###.##");
Información colocada en el objeto de la cadena "línea" para ser enviado al archivo
linea = ("La cantidad después de" + i + "meses es $" + roundTwo.format(amount) + "\n");
Información enviada a la pantalla
System.out.println ("La cantidad después de" + i + "meses es $" + roundTwo.format(amount));
Escribir la cadena "línea" al archivo
out.Write(line);
Nota: La razón de que el primer mes el interés es independiente del bucle principal es
porque quería asegurarse de que sólo se calculan el interés del primer mes
para el depósito inicial, no el depósito y depósito del primer mes.
Lazo se calcula por mes 2 en adelante
Inicio de bucle determinar compuestos de interés; limitada por el número de meses
para (i = 2; i < = months3; i ++)
{
Añadir depósito mensual a cantidad total
cantidad = (cantidad + MonthlyAmount);
Calcular el interés mensual (.08/12)
crecimiento anual del 8% (promedio histórico de las poblaciones)
interés = (float) (cantidad *. 00667);
impuestos del 20% sacados
interés = (float) (interés *. 8);
Interés añadido al funcionamiento total
cantidad = (cantidad + intereses);
El resultado con 2 decimales y el formato de poner una coma en (estilo de los E.E.U.U.)
DecimalFormat roundTwo = new DecimalFormat("###,###,###,###.##");
Información colocada en el objeto de la cadena "línea" para ser enviado al archivo
linea = ("La cantidad después de" + i + "meses es $" + roundTwo.format(amount) + "\n");
Información enviada a la pantalla
System.out.println ("La cantidad después de" + i + "meses es $" + roundTwo.format(amount));
Escribir la cadena "línea" al archivo
out.Write(line);
} / / Fin de bucle
out.Close(); Archivo de texto muy
} / / Final de bucle de prueba
retén (excepción e) {/ / capturar la excepción si no escribir archivo
System.out.println ("ha ocurrido un error:" + e.toString());
} / / Fin de captura
devolver la cantidad;
} / / Fin calcular método
Método principal del comienzo, que programa a excepción de IO
el principal vacío estático público (argumentos de cadena []) lanza java.io.IOException
{
Solicitar usuario para próximas dudas con el cuadro de diálogo
JOptionPane.showMessageDialog)
null, "por favor responda las siguientes preguntas.");
Crear nuevo tirador llamado "foxtrot" de tipo "Compound9"
Conecte manubrio a nuevo objeto "Compound9"
Compound9 foxtrot = nuevo Compound9();
Obtener el número de años
{}
retorno variable "hotel" es que pasa en la variable "años"
Foxtrot.years = foxtrot. NumberYears();
pasar variable "años" en el método de NegativeCheck
resultado entra "mike2"
Foxtrot.MIKE2 = foxtrot. NegativeCheck(foxtrot.years);
} / / End do
Si "mike" es igual a 0, se pide la información de nuevo usuario
while(Foxtrot.MIKE2 == 0);
System.out.println ("el número de años que escribiste es:" + foxtrot.years);
Importe por mes a depositar
{}
retorno variable "hotel2" se pasa a la variable "MonthlyAmount"
Foxtrot. MonthlyAmount = foxtrot. MonthlyDeposit();
pasar variable "MonthlyAmount" en NegativeCheck método
resultado entra "mike3"
Foxtrot.mike3 = foxtrot. NegativeCheck (Fox-Trot. MonthlyAmount);
} / / Final de bucle
Si mike3 es 0, se pide usuario para la entrada de nuevo
mientras que (foxtrot.mike3 == 0);
System.out.println ("la cantidad por mes ingresado es:" + foxtrot. MonthlyAmount);
Importe inicial que se depositará
{}
Devolver la variable "redhat" y colocar en la variable "inicial"
Foxtrot.Initial = foxtrot. InitialAmount();
Pasar "inicial" a la NegativeCheck método y resultado vuelta en "mike4"
Foxtrot.mike4 = foxtrot. NegativeCheck(foxtrot.initial);
} / / "mike4" es 0, se pedirá usuario entrada
mientras que (foxtrot.mike4 == 0);
System.out.println ("la cantidad inicial ingresada es:" + foxtrot.initial);
Llame al método para determinar el número de meses de meses
Foxtrot.months2 = foxtrot.months();
Call calcular el método para calcular el interés
Foxtrot.amount2 = foxtrot.calculate (foxtrot.months2, foxtrot.initial);
Crear objeto "roundTwo" de la clase DecimalFormat a formatear correctamente la salida de pantalla
DecimalFormat roundTwo = new DecimalFormat("###,###,###,###.##");
Resultados de mostrar al usuario en línea de comandos
System.out.println ("\nThe la cantidad inicial de $" + foxtrot.initial + "después de agregar $" + foxtrot. MonthlyAmount + "por mes");
System.out.println ("para" + foxtrot.years + "años y crece a 8% por año (con 20% sacado por impuestos)");
System.out.println ("se convierte en >>>>>>>> $" + roundTwo.format(foxtrot.amount2) + "<<<<<<<<<" + "\n");
System.out.println ("Esto se ha escrito en un archivo de texto llamado: compound9.txt.\n");
Mostrar los resultados al usuario en el cuadro de diálogo
JOptionPane.showMessageDialog)
null, "La cantidad de la cantidad inicial de $" + foxtrot.initial + "después de agregar $" + foxtrot. MonthlyAmount + "mensuales" + foxtrot.years + "\n años y crece a 8% por año (con 20% sacado por impuestos) se convierte en >> $" + roundTwo.format(foxtrot.amount2) + "\n esto se ha escrito en un archivo de texto llamado: compound9.txt.");
System.Exit (0);
} / / Cerrar método main()
} / / Cierre de la clase compound9