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.


Mensajes - 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
Muchas gracias por corregir mi codigo.

Ya corregi de acuerdo a tus consejos; sobre las excepciones es nuevo para mi (todavia no profundice), no recuerdo bien al comienzo de hacer este ejercicio tenia muchos errores que me sugeria importa IOException, en lo posterio al completar mi ejercicio deje las excepciones como estaban.

En lo personal seguire revisando, de todo modos, comparto la ultima modificación que hice.

*Clase Persona:
Código: [Seleccionar]
import java.io.IOException;
import java.util.Calendar;

public class Persona {
   
    protected String nombre;
    protected String apellido;
    protected String fechaNaci;
    protected String eps; //centro de salud
    protected int documento; //numero de carnet
    protected int edad;
   
    Persona() {
    }

    public Persona(String nombre, String apellido, String fechaNaci, String eps, int documento, int edad) {
        this.nombre = nombre;
        this.apellido = apellido;
        this.fechaNaci = fechaNaci;
        this.eps = eps;
        this.documento = documento;
        this.edad = edad;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getFechaNacimiento() {
        return fechaNaci;
    }

    public void setFechaNacimiento(String fechaNaci) {
        this.fechaNaci = fechaNaci;
    }

    public String getEps() {
        return eps;
    }

    public void setEps(String eps) {
        this.eps = eps;
    }

    public int getDocumento() {
        return documento;
    }

    public void setDocumento(int documento) {
        this.documento = documento;
    }

    public int getEdad() {
        return edad;
    }

    public void setEdad(int edad) {
        this.edad = edad;
    }
   
    @Override
    public String toString() {
       
        return "\tJugador"
                + "\nNombre: " + nombre
                + "\nApellido: " + apellido
                + "\nFecha Nacimiento: " + fechaNaci
                + "\nEPS: " + eps
                + "\nNro. de carnet: " + documento
                + "\nEdad: " + edad;
    }
   
}

*Clase Sistema:
Código: [Seleccionar]
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import javax.swing.JOptionPane;

public class Sistema {
   
    protected int diaNaci, mesNaci, añoNaci; // (dd / mm / aa)
    protected int edad;
   
    //---------------------------------------------------------------------------------------------------
    public ArrayList<Persona> listaJugador = new ArrayList<Persona>();
   
    //-----------------CONSTRUCTOR----------------------------------------------------------------------------
    public Sistema() {
    }
    //------------------------METODOS-------------------------------------------------------------------------------
    public String entrada(String dato){
        return JOptionPane.showInputDialog(dato);
    }
   
    public void agregarDatos() throws IOException{
       
        String nombre = entrada("Nombre");
        String apellido = entrada("Apellido");
        String fechaNaci = entrada("Fecha de nacimiento");
        añoNaci = fechaNacimiento(fechaNaci);
        String eps = entrada("EPS");
        int documento = Integer.parseInt(JOptionPane.showInputDialog("Carnet"));
        edad = calcularEdad();
       
        Persona p = new Persona();
        p.setNombre(nombre);
        p.setApellido(apellido);
        p.setFechaNacimiento(fechaNaci);
        p.setEps(eps);
        p.setDocumento(documento);
        p.setEdad(edad);
       
        listaJugador.add(p);
    }
   
    public void mostrarDatos(){
        //METODO PARA MOSTRAR LOS DATOS QUE SE AGREGARON
        for (int i = 0; i < listaJugador.size(); i++) {
           
            System.out.print("\tJugador Nro."+(i+1)+"\n"
                             +"Nombre: "+listaJugador.get(i).getNombre()+"\n"
                             +"Apellido: "+listaJugador.get(i).getApellido()+"\n"
                             +"Fecha de nacimiento: "+listaJugador.get(i).getFechaNacimiento()+"\n"
                             +"EPS: "+listaJugador.get(i).getEps()+"\n"
                             +"Nro. de carnet: "+listaJugador.get(i).getDocumento()+"\n"
                             +"Edad: "+listaJugador.get(i).getEdad()+"\n");
        }
    }

    public int fechaNacimiento(String fechaNaci){
        String dia, mes, año; // (dd / mm / aa)
        int posicion;
       
        posicion = fechaNaci.indexOf("/");
        dia = fechaNaci.substring(0, posicion);
        fechaNaci = fechaNaci.substring(posicion+1);
       
        posicion = fechaNaci.indexOf("/");
        mes = fechaNaci.substring(0, posicion);
        fechaNaci = fechaNaci.substring(posicion+1);
       
        año = fechaNaci;
       
        diaNaci = Integer.parseInt(dia);
        mesNaci = Integer.parseInt(mes);
        añoNaci = Integer.parseInt(año);
       
        return añoNaci;
    }
   
    public int calcularEdad() throws IOException {
       
        Calendar fechaAct = Calendar.getInstance();
        int diaAct = fechaAct.get(Calendar.DAY_OF_MONTH);
        int mesAct = fechaAct.get(Calendar.MONTH);
        int añoAct = fechaAct.get(Calendar.YEAR);
       
       
        edad = añoAct - añoNaci;
        if (mesAct-mesNaci <= 0 && diaAct-diaNaci < 0) {
            edad--;
        }
        return edad;
    }
   
    public void listarCategorias() throws IOException{
        System.out.println("\nLISTADO POR CATEGORIAS\n");
        if (listaJugador.isEmpty())
            System.out.println("No hay Jugadores registrados");
        else {
           
            ArrayList<Persona> infantil = new ArrayList<Persona>();
            ArrayList<Persona> juvenil = new ArrayList<Persona>();
            ArrayList<Persona> unica = new ArrayList<Persona>();
            ArrayList<Persona> veteranos = new ArrayList<Persona>();
           
            for (Persona jugador: listaJugador) {
                int edad = jugador.getEdad();
                System.out.println("\tEdad: "+edad +"\n");
               
                if (edad >=5 && edad <=10)
                    infantil.add(jugador);
                else if (edad >= 11 && edad <= 15)
                    juvenil.add(jugador);
                else if (edad >= 16 && edad <= 34)
                    unica.add(jugador);
                else if (edad >=35)
                    veteranos.add(jugador);
               
            }
           
            System.out.println("\t- Infantil -\n");
            if (infantil.isEmpty())
                System.out.println("No hay jugadores en esta categoria");
            else
               
                for (Persona infante: infantil)
                    System.out.println(infante + "\n");
               
           
            System.out.println("\n\t- Juvenil -\n");
            if (juvenil.isEmpty())
                System.out.println("No hay jugadores en esta categoria");
            else
               
                for (Persona joven: juvenil)
                    System.out.println(joven + "\n");
               
           
            System.out.println("\n\t- Unica -\n");
            if (unica.isEmpty())
                System.out.println("No hay jugadores en esta categoria");
            else
               
                for (Persona unico: unica)
                    System.out.println(unico + "\n");
               
           
            System.out.println("\n\t- Veteranos -\n");
            if (veteranos.isEmpty())
                System.out.println("No hay jugadores en esta categoria");
            else
               
                for (Persona veterano: veteranos)
                    System.out.println(veterano + "\n");
        }
    }
}

no modifique esta clase
*Clase Principal
Código: [Seleccionar]
import java.io.IOException;
import javax.swing.JOptionPane;

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

        p.menu();
    }
   
    public void menu() throws IOException{
               
        Sistema s = new Sistema();
       
        int opcion;
       
        do {           
            opcion = Integer.parseInt(JOptionPane.showInputDialog(null,"       SISTEMA DE MATRICULACIÓN"
                    +"\n 1. Registrar equipo de boloncesto"
                    +"\n 2. Información de todos los jugadores"
                    +"\n 3. Ver categorias"
                    +"\n 4. SALIR"
                    +"","MENU PRINCIPAL",JOptionPane.QUESTION_MESSAGE));
           
            switch(opcion){
            case 1:
                s.agregarDatos();
                break;
            case 2:
                System.out.println("INFORMACIÓN DEL EQUIPO DE BALONCESTO"+"\n");
                s.mostrarDatos();
                System.out.println();
                break;
            case 3:
                s.listarCategorias();
                break;
            case 4:
                JOptionPane.showMessageDialog(null, "    FINALIZO EL PROGRAMA");
                System.exit(0);
                break;
            default:
                System.out.println();
               
                JOptionPane.showInputDialog(null,"        ELIJA UNA OPCION VALIDA"
                                                + "\n 1. Volver","ERROR",JOptionPane.WARNING_MESSAGE);
            }
        } while (opcion!=4);
    }
}

3
Muchas gracias Kabuto por la ayuda.

Estoy aprendiendo a usar arraylist, que no se me dio esa idea de crear arraylist para cada categoria.
Estuve aplicando en mi codigo tu ayuda exactamente del metodo listado por categoria, solamente tengo el problema al imprimir los datos, en consola no me aparece los objetos de los arraylist, me indica esto: "Sistema.Persona@6483f5ae"


Compartire el codigo de este ejercicio que estuve haciendo

Primero comencé por crear la clase Persona para los atributos, metodos set&get y constructor para aplicar herencia ya que cree otra clase Sistema para los metodos

Código: [Seleccionar]
import java.io.IOException;
import java.util.Calendar;

public class Persona {
   
    protected String nombre;
    protected String apellido;
    protected String fechaNaci;
    protected String eps; //centro de salud
    protected int documento; //numero de carnet
    protected int edad;
    protected int diaNaci, mesNaci, añoNaci; // (dd / mm / aa)
   
    Persona() {
    }

    public Persona(String nombre, String apellido, String fechaNaci, String eps, int documento, int edad, int diaNaci, int mesNaci, int añoNaci) {
        this.nombre = nombre;
        this.apellido = apellido;
        this.fechaNaci = fechaNaci;
        this.eps = eps;
        this.documento = documento;
        this.edad = edad;
        this.diaNaci = diaNaci;
        this.mesNaci = mesNaci;
        this.añoNaci = añoNaci;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getFechaNacimiento() {
        return fechaNaci;
    }

    public void setFechaNacimiento(String fechaNaci) {
        this.fechaNaci = fechaNaci;
    }

    public String getEps() {
        return eps;
    }

    public void setEps(String eps) {
        this.eps = eps;
    }

    public int getDocumento() {
        return documento;
    }

    public void setDocumento(int documento) {
        this.documento = documento;
    }

    public int getEdad() {
        return edad;
    }

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

en la clase sistema van todos los metodos: entrada de datos, mostrar los datos, calcular la edad de acuerdo a la fecha nacimiento, y por ultimo, listar por categoria.

Código: [Seleccionar]
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import javax.swing.JOptionPane;

public class Sistema extends Persona{
   
    //---------------------------------------------------------------------------------------------------
    public ArrayList<Persona> listaJugador = new ArrayList<Persona>();
   
    //-----------------CONSTRUCTORS----------------------------------------------------------------------------
    Sistema() {
    }

    public Sistema(String nombre, String apellido, String fechaNaci, String eps, int documento, int edad, int diaNaci, int mesNaci, int añoNaci) {
        super(nombre, apellido, fechaNaci, eps, documento, edad, diaNaci, mesNaci, añoNaci);
    }
   
    //------------------------METODOS-------------------------------------------------------------------------------
    public String entrada(String dato){
        return JOptionPane.showInputDialog(dato);
    }
   
    public void agregarDatos() throws IOException{
       
        nombre = entrada("Nombre");
        apellido = entrada("Apellido");
        fechaNaci = entrada("Fecha de nacimiento");
        añoNaci = fechaNacimiento(fechaNaci);
        eps = entrada("EPS");
        documento = Integer.parseInt(JOptionPane.showInputDialog("Carnet"));
        edad = calcularEdad();
       
        Persona p = new Persona();
        p.setNombre(nombre);
        p.setApellido(apellido);
        p.setFechaNacimiento(fechaNaci);
        p.setEps(eps);
        p.setDocumento(documento);
        p.setEdad(edad);
       
        listaJugador.add(p);
    }
   
    public void mostrarDatos(){
        //METODO PARA MOSTRAR EN FORMA DE LISTA LOS DATOS QUE SE AGREGARON
        for (int i = 0; i < listaJugador.size(); i++) {
           
            System.out.print("\tJugador Nro."+(i+1)+"\n"
                             +"Nombre: "+listaJugador.get(i).getNombre()+"\n"
                             +"Apellido: "+listaJugador.get(i).getApellido()+"\n"
                             +"Fecha de nacimiento: "+listaJugador.get(i).getFechaNacimiento()+"\n"
                             +"EPS: "+listaJugador.get(i).getEps()+"\n"
                             +"Nro. de carnet: "+listaJugador.get(i).getDocumento()+"\n"
                             +"Edad: "+listaJugador.get(i).getEdad()+"\n");
        }
    }

    public int fechaNacimiento(String fechaNaci){
        String dia, mes, año; // (dd / mm / aa)
        int posicion;
       
        posicion = fechaNaci.indexOf("/");
        dia = fechaNaci.substring(0, posicion);
        fechaNaci = fechaNaci.substring(posicion+1);
       
        posicion = fechaNaci.indexOf("/");
        mes = fechaNaci.substring(0, posicion);
        fechaNaci = fechaNaci.substring(posicion+1);
       
        año = fechaNaci;
       
        diaNaci = Integer.parseInt(dia);
        mesNaci = Integer.parseInt(mes);
        añoNaci = Integer.parseInt(año);
       
        return añoNaci;
    }
   
    public int calcularEdad() throws IOException {
       
        Calendar fechaAct = Calendar.getInstance();
        int diaAct = fechaAct.get(Calendar.DAY_OF_MONTH);
        int mesAct = fechaAct.get(Calendar.MONTH);
        int añoAct = fechaAct.get(Calendar.YEAR);
       
       
        edad = añoAct - añoNaci;
        if (mesAct-mesNaci <= 0 && diaAct-diaNaci < 0) {
            edad--;
        }
        return edad;
    }
   
    public void listarCategorias() throws IOException{
        System.out.println("\nListado por Categorías...\n");
        if (listaJugador.isEmpty())
            System.out.println("No hay Jugadores registrados");
        else {
           
            ArrayList<Persona> infantil = new ArrayList<Persona>();
            ArrayList<Persona> juvenil = new ArrayList<Persona>();
            ArrayList<Persona> unica = new ArrayList<Persona>();
            ArrayList<Persona> veteranos = new ArrayList<Persona>();
           
            for (Persona jugador: listaJugador) {
                int edad = jugador.getEdad();
                System.out.println("\tEdad: "+edad);
               
                if (edad >=5 && edad <=10)
                    infantil.add(jugador);
                else if (edad >= 11 && edad <= 15)
                    juvenil.add(jugador);
                else if (edad >= 16 && edad <= 34)
                    unica.add(jugador);
                else if (edad >=35)
                    veteranos.add(jugador);
               
            }
           
            System.out.println("\t- Infantil -\n");
            if (infantil.isEmpty())
                System.out.println("No hay jugadores en esta categoria");
            else
               
                for (Persona infante: infantil)
                    System.out.println(infante + "\n");
               
           
            System.out.println("\n\t- Juvenil -\n");
            if (juvenil.isEmpty())
                System.out.println("No hay jugadores en esta categoria");
            else
               
                for (Persona joven: juvenil)
                    System.out.println(joven + "\n");
               
           
            System.out.println("\n\t- Unica -\n");
            if (unica.isEmpty())
                System.out.println("No hay jugadores en esta categoria");
            else
               
                for (Persona unico: unica)
                    System.out.println(unico + "\n");
               
           
            System.out.println("\n\t- Veteranos -\n");
            if (veteranos.isEmpty())
                System.out.println("No hay jugadores en esta categoria");
            else
               
                for (Persona veterano: veteranos)
                    System.out.println(veterano + "\n");
        }
    }
}

en la clase Principal tengo el menu con 4 opciones: registrar a los jugadores del equipo, ver la info de todos los jugadores, ver las categorias y finalizar el programa

Código: [Seleccionar]
import java.io.IOException;
import javax.swing.JOptionPane;

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

        p.menu();
    }
   
    public void menu() throws IOException{
               
        Sistema s = new Sistema();
       
        int opcion;
       
        do {           
            opcion = Integer.parseInt(JOptionPane.showInputDialog(null,"       SISTEMA DE MATRICULACIÓN"
                    +"\n 1. Registrar equipo de baloncesto"
                    +"\n 2. Información de todos los jugadores"
                    +"\n 3. Ver categorias"
                    +"\n 4. SALIR"
                    +"","MENU PRINCIPAL",JOptionPane.QUESTION_MESSAGE));
           
            switch(opcion){
            case 1:
                s.agregarDatos();
                break;
            case 2:
                System.out.println("INFORMACIÓN DEL EQUIPO DE BALONCESTO"+"\n");
                s.mostrarDatos();
                System.out.println();
                break;
            case 3:
                s.listarCategorias();
                break;
            case 4:
                JOptionPane.showMessageDialog(null, "    FINALIZO EL PROGRAMA");
                System.exit(0);
                break;
            default:
                System.out.println();
               
                JOptionPane.showInputDialog(null,"        ELIJA UNA OPCION VALIDA"
                                                + "\n 1. Volver","ERROR",JOptionPane.WARNING_MESSAGE);
            }
        } while (opcion!=4);
    }
}

Agradecería mucho si corrigen mi codigo, ya que esta con errores.

4
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".