Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
import java.io.*;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
class GestioneParcheggio {
static ArrayList<Piano> piano;
public GestioneParcheggio() {
piano = new ArrayList<>();
}
public static class Piano{
public int COD;
public ArrayList<Scontrino> scontrini;
public int ptot;
public int pdis;
public Piano(int COD, int ptot) {
this.COD = COD;
scontrini = new ArrayList<>();
this.ptot = ptot;
pdis = CalcoloPosti(ptot, scontrini);
}
public int CalcoloPosti(int ptot, ArrayList<Scontrino> s) {
int posti;
if (!(s.isEmpty())) {
posti = ptot - s.size();
} else posti = ptot;
return posti;
}
@Override
public String toString() {
return "COD: " +COD+ " PTOT: " +ptot+ " PDIS: " +pdis;
}
}
public static class Scontrino {
public int dest;
public int num;
public LocalDate date;
public LocalTime OraA;
public LocalTime OraU;
public int prezzo;
public Scontrino(int num,LocalDate date, LocalTime oraA, LocalTime oraU) {
dest = AssegnaPiano();
this.num = num;
this.date = date;
this.OraA = oraA;
this.OraU = oraU;
prezzo = CalcoloPrezzo(OraA, OraU);
}
@Override
public String toString() {
return "NUM: " +num+ " DATA: " +date+ " DALLE: " +OraA+ " ALLE: "
+OraU;
}
}
public void AddPiano(Piano p) {
piano.add(p);
}
public void AddScontrino(Scontrino s){
for(Piano p : piano) {
if (s.dest == p.COD) {
p.scontrini.add(s);
p.pdis -= 1;
}
}
}
public void RimuoviScontrino(Scontrino sctr){
for(Piano p : piano){
for(Scontrino s : p.scontrini){
if(s.num == sctr.num){
p.scontrini.remove(s);
p.pdis +=1;
}
}
}
}
public void RimuoviPiano(Piano p) {
piano.remove(p);
}
public void StampaPiani(){
for (Piano p : piano) {
System.out.println(p);
}
}
public void GetPosti() {
int tot = 0;
int i = 1;
for (Piano p : piano) {
System.out.println("IL PIANO N*: " +i+ " HA " +p.pdis+ "POSTI
DISPONIBILI");
tot += p.pdis;
i += 1;
}
System.out.println("PER UN TOTALE DI: " +tot);
}
public void StampaScontrini(){
for (Piano p : piano) {
if (!(p.scontrini.isEmpty())) {
for (Scontrino s : p.scontrini)
System.out.println(s);
}
}
}
public void StampaPrezzo(){
Scanner sc = new Scanner(System.in);
System.out.print("DIGITA IL NUMERO DI SCONTRINO ");
int num = sc.nextInt();
for(Piano p : piano){
if(!(p.scontrini.isEmpty())){
for(Scontrino s : p.scontrini){
if(s.num == num) System.out.println("LO SCONTRINO NUM*: "
+s.num+ " DALLE " +s.OraA+ " ALLE " +s.OraU+ " HA PREZZO: " +s.prezzo+ " EURO");
}
}
}
}
}
do{
System.out.println("DIGITARE UN NUMERO DAL MENU' PER SCEGLIERE UN
OPZIONE [0 - 10]");
System.out.println("0. CREA PIANO");
System.out.println("1. RIMUOVI PIANO");
System.out.println("2. STAMPA PIANI");
System.out.println("3. CREA TICKET");
System.out.println("4. RIMUOVI TICKET");
System.out.println("5. STAMPA TICKET");
System.out.println("6. STAMPA PREZZO TICKET");
System.out.println("7. POSTI DISPONIBILI");
System.out.println("8. STAMPA GUADAGNI TOTALI");
System.out.println("9. STAMPA GUADAGNI DI UN GIORNO");
System.out.println("10. STAMPA TUTTI I TICKET");
index = sc.nextInt();
if(index > 10 || index < 0) System.out.println("SELEZIONE NON VALIDA,
RIPROVARE");
} while(index > 10 || index < 0);
return index;
}
public static void Case0(ArrayList<GestioneParcheggio.Piano> piani,
GestioneParcheggio gestione, ArrayList<GestioneParcheggio.Scontrino> scontrini){
Scanner sc = new Scanner(System.in);
boolean b;
System.out.print("NUMERO DEL PIANO? ");
int COD = sc.nextInt();
System.out.print("NUMERO POSTI DEL PIANO? ");
int ptot = sc.nextInt();
GestioneParcheggio.Piano p;
do{
p = new GestioneParcheggio.Piano(COD,ptot);
b = UnivocoP(p, piani);
if(b) {
piani.add(p);
gestione.AddPiano(p);
} else {
System.out.print("IL PIANO AVENTE CODICE: " +COD+ " E' GIA'
ESISTENTE, DIGITARE UN NUOVO CODICE: ");
COD = sc.nextInt();
}
}while(!b);
System.out.println("PIANO AGGIUNTO");
if((scontrini.size())>0){
for(GestioneParcheggio.Scontrino s : scontrini){
if(s.dest == p.COD) {
p.scontrini.add(s);
p.pdis -= 1;
}
}
}
}
public static boolean UnivocoP(GestioneParcheggio.Piano piano,
ArrayList<GestioneParcheggio.Piano> piani){
for(GestioneParcheggio.Piano p : piani){
if(p.COD == piano.COD) return false;
}
return true;
}
public static boolean UnivocoS(GestioneParcheggio.Scontrino scontrino,
ArrayList<GestioneParcheggio.Scontrino> scontrini,
ArrayList<GestioneParcheggio.Scontrino> storico){
for(GestioneParcheggio.Scontrino s : scontrini){
if(s.num == scontrino.num) return false;
}
for(GestioneParcheggio.Scontrino s : storico){
if(s.num == scontrino.num) return false;
}
return true;
}
public static void Case3(GestioneParcheggio gestione,
ArrayList<GestioneParcheggio.Scontrino> scontrini,
ArrayList<GestioneParcheggio.Scontrino> storico){
Scanner sc = new Scanner(System.in);
LocalDate oggi = LocalDate.now();
boolean b;