Advertisement
pseudocreator

OOP1, k1, z1, Fudbaleri

Oct 26th, 2015
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.52 KB | None | 0 0
  1. /*
  2. Klasom Fudbaler se opisuje jedan fudbaler. Ova klasa kao atribute sadrzi ime fudbalera (String), njegovu zaradu u milionima dolara (double),
  3. broj postignutih golova u karijeri (int) i logicku promenljivu koja nosi informaciju o tome da li fudbaler igra u prvoj postavi ili ne.
  4. Klasa jos sadrzi i konstruktor koji inicijalizuje sve atribute, get metode za svaki atribut i toString() metodu.
  5.  
  6. Klasom FudbalskiKlub se opisuju igraci koji igraju u jednom fudbalskom klubu. Podaci o igracima se ucitavaju iz tekstualnog fajla
  7. koji je organizovan na sledeci nacin: u prvoj liniji fajla nalazi se broj igraca u fudbalskom klubu, a u svakoj sledecoj podaci o
  8. jednom fudbaleru razdvojeni zarezom, i to ime, zarada, broj postignutih golova i string konstanta ("da" ili "ne"). Klasa definise
  9. i sledece metode :
  10.  
  11. - Fudbaler najbogatiji() - metoda koja vraca fudbalera sa najvecim primanjima.
  12.  
  13. - boolean dobarProsekPrimanja() - metoda koja proverava da li je prosek primanja igraca iz prve postave veci od proseka primanja
  14. igraca iz druge postave.
  15.  
  16. - Fudbaler najboljiIzRezerve() - metoda koja vraca igraca iz druge postave koji ima najvise postignutih golova.
  17.  
  18. - int brojDobrihInvesticija(int brGolova, double zaradaIgraca) - metoda koja broji koliko igraca iz prve postave ima jednako ili vise od
  19. brGolova (prvi argument metoda) postignutih golova i zaradu vecu ili jednaku od zaradaIgraca (drugi argument metoda).
  20.  
  21.  
  22. U glavnom programu potrebno je napraviti instancu klase FudbalskiKlub za tekstualni fajl “fudbaleri.txt” i ispisati rezultate izvrsavanja
  23. svih metoda te klase.
  24. */
  25.  
  26.  
  27. import java.io.*;
  28.  
  29. class Fudbaler
  30. {
  31.   private String ime;
  32.   private double zarada;
  33.   private int brojGolova;
  34.   private boolean prvaPostava;
  35.  
  36.   public Fudbaler(String ime, double zarada, int brojGolova, boolean prvaPostava){
  37.     this.ime = ime;
  38.     this.zarada = zarada;
  39.     this.brojGolova = brojGolova;
  40.     this.prvaPostava = prvaPostava;
  41.   }
  42.  
  43.   public void setIme(String ime){
  44.     this.ime = ime;
  45.   }
  46.   public String getIme(){
  47.     return ime;
  48.   }
  49.  
  50.   public void setZarada(double zarada){
  51.     this.zarada = zarada;
  52.   }
  53.   public double getZarada(){
  54.     return zarada;
  55.   }
  56.  
  57.   public void setBrojGolova(int brojGolova){
  58.     this.brojGolova = brojGolova;
  59.   }
  60.   public int getBrojGolova(){
  61.     return brojGolova;
  62.   }
  63.  
  64.   public void setPrvaPostava(boolean prvaPostava){
  65.     this.prvaPostava = prvaPostava;
  66.   }
  67.   public boolean isPrvaPostava(){
  68.     return prvaPostava;
  69.   }
  70.  
  71.   @Override
  72.   public String toString(){
  73.     if(prvaPostava){
  74.           return ime + " " + zarada + " " + brojGolova + " prva postava.";
  75.     } else {
  76.       return ime + " " + zarada + " " + brojGolova + " druga postava.";
  77.     }
  78.   }
  79. }
  80.  
  81. //-------------------------------------------------------------------------------
  82. class FudbalskiKlub
  83. {
  84.  
  85.   private Fudbaler[] fudbaleri;
  86.  
  87.   public Fudbaler[] getFudbaleri(){
  88.     return fudbaleri;
  89.   }
  90.  
  91.   public FudbalskiKlub(String path) throws IOException{
  92.     BufferedReader reader = new BufferedReader(new FileReader(path));
  93.  
  94.     int num = Integer.parseInt(reader.readLine());
  95.    
  96.     fudbaleri = new Fudbaler[num];
  97.     for(int i = 0; i < num; i++){
  98.       String line = reader.readLine();
  99.       String[] niz = line.split(",");
  100.       String ime = niz[0].trim();
  101.       double zarada = Double.parseDouble(niz[1].trim());
  102.       int brojGolova = Integer.parseInt(niz[2].trim());
  103.       boolean prvaPostava = niz[3].trim().equals("da");
  104.       fudbaleri[i] = new Fudbaler(ime, zarada, brojGolova, prvaPostava);
  105.     }
  106.    
  107.     reader.close();
  108.   }
  109.  
  110.   public Fudbaler najbogatiji(){
  111.     Fudbaler res = null;
  112.    
  113.     if(fudbaleri[0] != null)
  114.       res = fudbaleri[0];
  115.    
  116.     for(int i = 1; i < fudbaleri.length; i++){
  117.       if(res.getZarada() >= res.getZarada()){
  118.         res = fudbaleri[i];
  119.       }
  120.     }
  121.    
  122.     return res;
  123.   }
  124.    
  125.    public boolean dobarProsekPrimanja() {
  126.      int brojIgracaPrvePostave = 0;
  127.      double sumaZaradaPrvePostave = 0;
  128.      double sumaZaradaDrugePostave = 0;
  129.      for (int i = 0; i < fudbaleri.length; i++) {
  130.        Fudbaler fudbaler = fudbaleri[i];
  131.        if (fudbaler.isPrvaPostava()) {
  132.          brojIgracaPrvePostave++;
  133.          sumaZaradaPrvePostave += fudbaler.getZarada();
  134.        } else {
  135.          sumaZaradaDrugePostave += fudbaler.getZarada();
  136.        }
  137.      }
  138.      double prosekZaradePrvePostave = sumaZaradaPrvePostave / brojIgracaPrvePostave;
  139.      double prosekZaradeDrugePostave = sumaZaradaDrugePostave / (fudbaleri.length - brojIgracaPrvePostave);
  140.      return prosekZaradePrvePostave > prosekZaradeDrugePostave;
  141.    }
  142.  
  143.    public Fudbaler najboljiIzRezerve(){
  144.      Fudbaler res = null;
  145.      for(int i = 0; i < fudbaleri.length; i++){
  146.        Fudbaler f = fudbaleri[i];
  147.        if(!f.isPrvaPostava()){
  148.          if(res == null || f.getBrojGolova() > res.getBrojGolova()){
  149.            res = f;
  150.          }
  151.        }
  152.      }
  153.      return res;
  154.    }  
  155.      
  156.    public int brojDobrihInvesticija(int brojGolova, double zaradaIgraca) {
  157.      int brojIgraca = 0;
  158.      for (int i = 0; i < fudbaleri.length; i++) {
  159.        Fudbaler fudbaler = fudbaleri[i];
  160.        if (fudbaler.isPrvaPostava()) {
  161.          if (fudbaler.getBrojGolova() >= brojGolova && fudbaler.getZarada() >= zaradaIgraca) {
  162.            brojIgraca++;
  163.          }
  164.        }
  165.      }
  166.      return brojIgraca;
  167.    }
  168.  
  169. }
  170.  
  171. //-------------------------------------------------------------------------------
  172.  
  173. public class Osnovna{
  174.  
  175.   public static String pathIn = "fudbaleri.txt";
  176.   public static String pathOut = "izlaz.txt";
  177.  
  178.   public static void main(String[] args){
  179.    
  180.     System.out.println("ispis svih fudbalera");
  181.     try{
  182.         FudbalskiKlub fk = new FudbalskiKlub(pathIn);
  183.             for(Fudbaler f : fk.getFudbaleri()){
  184.               System.out.println(f.toString());
  185.             }
  186.            
  187.             if (fk.dobarProsekPrimanja()) {
  188.               System.out.println("Fudbalski klub ima dobar prosek primanja.");
  189.             } else {
  190.               System.out.println("Fudbalski klub nema dobar prosek primanja.");
  191.             }
  192.            
  193.             System.out.println("Igrac iz druge postave koji ima najvise postignutih golova: " + fk.najboljiIzRezerve());
  194.            
  195.             System.out.println("Broj igraca iz prve postave ciji je broj postignutih golova veci ili jednak 100,"
  196.                                  + "i koji imaju zaradu vecu ili jednaku od 5: " + fk.brojDobrihInvesticija(100, 5));
  197.     }catch(Exception e){
  198.       e.printStackTrace();
  199.     }
  200.   }
  201.  
  202. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement