Red de conocimiento informático - Aprendizaje de programación - JAVA implementa programación orientada a objetos, ¿cómo solucionar este problema?

JAVA implementa programación orientada a objetos, ¿cómo solucionar este problema?

Index.javaimport?java.io.BufferedWriter;

importar?java.io.FileWriter;

importar?java.io.IOException;

importar?java.util.HashMap;

importar?java.util.Iterator;

importar?java.util.Map;

importar ?java.util.Scanner;

import?java.util.Set;

public?class?Index?{

//Crear entrada de teclado global Objeto.

static?Scanner?sc;

public?static?void?main(String[]?args)?throws?IOException?{

sc ?=?new?Scanner(System.in);

//Crea un mapeo de mapa, la clave es el número del equipo y el valor es la clase del equipo.

HashMaplt; String,? Teamgt;?teams?=?new?HashMaplt;String,?Teamgt;();

//Nombre del bucle, utilizado para especificar la salida y continuar.

Bucle :? while ?(true)?{

//Opciones de impresión

System.out.println("1. ¿Agregar un equipo? 2. ¿Ver el equipo? 3. Eliminar ¿Información del jugador? 4. ¿Exportar información del equipo? 5. Salir");

String?option?=?sc.nextLine();

¿cambiar?(opción)?{

caso?"1":? //1.Agregar equipo

addTeam(teams);

descanso;

caso?" 2 ":? ///?2. Ver equipos

viewTeam(teams);

break;

case?"3": ///?3. Eliminar jugadores

eliminarPlayer(teams);

break;

case?"4": //Exportar información

> exportInfo(teams);

break;

case?"5": ///?5. p >

sc.close();?/?//?Cierra el flujo de entrada antes de salir de este sistema.

break?Loop;

default:?

p>

System.out.println("Entrada incorrecta, vuelva a ingresar: "

continuar? Loop;

}

}

//Agregue un equipo de acuerdo con el número del equipo y agregue objetos de jugador al equipo al agregar el equipo.

público?estático?vacío?addT

eam(Maplt; String, ?Teamgt; ?teams)?{

System.out.println("Ingrese el número del equipo: ");

String?teamID?=? sc.nextLine();

//Crear un nuevo objeto de equipo.

Team?team?=?new?Team();

equipo. setTeamID(teamID);

///? Agrega el objeto de equipo creado al mapa.

teams.put(teamID,?team);

System. out.println("Ingrese el nombre del equipo: ");

String?teamName?=?sc.nextLine();

team.setTeamName(teamName);

System.out.println("Ingrese la ciudad donde se encuentra el equipo:");

String?teamCity?=?sc.nextLine();

team .setTeamCity(teamCity);

// Crea una nueva variable booleana para determinar si se continúa agregando.

boolean?flag?=?true;

while ?(bandera)?{

System.out.println("Ingrese el nombre del jugador: ");

String?playerName?=?sc.nextLine();

System.out.println("Ingrese los puntos promedio del jugador por juego:");

double?pointsPerGame?=?sc.nextDouble();

sc.nextLine ();

System.out.println("Seleccione el tipo de jugador:? 1. ¿Delantero? 2. ¿Centro? 3. Defensor"); //Crea una nueva variable de posición para determinar el tipo de jugador agregado.

int?position?=?sc.nextInt();

sc.nextLine();

si?(posición?==?1)?{

¿Adelante?jugador?=?nuevo?Adelante();

team.setPlayers(jugador);

player .setPlayerPosition("Forward");

System.out.println("Ingrese el promedio de rebotes por juego:");

double?reboundsPerGame ?=?sc.nextDouble();

sc.nextLine();

player.setPlayerName(playerName);

player.setPointsPerGame(puntosPorJuego);

jugador. setReboundsPerGame(reboundsPerGame);

}?else?if?(position?==?2)?{

C

enter?player?=?new?Center();

team.setPlayers(jugador);

player.setPlayerPosition("Centro");

Sistema .out.println("Ingrese el promedio de bloqueos por juego:");

double?blocksPerGame?=?sc.nextDouble();

sc.nextLine();

player.setPlayerName(playerName);

player.setPointsPerGame(pointsPerGame);

player.setBlocksPerGame(blocksPerGame);

}? else? {

Guardia?jugador?=?new?Guardia();

team.setPlayers(jugador);

player.setPlayerPosition("Guardia"

System.out.println("Ingrese el promedio de asistencias por juego: "

double?assistsPerGame?=?sc.nextDouble(); p> sc .nextLine();

player.setPlayerName(playerName);

player.setPointsPerGame(pointsPerGame);

player.setAssistsPerGame(asistenciasPerGame);

}

System.out.println("Si se continúa agregando: (S/N)");

String?isAdd?=?sc. nextLine();

if?(isAdd.equalsIgnoreCase("y"))

bandera?=?true

else

flag?= ?false;

}

System.out.println("Número de equipo\tNombre del equipo\tCiudad del equipo");

Sistema .out .println(team.getTeamID()? ?"\t\t"? ?team.getTeamName()? ?"\t\t"? ?team.getTeamCity());

}

///? Muestra información del jugador según el equipo.

public?static?void?viewTeam(Maplt; String,?Teamgt;?teams)?{

//Utilice el método keySet para recuperar las claves en el mapa. Se utiliza para iterar sobre el objeto Equipo.

Setlt;?keyset?=?teams.keySet();

para?(Iteratorlt;Stringgt;?itt?=?keyset.iterator();?itt.hasNext();)?{

<

p> String?tmp?=?itt.next();

Equipo?team?=?teams.get(tmp);

System.out.println("Número de equipo \tNombre del equipo\tCiudad del equipo");

System.out.println(team.getTeamID()? ?"\t\t"? ?team.getTeamName()? ? "\t\t" ?team.getTeamCity());

//Después de obtener el objeto Team, itere sobre ArrayList, que almacena los objetos del reproductor.

System. Nombre del jugador\tPromedio de puntos por juego\tTipo de jugador");

for?(Iteratorlt;Playergt;?itp?=?team.getPlayers().iterator();?itp .hasNext();) ?{

Jugador?jugador?=?itp.next();

if?(player.getPlayerPosition().equals("Adelante"))

jugador?=?(Adelante)?jugador;

else?if?(player.getPlayerPosition().equals("centro"))

jugador ?=?(Centro) ?jugador;

else

jugador?=?(Guardia)?jugador;

System.out.println(jugador

}

}

}

///? Primero elimine el jugador según el número del equipo. Si no hay ningún equipo/jugador, aparecerá el mensaje.

public?static?void?deletePlayer(Maplt; String,?Teamgt;?teams)?{

System.out.println("Ingrese el contenido que desea eliminar Número de equipo" );

String?teamID?=?sc.nextLine();

// Determine si el número de equipo ingresado existe en el mapeo del mapa; si no, salte Regrese al interfaz de selección.

if?(teams.containsKey(teamID))?{

Team?team?=?teams.get(teamID);

Sistema .out.println("Ingrese el nombre del jugador: ");

String?playerName?=?sc.nextLine();

boolean?flag?=?false;

for?(Iteratorlt;Playergt;?it?=?team.getPlayers().iterator();?it.hasNext();)?{

Player?tmp?= ?it.next();

si?(playerName.equals(tmp.getPlayerName()))?{

bandera?=?true;

él

.remove();

System.out.println("Eliminación exitosa"

pausa

}

}

if?(!flag)

System.out.println("Error al eliminar, no existe tal reproductor"); p> System.out.println("No existe tal equipo, seleccione la función nuevamente.");

}

// Exportar información del equipo al directorio actual.

p>

public?static?void?exportInfo(Maplt;String,?Teamgt;?teams)?throws?IOException?{

Setlt;Stringgt;?keyset?=?teams .keySet() ;

/// Determine si la información del equipo se ha ingresado juzgando la longitud del keySet.

if?(keyset.size()?!=? 0)?{

BufferedWriter?bfw?=?new?BufferedWriter(new?FileWriter("Teams.txt"));

para?(Iteratorlt;Stringgt;?it? =?keyset.iterator() ;?it.hasNext();)?{

String?tmp?=?it.next();

¿Equipo?team?=? equipos.get(tmp);

bfw.write("Número de equipo\tNombre del equipo\tCiudad del equipo");

bfw.newLine();

bfw .write(team.getTeamID()? ?"\t\t"? ?team.getTeamName()? ?"\t\t"? ?team.getTeamCity());

bfw. nuevaLínea ();

}

bfw.close();

}?else?{

System.out.println( " Primero ingrese la información del equipo y luego exporte.");

}

}

// Salga del sistema.

public ?static?void?exit()?{

System.out.println("Bienvenido la próxima vez.");

}

}

p>

Team.javaimport?java.util.ArrayList;

¿clase pública?¿Equipo?{

privado?String?teamID //Número de equipo;

private?String?teamName; //Nombre del equipo

private?String?teamCity //La ciudad donde se encuentra el equipo

privado? ArrayListlt;Playergt; ?players; //Player collection

public?Team()?{?//?Al crear una instancia de Team, cree una instancia de la colección ArrayList.

> player?=?new?ArrayListlt;gt;();

}

//Obtener y establecer métodos para cada atributo

public?String? getTeamID ()?{

return?teamID;

}

public?void?setTeamID(String?teamID)?{

este .teamID?=?teamID;

}

public?String?getTeamName()?{

return?teamName;

}

public?void?setTeamName(String?teamName)?{

this.teamName?=?teamName;

}

public ?String?getTeamCity()?{

return?teamCity;

}

public?void?setTeamCity(String?teamCity)?{

this.teamCity?=?teamCity;

}

public?ArrayListlt;Playergt;?getPlayers()?{

return?players;

}

//El método set de jugadores agrega directamente jugadores a ArrayList.

public?void?setPlayers(Player?player)?{< / p>

jugadores.add(jugador);

}

}

Player.javapublic?class?Player?{

protected?String?playerName; //?Nombre del jugador

protected?double?pointsPerGame; //?Puntos promedio por juego

protected?String?playerPosition //?Tipo de jugador;

///?Obtener y configurar métodos de cada atributo

public?String?getPlayerName()?{

return?playerName;

}

public?void?setPlayerName(String?playerName)?{

this.playerName?=?playerName;

}

público?doble?getPointsPerGame()?{

return?pointsPerGame;

}

público?void?setPointsPerGame(doble?pointsPerGame)?{

this.pointsPerGame?=?pointsPerGame;

}

public?String?getPlayerPosition()?{

return

?playerPosition;

}

public?void?setPlayerPosition(String?playerPosition)?{

this.playerPosition?=?playerPosition;

}

/// Reescribe el método toString para facilitar la salida

public?String?toString()?{

return?playerName? t\t"? ?pointsPerGame? ?"\t\t"? ?playerPosition;

}

}

Adelante.javapublic?clase?Adelante? extends?Player?{

privado?double?reboundsPerGame;?//?Rebotes por juego

//get, set métodos

public?double? getReboundsPerGame()?{

return?reboundsPerGame;

}

public?void?setReboundsPerGame(double?reboundsPerGame)?{

this.reboundsPerGame?=?reboundsPerGame;

}

/// Anula el método toString para facilitar la salida

public?String?toString()?{

return?playerName? ?"\t\t"? ?pointsPerGame? ?"\t\t"?playerPosition ?"\t\t"? ?reboundsPerGame;

}

}

Center.javapublic?class?Center?extends?Player?{

privado?doble ?blocksPerGame;?//?Bloques promedio por juego

//get, set métodos

public?double?getBlocksPerGame()?{

return? blocksPerGame ;

}

public?void?setBlocksPerGame(double?blocksPerGame)?{

this.blocksPerGame?=?blocksPerGame;

}

///? Reescribe el método toString para facilitar la salida

public?String?toString()?{

return?playerName ?"\t \ t"? ?pointsPerGame? ?"\t\t"? ?playerPosition? ?"\t\t"? ?"Promedio de bloqueos por juego\t\t"? ?blocksPerGame;

}

}

Guard.javapublic?class?Guard?extends?Player?{

privado

?double?assistsPerGame;?//?Asistencias por juego

//?get, set métodos

public?double?getAssistsPerGame()?{

return ?assistsPerGame;

}

public?void?setAssistsPerGame(double?assistsPerGame)?{

this.assistsPerGame?=?assistsPerGame;

}

/// Reescribe el método toString para facilitar la salida

public?String?toString()?{

return?playerName? t\t"? ?puntosPorJuego? ?"\t\t"? ?posiciónjugador? ?"\t\t"? ?"Asistencias por juego\t\t"? ?asistenciasPorJuego;

}

}

A excepción de los comentarios, si tiene alguna pregunta que no comprende, las funciones han sido probadas y pueden utilizarse.