Advertisement
Guest User

Untitled

a guest
May 24th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.66 KB | None | 0 0
  1. package centroSportivo;
  2.  
  3. import java.util.*;
  4.  
  5. public class CentroSportivo {
  6.  
  7.     private ArrayList<Servizio> listaServizi;
  8.     private ArrayList<Tesserato> listaTesserati;
  9.  
  10.     public CentroSportivo(ArrayList<Servizio> listaServizi, ArrayList<Tesserato> listaTesserati) {
  11.         this.listaServizi = new ArrayList<>(listaServizi);
  12.         this.listaTesserati = new ArrayList<>(listaTesserati);
  13.     }// Costruttore
  14.  
  15.     private Tesserato trovaTesserato(String cf) {
  16.         for (Tesserato t : listaTesserati)
  17.             if (t.getCf().equals(cf))
  18.                 return t;
  19.         return null;
  20.     }// trovaTesserato
  21.  
  22.     private Servizio trovaServizio(int codice) {
  23.         for (Servizio s : listaServizi)
  24.             if (s.getCodice() == codice)
  25.                 return s;
  26.         return null;
  27.     }// trovaServizio
  28.  
  29.     public boolean aggiorna(String codiceFiscale, int codServizio, String mese, boolean[] settimane) {
  30.         Tesserato t = trovaTesserato(codiceFiscale);
  31.         if (t == null)
  32.             return false;
  33.  
  34.         Servizio s = trovaServizio(codServizio);
  35.  
  36.         if (s == null || s.getNumPostiDisponibili() == 0)
  37.             return false;
  38.         s.incrementaPostiOccupati();
  39.  
  40.         // In alternativa:
  41.         // if(s == null || !s.incrementaPostiOccupati()) return false;
  42.  
  43.         int indiceMese = Abbonamento.getIndiceMese(mese);
  44.         if (indiceMese == -1)
  45.             return false;
  46.  
  47.         boolean[][] mesiSettimane = new boolean[Abbonamento.MESI][Abbonamento.SETTIMANE];
  48.         for (int i = 0; i < Abbonamento.MESI; i++)
  49.             for (int j = 0; j < Abbonamento.SETTIMANE; j++)
  50.                 mesiSettimane[i][j] = false;
  51.  
  52.         for (int i = 0; i < settimane.length; i++)
  53.             mesiSettimane[indiceMese][i] = settimane[i];
  54.         // In alternativa:
  55.         // mesiSettimane[indiceMese] = Arrays.copyOf(settimane, settimane.length);
  56.  
  57.         Abbonamento a = new Abbonamento(codServizio, mesiSettimane);
  58.         t.aggiungiAbbonamento(a);
  59.         return true;
  60.     }// aggiorna
  61.  
  62.     public ArrayList<Servizio> serviziOrdinati() {
  63.         ArrayList<Servizio> ret = new ArrayList<>(this.listaServizi);
  64.         Collections.sort(ret);
  65.         return ret;
  66.     }// serviziOrdinati
  67.  
  68.     public HashMap<Integer, Integer> reportIscritti(String mese) {
  69.         HashMap<Integer, Integer> report = new HashMap<>();
  70.         for (Tesserato t : listaTesserati) {
  71.             ArrayList<Abbonamento> listaAbbonamenti = t.getListaAbbonamenti();
  72.             int totale = 0;
  73.             for (Abbonamento a : listaAbbonamenti) {
  74.                 int sett = a.getSettimaneCoperte(mese);
  75.                 int codServizio = a.getCodiceServizio();
  76.                 int costoServizio = 0;
  77.                 for (Servizio s : listaServizi)
  78.                     if (s.getCodice() == codServizio) {
  79.                         costoServizio = s.getCostoSettimanale();
  80.                         break;
  81.                     } // if
  82.                 totale += costoServizio * sett;
  83.             } // for
  84.             report.put(t.getCodiceTessera(), totale);
  85.         } // for
  86.         return report;
  87.     }// reportIscritti
  88.  
  89. }// CentroSportivo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement