Drugi zadatak sa testa //Klasa Ucenik import java.util.Arrays; public class Ucenik { //atributi String ime, prezime; int razred; char odjeljenje; int ocjene[]; //parametarski konstruktor public Ucenik(String ime1, String prezime1, int razred1, char odjeljenje1, int ocjene1[]) { this.ime = ime1; this.prezime = prezime1; this.razred = razred1; this.odjeljenje = odjeljenje1; this.ocjene = ocjene1; } public String getIme() { return ime; } public void setIme(String ime) { this.ime = ime; } public String getPrezime() { return prezime; } public void setPrezime(String prezime) { this.prezime = prezime; } public int getRazred() { return razred; } public void setRazred(int razred) { this.razred = razred; } public char getOdjeljenje() { return odjeljenje; } public void setOdjeljenje(char odjeljenje) { this.odjeljenje = odjeljenje; } public int[] getOcjene() { return ocjene; } public void setOcjene(int[] ocjene) { this.ocjene = ocjene; } public double vratiProsjek() { double sum = 0; for(int i=0; i < ocjene.length;i++) sum += ocjene[i]; return sum/ocjene.length; } public String toString() { return "[Ucenik]: "+ime+" "+prezime+", Razred: "+razred+", Odjeljenje "+odjeljenje+", Ocjene: "+Arrays.toString(ocjene)+", prosjek: "+vratiProsjek(); } } ============================================= //Test klasa import java.util.*; import java.io.*; class CompPrezimeIme implements Comparator { public int compare(Ucenik u1, Ucenik u2) { if(u1.getPrezime().compareTo(u2.getPrezime())==0) { return u1.getIme().compareTo(u2.getIme()); } else { return u1.getPrezime().compareTo(u2.getPrezime()); } } } class CompProsjek implements Comparator { public int compare(Ucenik u1, Ucenik u2) { if(u1.vratiProsjek()>u2.vratiProsjek()) { return 1; } if(u1.vratiProsjek() { int n; public CompPredmet(int n1) { this.n = n1; } public int compare(Ucenik u1, Ucenik u2) { if(u1.getOcjene()[n-1] > u2.getOcjene()[n-1]) return 1; if(u1.getOcjene()[n-1] < u2.getOcjene()[n-1]) return -1; return 0; } } public class Test { public static void main(String args[]){ try{ Scanner scan1 = new Scanner(System.in); FileReader ff = new FileReader("Ucenici.txt"); Scanner scan2 = new Scanner(ff); Vector vUcenici = new Vector(); Ucenik utemp; String imeT, prezimeT; int razredT; char odjeljenjeT; int ocjeneT[]; //citanje iz fajla while(scan2.hasNext()) { imeT = scan2.next(); prezimeT = scan2.next(); razredT = scan2.nextInt(); odjeljenjeT = scan2.next().charAt(0); ocjeneT = new int[10]; for(int i=0;i < 10; i++) ocjeneT[i] = scan2.nextInt(); utemp = new Ucenik(imeT, prezimeT, razredT, odjeljenjeT, ocjeneT); vUcenici.add(utemp); } System.out.println("================ Ucenici.txt ================"); for(Ucenik u : vUcenici) System.out.println(u); System.out.println("============================================="); int izbor; do { System.out.println("============================================="); System.out.println("1. Lista ucenika - sortirano po prezimenu."); System.out.println("2. Lista ucenika - razred, sortirano po prosjecnoj ocjeni."); System.out.println("3. Lista ucenika - razred, predmet, sortirano po ocjeni iz odredjenog predmeta."); System.out.println("4. Lista ucenika - prosjecna ocjena izmedju a i b."); System.out.println("5. Lista ucenika - predmet, ocjena."); System.out.println("0. IZLAZ"); System.out.println("Vas izbor: "); izbor = scan1.nextInt(); switch(izbor) { case 1: { System.out.println("[Izabrana opcija 1] Lista ucenika - sortirano po prezimenu."); Collections.sort(vUcenici, new CompPrezimeIme()); for(Ucenik u : vUcenici) System.out.println(u); break; } case 2: { System.out.println("[Izabrana opcija 2] Lista ucenika - razred, sortirano po prosjecnoj ocjeni."); System.out.println("Unesite razred: "); int r = scan1.nextInt(); Vector vPoRazredu = new Vector(); for(Ucenik u : vUcenici) if (u.getRazred() == r) vPoRazredu.add(u); Collections.sort(vPoRazredu, new CompProsjek()); for(Ucenik u : vUcenici) System.out.println(u); break; } case 3: { System.out.println("[Izabrana opcija 3] Lista ucenika - razred, predmet, sortirano po ocjeni iz odredjenog predmeta."); System.out.println("Unesite razred: "); int r = scan1.nextInt(); Vector vPoRazredu = new Vector(); for(Ucenik u : vUcenici) if (u.getRazred() == r) vPoRazredu.add(u); System.out.println("Unesite redni broj predmeta: "); int n = scan1.nextInt(); Collections.sort(vPoRazredu, new CompPredmet(n)); for(Ucenik u : vUcenici) System.out.println(u); break; } case 4: { System.out.println("[Izabrana opcija 4] Lista ucenika - prosjecna ocjena izmedju a i b."); System.out.print("Unesite broj a: "); double a = scan1.nextDouble(); System.out.print("Unesite broj b: "); double b = scan1.nextDouble(); for(Ucenik u : vUcenici) if (a <= u.vratiProsjek() && u.vratiProsjek() <=b) System.out.println(u); break; } case 5: { System.out.println("[Izabrana opcija 5] Lista ucenika - predmet, ocjena."); System.out.println("Unesi redni broj predmeta: "); int n = scan1.nextInt(); System.out.println("Unesite ocjenu"); int o = scan1.nextInt(); for(Ucenik u : vUcenici) if (u.getOcjene()[n-1] == o) System.out.println(u); break; } } }while(izbor != 0); ff.close(); }catch(Exception e){ System.out.println("[GRESKA]: Desila se greska!"); } } }