gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control system
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: e6c1e4a)
raw | patch | inline | side by side (parent: e6c1e4a)
author | Doni Pracner <quinnuendo@gmail.com> | |
Wed, 24 Feb 2016 14:47:46 +0000 (15:47 +0100) | ||
committer | Doni Pracner <quinnuendo@gmail.com> | |
Wed, 24 Feb 2016 14:47:46 +0000 (15:47 +0100) |
kodovi/klase/Radnici.java | [deleted file] | patch | blob | history |
kodovi/klase/RadniciPrimer.java | [new file with mode: 0644] | patch | blob |
kodovi/klase/RadniciSpisak.java | patch | blob | history | |
kodovi/klase/RadniciSpisakId.java | patch | blob | history | |
kodovi/klase/Studenti.java | patch | blob | history |
diff --git a/kodovi/klase/Radnici.java b/kodovi/klase/Radnici.java
+++ /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
--- /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)
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)
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);
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);
+ 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);
}
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);
}