Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafío: construyendo una nueva aplicación

import java.util.Scanner;

public class Canciones {
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);

        String nombreCancion = "";
        String artista = "";
        int anio = 0;
        double calificacion = 0;

        double sumaCalificaciones = 0;
        int totalCanciones = 0;
        double mejorCalificacion = 0;
        String mejorCancion = "";
        String mejorArtista = "";

        int respuesta = 1;

        System.out.println("*** Bienvenido a tu Sistema de Canciones Favoritas ***");

        while (respuesta == 1) {
            System.out.println("\n--- Registrar nueva canción ---");

            System.out.print("Nombre de la canción: ");
            nombreCancion = teclado.nextLine();

            System.out.print("Nombre del artista: ");
            artista = teclado.nextLine();

            System.out.print("Año de lanzamiento: ");
            anio = teclado.nextInt();

            System.out.print("Calificación (0-10): ");
            calificacion = teclado.nextDouble();

            totalCanciones++;
            sumaCalificaciones += calificacion;

            if (calificacion > mejorCalificacion) {
                mejorCalificacion = calificacion;
                mejorCancion = nombreCancion;
                mejorArtista = artista;
            }

            System.out.println("\n¡Canción registrada exitosamente!");
            System.out.print("¿Deseas registrar otra canción? (1 = Sí, 0 = No): ");
            respuesta = teclado.nextInt();
            teclado.nextLine(); // Limpiar el buffer
        }

        System.out.println("\n=== ESTADÍSTICAS DE TU PLAYLIST ===");
        System.out.println("Total de canciones registradas: " + totalCanciones);

        if (totalCanciones > 0) {
            double promedio = sumaCalificaciones / totalCanciones;
            System.out.println("Calificación promedio: " + String.format("%.2f", promedio));
            System.out.println("Mejor canción: " + mejorCancion + " - " + mejorArtista);
            System.out.println("Calificación: " + mejorCalificacion);
        }

        System.out.println("\n¡Gracias por usar el Sistema de Canciones Favoritas!");
    }
}

1 respuesta

¡Hola Mario, espero que estés bien!

Sugerencia: compartir tu proyecto en el canal #comparta-tu-codigo en el servidor ONE en Discord ;)

Tu código para el sistema de canciones favoritas se ve muy bien y parece estar funcionando correctamente para registrar canciones y calcular estadísticas básicas. Aquí tienes algunos consejos y mejoras que podrías considerar:

  1. Validación de entrada: Actualmente, el programa no valida si la calificación está dentro del rango 0-10. Podrías agregar una validación para asegurarte de que el usuario ingrese un valor válido.

    do {
        System.out.print("Calificación (0-10): ");
        calificacion = teclado.nextDouble();
        if (calificacion < 0 || calificacion > 10) {
            System.out.println("Por favor, ingresa una calificación válida entre 0 y 10.");
        }
    } while (calificacion < 0 || calificacion > 10);
    
  2. Manejo de excepciones: Considera agregar manejo de excepciones para capturar entradas no válidas, como cuando el usuario ingresa un texto en lugar de un número.

    try {
        anio = teclado.nextInt();
    } catch (InputMismatchException e) {
        System.out.println("Por favor, ingresa un número válido para el año.");
        teclado.nextLine(); // Limpiar el buffer
    }
    
  3. Uso de constantes: Podrías usar constantes para valores que no cambian, como el valor de respuesta para continuar o detener el bucle.

    final int CONTINUAR = 1;
    final int DETENER = 0;
    
  4. Mejoras en la interfaz de usuario: Podrías agregar más mensajes de guía para el usuario, como instrucciones sobre cómo finalizar el programa.

Espero que estos consejos te sean útiles para mejorar tu aplicación. ¡Sigue adelante con tu aprendizaje de Java!

Espero haber ayudado y buenos estudios!