gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under
the git version control system
f83211c74576f7650ff4c174fe7f257f2e9fe995
2 * Prosirujemo program iz RadniciSpisak tako da ima jedinstvene id-ove za radnike. Dodajemo
3 * i operaciju za izbacivanje radnika.
5 public class RadniciSpisakId
{
6 static SpisakJedinstvenihRadnika spisak
= null, spisak2
= null;
8 public static void main(String
[] args
){
9 spisak
= new SpisakJedinstvenihRadnika();
10 spisak
.ucitajRadnike("radnici.txt");
11 Svetovid
.out
.println(spisak
);
12 if (spisak
.izbaciRadnika(111)) {
13 Svetovid
.out
.println("posle izbacivanja:");
14 Svetovid
.out
.println(spisak
);
16 Svetovid
.out
.println("nije nadjen radnik za izbacivanje");
19 spisak2
= new SpisakJedinstvenihRadnika();
20 spisak2
.ucitajRadnike("radnici2.txt");
21 spisak2
.sviUKancelariji(1);
25 /** Spisak radnika u kome svi imaju razlicite id brojeve. */
26 class SpisakJedinstvenihRadnika
{
28 /** Radnik sa svojim podacima: id, prezime, ime, kancelarija */
34 // Konstruktor klase - neophodno je proslediti sve podatke odjednom da se napravi instanca
35 public Radnik(int id
, String prezime
, String ime
, int kancelarija
) {
37 this.prezime
= prezime
;
39 this.kancelarija
= kancelarija
;
42 public String
prezimeIme() {
43 return prezime
+" "+ime
;
46 public String
inicijali() {
48 if (prezime
!= null && !prezime
.isEmpty()) {
49 p
= prezime
.charAt(0)+".";
52 if (ime
!= null && !ime
.isEmpty()) {
53 i
= ime
.charAt(0)+".";
58 public String
sviPodaci() {
59 return "Radnik "+id
+":"+prezime
+" "+ime
+", kancelarija:"+kancelarija
;
62 // toString metod se koristi kad je potrebno predstaviti instancu kao String,
63 // tipicno pri pozivu ispisa na ekran. Ocekuje se da da kratku informaciju
64 // koja je razumljiva coveku.
65 public String
toString() {
66 return prezime
+" "+ime
;
71 final static int MAX_RADNIKA
= 100;
76 /** Kreira novu instancu klase i inicijalizuje niz i brojac na adekvatne vrednosti. */
77 public SpisakJedinstvenihRadnika() {
78 spisak
= new Radnik
[MAX_RADNIKA
];
82 /** Dodaje novog radnika sa datim podacima. Vraca da li je
83 * operacija uspesno obavljena, odnosno vratice false ako
84 * je radnik takvim id-om vec postojao */
85 public boolean dodajRadnika(int id
, String prezime
, String ime
, int kanc
) {
87 //proverimo jel ima mesta
88 if (brojac
>= MAX_RADNIKA
) {
89 Svetovid
.err
.println("Greska! vec ima "+MAX_RADNIKA
+" novi se ne mogu dodati");
92 //proverimo jel vec postoji neko sa tim id-om
93 boolean postoji
= false;
94 for (int i
=0;i
<brojac
&& !postoji
;i
++) {
95 if (spisak
[i
].id
== id
) {
101 Svetovid
.err
.println("Greska! radnik sa idom:"+id
+" vec postoji");
104 spisak
[brojac
] = new Radnik(id
, prezime
, ime
, kanc
);
110 /** ucitava sve radnike iz datog fajla i dodaje ih u trenutni spisak. */
111 public void ucitajRadnike(String imef
) {
112 while (!Svetovid
.in(imef
).isEmpty()) {
113 int id
= Svetovid
.in(imef
).readInt();
114 String prezime
= Svetovid
.in(imef
).readString();
115 String ime
= Svetovid
.in(imef
).readString();
116 int kanc
= Svetovid
.in(imef
).readInt();
117 dodajRadnika(id
, prezime
, ime
, kanc
);
119 Svetovid
.in(imef
).close();
122 public void snimiRadnike(String imef
){
123 for (int i
=0;i
<brojac
;i
++){
124 Radnik rad
= spisak
[i
];
125 Svetovid
.out(imef
).print(rad
.id
);
126 Svetovid
.out(imef
).print(" ");
127 Svetovid
.out(imef
).print(rad
.prezime
);
128 Svetovid
.out(imef
).print(" ");
129 Svetovid
.out(imef
).print(rad
.ime
);
130 Svetovid
.out(imef
).print(" ");
131 Svetovid
.out(imef
).print(rad
.kancelarija
);
132 Svetovid
.out(imef
).println();
134 Svetovid
.out(imef
).close();
137 public boolean izbaciRadnika(int id
) {
139 while (pos
<brojac
&& spisak
[pos
].id
!= id
)
145 //zapravo treba da pomerimo sve iza ovog radnika
146 for (int j
=pos
;j
<brojac
; j
++)
147 spisak
[j
] = spisak
[j
+1];
154 public int brRadnika() {
158 public void sviUKancelariji(int kanc
) {
159 for (int i
=0;i
<brojac
;i
++) {
160 if (spisak
[i
].kancelarija
== kanc
) {
161 Svetovid
.out
.println(spisak
[i
]);
166 // ispisuje sve radnike u nizu razdvojene razmacima. Posebna paznja je obracena
167 // na to da se ne ispisuje zarez nakon poslednjeg radnika.
168 public String
toString() {
169 String res
= "Radnici [";
173 for (int i
=1;i
<brojac
;i
++) {
174 res
+= ", "+spisak
[i
];
Svarog.pmf.uns.ac.rs/gitweb
maintanance
Doni Pracner