[ Foro de Java ]

Dados con POO

21-Jan-2019 16:59
Invitado (Marcos Ruiz Arroyo)
0 Respuestas

Necesito ayuda con ambos ejercicios:
a)EJERCICIO 1
Escriba una clase que simule un dado, con las propiedades y métodos que considere más adecuados. Recuerde que debe tener un constructor y los métodosget y set necesarios.
Escriba un programa que utilice la clase dado para lanzar dos dados.  Haga lo siguiente:
-Decir si el resultado es el mismo en los dos dados, indicando el valor.
-Si el resultado no es el mismo en los dos dados, mostrar el valor mayor.
b)EJERCICIO 2
Escriba un programa que simule el lanzamiento de dos dados y haga losiguiente:
-Mostrar por pantalla la frecuencia de los resultados de 100 lanzamientos (de los dos dados).
-Mostrar el valor o valores que más veces se repite.
-Mostar el valor o valores que menos veces se repite.
Puede utilizar la clase Dado. Para ello, cópiela en este nuevo proyecto.
Además,creará una clase FrecuenciaDados. ¿Qué atributos tendrá?

El primer ejercicio me salió muy bien, pero el otro no lo consigo sacar adelante de ninguna manera. Estos son los códigos fuente de ambos ejercicios que pude sacar:
a)EJERCICIO 1
public class Dado {
   //Atributos
   private int dado=(int)(Math.random()*(6-1+1)+1);
   //Constructor
   public Dado(){
       
   }
   //sets y gets
   public int getDado(){
       return dado;
   }
   public void setDado(int dado){
       this.dado=dado;
   }
   //Métodos necesarios para la ejecución
   public void lanzarDado(){
       System.out.println("El valor del dado es "+dado);
   }
}
public static void main(String[] args) {
       Dado d1,d2;
       d1=new Dado();
       d2=new Dado();
       d1.lanzarDado();
       d2.lanzarDado();
       if(d1.getDado()>d2.getDado()){
           System.out.println("Los dados han sacado diferente número.");
           System.out.println("El valor mayor del dado es "+d1.getDado());
       }if(d1.getDado()<d2.getDado()){
           System.out.println("Los dados han sacado diferente número.");
           System.out.println("El valor mayor del dado es "+d2.getDado());
       }if(d1.getDado()==d2.getDado()){
           System.out.println("Los dados han sacado el mismo número");
       }
   }
b)EJERCICIO 2
public class Dado {
   //Atributos
   private int dado=(int)(Math.random()*(6-1+1)+1);
   //Constructor
   public Dado(){
       
   }
   //sets y gets
   public int getDado(){
       return dado;
   }
   public void setDado(int dado){
       this.dado=dado;
   }
   //Métodos necesarios para la ejecución
   public void lanzarDado(){
       System.out.println("El valor del dado es "+dado);
   }
}
public class FrecuenciaDados {
   //Atributos
   private final int MAX=11;
   private Dado d1;
   private Dado d2;
   private final int suma[]=new int [MAX];
   //Constructor
   public FrecuenciaDados(){
       
   }
   //sets y gets
   public Dado getDado1(){
       return d1;
   }
   public Dado getDado2(){
       return d2;
   }
   public void setDado1(Dado d1){
       this.d1=d1;
   }
   public void setDado2(Dado d2){
       this.d2=d2;
   }
   //Método para mostrar las frecuencias de los números de los dados
   public void mostrarFrecuencias(){
       int numeros[]={2,3,4,5,6,7,8,9,10,11,12};
       for(int i=0;i<MAX;i++){
           System.out.println("Número "+numeros[i]);
       }
   }
   
}
public static void main(String[] args) {
       FrecuenciaDados f;
       f=new FrecuenciaDados();
       f.getDado1();
       f.getDado2();
   }




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)