Skip to content

Commit 6040137

Browse files
committed
v1.0
1 parent 864c85b commit 6040137

10 files changed

Lines changed: 317 additions & 11 deletions

File tree

02_Verifica_lab/src/MacchinaDistributrice.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public MacchinaDistributrice() {
2828
public void aggingiProdotto(Prodotto p) {
2929
this.prodotti.add(p);
3030
}
31+
3132

3233
/**
3334
* Cerca il prodotto in base al nome.

03_Verifica_lab/README.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
public class main{
2+
private int value;
3+
public main(int value){
4+
this.value = value;
5+
}
6+
public int getValue(){
7+
return value;
8+
}
9+
10+
}
11+
12+
13+
14+
15+
16+
17+
18+
19+
20+
21+
22+
23+
24+
25+
26+
27+
28+
29+
30+
31+
32+
33+
34+
35+
36+
37+
38+
39+
40+
41+
42+
43+
44+
45+

03_Verifica_lab/src/App.java

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
public class BonificoBancario extends MetododiPagamento {
3+
4+
private final String iban;
5+
6+
public BonificoBancario(String id, String iban) {
7+
super(id);
8+
this.iban = iban;
9+
}
10+
11+
public String getIbanBeneficiario() {
12+
return iban;
13+
}
14+
15+
@Override
16+
public double calcolaCommissione() {
17+
return 2.50;
18+
}
19+
20+
@Override
21+
public String toString() {
22+
return "BB [" + iban + "] " + super.toString();
23+
}
24+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
public class CartaPremium extends CartadiCredito {
3+
4+
public CartaPremium(String id, String num, String exp) {
5+
super(id, num, exp);
6+
}
7+
8+
@Override
9+
public double calcolaCommissione() {
10+
return amt * 0.015;
11+
}
12+
13+
@Override
14+
public String toString() {
15+
var comm = calcolaCommissione();
16+
var tot = amt + comm;
17+
return String.format("CP [%s %s] ID: %s | Amt: %.2f | Comm: %.2f | Tot: %.2f",
18+
getNumeroCarta(), getDataScadenza(), id, amt, comm, tot);
19+
}
20+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
2+
public class CartadiCredito extends MetododiPagamento {
3+
4+
private final String num;
5+
private final String exp;
6+
7+
public CartadiCredito(String id, String num, String exp) {
8+
super(id);
9+
this.num = num;
10+
this.exp = exp;
11+
}
12+
13+
public String getNumeroCarta() {
14+
return num;
15+
}
16+
17+
public String getDataScadenza() {
18+
return exp;
19+
}
20+
21+
@Override
22+
public double calcolaCommissione() {
23+
return amt * 0.02;
24+
}
25+
26+
@Override
27+
public String toString() {
28+
return "CC [" + num + " " + exp + "] " + super.toString();
29+
}
30+
}

03_Verifica_lab/src/Main.java

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
2+
public class Main {
3+
public static void main(String[] args) {
4+
if (args.length == 0) {
5+
System.out.println("Inserisci un argomento per continuare");
6+
}
7+
}
8+
if (aura == true && portament == good || coolness == true
9+
10+
11+
12+
13+
14+
15+
16+
17+
18+
19+
20+
21+
22+
23+
24+
25+
26+
27+
28+
29+
30+
31+
32+
33+
34+
35+
36+
37+
38+
39+
40+
41+
42+
public static void main(String[] args) {
43+
var cc1 = new CartadiCredito("CC001", "1234-5678-9012-3456", "12/2027");
44+
var cp1 = new CartaPremium("CP001", "9876-5432-1098-7654", "06/2028");
45+
var bb1 = new BonificoBancario("BB001", "IT60X0542811101000000123456");
46+
47+
cc1.setImporto(500);
48+
cc1.autorizzaTransazione();
49+
System.out.println(cc1);
50+
51+
cp1.setImporto(500);
52+
cp1.autorizzaTransazione();
53+
System.out.println(cp1);
54+
55+
bb1.setImporto(500);
56+
bb1.autorizzaTransazione();
57+
System.out.println(bb1);
58+
59+
var cc2 = new CartadiCredito("CC002", "1111-2222-3333-4444", "03/2026");
60+
var cp2 = new CartaPremium("CP002", "5555-6666-7777-8888", "09/2029");
61+
62+
var u1 = new Utente("Marco Verdi", 1001);
63+
u1.setMetodoPagamentoPreferito(cc2);
64+
u1.effettuaPagamento(500, null);
65+
u1.effettuaPagamento(100, cp2);
66+
67+
var trx = new Transazioni();
68+
69+
var u2 = new Utente("Laura Bianchi", 1002);
70+
u2.setMetodoPagamentoPreferito(new CartadiCredito("CC003", "2222-3333-4444-5555", "11/2026"));
71+
72+
var u3 = new Utente("Giuseppe Rossi", 1003);
73+
u3.setMetodoPagamentoPreferito(new CartaPremium("CP003", "3333-4444-5555-6666", "07/2027"));
74+
75+
var u4 = new Utente("Anna Neri", 1004);
76+
u4.setMetodoPagamentoPreferito(new BonificoBancario("BB002", "IT28W8000000292100645211990"));
77+
78+
trx.aggiungiUtente(u2);
79+
trx.aggiungiUtente(u3);
80+
trx.aggiungiUtente(u4);
81+
82+
trx.mostraUtenti();
83+
trx.effettuaPagamentoPerTutti(250.00);
84+
}
85+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
public abstract class MetododiPagamento {
3+
4+
protected String id;
5+
protected double amt;
6+
7+
public MetododiPagamento(String id) {
8+
this.id = id;
9+
this.amt = 0.0;
10+
}
11+
12+
public void setImporto(double amt) {
13+
this.amt = amt;
14+
}
15+
16+
public double getImporto() {
17+
return amt;
18+
}
19+
20+
public String getIdentificativo() {
21+
return id;
22+
}
23+
24+
public boolean autorizzaTransazione() {
25+
return amt > 0;
26+
}
27+
28+
public abstract double calcolaCommissione();
29+
30+
@Override
31+
public String toString() {
32+
var comm = calcolaCommissione();
33+
var tot = amt + comm;
34+
return String.format("ID: %s | Amt: %.2f | Comm: %.2f | Tot: %.2f", id, amt, comm, tot);
35+
}
36+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
2+
import java.util.ArrayList;
3+
4+
public class Transazioni {
5+
6+
private final ArrayList<Utente> usr;
7+
8+
public Transazioni() {
9+
this.usr = new ArrayList<>();
10+
}
11+
12+
public void aggiungiUtente(Utente u) {
13+
usr.add(u);
14+
}
15+
16+
public void rimuoviUtente(Utente u) {
17+
usr.remove(u);
18+
}
19+
20+
public void effettuaPagamentoPerTutti(double amt) {
21+
usr.forEach(u -> u.effettuaPagamento(amt, null));
22+
}
23+
24+
public void mostraUtenti() {
25+
usr.forEach(u -> {
26+
var mp = u.getMetodoPagamentoPreferito();
27+
System.out.println(u + " | " + (mp != null ? mp.getClass().getSimpleName() : "None"));
28+
});
29+
}
30+
}

03_Verifica_lab/src/Utente.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
2+
public class Utente {
3+
4+
private final String nm;
5+
private final int uid;
6+
private MetododiPagamento pref;
7+
8+
public Utente(String nm, int uid) {
9+
this.nm = nm;
10+
this.uid = uid;
11+
this.pref = null;
12+
}
13+
14+
public String getNome() {
15+
return nm;
16+
}
17+
18+
public int getIdUtente() {
19+
return uid;
20+
}
21+
22+
public MetododiPagamento getMetodoPagamentoPreferito() {
23+
return pref;
24+
}
25+
26+
public void setMetodoPagamentoPreferito(MetododiPagamento mp) {
27+
this.pref = mp;
28+
}
29+
30+
public void effettuaPagamento(double amt, MetododiPagamento mp) {
31+
var m = mp != null ? mp : pref;
32+
if (m == null) {
33+
return;
34+
}
35+
36+
m.setImporto(amt);
37+
if (m.autorizzaTransazione()) {
38+
System.out.println(nm + " -> " + m);
39+
}
40+
}
41+
42+
@Override
43+
public String toString() {
44+
return nm + " (ID:" + uid + ")";
45+
}
46+
}

0 commit comments

Comments
 (0)