[SOLUCIONADO] Ayuda corregir código ejercicio en java

Iniciado por robtojosu, Julio 02, 2015, 01:46:02 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Julio 02, 2015, 01:46:02 AM Ultima modificación: Julio 09, 2015, 12:19:33 PM por Expermicid
Hola

Podrían ayudarme a corregir este código.Algo anda mal. En la parte que comenté el codigo es porque está en C, pero no se como pornerlo en java dentro del JOptionPane. Y como se haría eso con un ciclo for, que creo es mas rapido?

Código: java
public int demeNumero(String t) {
        String num = JOptionPane.showInputDialog(t);
        int n = Integer.parseInt(num);
       
        return n;
    }

 
    public void ejercicio03() {
        int mes=1;
       double cantdinero,intereses=0;
       
        cantdinero = demeNumero("Ingrese la cantidad de dinero");
        while(mes<=12)
        {
            intereses= cantdinero *0.02;
            cantdinero=cantdinero+intereses;
           
           
            JOptionPane.showMessageDialog(null, " "  );
            //printf("En el mes %d tiene en el banco %.2f\n",mes,cantdinero);
            mes++;
           
            JOptionPane.showMessageDialog(null, " "  );
            //printf("\n\nDESPUES DE %d MESES-->TIENE EN EL BANCO:%f\n",mes-1,cantdinero);
           
        }
    }



    public void menu() {
        int opcion = demeNumero("1. Ejercicio03 \n");
               
//             

        switch (opcion) {
            case 1:
                ejercicio03();
         
                menu();
                break;

           

        }
    }
}


Gracias

Julio 02, 2015, 12:50:56 PM #1 Ultima modificación: Julio 02, 2015, 06:48:52 PM por Hu3c0
Estimado amigo sin esfuerzo y dolor no hay recompensa si esperas que en tu vida exista alguien detrás tuyo para salvarte la vida, nunca, nunca,nunca ! evolucionarás satisfactoriamente.

Te voy a ayudar porque aquí en Underc0de somos una gran familia, pero no vivimos en LAZY TOWN ("Ciudad de gandules")

Mira el bucle for sería así
Código: java


for (int mes= 1; mes <=12; mes++){
JOptionPane.showMessageDialog (null, "En el mes  "+mes+"  tiene en el banco %.2 \n"+mes+"  cantdinero="+cantdinero, "Underc0de.org somos una Familia unida", JOptionPane.INFORMATION_MESSAGE);
}


El código que te he puesto arriba va en base a la pregunta que has dicho de traducirlo a java el código C y meterlo en un JOptionPane pero de la forma que estás enfocando el código no me gusta nada ¿De qué sirve meter en un bucle for o while e imprimir el mismo resultado en distintos meses?

Y te digo lo mismo que le digo a todo el mundo lo primero que se debe aprender es a Buscar,Leer y comprender.







No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Estoy de acuerdo con Hu3co, creo que te hace falta leer mas, tu programación se me hace muy confusa y creo que se puede ordenar de una mejor manera, si sabes C, se te hara mas facil comprender como funciona java.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Julio 03, 2015, 12:04:25 PM #3 Ultima modificación: Julio 03, 2015, 07:47:09 PM por Gus Garsaky
Existe una gran diferencia entre C y Java: Programación orientada a objetos (POO u OOP por sus siglas en inglés). Dos lenguajes no se parecen si se miran desde el punto de vista semántico, si no, por su comportamiento interno.

De poco te servirá C si vas a programar en Java. En Java se usa mucho la POO por ser diseñado para tal. Si no sabes POO, No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

Lo que debes de hacer es modularizar tu código y hacer un código limpio, sin importar si estás empezando o no, aunque es cierto que ésto se gana también con la experiencia.

Por ejemplo, a simple vista, trata de un préstamo, así que podemos crear una clase llamada BankLoan que represente un préstamo:

Código: java

public class BankLoan {
    public static final float INTEREST_RATE = 0.2f;
    private int dues;
    private float borrowedMoney;

    public BankLoan(borrowedMoney, dues) {
        this.borrowedMoney = borrowedMoney;
        this.dues = dues;
    }
    public BankLoanReport getLoanReport() {
        return new BankLoanReport(INTEREST_RATE, borrowedMoney, dues);
    }
}


Ahora, para saber el reporte del simulador de préstamo (cuotas e interés), podemos crear una clase llamada BankLoanReport:

Código: java

public class BankLoanReport {
    private List<Float> duesAmounts;
    private float totalInterest;
    private float interestRate;
    private float borrowedMoney;

    public BankLoanReport(float interestRate, float borrowedMoney, int dues) {
        this.duesAmounts = new ArrayList<>();
        this.totalInteres = 0.0f;
        this.interestRate = interestRate;
        this.borrowedMoney = borrowedMoney;
        this.dues = dues;
    }
    public List<Float> getDuesAmounts() {
        for(int i=0; i<dues; i++) {
            dues.add(borrowedMoney * interestRate);
        }
        return duesAmounts;
    }
    public float getTotalInteres() {
        float temp = 0.0f;
        for(float dueAmount : duesAmounts) {
            temp += dueAmount;
        }
        totalInterest = temp * interestRate;
    }
}


La clase anterior nos mostrará el reporte del préstamo. Por último, hagamos el menú:

Código: java

public class System {
    private final static Scanner READER;

    static {
        READER = new Scanner(System.in);
    }
    public void showMenu() {
        System.out.println("¿Qué cantidad de dinero desea?");
        float money = READER.nextFloat();
        System.out.println("¿En cuántas cuotas?");
        int dues = READER.nextInt();
        return new Object[] {money, dues};
    }
    public void process() {
        Object[] data = showMenu();
        BankLoan loan = new BankLoan((Float) data[0], (Integer) data[1]);
        BankLoanReport report = loan.getLoanReport();
        System.out.println("[+] Cuotas a pagar");
        for(float amount : report.getDuesAmounts()) {
            System.out.println(amount);
        }
        System.out.println("[+] Interés total");
        report.getTotalInterest();       
    }
}


Y ya tenemos el simulador de préstamos. Como ves, la POO se trata de modularizar, de delegar responsabilidades y de cumplir nos principios de desarrollo de software (DRY, SRP, etc).

No sé programar en C. Disculpen las molestias y gracias por la ayuda y consejos ;D