Pagando sin cambios java

En este ejemplo de java crearemos un proyecto del juego Pagando sin cambios

con las mismas reglas del juego original, juego que esta basado para alumnos de primaria en la cual el docente pedirá a los alumnos que

Den el cambio en sentido a la cantidad de billetes que necesitarían para llegar al precio de cuatro precios que establecerá el maestro.

Para lo cual crearemos una tabla como la siguiente
Consideraciones didácticas
A partir de este juego se pueden presentar actividades que promuevan en los niños el pasaje de una descomposición aditiva cualquiera a otra utilizando la menor cantidad posibles de billetes, composición que resulta única una vez fijados los valores de los billetes.


Aquí el código:



import javax.swing.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.util.StringTokenizer;
public class javaa extends JFrame implements ActionListener{
   //Definiendo variables
    private JTextField textfield1[] = new JTextField[40];
    private JLabel label1,label2,label3;
    private JButton boton1;
    private JPanel contentPane;
                         
                        
public javaa() {
       //Editando contenedor
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setBounds(100, 100,100, 50);
       contentPane = new JPanel();
       contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
       setContentPane(contentPane);
       contentPane.setLayout(null);
       setBounds(0,0,800,600);
       setLayout(null);
      
       //Editando label
       label1=new JLabel("Precios: ");
       label1.setBounds(90,70,80,30);
       add(label1);
      
       label2=new JLabel("Billetes: ");
       label2.setBounds(300,70,80,30);
       add(label2);
      
       label2=new JLabel("Entrega el cambio");
       label2.setBounds(150,35,300,30);
     
       add(label2);
        //Editando textField
        for(int i=0; i<25;i++){
       
           textfield1[i]=new JTextField();
     
        }
         //Asignando el valor de billetes que tendran 8 de los 24 textfields
        textfield1[0].setText("$: ");
        textfield1[1].setText("$ 100");
        textfield1[2].setText("$ 50");
        textfield1[3].setText("$ 20");
        textfield1[4].setText("$ 10");
        textfield1[5].setText("$ 5");
        textfield1[6].setText("$ 2");
        textfield1[7].setText("$ 1");
        int tx=90,ty=100;
        //ubicando textfield java
        for(int i=0; i<24;i++){
          //asignando valor inicial
       if(i>=8 ){textfield1[i].setText("0");}
      
      
       if(i==8 || i == 16 || i==24)
       {
        tx=90;
        ty=ty+30;
        }
        textfield1[i].setBounds(tx,ty,50,20);
       add(textfield1[i]);
        tx=tx+55;
    }
       //fin editando JtextField
      
      
      
       //Editando boton
       boton1=new JButton("Entregar");
       boton1.setBounds(200,270,100,30);
       add(boton1);
       //Agregando el boton al la accion
       boton1.addActionListener(this);
       
    }
      
   
    public void actionPerformed(ActionEvent e) {
        double total1=0,total2=0;
        //al apretar el boton se ejecutara la siguiente accion
        if (e.getSource()==boton1) {
         
          //logica dentro del array
          //if 0 8 16 24
          //               =0:[1,7] 
          //               =8:[9,15]
          //               =16:[17,24]
          
           //calculando la suma total de la primer opcion
           total1=billetes(9,15);
           //calculando la suma total de la 2da opcion
              total2=billetes(17,24);
        
              //si se introdujeron la cantidad correcta de cambio
          if(Double.parseDouble(textfield1[8].getText())==total1 &&Double.parseDouble(textfield1[16].getText()) ==total2)
              {
        
            label3.setText("Correcto! Entregaste bien el cambio");
       
              }  //si no
               else
              {
            label3.setText("Incorrecto no as entregado bien el cambio");
              }
            System.out.println("totales: "+total1+" "+total2+" ");
              
        }
      
}
                
     //creando double para calcular la cantidad total que damos de cambio
public double billetes(int num1,int num2)
                    {
                    //creando array
     int numeros[]= new int[7];   double billets=0;
     int x=0;
     for(int i=num1;i<=num2;i++){
            // System.out.println("primer for");
         for(int i2=x;i2<7;i2=i2+1){
              System.out.println("segundo for");
              numeros[i2]=i;
              }
         x=x+1;
       }
     //calculando total
     billets=100.00*(Double.parseDouble(textfield1[numeros[0]].getText()))
            +50.00*(Double.parseDouble(textfield1[numeros[1]].getText()))
            +20.00*(Double.parseDouble(textfield1[numeros[2]].getText()))
            +10.00*(Double.parseDouble(textfield1[numeros[3]].getText()))
            +05.00*(Double.parseDouble(textfield1[numeros[4]].getText()))
            +02.00*(Double.parseDouble(textfield1[numeros[5]].getText()))
            +01.00*(Double.parseDouble(textfield1[numeros[6]].getText()));
         //retornando total
           return billets;
                    }
                    //mostrando proyecto
    public static void main(String[] ar) {
        javaa appletenhtml=new javaa();
        appletenhtml.setBounds(0,0,550,360);
        appletenhtml.setVisible(true);
    }
}




Dando más ideas, el proyecto también se puede utilizar para que los alumnos tengan que calcular el precio total de la cantidad de billetes establecidos

Descargar ejemplo:

Comentarios

Entradas más populares de este blog

Ejemplo de suma Pascal

Solucion al error collation desconocida: 'utf8mb4_0900_ai_ci'