321
Aprender a programar desde cero / Re: Ejercicio de programacion en java script en el programa netbeans
« en: 06 de Noviembre 2021, 11:39 »
Insisto, primero hay que escribir una clase Deportista, con sus atributos y métodos.
Al menos sus getter y setter, pero ya que nos dicen que uno de sus atributos es un código, se supone que es un código identificador único, es decir, no pueden haber dos Deportistas con el mismo código.
Para poder tener cierto control sobre este aspecto, podemos sobreescribir el método equals() de manera que dos Deportistas se consideren iguales si tienen el mismo código.
De momento esta será la clase Deportista, luego según se vaya desarrollando el programa puede que la modifiquemos.
Pero por ahora, ya podríamos realizar las tres primeras opciones del menú: registrar deportista, eliminarlos y modificarlos.
Para eso, en otra clase, que será la clase principal con el main(), podemos declarar un ArrayList donde registrar los Deportistas.
Mostraremos un menú de opciones, y para cada opción, escribiremos una función que se encargue de llevarla a cabo.
Bien, ya tenemos lo básico. Antes de seguir, revisa este código, asegúrate de que lo entiendes y ya tu mismo decides si quieres escribir el tuyo propio siguiendo esta lógica o utilizar este.
Sobre todo lo importante es que quede clara la necesidad de modelar una clase y de cómo su gestión se llevará a cabo desde otra clase distinta.
Luego continúo en otro mensaje.
Al menos sus getter y setter, pero ya que nos dicen que uno de sus atributos es un código, se supone que es un código identificador único, es decir, no pueden haber dos Deportistas con el mismo código.
Para poder tener cierto control sobre este aspecto, podemos sobreescribir el método equals() de manera que dos Deportistas se consideren iguales si tienen el mismo código.
Código: [Seleccionar]
public class Deportista {
private String codigo;
private String nombre;
private int edad;
private String nivel;
private String sexo;
public Deportista(String codigo, String nombre, int edad, String nivel, String sexo) {
this.codigo = codigo;
this.nombre = nombre;
this.edad = edad;
this.nivel = nivel;
this.sexo = sexo;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public String getNivel() {
return nivel;
}
public void setNivel(String nivel) {
this.nivel = nivel;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Deportista) {
//Dos deportistas son equivalentes si tienen el mismo codigo
Deportista otroDepor = (Deportista) obj;
return otroDepor.codigo.equals(codigo);
}
else
return false;
}
}
De momento esta será la clase Deportista, luego según se vaya desarrollando el programa puede que la modifiquemos.
Pero por ahora, ya podríamos realizar las tres primeras opciones del menú: registrar deportista, eliminarlos y modificarlos.
Para eso, en otra clase, que será la clase principal con el main(), podemos declarar un ArrayList donde registrar los Deportistas.
Mostraremos un menú de opciones, y para cada opción, escribiremos una función que se encargue de llevarla a cabo.
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Scanner;
public class MenuCompeticion {
private static ArrayList<Deportista> deportistas;
private static Scanner teclado;
public static void main(String[] args) {
deportistas = new ArrayList<Deportista>();
teclado = new Scanner(System.in);
int opcion = 0;
do {
mostrarMenu();
opcion = Integer.parseInt(teclado.nextLine());
switch(opcion) {
case 0:
System.out.println("\nFIN DE PROGRAMA");
break;
case 1:
registrarDeportista();
break;
case 2:
eliminarDeportista();
break;
case 3:
modificarDeportista();
break;
default:
System.out.println("\nOpcion equivocada");
}
}while (opcion != 0);
}
private static void mostrarMenu() {
System.out.println("\n\t\tMENU COMPETICION");
System.out.println("\t\t---- -----------\n");
System.out.println("[1] -- Registrar Deportista");
System.out.println("[2] -- Eliminar Deportista");
System.out.println("[3] -- Modificar Deportista");
System.out.println("\n[0] -- TERMINAR PROGRAMA");
}
private static void registrarDeportista() {
System.out.println("\n\t--NUEVO DEPORTISTA--");
System.out.print("Codigo: ");
String codigo = teclado.nextLine();
System.out.print("Nombre: ");
String nombre = teclado.nextLine();
System.out.print("Edad: ");
int edad = Integer.parseInt(teclado.nextLine());
System.out.print("Nivel(A/B/C): ");
String nivel = teclado.nextLine().toUpperCase();
System.out.print("Sexo: ");
String sexo = teclado.nextLine();
Deportista nuevo = new Deportista(codigo, nombre, edad, nivel, sexo);
if (deportistas.contains(nuevo))
System.out.println("\nYa existe deportista con codigo: " + codigo);
else {
deportistas.add(nuevo);
System.out.println("\nDeportista registrado");
}
}
private static void eliminarDeportista() {
System.out.println("\n\t--ELIMINAR DEPORTISTA--");
System.out.print("Codigo: ");
String codigo = teclado.nextLine();
Deportista buscado = null;
for (int i = 0; i < deportistas.size(); i++)
if (deportistas.get(i).getCodigo().equals(codigo))
buscado = deportistas.get(i);
if (buscado == null)
System.out.println("\nNo existe deportista con el codigo: " + codigo);
else {
deportistas.remove(buscado);
System.out.println("\nDeportista eliminado");
}
}
private static void modificarDeportista() {
System.out.println("\n\t--MODIFICAR DEPORTISTA--");
System.out.print("Codigo: ");
String codigo = teclado.nextLine();
Deportista buscado = null;
for (int i = 0; i < deportistas.size(); i++)
if (deportistas.get(i).getCodigo().equals(codigo))
buscado = deportistas.get(i);
if (buscado == null)
System.out.println("\nNo existe deportista con el codigo: " + codigo);
else {
//Codigo no se puede modificar
System.out.println("\nNombre actual: " + buscado.getNombre());
System.out.print("Nuevo nombre: ");
buscado.setNombre(teclado.nextLine());
System.out.println("\nEdad actual: " + buscado.getEdad());
System.out.print("Nueva edad: ");
buscado.setEdad(Integer.parseInt(teclado.nextLine()));
System.out.println("\nNivel actual: " + buscado.getNivel());
System.out.print("Nuevo nivel: ");
buscado.setNivel(teclado.nextLine());
System.out.println("\nSexo actual: " + buscado.getSexo());
System.out.print("Nuevo sexo: ");
buscado.setSexo(teclado.nextLine());
System.out.println("\nDeportista modificado");
}
}
}
Bien, ya tenemos lo básico. Antes de seguir, revisa este código, asegúrate de que lo entiendes y ya tu mismo decides si quieres escribir el tuyo propio siguiendo esta lógica o utilizar este.
Sobre todo lo importante es que quede clara la necesidad de modelar una clase y de cómo su gestión se llevará a cabo desde otra clase distinta.
Luego continúo en otro mensaje.