Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Klasom Fudbaler se opisuje jedan fudbaler. Ova klasa kao atribute sadrzi ime fudbalera (String), njegovu zaradu u milionima dolara (double),
- broj postignutih golova u karijeri (int) i logicku promenljivu koja nosi informaciju o tome da li fudbaler igra u prvoj postavi ili ne.
- Klasa jos sadrzi i konstruktor koji inicijalizuje sve atribute, get metode za svaki atribut i toString() metodu.
- Klasom FudbalskiKlub se opisuju igraci koji igraju u jednom fudbalskom klubu. Podaci o igracima se ucitavaju iz tekstualnog fajla
- koji je organizovan na sledeci nacin: u prvoj liniji fajla nalazi se broj igraca u fudbalskom klubu, a u svakoj sledecoj podaci o
- jednom fudbaleru razdvojeni zarezom, i to ime, zarada, broj postignutih golova i string konstanta ("da" ili "ne"). Klasa definise
- i sledece metode :
- - Fudbaler najbogatiji() - metoda koja vraca fudbalera sa najvecim primanjima.
- - boolean dobarProsekPrimanja() - metoda koja proverava da li je prosek primanja igraca iz prve postave veci od proseka primanja
- igraca iz druge postave.
- - Fudbaler najboljiIzRezerve() - metoda koja vraca igraca iz druge postave koji ima najvise postignutih golova.
- - int brojDobrihInvesticija(int brGolova, double zaradaIgraca) - metoda koja broji koliko igraca iz prve postave ima jednako ili vise od
- brGolova (prvi argument metoda) postignutih golova i zaradu vecu ili jednaku od zaradaIgraca (drugi argument metoda).
- U glavnom programu potrebno je napraviti instancu klase FudbalskiKlub za tekstualni fajl “fudbaleri.txt” i ispisati rezultate izvrsavanja
- svih metoda te klase.
- */
- import java.io.*;
- class Fudbaler
- {
- private String ime;
- private double zarada;
- private int brojGolova;
- private boolean prvaPostava;
- public Fudbaler(String ime, double zarada, int brojGolova, boolean prvaPostava){
- this.ime = ime;
- this.zarada = zarada;
- this.brojGolova = brojGolova;
- this.prvaPostava = prvaPostava;
- }
- public void setIme(String ime){
- this.ime = ime;
- }
- public String getIme(){
- return ime;
- }
- public void setZarada(double zarada){
- this.zarada = zarada;
- }
- public double getZarada(){
- return zarada;
- }
- public void setBrojGolova(int brojGolova){
- this.brojGolova = brojGolova;
- }
- public int getBrojGolova(){
- return brojGolova;
- }
- public void setPrvaPostava(boolean prvaPostava){
- this.prvaPostava = prvaPostava;
- }
- public boolean isPrvaPostava(){
- return prvaPostava;
- }
- @Override
- public String toString(){
- if(prvaPostava){
- return ime + " " + zarada + " " + brojGolova + " prva postava.";
- } else {
- return ime + " " + zarada + " " + brojGolova + " druga postava.";
- }
- }
- }
- //-------------------------------------------------------------------------------
- class FudbalskiKlub
- {
- private Fudbaler[] fudbaleri;
- public Fudbaler[] getFudbaleri(){
- return fudbaleri;
- }
- public FudbalskiKlub(String path) throws IOException{
- BufferedReader reader = new BufferedReader(new FileReader(path));
- int num = Integer.parseInt(reader.readLine());
- fudbaleri = new Fudbaler[num];
- for(int i = 0; i < num; i++){
- String line = reader.readLine();
- String[] niz = line.split(",");
- String ime = niz[0].trim();
- double zarada = Double.parseDouble(niz[1].trim());
- int brojGolova = Integer.parseInt(niz[2].trim());
- boolean prvaPostava = niz[3].trim().equals("da");
- fudbaleri[i] = new Fudbaler(ime, zarada, brojGolova, prvaPostava);
- }
- reader.close();
- }
- public Fudbaler najbogatiji(){
- Fudbaler res = null;
- if(fudbaleri[0] != null)
- res = fudbaleri[0];
- for(int i = 1; i < fudbaleri.length; i++){
- if(res.getZarada() >= res.getZarada()){
- res = fudbaleri[i];
- }
- }
- return res;
- }
- public boolean dobarProsekPrimanja() {
- int brojIgracaPrvePostave = 0;
- double sumaZaradaPrvePostave = 0;
- double sumaZaradaDrugePostave = 0;
- for (int i = 0; i < fudbaleri.length; i++) {
- Fudbaler fudbaler = fudbaleri[i];
- if (fudbaler.isPrvaPostava()) {
- brojIgracaPrvePostave++;
- sumaZaradaPrvePostave += fudbaler.getZarada();
- } else {
- sumaZaradaDrugePostave += fudbaler.getZarada();
- }
- }
- double prosekZaradePrvePostave = sumaZaradaPrvePostave / brojIgracaPrvePostave;
- double prosekZaradeDrugePostave = sumaZaradaDrugePostave / (fudbaleri.length - brojIgracaPrvePostave);
- return prosekZaradePrvePostave > prosekZaradeDrugePostave;
- }
- public Fudbaler najboljiIzRezerve(){
- Fudbaler res = null;
- for(int i = 0; i < fudbaleri.length; i++){
- Fudbaler f = fudbaleri[i];
- if(!f.isPrvaPostava()){
- if(res == null || f.getBrojGolova() > res.getBrojGolova()){
- res = f;
- }
- }
- }
- return res;
- }
- public int brojDobrihInvesticija(int brojGolova, double zaradaIgraca) {
- int brojIgraca = 0;
- for (int i = 0; i < fudbaleri.length; i++) {
- Fudbaler fudbaler = fudbaleri[i];
- if (fudbaler.isPrvaPostava()) {
- if (fudbaler.getBrojGolova() >= brojGolova && fudbaler.getZarada() >= zaradaIgraca) {
- brojIgraca++;
- }
- }
- }
- return brojIgraca;
- }
- }
- //-------------------------------------------------------------------------------
- public class Osnovna{
- public static String pathIn = "fudbaleri.txt";
- public static String pathOut = "izlaz.txt";
- public static void main(String[] args){
- System.out.println("ispis svih fudbalera");
- try{
- FudbalskiKlub fk = new FudbalskiKlub(pathIn);
- for(Fudbaler f : fk.getFudbaleri()){
- System.out.println(f.toString());
- }
- if (fk.dobarProsekPrimanja()) {
- System.out.println("Fudbalski klub ima dobar prosek primanja.");
- } else {
- System.out.println("Fudbalski klub nema dobar prosek primanja.");
- }
- System.out.println("Igrac iz druge postave koji ima najvise postignutih golova: " + fk.najboljiIzRezerve());
- System.out.println("Broj igraca iz prve postave ciji je broj postignutih golova veci ili jednak 100,"
- + "i koji imaju zaradu vecu ili jednaku od 5: " + fk.brojDobrihInvesticija(100, 5));
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement