Es. 2 Interface

Potrebbero piacerti anche

Sei sulla pagina 1di 3

// Definizione dell'interfaccia Gomme

public interface Gomme {


public void Cambiagomme();
}

// Definizione dell'interfaccia RifornimentoBenzina


public interface RifornimentoBenzina {
public void Rifbenzina(int litri);
}

// Definizione dell'interfaccia RifornimentoGpl


public interface RifornimentoGpl {
public void Rifgpl(int litri);
}

// Definizione della sottoclasse AutoBenzina


public class AutoBenzina implements Gomme, RifornimentoBenzina {
private int litriBenzina;

public void Cambiagomme() {


System.out.println("Cambio gomme auto a benzina");
}

public void Rifbenzina(int litri) {


double prezzoBenzina = 1.50; // Prezzo della benzina al litro
double spesa = prezzoBenzina * litri;
System.out.println("Hai fatto rifornimento di " + litri + " litri di
benzina. Spesa: " + spesa + " euro.");
litriBenzina += litri;
}
}

// Definizione della sottoclasse AutoGpl


public class AutoGpl implements Gomme, RifornimentoGpl {
private int litriGpl;

public void Cambiagomme() {


System.out.println("Cambio gomme auto a gpl");
}

public void Rifgpl(int litri) {


double prezzoGpl = 1.00; // Prezzo del gpl al litro
double spesa = prezzoGpl * litri;
System.out.println("Hai fatto rifornimento di " + litri + " litri di gpl.
Spesa: " + spesa + " euro.");
litriGpl += litri;
}
}

// Definizione della sottoclasse AutoBenzaGpl


public class AutoBenzaGpl implements Gomme, RifornimentoBenzina, RifornimentoGpl {
private int litriBenzina;
private int litriGpl;

public void Cambiagomme() {


System.out.println("Cambio gomme auto a benzina e gpl");
}

public void Rifbenzina(int litri) {


double prezzoBenzina = 1.50; // Prezzo della benzina al litro
double spesa = prezzoBenzina * litri;
System.out.println("Hai fatto rifornimento di " + litri + " litri di
benzina. Spesa: " + spesa + " euro.");
litriBenzina += litri;
}

public void Rifgpl(int litri) {


double prezzoGpl = 1.00; // Prezzo del gpl al litro
double spesa = prezzoGpl * litri;
System.out.println("Hai fatto rifornimento di " + litri + " litri di gpl.
Spesa: " + spesa + " euro.");
litriGpl += litri;
}
}

// Nel main
public static void main(String[] args) {
AutoBenzina autoBenzina = new AutoBenzina();
AutoGpl autoGpl = new AutoGpl();
AutoBenzaGpl autoBenzaGpl = new AutoBenzaGpl();

int scelta = 0;
Scanner input = new Scanner(System.in);

while(scelta != 6) {
System.out.println("Scegli l'operazione da effettuare:");
System.out.println("1) Cambio gomme");
System.out.println("2) Rifornimento a benzina");
System.out.println("3) Rifornimento a gpl");
System.out.println("4) Rifornimento benzine e gpl");
System.out.println("5) Visualizza carburante");
System.out.println("6) Esci");

scelta = input.nextInt();

switch(scelta) {
case 1:
System.out.println("Scegli il tipo di auto:");
System.out.println("1) Auto benzina");
System.out.println("2) Auto gpl");
System.out.println("3) Auto benzina e gpl");

int tipoAuto = input.nextInt();

switch(tipoAuto) {
case 1:
autoBenzina.Cambiagomme();
break;
case 2:
autoGpl.Cambiagomme();
break;
case 3:
autoBenzaGpl.Cambiagomme();
break;
default:
System.out.println("Scelta non valida");
}
break;
case 2:
System.out.println("Inserisci il numero di litri di benzina da
rifornire:");
int litriBenzina = input.nextInt();
autoBenzina.Rifbenzina(litriBenzina);
autoBenzaGpl.Rifbenzina(litriBenzina);
break;
case 3:
System.out.println("Inserisci il numero di litri di gpl da
rifornire:");
int litriGpl = input.nextInt();
autoGpl.Rifgpl(litriGpl);
autoBenzaGpl.Rifgpl(litriGpl);
break;
case 4:
System.out.println("Inserisci il numero di litri di benzina da
rifornire:");
int litriBenzinaGpl = input.nextInt();
autoBenzaGpl.Rifbenzina(litriBenzinaGpl);
autoBenzaGpl.Rifgpl(litriBenzinaGpl);
break;
case 5:
System.out.println("Scegli il tipo di auto:");
System.out.println("1) Auto benzina");
System.out.println("2) Auto gpl");
System.out.println("3) Auto benzina e gpl");

int tipoAutoVisualizza = input.nextInt();

switch(tipoAutoVisualizza) {
case 1:
System.out.println("Litri di benzina presenti nel
serbatoio: " + autoBenzina.litriBenzina);
break;
case 2:
System.out.println("Litri di gpl presenti nel serbatoio: "
+ autoGpl.litriGpl);
break;
case 3:
System.out.println("Litri di benzina presenti nel
serbatoio: " + autoBenzaGpl.litriBenzina);
System.out.println("Litri di gpl presenti nel serbatoio: "
+ autoBenzaGpl.litriGpl);
break;
default:
System.out.println("Scelta non valida");
}
break;
case 6:
System.out.println("Arrivederci!");
break;
default:
System.out.println("Scelta non valida");
}
}
}

Potrebbero piacerti anche