Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Vector;
- class Trasmissione {
- // la classe modellizza una singola trasmissione
- public String nome, genere; // nome e genere di una trasmissione
- public int hh,mm; // orario d'inizio della trasmissione, hh l'ora e mm i minuti
- public int durata; // durata della trasmissione in minuti
- public Trasmissione(){}
- public Trasmissione(String n, String g, int h, int m, int d){
- nome=n;
- genere=g;
- hh=h;
- mm=m;
- durata=d;
- }
- public void Stampa(){
- System.out.println(nome+" - "+genere+" "+hh+":"+mm);
- }
- }
- class Palinsesto {
- // la classe modellizza il palinsesto di una singola giornata
- public Vector<Trasmissione> LT; // lista dei programmi previsti in una giornata
- public Palinsesto(){
- LT = new Vector<Trasmissione>();
- }
- public void addTrasmiNoCheck(Trasmissione T){
- // aggiunge una trasmissione in coda senza controllare se vi è
- // già un programma a quell'ora e se vi è abbastanza tempo tra
- // una trasmissione e l'altra
- LT.add(T);
- }
- private int orarioInMinuti(int hh, int mm){
- return hh*60 + mm;
- }
- private int orarioFine(int hh, int mm, int d) {
- return orarioInMinuti(hh,mm)+d;
- }
- private boolean orarioLibero(int mm) {
- for (int i=0;i<LT.size();i++) {
- int minutiInizio = orarioInMinuti(LT.get(i).hh, LT.get(i).mm);
- int minutiFine = orarioFine(LT.get(i).hh, LT.get(i).mm, LT.get(i).durata);
- if (mm >= minutiInizio && mm < minutiFine)
- return false;
- }
- return true;
- }
- private boolean orarioLibero(int hh, int mm, int d) {
- int minutiInizio = orarioInMinuti(hh, mm);
- int minutiFine = orarioFine(hh, mm, d);
- for (int i=minutiInizio; i<=minutiFine; i++) {
- if (! orarioLibero(i))
- return false;
- }
- return true;
- }
- public void addTrasmiCheck(Trasmissione T){
- // aggiunge una trasmissione solo se non vi è un'altra trasmissione
- // per lo stesso orario
- // Se vi è una trasmissione allo stesso orario stampa il messaggio
- // "orario occupato" e se tra la trasmissione e la successiva vi è
- // abbastanza tempo libero
- if (orarioLibero(T.hh, T.mm, T.durata))
- LT.add(T);
- else
- System.out.println("Orario occupato. Sorry... :'(");
- }
- public void StampaElenco(){
- for (int i=0;i<LT.size();i++){
- LT.get(i).Stampa();
- }
- }
- }
- public class Provami4H {
- public static void main (String args[]) {
- // La Delli mi guarda male...
- // Colmegna: "mi stai guardando?"
- Palinsesto P1 = new Palinsesto();
- Trasmissione T1=new Trasmissione("Uno mattina","show",7,0,160);
- Trasmissione T2=new Trasmissione("TG1","telegiornale",9,00,60);
- Trasmissione T3=new Trasmissione("Quark","cultura",10,00,60);
- Trasmissione T4=new Trasmissione("NCIS","serial",11,00,60);
- Trasmissione T5=new Trasmissione("Agatha Christie's Poirot","serial",12,00,60);
- P1.addTrasmiCheck(T1);
- P1.addTrasmiCheck(T2);
- P1.addTrasmiCheck(T3);
- P1.addTrasmiCheck(T4);
- P1.addTrasmiCheck(T5);
- P1.StampaElenco();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment