Compito concluso

This commit is contained in:
La Programmatrice Verde
2025-12-03 17:46:05 +01:00
parent f649bf732c
commit 9bf38dedfa

View File

@@ -18,6 +18,7 @@ public class LettoreMultimediale {
* @param args the command line arguments
*/
static Scanner sc = new Scanner(System.in);
static final String ERRORE_DEFAULT = "Opzione non valida.";
public static void main(String[] args) {
int scelta = -1;
@@ -37,24 +38,27 @@ public class LettoreMultimediale {
switch (scelta) {
case 0:
break;
case 1:
case 2:
case 3:
case 4:
case 5:
if(libreria[scelta - 1] instanceof Riproducibile){
libreria[scelta - 1].play();
case 1, 2, 3, 4, 5:
if (libreria[scelta - 1] instanceof Riproducibile) {
System.out.println(libreria[scelta - 1].play());
} else {
System.out.println(libreria[scelta - 1].show());
}
else{
libreria[scelta - 1].show();
if (libreria[scelta - 1] instanceof Visualizzabile) {
modifica(false, libreria[scelta - 1]);
System.out.println("Modifica avvenuta con successo.");
}
if (libreria[scelta - 1] instanceof Ascoltabile) {
modifica(true, libreria[scelta - 1]);
System.out.println("Modifica avvenuta con successo.");
}
break;
default:
System.out.println("Opzione non valida.");
System.out.println(ERRORE_DEFAULT);
pausa();
}
} catch (InputMismatchException _) {
System.out.println("Opzione non valida.");
System.out.println(ERRORE_DEFAULT);
pausa();
}
@@ -65,4 +69,75 @@ public class LettoreMultimediale {
System.out.println("Premere un tasto per continuare. . . ");
sc.nextLine();
}
static void modifica(boolean isVolumeBeingAdjusted, Multimediale daModificare) {
String scelta;
boolean error;
do {
error = false;
System.out.print("[A]umentare, [D]iminuire o [N]on modificare "
+ (isVolumeBeingAdjusted ? "il volume" : "la luminosità") + "? ");
scelta = sc.nextLine().trim().toLowerCase();
switch (scelta) {
case "a":
System.out.println("Aumentare");
aumentare(isVolumeBeingAdjusted, daModificare);
break;
case "d":
System.out.println("Diminuire");
diminuire(isVolumeBeingAdjusted, daModificare);
break;
case "n":
System.out.println("L'elemento non verrà modificato.");
break;
default:
System.out.println(ERRORE_DEFAULT);
error = true;
pausa();
break;
}
} while (error);
}
static void aumentare(boolean isVolumeBeingAdjusted, Multimediale daModificare) {
for (int i = quantita(); i > 0; i--) {
if (isVolumeBeingAdjusted) {
((Ascoltabile) daModificare).louder();
} else {
((Visualizzabile) daModificare).brighter();
}
}
}
static void diminuire(boolean isVolumeBeingAdjusted, Multimediale daModificare) {
for (int i = quantita(); i > 0; i--) {
if (isVolumeBeingAdjusted) {
((Ascoltabile) daModificare).weaker();
} else {
((Visualizzabile) daModificare).darker();
}
}
}
static int quantita() {
int quantita;
boolean error;
do {
error = false;
System.out.print("Di quanto? ");
quantita = sc.nextInt();
sc.nextLine();
if (quantita <= 0) {
System.out.println("Errore: non sono accettati valori negativi.");
error = true;
pausa();
}
} while (error);
return quantita;
}
}