Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - wwmeowo

Páginas: [1]
1
Saludos! Por favor, necesito ayuda a completar este ejercicio, no logro solucionarlo y no quiero quedarme con la duda. Se lo agradecería si alguien me ayuda y comparto de mi parte.

Mi problema es hacer un método que genere el ranking de la calificación aleatoria que se asigna a los participantes de la competencia.

Hice hasta cierta parte que es poder asignar una calificación aleatoria a cada participante, solo que no logre ordenar esas calificaciones y que se muestre como el ranking, es decir, de mayor a menor las calificaciones aleatorias

-

Empecé con la clase principal Perro

Código: [Seleccionar]
public class Perro {
   
    private String nombPerro;
    private String nombDueño;
    private String raza;
    private String tamaño;
    private String placa;
    private String edad;
    private String peso;
    private int nota;

    public String getNombPerro() {
        return nombPerro;
    }

    public void setNombPerro(String nombPerro) {
        this.nombPerro = nombPerro;
    }

    public String getNombDueño() {
        return nombDueño;
    }

    public void setNombDueño(String nombDueño) {
        this.nombDueño = nombDueño;
    }

    public String getRaza() {
        return raza;
    }

    public void setRaza(String raza) {
        this.raza = raza;
    }

    public String getTamaño() {
        return tamaño;
    }

    public void setTamaño(String tamaño) {
        this.tamaño = tamaño;
    }

    public String getPlaca() {
        return placa;
    }

    public void setPlaca(String placa) {
        this.placa = placa;
    }

    public String getEdad() {
        return edad;
    }

    public void setEdad(String edad) {
        this.edad = edad;
    }

    public String getPeso() {
        return peso;
    }

    public void setPeso(String peso) {
        this.peso = peso;
    }
   
    public int getNota() {
        return nota;
    }

    public void setNota(int nota) {
        this.nota = nota;
    }   
}


En esta clase uso arraylist y aqui se encuentran todas las operaciones

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Collections;
import javax.swing.JOptionPane;
import java.util.Random;

public class Competencia {
   
    ArrayList<Perro> registro = new ArrayList();
   
    //METODO ENTRADA ES PARA USAR VENTANAS (JOPTIONPANE) PARA USARSE EN EL METODO AGREGAR DATOS
    public String entrada(String dato){
        return JOptionPane.showInputDialog(dato);
    }
   
    public void agregarDatos(){
       
        String nombDueño = entrada("Nombre del Dueño");
        String nombPerro = entrada("Nombre del Perro");
        String raza = entrada("Raza del Perro");
        String tamaño = entrada("Tamaño del Perro");
        String placa = entrada("Placa del Perro");
        String edad = entrada("Edad de Perro");
        String peso = entrada("Peso de Perro");
       
        Perro p = new Perro();
        p.setNombDueño(nombDueño);
        p.setNombPerro(nombPerro);
        p.setRaza(raza);
        p.setTamaño(tamaño);
        p.setPlaca(placa);
        p.setEdad(edad);
        p.setPeso(peso);
               
        registro.add(p);
       
        //AGREGACION DE DATOS RANDOM PARA MOSTRAR EN UN METODO LA CALIFICACION
        Random r = new Random();
        int nota = r.nextInt(10)+1;
       
        p.setNota(nota);
       
    }
   
    public void listaDatos(){
        //METODO PARA MOSTRAR EN FORMA DE LISTA LOS DATOS QUE SE AGREGARON
        String dato = "";
        for (int i = 0; i < registro.size(); i++) {
            dato += "       Participante Nro." + (i+1) +"\n";
            dato += "Nombre del dueño: " + registro.get(i).getNombDueño() +"\n";
            dato += "Nombre del perro: " + registro.get(i).getNombPerro() +"\n";
            dato += "Raza: " + registro.get(i).getRaza() +"\n";
            dato += "Tamaño: " + registro.get(i).getTamaño() +"\n";
            dato += "Placa: " + registro.get(i).getPlaca() +"\n";
            dato += "Edad: " + registro.get(i).getEdad() +"\n";
            dato += "Peso: " + registro.get(i).getPeso() +"\n";
           
        }
        JOptionPane.showMessageDialog(null, dato);
    }
   
    public boolean buscarPlaca(String placa){
       
        boolean bandera = false;
        int i = 0;
        //PARA ORDENAR LOS OBJETOS DEL ARRAYLIST
        while (bandera == false && i < registro.size()) {           
            if (registro.get(i).getPlaca().compareToIgnoreCase(placa)==0) {
                bandera = true;
            } else{
                i++;
            }
        }
        //INDICAMOS AL PRINCIPIO QUE BANDERA ES FALSE ENTONCES DE RETORNO SE IMPRIMEN EN FORMA DE LISTA LOS OBJETOS DENTRO DEL ARRAYLIST
        if (bandera) {
           
            JOptionPane.showMessageDialog(null,"        Participante Nro." +(i+1) +"\n"
                                          +"Nombre del dueño: " +registro.get(i).getNombDueño() +"\n"
                                          +"Nombre del perro: " +registro.get(i).getNombPerro() +"\n"
                                          +"Raza: " +registro.get(i).getRaza() +"\n"
                                          +"Tamaño: " +registro.get(i).getTamaño() +"\n"
                                          +"Placa: " +registro.get(i).getPlaca() +"\n"
                                          +"Edad: " +registro.get(i).getEdad() +"\n"
                                          +"Peso: " +registro.get(i).getPeso() +"\n");
            return false;
        } else{
            //SI EL DATO QUE INGRESO NO COICIDE CON EL OBJETO ENTONCES SE VA IMPRIMIR EL MENSAJE DE QUE NO EXISTE
            JOptionPane.showMessageDialog(null, "La placa no esta registrada");
            return true;
        }
       
    }
   
    public void mostrarCalificacion(){
        String dato = "";
       
        for (int i = 0; i < registro.size(); i++) {
            dato += "       Participante Nro." + (i+1) +"\n";
            dato += "Calificacion: " + registro.get(i).getNota() +"\n";
        }
        JOptionPane.showMessageDialog(null, dato);
    }
   
    public void ranking(){
       
        Collections.sort(registro, new OrdenandoCalificacion());
       
        String dato = "";
       
        for (int i = registro.size(); i < 3; i++) {
            dato += "       RANKING DE PREMIADOS"+ "\n";
            dato += "Participante Nro."+registro.get(i).getPlaca() +"\n";
            dato += "Calificacion: "+registro.get(i).getNota();
        }
        JOptionPane.showMessageDialog(null, dato);
       
    }
       
    public void eliminarLista(){
        registro.clear();
    }
}   


En esta clase intente hacer ordenamiento del arraylist

Código: [Seleccionar]
import java.util.Comparator;

public class OrdenandoCalificacion implements Comparator<Perro> {
   
    @Override
    public int compare(Perro o1, Perro o2) {
        //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
       
        if (o1.getNota()>o2.getNota()) {
            return -1;
        } else if (o1.getNota()>o2.getNota()) {
            return 0;
        } else{
            return 1;
        }
    }
}

por ultimo la clase principal, que solamente tiene de metodo un menu
Código: [Seleccionar]
import javax.swing.JOptionPane;

public class Principal {
   
    public static void main(String[] args) {
       
        Principal p = new Principal();

        p.menu();
    }
   
    public void menu(){
       
        Competencia c = new Competencia();
       
        int opcion;
       
        do {           
            opcion = Integer.parseInt(JOptionPane.showInputDialog(null,"             COMPETENCIA CANINA"
                    +"\n 1. Registro de participantes"
                    +"\n 2. Información de participantes"
                    +"\n 3. Calificaciones"
                    +"\n 4. Ranking de premiados"
                    +"\n 5. Consultar info de un participante"
                    +"\n 6. Eliminar lista de registro"
                    +"\n 7. SALIR"
                    +"","MENU PRINCIPAL",JOptionPane.QUESTION_MESSAGE));
           
            switch(opcion){
            case 1:
                c.agregarDatos();
                break;
            case 2:
                c.listaDatos();
                break;
            case 3:
                //c.calificacion();
                c.mostrarCalificacion();
                break;
            case 4:
                c.ranking();
                break;
            case 5:
                boolean valor = false;
                do {
                    String placa = JOptionPane.showInputDialog("     CONSULTAR INFO DE UN PARTICIPANTE"
                                                               + "\nIngrese la placa del perro");
                    valor = c.buscarPlaca(placa);
                } while (valor);
                break;
            case 6:
                c.eliminarLista();
                break;
            case 7:
                JOptionPane.showMessageDialog(null, "    FINALIZO EL PROGRAMA");
                //System.out.println("");
                System.exit(0);
                break;
            default:
                System.out.println();
               
                JOptionPane.showInputDialog(null,"        ELIJA UNA OPCION VALIDA"
                                                + "\n 1. Volver","ERROR",JOptionPane.WARNING_MESSAGE);
            }
        } while (opcion!=7);
    }
}


2
Saludos! Soy nueva interactuando en este foro y quiero solicitar su ayuda con este algoritmo respecto a POO, si gustan en ayudarme se los agradezco y ayudo compartiendo el codigo.

La mayor parte lo tengo hecho (aplicando arraylist), solo tengo un problema en entender la parte: "listar por categoria" (no se como empezar, habia intentado algunas formas pero no me dio buen resultado)

ALGORITMO
permita registra/inscribir/matricular personas en un equipo de baloncesto
debe permitir el sistema registrar los siguiente campos:
-nombre
-apellido
-fecha nacimiento
-eps
-documento

el sistema debe clasificar a cada persona matriculada en la categoria correspondiente
dependiendo la edad, la cual se calcula con la fecha de nacimiento

las categorias son:
-infantil (5 a 10)
-juvenil (11 a 15)
-unica (16 a 34)
-veteranos (mayores a 35).

el sistema debe permitir listar por categoria

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".