Advertisement
MusicFreak

Drago 23.11.2015

Nov 23rd, 2015
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.02 KB | None | 0 0
  1. Drugi zadatak sa testa
  2.  
  3. //Klasa Ucenik
  4.  
  5. import java.util.Arrays;
  6.  
  7.  
  8. public class Ucenik {
  9.     //atributi
  10.     String ime, prezime;
  11.     int razred;
  12.     char odjeljenje;
  13.     int ocjene[];
  14.    
  15.     //parametarski konstruktor
  16.     public Ucenik(String ime1, String prezime1, int razred1, char odjeljenje1, int ocjene1[])
  17.     {
  18.         this.ime = ime1;
  19.         this.prezime =  prezime1;
  20.         this.razred = razred1;
  21.         this.odjeljenje = odjeljenje1;
  22.         this.ocjene = ocjene1;
  23.     }
  24.  
  25.     public String getIme() {
  26.         return ime;
  27.     }
  28.  
  29.     public void setIme(String ime) {
  30.         this.ime = ime;
  31.     }
  32.  
  33.     public String getPrezime() {
  34.         return prezime;
  35.     }
  36.  
  37.     public void setPrezime(String prezime) {
  38.         this.prezime = prezime;
  39.     }
  40.  
  41.     public int getRazred() {
  42.         return razred;
  43.     }
  44.  
  45.     public void setRazred(int razred) {
  46.         this.razred = razred;
  47.     }
  48.  
  49.     public char getOdjeljenje() {
  50.         return odjeljenje;
  51.     }
  52.  
  53.     public void setOdjeljenje(char odjeljenje) {
  54.         this.odjeljenje = odjeljenje;
  55.     }
  56.  
  57.     public int[] getOcjene() {
  58.         return ocjene;
  59.     }
  60.  
  61.     public void setOcjene(int[] ocjene) {
  62.         this.ocjene = ocjene;
  63.     }
  64.    
  65.     public double vratiProsjek()
  66.     {
  67.         double sum = 0;
  68.         for(int i=0; i < ocjene.length;i++)
  69.             sum += ocjene[i];
  70.         return sum/ocjene.length;
  71.     }
  72.    
  73.     public String toString()
  74.     {
  75.         return "[Ucenik]: "+ime+" "+prezime+", Razred: "+razred+", Odjeljenje "+odjeljenje+", Ocjene: "+Arrays.toString(ocjene)+", prosjek: "+vratiProsjek();
  76.     }
  77.    
  78. }
  79.  =============================================
  80.  
  81. //Test klasa
  82.  
  83. import java.util.*;
  84. import java.io.*;
  85.  
  86. class CompPrezimeIme implements Comparator<Ucenik>
  87. {
  88.     public int compare(Ucenik u1, Ucenik u2)
  89.     {
  90.         if(u1.getPrezime().compareTo(u2.getPrezime())==0)
  91.         {
  92.             return u1.getIme().compareTo(u2.getIme());
  93.         }
  94.         else
  95.         {
  96.             return u1.getPrezime().compareTo(u2.getPrezime());
  97.         }
  98.     }
  99. }
  100.  
  101. class CompProsjek implements Comparator<Ucenik>
  102. {
  103.     public int compare(Ucenik u1, Ucenik u2)
  104.     {
  105.         if(u1.vratiProsjek()>u2.vratiProsjek())
  106.         {
  107.             return 1;
  108.         }
  109.         if(u1.vratiProsjek()<u2.vratiProsjek())
  110.         {
  111.             return -1;
  112.         }
  113.         return 0;
  114.     }
  115. }
  116.  
  117. class CompPredmet implements Comparator<Ucenik>
  118. {
  119.     int n;
  120.     public CompPredmet(int n1)
  121.     {
  122.         this.n = n1;
  123.     }
  124.     public int compare(Ucenik u1, Ucenik u2)
  125.     {
  126.         if(u1.getOcjene()[n-1] > u2.getOcjene()[n-1]) return 1;
  127.         if(u1.getOcjene()[n-1] < u2.getOcjene()[n-1]) return -1;
  128.         return 0;
  129.     }
  130. }
  131.  
  132. public class Test {
  133.     public static void main(String args[]){
  134.         try{
  135.         Scanner scan1 = new Scanner(System.in);
  136.         FileReader ff = new FileReader("Ucenici.txt");
  137.         Scanner scan2 = new Scanner(ff);
  138.         Vector<Ucenik> vUcenici = new Vector<Ucenik>();
  139.         Ucenik utemp;
  140.         String imeT, prezimeT;
  141.         int razredT;
  142.         char odjeljenjeT;
  143.         int ocjeneT[];
  144.        
  145.         //citanje iz fajla
  146.         while(scan2.hasNext())
  147.         {
  148.             imeT = scan2.next();
  149.             prezimeT = scan2.next();
  150.             razredT = scan2.nextInt();
  151.             odjeljenjeT = scan2.next().charAt(0);
  152.             ocjeneT = new int[10];
  153.             for(int i=0;i < 10; i++)
  154.                 ocjeneT[i] = scan2.nextInt();
  155.             utemp = new Ucenik(imeT, prezimeT, razredT, odjeljenjeT, ocjeneT);
  156.             vUcenici.add(utemp);
  157.         }
  158.         System.out.println("================ Ucenici.txt ================");
  159.         for(Ucenik u : vUcenici)
  160.             System.out.println(u);
  161.         System.out.println("=============================================");
  162.        
  163.         int izbor;
  164.         do
  165.         {
  166.             System.out.println("=============================================");
  167.             System.out.println("1. Lista ucenika - sortirano po prezimenu.");
  168.             System.out.println("2. Lista ucenika - razred, sortirano po prosjecnoj ocjeni.");
  169.             System.out.println("3. Lista ucenika - razred, predmet, sortirano po ocjeni iz odredjenog predmeta.");
  170.             System.out.println("4. Lista ucenika - prosjecna ocjena izmedju a i b.");
  171.             System.out.println("5. Lista ucenika - predmet, ocjena.");
  172.             System.out.println("0. IZLAZ");
  173.             System.out.println("Vas izbor: ");
  174.            
  175.             izbor = scan1.nextInt();
  176.            
  177.             switch(izbor)
  178.             {
  179.             case 1:
  180.             {
  181.                 System.out.println("[Izabrana opcija 1] Lista ucenika - sortirano po prezimenu.");
  182.                 Collections.sort(vUcenici, new CompPrezimeIme());
  183.                 for(Ucenik u : vUcenici)
  184.                     System.out.println(u);
  185.                 break;
  186.             }
  187.             case 2:
  188.             {
  189.                 System.out.println("[Izabrana opcija 2] Lista ucenika - razred, sortirano po prosjecnoj ocjeni.");
  190.                 System.out.println("Unesite razred: ");
  191.                 int r = scan1.nextInt();
  192.                 Vector<Ucenik> vPoRazredu = new Vector<Ucenik>();
  193.                 for(Ucenik u : vUcenici)
  194.                     if (u.getRazred() == r)
  195.                         vPoRazredu.add(u);
  196.                 Collections.sort(vPoRazredu, new CompProsjek());
  197.                 for(Ucenik u : vUcenici)
  198.                     System.out.println(u);
  199.                 break;
  200.             }
  201.             case 3:
  202.             {
  203.                 System.out.println("[Izabrana opcija 3] Lista ucenika - razred, predmet, sortirano po ocjeni iz odredjenog predmeta.");
  204.                 System.out.println("Unesite razred: ");
  205.                 int r = scan1.nextInt();
  206.                 Vector<Ucenik> vPoRazredu = new Vector<Ucenik>();
  207.                 for(Ucenik u : vUcenici)
  208.                     if (u.getRazred() == r)
  209.                         vPoRazredu.add(u);
  210.                 System.out.println("Unesite redni broj predmeta: ");
  211.                 int n = scan1.nextInt();
  212.                 Collections.sort(vPoRazredu, new CompPredmet(n));
  213.                 for(Ucenik u : vUcenici)
  214.                     System.out.println(u);
  215.                 break;
  216.             }
  217.             case 4:
  218.             {
  219.                 System.out.println("[Izabrana opcija 4] Lista ucenika - prosjecna ocjena izmedju a i b.");
  220.                 System.out.print("Unesite broj a: ");
  221.                 double a = scan1.nextDouble();
  222.                 System.out.print("Unesite broj b: ");
  223.                 double b = scan1.nextDouble();
  224.                 for(Ucenik u : vUcenici)
  225.                     if (a <= u.vratiProsjek() && u.vratiProsjek() <=b)
  226.                         System.out.println(u);
  227.                 break;
  228.             }
  229.             case 5:
  230.             {
  231.                 System.out.println("[Izabrana opcija 5] Lista ucenika - predmet, ocjena.");
  232.                 System.out.println("Unesi redni broj predmeta: ");
  233.                 int n = scan1.nextInt();
  234.                
  235.                 System.out.println("Unesite ocjenu");
  236.                 int o = scan1.nextInt();
  237.                 for(Ucenik u : vUcenici)
  238.                     if (u.getOcjene()[n-1] == o)
  239.                         System.out.println(u);
  240.                 break;
  241.             }
  242.             }
  243.            
  244.         }while(izbor != 0);
  245.        
  246.         ff.close();
  247.     }catch(Exception e){
  248.         System.out.println("[GRESKA]: Desila se greska!");
  249.     }
  250.     }
  251. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement