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
authorDoni Pracner <quinnuendo@gmail.com>
Wed, 24 Feb 2016 14:47:46 +0000 (15:47 +0100)
committerDoni Pracner <quinnuendo@gmail.com>
Wed, 24 Feb 2016 14:47:46 +0000 (15:47 +0100)
kodovi/klase/Radnici.java [deleted file]
kodovi/klase/RadniciPrimer.java [new file with mode: 0644]
kodovi/klase/RadniciSpisak.java
kodovi/klase/RadniciSpisakId.java
kodovi/klase/Studenti.java

diff --git a/kodovi/klase/Radnici.java b/kodovi/klase/Radnici.java
deleted file mode 100644 (file)
index e04b541..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * Program koji radi sa spiskom radnika, predstavljenim kao niz Objekata tipa Radnik. Klasa Radnika je definisana
- * u klasi ispod. U programu ne znamo koliko ima radnika u fajlu, pa predpostavljamo da nece biti vise od 100.
- */
-public class Radnici {
-  final static int MAX_RADNIKA = 100;
-  
-  static Radnik[] spisak = null;
-  // brojac predstavlja koliko radnika zapravo ima u nizu
-  static int brojac = 0;
-  
-  /** Ucitava radnike iz datog fajla. Niz radnika ce nakon ovog metoda sadrzati 
-    * sve podatke iz fajla i samo njih, tj ako je nesto postojalo u nizu pre,
-    * bice zanemareno.
-    */
-  public static void ucitajRadnike(String imef){
-    // novi niz radnika
-    spisak = new Radnik[MAX_RADNIKA];
-    // resetujemo brojac
-    brojac = 0;
-    
-    //citamo iz fajla dokle god ima jos redova i dok ne premasimo 
-    // kapacitet naseg niza
-    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++;
-    }
-    
-    // ako ima jos redova, znaci da smo prestali zbog punog niza
-    if (!Svetovid.in(imef).isEmpty()){
-      Svetovid.err.println("Previse radnika u fajlu! Ucitano prvih "+MAX_RADNIKA);
-    }
-    
-    // zatvaramo fajl jer smo ga celog procitali
-    // i oslobodjamo resurs
-    Svetovid.in(imef).close();
-  }
-  
-  public static void sviUKancelariji(int kanc){
-    for (int i=0;i<brojac;i++) {
-      if (spisak[i].kancelarija == kanc) {
-        Svetovid.out.println(spisak[i]);
-      }
-    }
-  }
-  
-  public static void main(String[] args){
-    ucitajRadnike("radnici.txt");
-    sviUKancelariji(1);
-  }
-}
-
-/** Radnik predstavljen prezimenom, imenom, svojim id-om i 
-  * brojem kancelarije u kojoj je. Ima dodatne metode koji izdvajaju neke od
-  * informacija vezane za radnika.
-  */
-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; 
-  }
-}
\ No newline at end of file
diff --git a/kodovi/klase/RadniciPrimer.java b/kodovi/klase/RadniciPrimer.java
new file mode 100644 (file)
index 0000000..545cc09
--- /dev/null
@@ -0,0 +1,109 @@
+/**
+ * Program koji radi sa spiskom radnika, predstavljenim kao niz Objekata tipa
+ * Radnik. Klasa Radnika je definisana u klasi ispod. U programu ne znamo koliko
+ * ima radnika u fajlu, pa predpostavljamo da nece biti vise od 100.
+ */
+public class RadniciPrimer {
+       final static int MAX_RADNIKA = 100;
+
+       static Radnik[] spisak = null;
+       // brojac predstavlja koliko radnika zapravo ima u nizu
+       static int brojac = 0;
+
+       /**
+        * Ucitava radnike iz datog fajla. Niz radnika ce nakon ovog metoda sadrzati
+        * sve podatke iz fajla i samo njih, tj ako je nesto postojalo u nizu pre,
+        * bice zanemareno.
+        */
+       public static void ucitajRadnike(String imef) {
+               // novi niz radnika
+               spisak = new Radnik[MAX_RADNIKA];
+               // resetujemo brojac
+               brojac = 0;
+
+               // citamo iz fajla dokle god ima jos redova i dok ne premasimo
+               // kapacitet naseg niza
+               while (Svetovid.in(imef).hasMore() && brojac < MAX_RADNIKA) {
+                       int id = Svetovid.in(imef).readInt();
+                       String prezime = Svetovid.in(imef).readToken();
+                       String ime = Svetovid.in(imef).readToken();
+                       int kanc = Svetovid.in(imef).readInt();
+
+                       spisak[brojac] = new Radnik(id, prezime, ime, kanc);
+                       brojac++;
+               }
+
+               // ako ima jos redova, znaci da smo prestali zbog punog niza
+               if (Svetovid.in(imef).hasMore()) {
+                       Svetovid.err.println("Previse radnika u fajlu! Ucitano prvih "
+                                       + MAX_RADNIKA);
+               }
+
+               // zatvaramo fajl jer smo ga celog procitali
+               // i oslobodjamo resurs
+               Svetovid.in(imef).close();
+       }
+
+       public static void sviUKancelariji(int kanc) {
+               for (int i = 0; i < brojac; i++) {
+                       if (spisak[i].kancelarija == kanc) {
+                               Svetovid.out.println(spisak[i]);
+                       }
+               }
+       }
+
+       public static void main(String[] args) {
+               ucitajRadnike("radnici.txt");
+               sviUKancelariji(1);
+       }
+}
+
+/**
+ * Radnik predstavljen prezimenom, imenom, svojim id-om i brojem kancelarije u
+ * kojoj je. Ima dodatne metode koji izdvajaju neke od informacija vezane za
+ * radnika.
+ */
+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;
+       }
+}
\ No newline at end of file
index 51c7040054850c4481b48186abad5ba8700c804a..d3211efb1b7134b058826be6a2ffb477ecf67968 100644 (file)
@@ -77,8 +77,8 @@ class SpisakRadnika{
   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();
+      String prezime = Svetovid.in(imef).readToken();
+      String ime = Svetovid.in(imef).readToken();
       int kanc = Svetovid.in(imef).readInt();
       spisak[brojac] = new Radnik(id, prezime, ime, kanc);
       brojac++;
index f83211c74576f7650ff4c174fe7f257f2e9fe995..9f5f5d5498324acf6857500a361eae390dcb5895 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;
+       }
+
 }
index 19cbfb64c5098ad5f6f6a426f33918dca5ea1b05..dd404e2183594a0c6cddc27436b7d6833e5c1253 100644 (file)
@@ -4,7 +4,7 @@ public class Studenti {
        static SpisakStudenata spisak = null;
 
        public static void main(String[] args) {
-               String imeF = Svetovid.in.readString("Unesite ime fajla:");
+               String imeF = Svetovid.in.readLine("Unesite ime fajla:");
                spisak = new SpisakStudenata();
                spisak.ucitajStudente(imeF);
 
@@ -13,8 +13,8 @@ public class Studenti {
                Svetovid.out.println();
 
                Svetovid.out.println("Unos novog studenta:");
-               String ime = Svetovid.in.readString("Unesite ime studenta:");
-               String prez = Svetovid.in.readString("Unesite prezime studenta:");
+               String ime = Svetovid.in.readLine("Unesite ime studenta:");
+               String prez = Svetovid.in.readLine("Unesite prezime studenta:");
                int god = Svetovid.in.readInt("Unesite godinu rodjenja studenta:");
 
                spisak.dodajStudenta(ime, prez, god);
@@ -31,7 +31,7 @@ public class Studenti {
                                + spisak.prebrojStudentePreGodine(god));
                Svetovid.out.println();
 
-               String imeF2 = Svetovid.in.readString("Unesite ime fajla za ispis:");
+               String imeF2 = Svetovid.in.readLine("Unesite ime fajla za ispis:");
                spisak.ispisiStudenteUFajl(imeF2);
 
        }
@@ -72,8 +72,8 @@ class SpisakStudenata {
                int god;
 
                while (!Svetovid.in(f).isEmpty() && brojSt < MAX_BR_STUDENATA) {
-                       p = Svetovid.in(f).readString();
-                       i = Svetovid.in(f).readString();
+                       p = Svetovid.in(f).readToken();
+                       i = Svetovid.in(f).readToken();
                        god = Svetovid.in(f).readInt();
                        dodajStudenta(i, p, god);
                }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner