gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Primeri za klase doterani i prilagodjeni za Svetovid-lib 0.4.0
[spa1-materijali.git] / kodovi / klase / RadniciSpisakId.java
index f83211c..9f5f5d5 100644 (file)
-/** 
- * Prosirujemo program iz RadniciSpisak tako da ima jedinstvene id-ove za radnike. Dodajemo
- * i operaciju za izbacivanje radnika.
+/**
+ * Prosirujemo program iz RadniciSpisak tako da ima jedinstvene id-ove za
+ * radnike. Dodajemo i operaciju za izbacivanje radnika.
  */
 public class RadniciSpisakId {
-  static SpisakJedinstvenihRadnika spisak = null, spisak2 = null;
-  
-  public static void main(String[] args){
-    spisak = new SpisakJedinstvenihRadnika();
-    spisak.ucitajRadnike("radnici.txt");
-    Svetovid.out.println(spisak);
-    if (spisak.izbaciRadnika(111)) {
-      Svetovid.out.println("posle izbacivanja:");
-      Svetovid.out.println(spisak);
-    } else {
-      Svetovid.out.println("nije nadjen radnik za izbacivanje");
-    }
-    
-    spisak2 = new SpisakJedinstvenihRadnika();
-    spisak2.ucitajRadnike("radnici2.txt");
-    spisak2.sviUKancelariji(1);
-  }
+       static SpisakJedinstvenihRadnika spisak = null, spisak2 = null;
+
+       public static void main(String[] args) {
+               spisak = new SpisakJedinstvenihRadnika();
+               spisak.ucitajRadnike("radnici.txt");
+               Svetovid.out.println(spisak);
+               if (spisak.izbaciRadnika(111)) {
+                       Svetovid.out.println("posle izbacivanja:");
+                       Svetovid.out.println(spisak);
+               } else {
+                       Svetovid.out.println("nije nadjen radnik za izbacivanje");
+               }
+
+               spisak2 = new SpisakJedinstvenihRadnika();
+               spisak2.ucitajRadnike("radnici2.txt");
+               spisak2.sviUKancelariji(1);
+       }
 }
 
 /** Spisak radnika u kome svi imaju razlicite id brojeve. */
 class SpisakJedinstvenihRadnika {
-  
-  /** Radnik sa svojim podacima: id, prezime, ime, kancelarija */
-  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 SpisakJedinstvenihRadnika() {
-    spisak = new Radnik[MAX_RADNIKA];
-    brojac = 0;
-  }
-  
-  /** Dodaje novog radnika sa datim podacima. Vraca da li je 
-    * operacija uspesno obavljena, odnosno vratice false ako
-    * je radnik takvim id-om vec postojao */
-  public boolean dodajRadnika(int id, String prezime, String ime, int kanc) {
-    
-    //proverimo jel ima mesta
-    if (brojac >= MAX_RADNIKA) {
-      Svetovid.err.println("Greska! vec ima "+MAX_RADNIKA+" novi se ne mogu dodati");
-    }
-    
-    //proverimo jel vec postoji neko sa tim id-om
-    boolean postoji = false;
-    for (int i=0;i<brojac && !postoji;i++) {
-      if (spisak[i].id == id) {
-        postoji = true;
-      }
-    }
-    
-    if (postoji) {
-      Svetovid.err.println("Greska! radnik sa idom:"+id+" vec postoji");
-      return false;
-    } else {
-      spisak[brojac] = new Radnik(id, prezime, ime, kanc);
-      brojac++;
-      return true;
-    }
-  }
-  
-  /** ucitava sve radnike iz datog fajla i dodaje ih u trenutni spisak. */
-  public void ucitajRadnike(String imef) {
-    while (!Svetovid.in(imef).isEmpty()) {
-      int id = Svetovid.in(imef).readInt();
-      String prezime = Svetovid.in(imef).readString();
-      String ime = Svetovid.in(imef).readString();
-      int kanc = Svetovid.in(imef).readInt();
-      dodajRadnika(id, prezime, ime, kanc);
-    }
-    Svetovid.in(imef).close();
-  }
-  
-  public void snimiRadnike(String imef){
-    for (int i=0;i<brojac;i++){
-      Radnik rad = spisak[i];
-      Svetovid.out(imef).print(rad.id);
-      Svetovid.out(imef).print(" ");
-      Svetovid.out(imef).print(rad.prezime);
-      Svetovid.out(imef).print(" ");
-      Svetovid.out(imef).print(rad.ime);
-      Svetovid.out(imef).print(" ");
-      Svetovid.out(imef).print(rad.kancelarija);
-      Svetovid.out(imef).println();
-    }
-    Svetovid.out(imef).close();
-  }
-  
-  public boolean izbaciRadnika(int id) {
-    int pos = 0;
-    while (pos<brojac && spisak[pos].id != id)
-      pos++;
-    
-    if (pos<brojac) {
-      brojac--;
-      
-      //zapravo treba da pomerimo sve iza ovog radnika
-      for (int j=pos;j<brojac; j++) 
-        spisak[j] = spisak[j+1];
-      return true;
-    } else {
-      return false;
-    }
-  }
-  
-  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]);
-      }
-    }
-  }
-  
-  // ispisuje sve radnike u nizu razdvojene razmacima. Posebna paznja je obracena
-  // na to da se ne ispisuje zarez nakon poslednjeg radnika.
-  public String toString() {
-    String res = "Radnici [";
-    if (brojac>0) {
-         res += spisak[0];
-    }
-    for (int i=1;i<brojac;i++) {
-      res += ", "+spisak[i];
-    }
-    res += "]";
-    return res;
-  }
-  
+
+       /** Radnik sa svojim podacima: id, prezime, ime, kancelarija */
+       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 SpisakJedinstvenihRadnika() {
+               spisak = new Radnik[MAX_RADNIKA];
+               brojac = 0;
+       }
+
+       /**
+        * Dodaje novog radnika sa datim podacima. Vraca da li je operacija uspesno
+        * obavljena, odnosno vratice false ako je radnik takvim id-om vec postojao
+        */
+       public boolean dodajRadnika(int id, String prezime, String ime, int kanc) {
+
+               // proverimo jel ima mesta
+               if (brojac >= MAX_RADNIKA) {
+                       Svetovid.err.println("Greska! vec ima " + MAX_RADNIKA
+                                       + " novi se ne mogu dodati");
+               }
+
+               // proverimo jel vec postoji neko sa tim id-om
+               boolean postoji = false;
+               for (int i = 0; i < brojac && !postoji; i++) {
+                       if (spisak[i].id == id) {
+                               postoji = true;
+                       }
+               }
+
+               if (postoji) {
+                       Svetovid.err.println("Greska! radnik sa idom:" + id
+                                       + " vec postoji");
+                       return false;
+               } else {
+                       spisak[brojac] = new Radnik(id, prezime, ime, kanc);
+                       brojac++;
+                       return true;
+               }
+       }
+
+       /** Ucitava sve radnike iz datog fajla i dodaje ih u trenutni spisak. */
+       public void ucitajRadnike(String imef) {
+               while (!Svetovid.in(imef).isEmpty()) {
+                       int id = Svetovid.in(imef).readInt();
+                       String prezime = Svetovid.in(imef).readToken();
+                       String ime = Svetovid.in(imef).readToken();
+                       int kanc = Svetovid.in(imef).readInt();
+                       dodajRadnika(id, prezime, ime, kanc);
+               }
+               Svetovid.in(imef).close();
+       }
+
+       public void snimiRadnike(String imef) {
+               for (int i = 0; i < brojac; i++) {
+                       Radnik rad = spisak[i];
+                       Svetovid.out(imef).print(rad.id);
+                       Svetovid.out(imef).print(" ");
+                       Svetovid.out(imef).print(rad.prezime);
+                       Svetovid.out(imef).print(" ");
+                       Svetovid.out(imef).print(rad.ime);
+                       Svetovid.out(imef).print(" ");
+                       Svetovid.out(imef).print(rad.kancelarija);
+                       Svetovid.out(imef).println();
+               }
+               Svetovid.out(imef).close();
+       }
+
+       public boolean izbaciRadnika(int id) {
+               int pos = 0;
+               while (pos < brojac && spisak[pos].id != id)
+                       pos++;
+
+               if (pos < brojac) {
+                       brojac--;
+
+                       // zapravo treba da pomerimo sve iza ovog radnika
+                       for (int j = pos; j < brojac; j++)
+                               spisak[j] = spisak[j + 1];
+                       return true;
+               } else {
+                       return false;
+               }
+       }
+
+       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]);
+                       }
+               }
+       }
+
+       /**
+        * Ispisuje sve radnike u nizu razdvojene razmacima. Posebna paznja je
+        * obracena na to da se ne ispisuje zarez nakon poslednjeg radnika.
+        */
+       public String toString() {
+               String res = "Radnici [";
+               if (brojac > 0) {
+                       res += spisak[0];
+               }
+               for (int i = 1; i < brojac; i++) {
+                       res += ", " + spisak[i];
+               }
+               res += "]";
+               return res;
+       }
+
 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner