Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Me gustaria mostrar todos los datos desde mostrarFichaTecnica()

Pelicula.java

public class Pelicula { String nombre; int fechaLanzamiento; int duracionMin; boolean incluidoPlan; double sumaEvaluaciones; int totalEvaluaciones; void mostrarFichaTecnica(){

    System.out.println("El nombre de la pelicula es: "+ nombre);
    System.out.println("La fecha de lanzamiento es: "+ fechaLanzamiento);
    System.out.println("Duracion (Minutos): "+ duracionMin);
}

void evaluacion(double nota){
    sumaEvaluaciones += nota;
    totalEvaluaciones ++;
}

double calcMedia(){
    return sumaEvaluaciones/totalEvaluaciones;
}

}

============================================ Principal.java

public class Principal { public static void main(String[] args) { Pelicula miPelicula = new Pelicula(); miPelicula.nombre = "Star Wars"; miPelicula.fechaLanzamiento= 2000; miPelicula.duracionMin = 120; miPelicula.incluidoPlan= true; miPelicula.mostrarFichaTecnica(); miPelicula.evaluacion(10); miPelicula.evaluacion(8); System.out.println("Evaluacion: "+ miPelicula.calcMedia());

// Pelicula otraPelicula = new Pelicula(); // otraPelicula.nombre = "Jumanji"; // otraPelicula.fechaLanzamiento= 2008; // otraPelicula.incluidoPlan= false; // otraPelicula.duracionMin = 136; // miPelicula.evaluacion(7.8); // otraPelicula.mostrarFichaTecnica(); } }

Me gustaria no hacer el llamado de la funcion calcMedia() desde Principal.java, sino hacerlo desde Pelicula.java en el metodo calcMedia() o evaluacion()

2 respuestas

¡Hola Cindy, espero que estés bien!

Para lograr mostrar todos los datos, incluida la media de las evaluaciones, directamente desde el método mostrarFichaTecnica() en la clase Pelicula, puedes modificar este método para que también llame a calcMedia() y muestre su resultado. Aquí tienes un ejemplo de cómo podrías hacerlo:

void mostrarFichaTecnica() {
    System.out.println("El nombre de la pelicula es: " + nombre);
    System.out.println("La fecha de lanzamiento es: " + fechaLanzamiento);
    System.out.println("Duracion (Minutos): " + duracionMin);
    System.out.println("Incluido en el plan: " + incluidoPlan);
    System.out.println("Evaluacion media: " + calcMedia());
}

Con esta modificación, cada vez que llames a mostrarFichaTecnica(), también se mostrará la evaluación media de la película. Asegúrate de que totalEvaluaciones no sea cero antes de calcular la media para evitar divisiones por cero. Podrías agregar una verificación como esta en calcMedia():

double calcMedia() {
    if (totalEvaluaciones == 0) {
        return 0; // o algún valor por defecto que prefieras
    }
    return sumaEvaluaciones / totalEvaluaciones;
}

De esta manera, tienes encapsulada toda la información de la película en un solo método. Espero que esta solución te sea útil.

¡Espero haber ayudado y buenos estudios!

solución!

public class Pelicula { String nombre; int fechaDeLanzamiento; int duracionEnMinutos; boolean incluidoEnElPlan; double sumaDeLasEvaluaciones; int totalDeLasEvaluaciones;

// Muestra la ficha técnica de la película
void muestraFichaTecnica() {
    System.out.println("Nombre: " + nombre);
    System.out.println("Fecha de lanzamiento: " + fechaDeLanzamiento);
    System.out.println("Duración: " + duracionEnMinutos + " minutos");
    System.out.println("¿Incluido en el plan?: " + (incluidoEnElPlan ? "Sí" : "No"));
}

// Método para evaluar la película (suma y cuenta la evaluación)
void evalua(double nota) {
    sumaDeLasEvaluaciones += nota;
    totalDeLasEvaluaciones++;
}

// Calcula la media de las evaluaciones
double calculaMedia() {
    if (totalDeLasEvaluaciones == 0) {
        return 0;
    }
    return sumaDeLasEvaluaciones / totalDeLasEvaluaciones;
}

}