Implementación Java: Clase para Gestión de Edades y Cálculo de Media

Clasificado en Informática

Escrito el en español con un tamaño de 5,01 KB

Práctica de Programación Java: Gestión de Edades (EX1 23-24)

Requerimientos del Ejercicio 1: Clase "Edad.java"

Se requiere programar una clase que gestione un conjunto de edades, calculando su media y permitiendo encontrar el valor mínimo.

Definición de la Clase Edad

  • Atributos:
    • Un atributo de instancia privado de tipo double: edadMedia.
    • Un atributo público de tipo array de enteros: edades.
  • Constructor:
    • Debe aceptar un parámetro (un array de enteros).
    • Inicializar el atributo edades con los valores del array recibido (que provendrán del ejercicio 2).
    • Calcular la media de las edades y asignarla al atributo edadMedia.
  • Métodos:
    • mínimo(): Un método de clase que reciba un array de enteros, lo ordene y devuelva el valor mínimo del array.
    • Un método de instancia que imprima el contenido del array edades.
    • Cualquier otro método necesario para resolver el ejercicio 2 (ej. un getter para edadMedia).

Código Fuente: Edad.java

public class Edad {

    private double edadMedia;
    public int[] edades;

    public Edad(int[] array) {
        edades = new int[array.length];
        int suma = 0;
        for (int i = 0; i < array.length; i++) {
            edades[i] = array[i];
            suma += edades[i];
        }
        edadMedia = (double) suma / edades.length;
    }

    // Método para obtener la edad media
    public double get() {
        return (edadMedia);
    }

    // Método de instancia para imprimir el array
    public void imprimirArray() {
        System.out.print("[ ");
        for (int i = 0; i < edades.length; i++) {
            System.out.print(edades[i] + " ");
        }
        System.out.print("] \n");
    }

    // Método de clase para encontrar el mínimo (implementa ordenamiento por burbuja)
    public static int mínimo(int[] lista) {
        for (int i = 0; i < lista.length; i++) {
            for (int j = 0; j < lista.length - 1; j++) {
                if (lista[j] > lista[j + 1]) {
                    int variableAuxiliar = lista[j];
                    lista[j] = lista[j + 1];
                    lista[j + 1] = variableAuxiliar;
                }
            }
        }
        return (lista[0]);
    }
}

Requerimientos del Ejercicio 2: Clase Principal "MiEdad.java"

Se debe crear una clase principal que interactúe con el usuario y utilice la clase Edad.

Funcionalidades de MiEdad

  1. Solicitar por teclado el número de alumnos (tamaño del array).
  2. Solicitar las edades de cada alumno por teclado.
  3. Llamar al método mínimo() (de la clase Edad), pasándole el array introducido, e imprimir la edad mínima devuelta.
  4. Instanciar la clase Edad con el array de edades.
  5. Llamar al método que imprime el array (debería mostrar el array ordenado, ya que mínimo() lo ordena).
  6. Imprimir la edadMedia obtenida del objeto instanciado.

Ejemplo de Salida Esperada

run:
Introduce el número de alumnos:
5
Introduce la edad de los 5 alumnos:
Alumno 1
20
Alumno 2
18
Alumno 3
17
Alumno 4
22
Alumno 5
19
La edad mínima es: 17
Las edades ordenadas de los alumnos son:
[ 17 18 19 20 22 ]
La edad media es: 19.2

Código Fuente: MiEdad.java

Nota: Se corrigieron errores de sintaxis y formato en las cadenas de texto y llamadas a métodos.

import java.util.Scanner;

public class MiEdad {
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);
        
        System.out.println("Introduce el número de alumnos:");
        int tamaño = teclado.nextInt();
        
        int[] vector = new int[tamaño];
        
        System.out.println("Introduce la edad de los " + tamaño + " alumnos: ");
        
        for (int i = 0; i < vector.length; i++) {
            System.out.println("Alumno " + (i + 1));
            vector[i] = teclado.nextInt();
        }
        
        // 1. Llamada al método mínimo() y obtención del valor mínimo
        // Importante: El método mínimo() ordena el array 'vector' in situ.
        System.out.println("La edad mínima es: " + Edad.mínimo(vector));
        
        // 2. Instanciación de la clase Edad
        Edad alumnos = new Edad(vector);
        
        // 3. Impresión del array ordenado (ya ordenado por la llamada anterior)
        System.out.println("Las edades ordenadas de los alumnos son:");
        alumnos.imprimirArray();
        
        // 4. Impresión de la edad media
        System.out.println("La edad media es: " + alumnos.get());
        
        teclado.close();
    }
}

Entradas relacionadas: