DamSi

Untitled

Oct 18th, 2015
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.17 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.Random;
  4.  
  5. /**
  6.  *
  7.  * @author Damjan
  8.  */
  9. public class SoccerLeague {
  10.  
  11.     /**
  12.      * @param args the command line arguments
  13.      */
  14.     public static void main(String[] args) {
  15.         FudbalskaLiga premier = new FudbalskaLiga("Barclays Premier League - England");
  16.         FudbalskaLiga laLiga = new FudbalskaLiga("La Liga BBVA - Spain");
  17.         FudbalskiTim t1 = new FudbalskiTim("Manchester United", premier);
  18.         FudbalskiTim t2 = new FudbalskiTim("Real Madrid", laLiga);
  19.         Fudbaler r = new Fudbaler("Rooney", t1, 249);
  20.         Fudbaler t = new Fudbaler("Ronaldo", t2, 516);
  21.         Fudbaler s = new Fudbaler("Bale", t2, 204);
  22.         Fudbaler b = new Fudbaler("Romero", null, 0);
  23.         Fudbaler g = new Fudbaler("De Gea", t1, 0);
  24.  
  25.         premier.dodadiTim(t1);
  26.         laLiga.dodadiTim(t2);
  27.         t1.dodadiFudbaler(r);
  28.         t2.dodadiFudbaler(t);
  29.         t2.dodadiFudbaler(s);
  30.         t1.dodadiFudbaler(g);
  31.  
  32.         System.out.println(String.format("Najdobar strelec vo %s e %s", premier.toString(), premier.najdobarStrelec()));
  33.         System.out.println(String.format("Najdobar strelec vo %s e %s", laLiga.toString(), laLiga.najdobarStrelec()));
  34.         pecati(premier);
  35.         pecati(laLiga);
  36.         t1.kupiIgrac(b);
  37.         t1.dodadiFudbaler(b);
  38.         t2.kupiIgrac(g);
  39.         System.out.println();
  40.         t1.pecatiFudbaleri();
  41.         System.out.println();
  42.         t2.pecatiFudbaleri();
  43.         System.out.println();
  44.  
  45.     }
  46.  
  47.     static void pecati(FudbalskaLiga liga) {
  48.         liga.getTimovi().stream().forEach((tim) -> {
  49.             System.out.println(tim.toString());
  50.         });
  51.     }
  52. }
  53.  
  54. class Fudbaler {
  55.  
  56.     private String prezime;
  57.     private int brojDres;
  58.     private FudbalskiTim tim;
  59.     private int golovi;
  60.  
  61.     public Fudbaler(String prezime, FudbalskiTim tim, int golovi) {
  62.         this.prezime = prezime;
  63.         this.tim = tim;
  64.         this.golovi = golovi;
  65.         Random rand = new Random();
  66.         this.brojDres = rand.nextInt(60) + 1;//moze i do 100, ama retko koj fudbaler nosi broevi nad 60
  67.     }
  68.  
  69.     public String getPrezime() {
  70.         return prezime;
  71.     }
  72.  
  73.     public int getBrojDres() {
  74.         return brojDres;
  75.     }
  76.  
  77.     public FudbalskiTim getTim() {
  78.         return tim;
  79.     }
  80.  
  81.     public int getGolovi() {
  82.         return golovi;
  83.     }
  84.  
  85.     @Override
  86.     public String toString() {
  87.         return String.format("%s (%d)", prezime, golovi);
  88.     }
  89. }
  90.  
  91. class FudbalskiTim {
  92.  
  93.     private String ime;
  94.     private FudbalskaLiga liga;
  95.     private List<Fudbaler> fudbaleri;
  96.  
  97.     public FudbalskiTim(String ime, FudbalskaLiga liga) {
  98.         this.ime = ime;
  99.         this.liga = liga;
  100.         this.fudbaleri = new ArrayList<>();
  101.     }
  102.  
  103.     public String getIme() {
  104.         return ime;
  105.     }
  106.  
  107.     public FudbalskaLiga getLiga() {
  108.         return liga;
  109.     }
  110.  
  111.     public List<Fudbaler> getFudbaleri() {
  112.         return fudbaleri;
  113.     }
  114.  
  115.     public void dodadiFudbaler(Fudbaler f) {
  116.         if (!fudbaleri.contains(f)) {
  117.             fudbaleri.add(f);
  118.         }
  119.     }
  120.  
  121.     public void izbrisiFudbaler(Fudbaler f) {
  122.         if (fudbaleri.contains(f)) {
  123.             fudbaleri.remove(f);
  124.         }
  125.     }
  126.  
  127.     public void kupiIgrac(Fudbaler f) {
  128.         if (f.getTim() == null) {
  129.             fudbaleri.add(f);
  130.             System.out.println(String.format("Igracot %s sega e vo timot %s", f.getPrezime(), this.getIme()));
  131.         } else {
  132.             System.out.println(String.format("Ne moze da se kupi %s! Vekje igra vo %s.", f.getPrezime(), f.getTim()));
  133.         }
  134.     }
  135.  
  136.     public void pecatiFudbaleri() {
  137.         if (!fudbaleri.isEmpty()) {
  138.             fudbaleri.stream().forEach((f) -> {
  139.                 System.out.println(f.toString());
  140.             });
  141.         } else {
  142.             System.out.println(String.format("Timot %s nema fudbaleri!", this.getIme()));
  143.         }
  144.     }
  145.  
  146.     @Override
  147.     public String toString() {
  148.         return String.format("%s od liga: %s", ime, liga.getIme());
  149.     }
  150.  
  151. }
  152.  
  153. class FudbalskaLiga {
  154.  
  155.     private String ime;
  156.     private List<FudbalskiTim> timovi;
  157.  
  158.     public FudbalskaLiga(String ime) {
  159.         this.ime = ime;
  160.         this.timovi = new ArrayList<>();
  161.     }
  162.  
  163.     public void dodadiTim(FudbalskiTim t) {
  164.         if (!timovi.contains(t)) {
  165.             timovi.add(t);
  166.         }
  167.     }
  168.  
  169.     public void izbrisiTim(FudbalskiTim t) {
  170.         if (timovi.contains(t)) {
  171.             timovi.remove(t);
  172.         }
  173.     }
  174.  
  175.     public Fudbaler najdobarStrelec() {
  176.         Fudbaler najdobar = null;
  177.         for (FudbalskiTim t : timovi) {
  178.             najdobar = t.getFudbaleri().get(0);
  179.             for (Fudbaler f : t.getFudbaleri()) {
  180.                 if (f.getGolovi() > najdobar.getGolovi()) {
  181.                     najdobar = f;
  182.                 }
  183.             }
  184.         }
  185.         return najdobar;
  186.     }
  187.  
  188.     public String getIme() {
  189.         return ime;
  190.     }
  191.  
  192.     @Override
  193.     public String toString() {
  194.        
  195.         return String.format("%s %d",ime,timovi.size());
  196.     }
  197.    
  198.     public List<FudbalskiTim> getTimovi() {
  199.         return timovi;
  200.     }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment