gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
bf361ba76402d6737308d09971d20d7bb710e291
[spa1-materijali.git] / kodovi / skup / F1Vozaci.java
1 /**
2 * Dat je fajl “sampioni-po-godinama.txt” u kome su u svakom redu godina i ime i
3 * prezime šampiona Formule 1 te godine razdvojeni razmacima.
4 *
5 * Ispisati na ekran koliko je bilo različitih šampiona (neki su bili u više
6 * godina).
7 *
8 * U novi fajl “sampioni.txt” ispisati jedinstvena imena, pri čemu redosled nije
9 * bitan.
10 *
11 * Dat je fajl “pobednici.txt” u kome je u svakom redu ime i prezime i broj
12 * pobeda nekog vozača u Formuli 1. Koristeći ovaj i prethodno dat fajl ispisati
13 * na ekran sve vozače koji su pobedili neku trku, ali nisu bili svetski
14 * šampioni. Ispisati ove podatke u novi fajl “pobednici-bez-sampionata.txt”.
15 *
16 */
17 public class F1Vozaci {
19 public static Skup<String> ucitajSampione(String imefajla) {
20 Skup<String> rez = new Skup<>();
22 while (!Svetovid.in(imefajla).isEmpty()) {
23 // ignorisemo godinu, posto nam nije bitna (ne cuvamo je, ali je
24 // moramo procitati)
25 Svetovid.in(imefajla).readInt();
26 String ime = Svetovid.in(imefajla).readString();
27 String prezime = Svetovid.in(imefajla).readString();
29 // u skup ubacujemo puno ime i prezime
30 rez.ubaci(ime + " " + prezime);
31 }
32 Svetovid.in(imefajla).close();
34 return rez;
35 }
37 public static Skup<String> ucitajPobednike(String imefajla) {
38 Skup<String> rez = new Skup<>();
40 while (!Svetovid.in(imefajla).isEmpty()) {
41 String ime = Svetovid.in(imefajla).readString();
42 String prezime = Svetovid.in(imefajla).readString();
43 // ignorisemo podataka o broju pobeda (ne cuvamo ga, ali ga moramo
44 // procitati)
45 Svetovid.in(imefajla).readInt();
46 rez.ubaci(ime + " " + prezime);
47 }
48 Svetovid.in(imefajla).close();
50 return rez;
51 }
53 public static void stampajNiz(String[] niz) {
54 if (niz != null)
55 for (String s : niz)
56 System.out.println(s);
57 }
59 public static void ispisiUFajl(Skup<String> imena, String imefajla) {
60 // proveravamo da li je velicina veca od nula, jer inace napraviNiz
61 // vraca 'null', sto ne mozemo da obradimo u foru
62 if (imena.velicina() > 0) {
63 String[] niz = imena.napraviNiz();
64 for (String s : niz) {
65 Svetovid.out(imefajla).println(s);
66 }
67 Svetovid.out(imefajla).close();
68 } else {
69 // nema sta da se pise u fajl
70 Svetovid.out(imefajla).println();
71 Svetovid.out(imefajla).close();
72 }
74 }
76 public static void main(String[] args) {
77 Skup<String> samp = (ucitajSampione("sampioni-po-godinama.txt"));
78 // u skupu su sada samo razliciti sampioni, sto je trazeno
79 System.out.println("Broj razlicitih sampiona:" + samp.velicina());
80 ispisiUFajl(samp, "sampioni.txt");
82 Skup<String> pob = ucitajPobednike("pobednici.txt");
84 Skup<String> pBezS = pob.razlika(samp);
86 // ispis na ekran
87 System.out.println("Pobednici bez sampionata, ukupno " + pBezS.velicina());
88 stampajNiz(pBezS.napraviNiz());
90 ispisiUFajl(pBezS, "pobednici-bez-sampionata.txt");
92 }
94 }
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner