gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
dodati primeri programa za rad sa klasama sa teorijskih vezbi
[spa1-materijali.git] / kodovi / klase / RadniciSpisak.java
diff --git a/kodovi/klase/RadniciSpisak.java b/kodovi/klase/RadniciSpisak.java
new file mode 100644 (file)
index 0000000..51c7040
--- /dev/null
@@ -0,0 +1,108 @@
+/** Program prosiruje prethodni Radnici koji je radio sa nizom objekata u 
+  * klasu koja predstavlja taj spisak i ima metode vezane za njega */
+public class RadniciSpisak {
+  static SpisakRadnika spisak = null, spisak2 = null;
+  
+   public static void main(String[] args){
+    spisak = new SpisakRadnika();
+    spisak.ucitajRadnike("radnici.txt");
+    spisak.sviUKancelariji(1);
+    
+    spisak2 = new SpisakRadnika();
+    spisak2.ucitajRadnike("radnici2.txt");
+    spisak2.sviUKancelariji(1);
+   }
+}
+
+/** Klasa predstavlja spisak radnika u nekoj firmi. */
+class SpisakRadnika{
+
+  /** Klasa predstavlja jednog radnika. Ovde je postavljena kao unutrasnja klasa
+    * u klasi SpisakRadnika, ali mogla je biti postavljena i ispod kao odvojena u istom
+    * fajlu ili cak u sopstvenom fajlu u istom folderu. */
+  class Radnik {
+    String prezime, ime;
+    int id;
+    int kancelarija;
+    
+    // Konstruktor klase - neophodno je proslediti sve podatke odjednom da se napravi instanca
+    public Radnik(int id, String prezime, String ime, int kancelarija) {
+      this.id = id;
+      this.prezime = prezime;
+      this.ime = ime;
+      this.kancelarija = kancelarija;
+    }
+    
+    public String prezimeIme() {
+      return prezime+" "+ime;
+    }
+    
+    public String inicijali() {
+      String p = "";
+      if (prezime != null && !prezime.isEmpty()) {
+        p = prezime.charAt(0)+".";    
+      }
+      String i = "";
+      if (ime != null && !ime.isEmpty()) {
+        i = ime.charAt(0)+".";
+      }
+      return i+p;
+    }
+    
+    public String sviPodaci() {
+      return "Radnik "+id+":"+prezime+" "+ime+", kancelarija:"+kancelarija; 
+    }
+    
+    // toString metod se koristi kad je potrebno predstaviti instancu kao String,
+    // tipicno pri pozivu ispisa na ekran. Ocekuje se da da kratku informaciju
+    // koja je razumljiva coveku.
+    public String toString() {
+      return prezime+" "+ime; 
+    }
+    
+  } // klasa Radnik  
+  
+  final static int MAX_RADNIKA = 100;
+  
+  Radnik[] spisak;
+  int brojac;
+  
+  /** Kreira novu instancu klase i inicijalizuje niz i brojac na adekvatne vrednosti. */
+  public SpisakRadnika() {
+    spisak = new Radnik[MAX_RADNIKA];
+    brojac = 0;
+  }
+  
+  /** ucitava radnike iz datog fajla i dodaje u trenutni spisak. */
+  public void ucitajRadnike(String imef){
+    while (!Svetovid.in(imef).isEmpty() && brojac < MAX_RADNIKA) {
+      int id = Svetovid.in(imef).readInt();
+      String prezime = Svetovid.in(imef).readString();
+      String ime = Svetovid.in(imef).readString();
+      int kanc = Svetovid.in(imef).readInt();
+      spisak[brojac] = new Radnik(id, prezime, ime, kanc);
+      brojac++;
+    }
+    
+    if (!Svetovid.in(imef).isEmpty()){
+      Svetovid.out.println("Previse radnika u fajlu! Ucitano prvih "+MAX_RADNIKA);
+    }
+    
+    // zatvaramo fajl jer smo ga celog procitali
+    // i oslobodjamo resurs
+    Svetovid.in(imef).close();
+  }
+  
+  public int brRadnika() {
+    return brojac;
+  }
+  
+  public void sviUKancelariji(int kanc){
+    for (int i=0;i<brojac;i++) {
+      if (spisak[i].kancelarija == kanc) {
+        Svetovid.out.println(spisak[i]);
+      }
+    }
+  }
+  
+}
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner