Está en la página 1de 36

27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.

3046 | PROGRAMACIÓN AVANZADA

Semana 07: Solemne 1 (Supervisado remotamente)


Fecha de entrega 26 de nov en 23:59 Puntos 15 Preguntas 15
Disponible 20 de nov en 0:00 - 28 de nov en 23:59
Límite de tiempo 240 minutos
Requisitos para el examen Se requiere una cámara web para tomar este examen.
Protección de examen Este examen será supervisado por Proctorio. Más información
sobre Proctorio (https://proctorio.zendesk.com/hc/articles/200972514) .

Instrucciones

Historial de intentos
Intento Hora Puntaje
MÁS RECIENTE Intento 1 112 minutos 1 de 15 *

* Algunas preguntas no se han calificado

 Las respuestas correctas están ocultas.

Puntaje para este examen: 1 de 15 *


Entregado el 26 de nov en 22:45
Este intento tuvo una duración de 112 minutos.

Instrucciones del examen

Esta evaluación consta de 6 preguntas de selección múltiple y 9


preguntas de desarrollo, todas con 1 punto.

Cada pregunta contiene 4 alternativas, donde solo una es la correcta.

Cuenta con 240 minutos.

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 1/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Tienes una solo intento; recuerda que una vez iniciada la evaluación
debes terminar; la evaluación no puede pausarse.

Este Examen estará disponible hasta las 23:59 horas del domingo de
esta semana y tiene una ponderación del 30% de la nota de final del
curso.

Incorrecto Pregunta 1 0 / 1 pts

¿Cuál de las siguientes afirmaciones NO es correcta con respecto a la


herencia en POO?

La herencia entre dos clases puede ser múltiple y todo lenguaje orientado
a objetos debe ofrecer esta posibilidad.

La herencia entre dos clases puede ser múltiple, aunque no todos los
lenguajes orientados a objetos ofrecen esta posibilidad.

La clase que hereda contará con los atributos y métodos de la clase de la


que hereda y podrá modificar los métodos heredados.

La clase que hereda contará con los atributos y métodos de la clases de la


que hereda y podrá añadir otros nuevos.

No todos los lenguajes de ofrecen la posibilidad múltiple, pero se


cubre con otras alternativas a las clases como Interface.

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 2/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Pregunta 2 1 / 1 pts

En el contexto de los lenguajes de programación ¿Cuál de los términos


que se indican a continuación corresponde a la abstracción de un dato y
su comportamiento?

Objeto.

Encapsulación.

Función.

Método.

La abstracción en POO se aplica en la identificación de objetos de


una realidad definiendo sus atributos y comportamientos
relevantes.

Incorrecto
Pregunta 3 0 / 1 pts

Dado el siguiente diagrama de clases para una aplicación que registra las
personas que trabajan en una empresa contratista:

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 3/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Cuál (sólo una) de las siguientes descripciones es representada en el


diagrama:

Si la empresa deja de existir los empleados desaparecen.

Si la empresa deja de existir los empleados pueden trabajar en otra


empresa registrada en el sistema.

Si la empresa no posee clientes puede seguir funcionando.

La empresa recibe los atributos de Cliente y Empleado.

La relación de composición define la fuerza de la relación entre las


clases involucradas. Si deja de existir la parte (el todo) la parte
compuesta no tiene sentido mantenerla.

Incorrecto
Pregunta 4 0 / 1 pts

Analice el siguiente código donde el método _init_ es el constructor de la


clase respectiva y la palabra reservada self es lo mismo que this en Java.

Este segmento de código corresponda a:

Composición.

Agregación.

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 4/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Herencia.

Polimorfismo

Cuando existe relación compuesta el objeto compuesto se crea el


mismo momento que se crea el objeto todo (en el constructor) y
cuando es una relación agregada el objeto agregado se instancia
fuera del objeto todo como parámetro al crear el todo.

Incorrecto
Pregunta 5 0 / 1 pts

Una biblioteca tiene copias de libros, estos se caracterizan por tener un


nombre, una temática (ingeniería, literatura, informática, historia, etc.),
editorial, año de publicación y autor (descritos por su nombre,
nacionalidad y fecha de nacimiento). Cada copia de un libro tiene un
identificador, y puede estar en la biblioteca, prestada, con retraso o en
reparación. Cada libro se presta un máximo de 30 días, y por cada día de
retraso, se impone una multa de dos días sin posibilidad de coger un
nuevo libro. Los lectores no podrán tener activos más de 3 préstamos.
Dado el siguiente diagrama de clases que falta terminar.

¿Qué relación tiene más sentido entre las clases Lector y Biblioteca?

Una composición, donde 1 o muchos lectores sean parte de una


biblioteca.

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 5/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Una agregación, donde 1 o muchos lectores participen de una biblioteca.

Una asociación, donde 1 o muchos lectores interactúen con una biblioteca.

Una herencia, donde 1 o muchos lectores hereden las características de


una biblioteca.

No existe relación.

El problema se centra en una sola biblioteca, por lo tanto, no


existe necesidad de mantener un registro de lectores una vez
desaparezca la biblioteca. En conclusión, un lector deja de existir
cuando la biblioteca desaparece.

Incorrecto
Pregunta 6 0 / 1 pts

Una biblioteca tiene copias de libros, estos se caracterizan por tener un


nombre, una temática (ingeniería, literatura, informática, historia, etc.),
editorial, año de publicación y autor (descritos por su nombre,
nacionalidad y fecha de nacimiento). Cada copia de un libro tiene un
identificador, y puede estar en la biblioteca, prestada, con retraso o en
reparación. Cada libro se presta un máximo de 30 días, y por cada día de
retraso, se impone una multa de dos días sin posibilidad de coger un
nuevo libro. Los lectores no podrán tener activos más de 3 préstamos.
Dado el siguiente diagrama de clases que falta terminar.

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 6/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

¿Qué relación tiene más sentido entre las clases Biblioteca y Autor?

No existe relación.

De asociación, donde una biblioteca puede asociarse con 1 o muchos


autores.

De asociación, donde una biblioteca puede contener a 1 o muchos


autores.

De composición, donde una biblioteca puede estar compuesta por 1 o


muchos autores.

De herencia, donde una biblioteca hereda las características de un autor.

La relación existente entre la biblioteca y el autor se da a través de


los libros, y no de manera directa.

Pregunta 7 Aún no calificado / 1 pts

ENUNCIADO: COPA AMÉRICA

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 7/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Para la copa américa, se requiere de un sistema en java que permita


almacenar la información de los equipos y partidos que se juegan. Luego
de un estudio, un grupo de desarrolladores determinó que los atributos
para cada clase se indican en el diagrama siguiente:

Considere las siguientes reglas de negocio asociada a los atributos del


diagrama.

El día debe estar en el rango 1-31 ó 1-30 ó 1-28 ó 1-29 según


corresponda.
El mes debe estar en el rango 1-12.
Los grupos son ‘A’, ‘B’, ‘C’ o ‘D’
El ranking FIFA debe ser mayor que cero y menor que 100.
La fase puede tomar uno de los siguientes valores: FECHA 1, FECHA
2, FECHA 3, FECHA 4, FECHA 5, CUARTOS DE FINAL,
SEMIFINALES, TERCER PUESTO o FINAL
El Código país está entre 4 y 887
La numeración de las camisetas va del 0 al 15, y posteriormente, 20 al
25, 30 al 35, 40 al 45 y 50 al 55.

Asuma que todos los accesadores, mutadores (sin las validaciones) y


toString están implementados. Usted debe asignar al diagrama los
comportamientos (customers) que se le solicite programar considerando
los requerimientos de este diagrama.

INSTRUCCIONES:

Si lo desea (no es obligación) usted puede programar lo solicitado en


Netbeans u otro IDE pero debe considerar que sólo se evaluará lo que
exactamente se solicita en las preguntas de su prueba.

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 8/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Las respuestas debe entregarlas utilizando lenguaje de programación


JAVA y sólo debe subir a la prueba la funcionalidad (o métodos)
solicitados en cada pregunta. Su respuesta debe ponerla en los
espacios habilitados después de cada pregunta. Toda respuesta debe
tener (en comentario) el NOMBRE DE LA CLASE DONDE
IMPLEMENTÓ EL O LOS MÉTODOS REQUERIDOS EN CADA
PREGUNTA.
Debe utilizar las buenas prácticas de la POO y aplicación OO en
todas las circunstancias, incluido al trabajar con ArrayList, arreglos y
archivos.
Se evaluará la reutilización y modularidad de sus programas. Se debe
concentrar en implementar lo que le corresponde (según lo solicitado)
y reutilizar la funcionalidad que debe estar en otras clases.
Lea y analice bien la solicitud para que tome la decisión correcta de
dónde (en qué Clase) crear el o los métodos solicitados. Recuerde
que esta asignatura aplica la POO por lo tanto la decisión que tome
evalúa el conocimiento y correcta aplicación de los fundamentos y
principios de la POO.
Si no sigue las instrucciones al pie de la letra esta parte de la prueba
no será corregida y será evaluada con nota mínima.

Implemente las validaciones en los mutadores respectivos para la clase


Jugador. Debe entregar cada mutador intervenido y los métodos
adicionales que utilizó para dichas validaciones. No olvide indicar en
comentario el nombre de la clase donde pertenecen los métodos que ha
programado.

Su respuesta:
public class Jugador {
private String nombre;
private int numCamiseta;
//Validar que que valores de atributos no esten vacios o nulos
public Jugador(String nombre, int numCamiseta) {
if (nombre == null || nombre.trim().isEmpty()){
System.out.println("El nombre del jugador no puede ser vac
io");
}
if (numCamiseta <= 0){
System.out.println("El numero de camiseta n puede ser nul
o");
}

this.nombre = nombre;
this.numCamiseta = numCamiseta;
}

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 9/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA
public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public int getNumCamiseta() {


return numCamiseta;
}

public void setNumCamiseta(int numCamiseta) {


this.numCamiseta = numCamiseta;
}

@Override
public String toString() {
return "Jugador{" +
"nombre='" + nombre + '\'' +
", numCamiseta=" + numCamiseta +
'}';
}

Pregunta 8 Aún no calificado / 1 pts

ENUNCIADO: COPA AMÉRICA

Para la copa américa, se requiere de un sistema en java que permita


almacenar la información de los equipos y partidos que se juegan. Luego
de un estudio, un grupo de desarrolladores determinó que los atributos
para cada clase se indican en el diagrama siguiente:

Considere las siguientes reglas de negocio asociada a los atributos del


diagrama.
https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 10/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

El día debe estar en el rango 1-31 ó 1-30 ó 1-28 ó 1-29 según


corresponda.
El mes debe estar en el rango 1-12.
Los grupos son ‘A’, ‘B’, ‘C’ o ‘D’
El ranking FIFA debe ser mayor que cero y menor que 100.
La fase puede tomar uno de los siguientes valores: FECHA 1, FECHA
2, FECHA 3, FECHA 4, FECHA 5, CUARTOS DE FINAL,
SEMIFINALES, TERCER PUESTO o FINAL
El Código país está entre 4 y 887
La numeración de las camisetas va del 0 al 15, y posteriormente, 20 al
25, 30 al 35, 40 al 45 y 50 al 55.

Asuma que todos los accesadores, mutadores (sin las validaciones) y


toString están implementados. Usted debe asignar al diagrama los
comportamientos (customers) que se le solicite programar considerando
los requerimientos de este diagrama.

INSTRUCCIONES:

Si lo desea (no es obligación) usted puede programar lo solicitado en


Netbeans u otro IDE pero debe considerar que sólo se evaluará lo que
exactamente se solicita en las preguntas de su prueba.
Las respuestas debe entregarlas utilizando lenguaje de programación
JAVA y sólo debe subir a la prueba la funcionalidad (o métodos)
solicitados en cada pregunta. Su respuesta debe ponerla en los
espacios habilitados después de cada pregunta. Toda respuesta debe
tener (en comentario) el NOMBRE DE LA CLASE DONDE
IMPLEMENTÓ EL O LOS MÉTODOS REQUERIDOS EN CADA
PREGUNTA.
Debe utilizar las buenas prácticas de la POO y aplicación OO en
todas las circunstancias, incluido al trabajar con ArrayList, arreglos y
archivos.
Se evaluará la reutilización y modularidad de sus programas. Se debe
concentrar en implementar lo que le corresponde (según lo solicitado)
y reutilizar la funcionalidad que debe estar en otras clases.
Lea y analice bien la solicitud para que tome la decisión correcta de
dónde (en qué Clase) crear el o los métodos solicitados. Recuerde
que esta asignatura aplica la POO por lo tanto la decisión que tome
evalúa el conocimiento y correcta aplicación de los fundamentos y
principios de la POO.
Si no sigue las instrucciones al pie de la letra esta parte de la prueba
no será corregida y será evaluada con nota mínima.
https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 11/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Defina los atributos y programe el constructor con parámetros de la clase Partido para
que cumpla con los requerimientos del diagrama de clases.

Su respuesta:
public class Partido {
private String fase;

public Partido(String fase) {


this.fase = fase;
}

public String getFase() {


return fase;
}

public void setFase(String fase) {


this.fase = fase;
}

@Override
public String toString() {
return "Partido{" +
"fase='" + fase + '\'' +
'}';
}
}

Pregunta 9 Aún no calificado / 1 pts

ENUNCIADO: COPA AMÉRICA

Para la copa américa, se requiere de un sistema en java que permita


almacenar la información de los equipos y partidos que se juegan. Luego
de un estudio, un grupo de desarrolladores determinó que los atributos
para cada clase se indican en el diagrama siguiente:

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 12/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Considere las siguientes reglas de negocio asociada a los atributos del


diagrama.

El día debe estar en el rango 1-31 ó 1-30 ó 1-28 ó 1-29 según


corresponda.
El mes debe estar en el rango 1-12.
Los grupos son ‘A’, ‘B’, ‘C’ o ‘D’
El ranking FIFA debe ser mayor que cero y menor que 100.
La fase puede tomar uno de los siguientes valores: FECHA 1, FECHA
2, FECHA 3, FECHA 4, FECHA 5, CUARTOS DE FINAL,
SEMIFINALES, TERCER PUESTO o FINAL
El Código país está entre 4 y 887
La numeración de las camisetas va del 0 al 15, y posteriormente, 20 al
25, 30 al 35, 40 al 45 y 50 al 55.

Asuma que todos los accesadores, mutadores (sin las validaciones) y


toString están implementados. Usted debe asignar al diagrama los
comportamientos (customers) que se le solicite programar considerando
los requerimientos de este diagrama.

INSTRUCCIONES:

Si lo desea (no es obligación) usted puede programar lo solicitado en


Netbeans u otro IDE pero debe considerar que sólo se evaluará lo que
exactamente se solicita en las preguntas de su prueba.
Las respuestas debe entregarlas utilizando lenguaje de programación
JAVA y sólo debe subir a la prueba la funcionalidad (o métodos)
solicitados en cada pregunta. Su respuesta debe ponerla en los
espacios habilitados después de cada pregunta. Toda respuesta debe
tener (en comentario) el NOMBRE DE LA CLASE DONDE

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 13/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

IMPLEMENTÓ EL O LOS MÉTODOS REQUERIDOS EN CADA


PREGUNTA.
Debe utilizar las buenas prácticas de la POO y aplicación OO en
todas las circunstancias, incluido al trabajar con ArrayList, arreglos y
archivos.
Se evaluará la reutilización y modularidad de sus programas. Se debe
concentrar en implementar lo que le corresponde (según lo solicitado)
y reutilizar la funcionalidad que debe estar en otras clases.
Lea y analice bien la solicitud para que tome la decisión correcta de
dónde (en qué Clase) crear el o los métodos solicitados. Recuerde
que esta asignatura aplica la POO por lo tanto la decisión que tome
evalúa el conocimiento y correcta aplicación de los fundamentos y
principios de la POO.
Si no sigue las instrucciones al pie de la letra esta parte de la prueba
no será corregida y será evaluada con nota mínima.

Programe el siguiente comportamiento (método customer) en la clase que


usted considere la adecuada:

Método cambiar fecha del partido: Si se producen cambios


de fechas en los partidos sólo es posible cambiarlo para el mes
anterior o siguiente del ya ingresado y no puede ser anterior a
la fecha actual.

No olvide indicar la clase donde programó este método.

Su respuesta:
import java.time.LocalDate;
public class Partido {
private LocalDate fecha;
private String fase;
private Estadio estadio;
private Equipo equipoLocal;
private Equipo equipoVisitante;
// Constructor y otros métodos de la clase Partido

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 14/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

public void cambiarFechaPartido(LocalDate nuevaFecha) {


// Obtener la fecha actual
LocalDate fechaActual = LocalDate.now();
// Verificar que la nueva fecha no sea anterior a la fecha actual
if (nuevaFecha.isBefore(fechaActual)) {
System.out.println("Error: La nueva fecha no puede ser anterior a
la fecha actual.");
return;
}
// Verificar que la nueva fecha esté en el rango permitido (mes
anterior o siguiente)
if (!esMesPermitido(nuevaFecha)) {
System.out.println("Error: La nueva fecha no está en el rango
permitido (mes anterior o siguiente).");
return;
}
// Cambiar la fecha del partido
this.fecha = nuevaFecha;
System.out.println("Fecha del partido cambiada exitosamente a: " +
nuevaFecha);
}
private boolean esMesPermitido(LocalDate nuevaFecha) {
// Obtener el mes actual
int mesActual = fecha.getMonthValue();
// Obtener el mes de la nueva fecha
int nuevoMes = nuevaFecha.getMonthValue();
// Permitir solo el mes anterior o siguiente
return nuevoMes == mesActual - 1 || nuevoMes == mesActual + 1;
}

Pregunta 10 Aún no calificado / 1 pts

ENUNCIADO: COPA AMÉRICA

Para la copa américa, se requiere de un sistema en java que permita


almacenar la información de los equipos y partidos que se juegan. Luego
de un estudio, un grupo de desarrolladores determinó que los atributos
para cada clase se indican en el diagrama siguiente:

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 15/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Considere las siguientes reglas de negocio asociada a los atributos del


diagrama.

El día debe estar en el rango 1-31 ó 1-30 ó 1-28 ó 1-29 según


corresponda.
El mes debe estar en el rango 1-12.
Los grupos son ‘A’, ‘B’, ‘C’ o ‘D’
El ranking FIFA debe ser mayor que cero y menor que 100.
La fase puede tomar uno de los siguientes valores: FECHA 1, FECHA
2, FECHA 3, FECHA 4, FECHA 5, CUARTOS DE FINAL,
SEMIFINALES, TERCER PUESTO o FINAL
El Código país está entre 4 y 887
La numeración de las camisetas va del 0 al 15, y posteriormente, 20 a
25, 30 al 35, 40 al 45 y 50 al 55.

Asuma que todos los accesadores, mutadores (sin las validaciones) y


toString están implementados. Usted debe asignar al diagrama los
comportamientos (customers) que se le solicite programar considerando
los requerimientos de este diagrama.

INSTRUCCIONES:

Si lo desea (no es obligación) usted puede programar lo solicitado en


Netbeans u otro IDE pero debe considerar que sólo se evaluará lo qu
exactamente se solicita en las preguntas de su prueba.
Las respuestas debe entregarlas utilizando lenguaje de programación
JAVA y sólo debe subir a la prueba la funcionalidad (o métodos)
solicitados en cada pregunta. Su respuesta debe ponerla en los
espacios habilitados después de cada pregunta. Toda respuesta debe
tener (en comentario) el NOMBRE DE LA CLASE DONDE

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 16/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

IMPLEMENTÓ EL O LOS MÉTODOS REQUERIDOS EN CADA


PREGUNTA.
Debe utilizar las buenas prácticas de la POO y aplicación OO en
todas las circunstancias, incluido al trabajar con ArrayList, arreglos y
archivos.
Se evaluará la reutilización y modularidad de sus programas. Se debe
concentrar en implementar lo que le corresponde (según lo solicitado)
y reutilizar la funcionalidad que debe estar en otras clases.
Lea y analice bien la solicitud para que tome la decisión correcta de
dónde (en qué Clase) crear el o los métodos solicitados. Recuerde
que esta asignatura aplica la POO por lo tanto la decisión que tome
evalúa el conocimiento y correcta aplicación de los fundamentos y
principios de la POO.
Si no sigue las instrucciones al pie de la letra esta parte de la prueba
no será corregida y será evaluada con nota mínima.

Considere que al diagrama de clases se le ha agregado lo siguiente: De


jugador se derivan las clases Jugador Internacional y Jugador nacional.
Para el jugador nacional se sabe el año de entrada al club actual y del
internacional la marca que representa (string) y su fichaje (monto en
float).

Cree el main para probar esta estructura de herencia generando todas


las instrucciones necesarias para probar lo siguiente:

Ingrese 1 jugador internacional y otro nacional. No ocupe


entrada de datos por teclado (puede asignar usted los datos a
las variables y/o arreglos de entradas para realizar la prueba).
Debe probar cumpliendo los requerimientos del diagrama de
clases.
Muestre el estado de ambos objetos.
Muestre el nombre del jugador y los años en su club para el
jugador nacional creado para verificar que se hayan asignado
correctamente.
Muestre el número de la camiseta del jugador nacional creado
para verificar que se haya asignado correctamente.
Muestre el nombre de la posición y su fichaje del jugador
internacional creado para verificar que se hayan asignado
correctamente.

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 17/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Su respuesta:
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
// Crear países
Pais chile = new Pais("Chile", "codPais");
Pais brasil = new Pais("Brasil", "codPais");
// Crear equipos
Equipo equipoNacional = new Equipo(chile, 5);
Equipo equipoInternacional = new Equipo(brasil, 3);
// Crear jugadores
Jugador jugadorNacional = new Jugador("Juan", 10,
LocalDate.of(2019, 5, 1), equipoNacional, "Defensa");
Jugador jugadorInternacional = new Jugador("Carlos", 7,
LocalDate.of(2018, 3, 15), equipoInternacional, "Delantero");
// Mostrar estado de ambos objetos
System.out.println("Estado del Jugador Nacional:");
mostrarInformacionJugadorNacional(jugadorNacional);
System.out.println("\nEstado del Jugador Internacional:");
mostrarInformacionJugadorInternacional(jugadorInternacional);
}
private static void mostrarInformacionJugadorNacional(Jugador
jugador) {
System.out.println("Nombre: " + jugador.getNombre());
System.out.println("Años en el club: " +
jugador.calcularAniosEnClub());
System.out.println("Número de camiseta: " + jugador.getCamiseta());
}
private static void mostrarInformacionJugadorInternacional(Jugador
jugador) {
System.out.println("Nombre: " + jugador.getNombre());
System.out.println("Posición: " + jugador.getPosicion());
System.out.println("Fichaje: " + jugador.getFichaje());
}
}

Pregunta 11 Aún no calificado / 1 pts

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 18/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

ENUNCIADO: COPA AMÉRICA

Para la copa américa, se requiere de un sistema en java que permita


almacenar la información de los equipos y partidos que se juegan. Luego
de un estudio, un grupo de desarrolladores determinó que los atributos
para cada clase se indican en el diagrama siguiente:

Considere las siguientes reglas de negocio asociada a los atributos del


diagrama.

El día debe estar en el rango 1-31 ó 1-30 ó 1-28 ó 1-29 según


corresponda.
El mes debe estar en el rango 1-12.
Los grupos son ‘A’, ‘B’, ‘C’ o ‘D’
El ranking FIFA debe ser mayor que cero y menor que 100.
La fase puede tomar uno de los siguientes valores: FECHA 1, FECHA
2, FECHA 3, FECHA 4, FECHA 5, CUARTOS DE FINAL,
SEMIFINALES, TERCER PUESTO o FINAL
El Código país está entre 4 y 887
La numeración de las camisetas va del 0 al 15, y posteriormente, 20 al
25, 30 al 35, 40 al 45 y 50 al 55.

Asuma que todos los accesadores, mutadores (sin las validaciones) y


toString están implementados. Usted debe asignar al diagrama los
comportamientos (customers) que se le solicite programar considerando
los requerimientos de este diagrama.

INSTRUCCIONES:

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 19/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Si lo desea (no es obligación) usted puede programar lo solicitado en


Netbeans u otro IDE pero debe considerar que sólo se evaluará lo que
exactamente se solicita en las preguntas de su prueba.
Las respuestas debe entregarlas utilizando lenguaje de programación
JAVA y sólo debe subir a la prueba la funcionalidad (o métodos)
solicitados en cada pregunta. Su respuesta debe ponerla en los
espacios habilitados después de cada pregunta. Toda respuesta debe
tener (en comentario) el NOMBRE DE LA CLASE DONDE
IMPLEMENTÓ EL O LOS MÉTODOS REQUERIDOS EN CADA
PREGUNTA.
Debe utilizar las buenas prácticas de la POO y aplicación OO en
todas las circunstancias, incluido al trabajar con ArrayList, arreglos y
archivos.
Se evaluará la reutilización y modularidad de sus programas. Se debe
concentrar en implementar lo que le corresponde (según lo solicitado)
y reutilizar la funcionalidad que debe estar en otras clases.
Lea y analice bien la solicitud para que tome la decisión correcta de
dónde (en qué Clase) crear el o los métodos solicitados. Recuerde
que esta asignatura aplica la POO por lo tanto la decisión que tome
evalúa el conocimiento y correcta aplicación de los fundamentos y
principios de la POO.
Si no sigue las instrucciones al pie de la letra esta parte de la prueba
no será corregida y será evaluada con nota mínima.

Considere lo siguiente: De jugador se derivan las clases Jugador


Internacional y Jugador nacional. Para el jugador nacional nos interesa
saber año entrada al club actual y del internacional la marca que
representa (string) y su fichaje (monto en float).

Programe los constructores con parámetros de las clases Jugador y


JugadorNacional para que cumpla con los requerimientos del diagrama
de clases y el nuevo requerimiento antes descrito.

No olvide indicar el nombre de la clase de los atributos y constructores.

Su respuesta:
import java.time.LocalDate;
public class Main {

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 20/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

public static void main(String[] args) {


// Crear países
Pais chile = new Pais("Chile", "Sudamérica");
Pais brasil = new Pais("Brasil", "Sudamérica");
// Crear equipos
Equipo equipoNacional = new Equipo(chile, 5);
Equipo equipoInternacional = new Equipo(brasil, 3);
// Crear jugadores
Jugador jugadorNacional = new Jugador("Juan", 10,
LocalDate.of(2019, 5, 1), equipoNacional, "Defensa");
Jugador jugadorInternacional = new Jugador("Carlos", 7,
LocalDate.of(2018, 3, 15), equipoInternacional, "Delantero");
// Mostrar estado de ambos objetos
System.out.println("Estado del Jugador Nacional:");
mostrarInformacionJugadorNacional(jugadorNacional);
System.out.println("\nEstado del Jugador Internacional:");
mostrarInformacionJugadorInternacional(jugadorInternacional);
}
private static void mostrarInformacionJugadorNacional(Jugador
jugador) {
System.out.println("Nombre: " + jugador.getNombre());
System.out.println("Años en el club: " +
jugador.calcularAniosEnClub());
System.out.println("Número de camiseta: " + jugador.getCamiseta());
}
private static void mostrarInformacionJugadorInternacional(Jugador
jugador) {
System.out.println("Nombre: " + jugador.getNombre());
System.out.println("Posición: " + jugador.getPosicion());
System.out.println("Fichaje: " + jugador.getFichaje());
}
}

Pregunta 12 Aún no calificado / 1 pts

ENUNCIADO: COPA AMÉRICA

Para la copa américa, se requiere de un sistema en java que permita


almacenar la información de los equipos y partidos que se juegan. Luego
https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 21/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

de un estudio, un grupo de desarrolladores determinó que los atributos


para cada clase se indican en el diagrama siguiente:

Considere las siguientes reglas de negocio asociada a los atributos del


diagrama.

El día debe estar en el rango 1-31 ó 1-30 ó 1-28 ó 1-29 según


corresponda.
El mes debe estar en el rango 1-12.
Los grupos son ‘A’, ‘B’, ‘C’ o ‘D’
El ranking FIFA debe ser mayor que cero y menor que 100.
La fase puede tomar uno de los siguientes valores: FECHA 1, FECHA
2, FECHA 3, FECHA 4, FECHA 5, CUARTOS DE FINAL,
SEMIFINALES, TERCER PUESTO o FINAL
El Código país está entre 4 y 887
La numeración de las camisetas va del 0 al 15, y posteriormente, 20 al
25, 30 al 35, 40 al 45 y 50 al 55.

Asuma que todos los accesadores, mutadores (sin las validaciones) y


toString están implementados. Usted debe asignar al diagrama los
comportamientos (customers) que se le solicite programar considerando
los requerimientos de este diagrama.

INSTRUCCIONES:

Si lo desea (no es obligación) usted puede programar lo solicitado en


Netbeans u otro IDE pero debe considerar que sólo se evaluará lo que
exactamente se solicita en las preguntas de su prueba.
Las respuestas debe entregarlas utilizando lenguaje de programación
JAVA y sólo debe subir a la prueba la funcionalidad (o métodos)
solicitados en cada pregunta. Su respuesta debe ponerla en los

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 22/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

espacios habilitados después de cada pregunta. Toda respuesta debe


tener (en comentario) el NOMBRE DE LA CLASE DONDE
IMPLEMENTÓ EL O LOS MÉTODOS REQUERIDOS EN CADA
PREGUNTA.
Debe utilizar las buenas prácticas de la POO y aplicación OO en
todas las circunstancias, incluido al trabajar con ArrayList, arreglos y
archivos.
Se evaluará la reutilización y modularidad de sus programas. Se debe
concentrar en implementar lo que le corresponde (según lo solicitado)
y reutilizar la funcionalidad que debe estar en otras clases.
Lea y analice bien la solicitud para que tome la decisión correcta de
dónde (en qué Clase) crear el o los métodos solicitados. Recuerde
que esta asignatura aplica la POO por lo tanto la decisión que tome
evalúa el conocimiento y correcta aplicación de los fundamentos y
principios de la POO.
Si no sigue las instrucciones al pie de la letra esta parte de la prueba
no será corregida y será evaluada con nota mínima.

Considere que está implementado lo siguiente: De jugador se derivan las clases Jugador
Internacional y Jugador nacional. Para el jugador nacional nos interesa saber año
entrada al club actual y del internacional la marca que representa (string) y su fichaje
(monto en float).

Programe un método en la clase JugadorNacional que retorne todos los datos del
jugador sólo si está hace más de 2 años en el club actual.

Su respuesta:
import java.time.LocalDate;
public class Jugador {
private String nombre;
private int camiseta;
private LocalDate fechaEntradaClub;

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 23/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

public Jugador(String nombre, int camiseta, LocalDate


fechaEntradaClub) {
this.nombre = nombre;
this.camiseta = camiseta;
this.fechaEntradaClub = fechaEntradaClub;
}
// Métodos getters y otros métodos según sea necesario
}
public class JugadorInternacional extends Jugador {
private String marcaRepresenta;
private String fichaje;
public JugadorInternacional(String nombre, int camiseta, LocalDate
fechaEntradaClub, String marcaRepresenta, String fichaje) {
super(nombre, camiseta, fechaEntradaClub);
this.marcaRepresenta = marcaRepresenta;
this.fichaje = fichaje;
}
// Métodos getters y otros métodos según sea necesario
}
public class JugadorNacional extends Jugador {
private int anioEntradaClubActual;
public JugadorNacional(String nombre, int camiseta, LocalDate
fechaEntradaClub, int anioEntradaClubActual) {
super(nombre, camiseta, fechaEntradaClub);
this.anioEntradaClubActual = anioEntradaClubActual;
}
public int getAnioEntradaClubActual() {
return anioEntradaClubActual;
}
public boolean haPasadoMasDeDosAniosEnClub() {
LocalDate fechaActual = LocalDate.now();
int aniosEnClub = fechaActual.getYear() -
fechaEntradaClub.getYear();
return aniosEnClub > 2;
}
// Método que retorna todos los datos del jugador solo si ha estado en
su club actual por más de dos años
public String obtenerDatosSiMasDeDosAnios() {
if (haPasadoMasDeDosAniosEnClub()) {
return "Nombre: " + getNombre() +

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 24/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

"\nCamiseta: " + getCamiseta() +


"\nFecha Entrada Club: " + getFechaEntradaClub() +
"\nAño Entrada Club Actual: " + anioEntradaClubActual;
} else {
return "El jugador no ha estado en el club por más de dos años.";
}
}
}

Pregunta 13 Aún no calificado / 1 pts

ENUNCIADO: COPA AMÉRICA

Para la copa américa, se requiere de un sistema en java que permita


almacenar la información de los equipos y partidos que se juegan. Luego
de un estudio, un grupo de desarrolladores determinó que los atributos
para cada clase se indican en el diagrama siguiente:

Considere las siguientes reglas de negocio asociada a los atributos del


diagrama.

El día debe estar en el rango 1-31 ó 1-30 ó 1-28 ó 1-29 según


corresponda.
El mes debe estar en el rango 1-12.
Los grupos son ‘A’, ‘B’, ‘C’ o ‘D’
El ranking FIFA debe ser mayor que cero y menor que 100.
La fase puede tomar uno de los siguientes valores: FECHA 1, FECHA
2, FECHA 3, FECHA 4, FECHA 5, CUARTOS DE FINAL,
https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 25/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

SEMIFINALES, TERCER PUESTO o FINAL


El Código país está entre 4 y 887
La numeración de las camisetas va del 0 al 15, y posteriormente, 20 al
25, 30 al 35, 40 al 45 y 50 al 55.

Asuma que todos los accesadores, mutadores (sin las validaciones) y


toString están implementados. Usted debe asignar al diagrama los
comportamientos (customers) que se le solicite programar considerando
los requerimientos de este diagrama.

INSTRUCCIONES:

Si lo desea (no es obligación) usted puede programar lo solicitado en


Netbeans u otro IDE pero debe considerar que sólo se evaluará lo que
exactamente se solicita en las preguntas de su prueba.
Las respuestas debe entregarlas utilizando lenguaje de programación
JAVA y sólo debe subir a la prueba la funcionalidad (o métodos)
solicitados en cada pregunta. Su respuesta debe ponerla en los
espacios habilitados después de cada pregunta. Toda respuesta debe
tener (en comentario) el NOMBRE DE LA CLASE DONDE
IMPLEMENTÓ EL O LOS MÉTODOS REQUERIDOS EN CADA
PREGUNTA.
Debe utilizar las buenas prácticas de la POO y aplicación OO en
todas las circunstancias, incluido al trabajar con ArrayList, arreglos y
archivos.
Se evaluará la reutilización y modularidad de sus programas. Se debe
concentrar en implementar lo que le corresponde (según lo solicitado)
y reutilizar la funcionalidad que debe estar en otras clases.
Lea y analice bien la solicitud para que tome la decisión correcta de
dónde (en qué Clase) crear el o los métodos solicitados. Recuerde
que esta asignatura aplica la POO por lo tanto la decisión que tome
evalúa el conocimiento y correcta aplicación de los fundamentos y
principios de la POO.
Si no sigue las instrucciones al pie de la letra esta parte de la prueba
no será corregida y será evaluada con nota mínima.

Programe el siguiente comportamiento (método customer) en la clase que usted


considere la adecuada:

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 26/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Método generar ficha del partido: Se ejecuta para que permita mostrar la
siguiente información: estadio, fecha del encuentro, países (con sus
rankings) y los integrantes de cada equipo con sus posiciones. Ejemplo:

PARTIDO GRUPO A: CHILE vs ARGENTINA

Sausalito 10 Julio 2021

CHILE (ranking = 1) ARGENTINA (ranking = 55)

------------------------------------------------------------------------------------------------------

Gabriel Arias – delantero Pedro Gomez – lateral izquierdo

Jean Beausejour – delantero Jose López - delantero

Claudio Bravo – arquero Juan castillo - mediocampista

: :

: :

_______________________________________________________________________________________________

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 27/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

No olvide indicar la clase donde programó este método.

Su respuesta:
import java.util.ArrayList;
import java.util.List;
public class Partido {
private Fecha fecha;
private String fase;
private Estadio estadio;
private Equipo equipoLocal;
private Equipo equipoVisitante;
public Partido(Fecha fecha, String fase, Estadio estadio, Equipo
equipoLocal, Equipo equipoVisitante) {
this.fecha = fecha;
this.fase = fase;
this.estadio = estadio;
this.equipoLocal = equipoLocal;
this.equipoVisitante = equipoVisitante;
}
public void mostrarFichaDelPartido() {
System.out.println("=== Ficha del Partido ===");
System.out.println("Fecha: " + fecha);

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 28/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

System.out.println("Fase: " + fase);


System.out.println("Estadio: " + estadio.getNomEstadio());

System.out.println("=== Equipo Local ===");


mostrarInformacionEquipo(equipoLocal);
System.out.println("=== Equipo Visitante ===");
mostrarInformacionEquipo(equipoVisitante);
}
private void mostrarInformacionEquipo(Equipo equipo) {
System.out.println("País: " + equipo.getPais().getNombre());
System.out.println("Ranking: " + equipo.getRanking());
System.out.println("Jugadores:");
for (Jugador jugador : equipo.getJugadores()) {
System.out.println(" - " + jugador.getNombre() + " (Camiseta: " +
jugador.getCamiseta() + ")");
}
}
}
public class Equipo {
private Pais pais;
private int ranking;
private List<Jugador> jugadores;
public Equipo(Pais pais, int ranking) {
this.pais = pais;
this.ranking = ranking;
this.jugadores = new ArrayList<>();
}
public Pais getPais() {
return pais;
}
public int getRanking() {
return ranking;
}
public List<Jugador> getJugadores() {
return jugadores;
}
public void agregarJugador(Jugador jugador) {
jugadores.add(jugador);
}
}

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 29/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Pregunta 14 Aún no calificado / 1 pts

ENUNCIADO: COPA AMÉRICA

Para la copa américa, se requiere de un sistema en java que permita


almacenar la información de los equipos y partidos que se juegan. Luego
de un estudio, un grupo de desarrolladores determinó que los atributos
para cada clase se indican en el diagrama siguiente:

Considere las siguientes reglas de negocio asociada a los atributos del


diagrama.

El día debe estar en el rango 1-31 ó 1-30 ó 1-28 ó 1-29 según


corresponda.
El mes debe estar en el rango 1-12.
Los grupos son ‘A’, ‘B’, ‘C’ o ‘D’
El ranking FIFA debe ser mayor que cero y menor que 100.
La fase puede tomar uno de los siguientes valores: FECHA 1, FECHA
2, FECHA 3, FECHA 4, FECHA 5, CUARTOS DE FINAL,
SEMIFINALES, TERCER PUESTO o FINAL
El Código país está entre 4 y 887
La numeración de las camisetas va del 0 al 15, y posteriormente, 20 al
25, 30 al 35, 40 al 45 y 50 al 55.

Asuma que todos los accesadores, mutadores (sin las validaciones) y


toString están implementados. Usted debe asignar al diagrama los
comportamientos (customers) que se le solicite programar considerando
los requerimientos de este diagrama.

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 30/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

INSTRUCCIONES:

Si lo desea (no es obligación) usted puede programar lo solicitado en


Netbeans u otro IDE pero debe considerar que sólo se evaluará lo que
exactamente se solicita en las preguntas de su prueba.
Las respuestas debe entregarlas utilizando lenguaje de programación
JAVA y sólo debe subir a la prueba la funcionalidad (o métodos)
solicitados en cada pregunta. Su respuesta debe ponerla en los
espacios habilitados después de cada pregunta. Toda respuesta debe
tener (en comentario) el NOMBRE DE LA CLASE DONDE
IMPLEMENTÓ EL O LOS MÉTODOS REQUERIDOS EN CADA
PREGUNTA.
Debe utilizar las buenas prácticas de la POO y aplicación OO en
todas las circunstancias, incluido al trabajar con ArrayList, arreglos y
archivos.
Se evaluará la reutilización y modularidad de sus programas. Se debe
concentrar en implementar lo que le corresponde (según lo solicitado)
y reutilizar la funcionalidad que debe estar en otras clases.
Lea y analice bien la solicitud para que tome la decisión correcta de
dónde (en qué Clase) crear el o los métodos solicitados. Recuerde
que esta asignatura aplica la POO por lo tanto la decisión que tome
evalúa el conocimiento y correcta aplicación de los fundamentos y
principios de la POO.
Si no sigue las instrucciones al pie de la letra esta parte de la prueba
no será corregida y será evaluada con nota mínima.

Programe el siguiente comportamiento (método customer) en la clase que


usted considere la adecuada:

Método eliminar jugador: que permita eliminar un jugador del


equipo. Busque primero si está para poder eliminarlo.

No olvide indicar la clase donde programó este método.

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 31/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Su respuesta:
mport java.util.ArrayList;
import java.util.List;
public class Jugador {
private String nombre;
private int numCamiseta;

public Jugador(String nombre, int numCamiseta) {


if (nombre == null || nombre.trim().isEmpty()){
System.out.println("El nombre del jugador no puede ser vac
io");
}
if (numCamiseta <= 0){
System.out.println("El numero de camiseta n puede ser nul
o");
}

this.nombre = nombre;
this.numCamiseta = numCamiseta;
}
public Equipo(){
this.jugadores = new ArrayList<>();
}
public void agregarJugador(Jugador jugador){
jugadores.add(jugador);
}
public eliminarJugador(String nombre){
jugadores.removeIf(jugador -> jugador.getNombre().equals(nombr
e))
}
public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public int getNumCamiseta() {


return numCamiseta;
}

public void setNumCamiseta(int numCamiseta) {


this.numCamiseta = numCamiseta;
}

@Override
public String toString() {
return "Jugador{" +
"nombre='" + nombre + '\'' +
", numCamiseta=" + numCamiseta +
'}';
}

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 32/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Pregunta 15 Aún no calificado / 1 pts

ENUNCIADO: COPA AMÉRICA

Para la copa américa, se requiere de un sistema en java que permita


almacenar la información de los equipos y partidos que se juegan. Luego
de un estudio, un grupo de desarrolladores determinó que los atributos
para cada clase se indican en el diagrama siguiente:

Considere las siguientes reglas de negocio asociada a los atributos del


diagrama.

El día debe estar en el rango 1-31 ó 1-30 ó 1-28 ó 1-29 según


corresponda.
El mes debe estar en el rango 1-12.
Los grupos son ‘A’, ‘B’, ‘C’ o ‘D’
El ranking FIFA debe ser mayor que cero y menor que 100.
La fase puede tomar uno de los siguientes valores: FECHA 1, FECHA
2, FECHA 3, FECHA 4, FECHA 5, CUARTOS DE FINAL,
SEMIFINALES, TERCER PUESTO o FINAL
El Código país está entre 4 y 887
La numeración de las camisetas va del 0 al 15, y posteriormente, 20 al
25, 30 al 35, 40 al 45 y 50 al 55.

Asuma que todos los accesadores, mutadores (sin las validaciones) y


toString están implementados. Usted debe asignar al diagrama los
https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 33/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

comportamientos (customers) que se le solicite programar considerando


los requerimientos de este diagrama.

INSTRUCCIONES:

Si lo desea (no es obligación) usted puede programar lo solicitado en


Netbeans u otro IDE pero debe considerar que sólo se evaluará lo que
exactamente se solicita en las preguntas de su prueba.
Las respuestas debe entregarlas utilizando lenguaje de programación
JAVA y sólo debe subir a la prueba la funcionalidad (o métodos)
solicitados en cada pregunta. Su respuesta debe ponerla en los
espacios habilitados después de cada pregunta. Toda respuesta debe
tener (en comentario) el NOMBRE DE LA CLASE DONDE
IMPLEMENTÓ EL O LOS MÉTODOS REQUERIDOS EN CADA
PREGUNTA.
Debe utilizar las buenas prácticas de la POO y aplicación OO en
todas las circunstancias, incluido al trabajar con ArrayList, arreglos y
archivos.
Se evaluará la reutilización y modularidad de sus programas. Se debe
concentrar en implementar lo que le corresponde (según lo solicitado)
y reutilizar la funcionalidad que debe estar en otras clases.
Lea y analice bien la solicitud para que tome la decisión correcta de
dónde (en qué Clase) crear el o los métodos solicitados. Recuerde
que esta asignatura aplica la POO por lo tanto la decisión que tome
evalúa el conocimiento y correcta aplicación de los fundamentos y
principios de la POO.
Si no sigue las instrucciones al pie de la letra esta parte de la prueba
no será corregida y será evaluada con nota mínima.

Programe el siguiente comportamiento en la clase que usted considere la


adecuada (este es método customer que el usuario ocupará antes de
llevar a cabo los encuentros):

Método que autorice la nómina de jugadores de un equipo:


que permita llevar a un archivo externo los datos del equipo
con los datos de sus jugadores y agregue el número de goles
de cada jugador con valor 0.

No olvide indicar la clase donde programó este método.

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 34/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

Su respuesta:
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Equipo {
private String nombre;
private List<Jugador> jugadores;
// Otros atributos y métodos de la clase Equipo
public Equipo(String nombre) {
this.nombre = nombre;
this.jugadores = new ArrayList<>();
}
// Otros métodos de la clase Equipo
public void autorizarNominaYGuardarArchivo(String nombreArchivo) {
autorizarNomina();
guardarArchivo(nombreArchivo);
}
private void autorizarNomina() {
// Lógica para autorizar la nómina, por ejemplo, validaciones, etc.
System.out.println("Nómina autorizada para el equipo: " + nombre);
}
private void guardarArchivo(String nombreArchivo) {
try (BufferedWriter writer = new BufferedWriter(new
FileWriter(nombreArchivo))) {
for (Jugador jugador : jugadores) {
// Agregar el número de goles con valor cero para cada jugador
jugador.setNumeroGoles(0);
// Escribir los datos del jugador en el archivo
writer.write(jugador.toString());
writer.newLine();
}
System.out.println("Datos guardados en el archivo: " +
nombreArchivo);
} catch (IOException e) {

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 35/36
27/11/23, 00:04 Semana 07: Solemne 1 (Supervisado remotamente): 202325.3046 | PROGRAMACIÓN AVANZADA

System.err.println("Error al escribir en el archivo: " +


e.getMessage());
}
}
}
public class Jugador {
private String nombre;
private int camiseta;
private int numeroGoles; // Nuevo atributo para los goles
// Otros atributos y métodos de la clase Jugador
public Jugador(String nombre, int camiseta) {
this.nombre = nombre;
this.camiseta = camiseta;
this.numeroGoles = 0; // Valor inicial de cero para los goles
}
// Métodos setters y otros métodos según sea necesario
public void setNumeroGoles(int numeroGoles) {
this.numeroGoles = numeroGoles;
}
@Override
public String toString() {
return "Nombre: " + nombre +
"\nCamiseta: " + camiseta +
"\nNúmero de Goles: " + numeroGoles;
}
}

Puntaje del examen: 1 de 15

https://canvas.unab.cl/courses/62571/quizzes/182740?module_item_id=2537325 36/36

También podría gustarte