[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.







You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login


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.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login


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, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.

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