![]() Ласло Краус |
Програмирање на језику Java - колоквијуми Први колоквијум Прва група 3. 12. 2005 |
---|
Саставити на језику Java следећи пакет класа:
N
.
S
.
Грешке пријављивати изузецима. У класама за изузетке предвидети састављање текста поруке.
Саставити на језику Java класу са главним програмом који:
На располагању стоји готова класа Citaj
у безименом пакету која садржи заједничке методе за читање свих стандардних типова података (датотека \\Xs200−2\Nastava\ProgJava\Citaj.java
).
studentx
(x
је број радне станице за којим се ради). Лозинка на свакој радној станици је student
.N:
(Nastava
on
\\Xs200-2
) у каталогу ObjektnoProg\RSx
(x
је број радне станице за којим се ради).// GPuna.java package zbirke; public class GPuna extends Exception { public String toString () { return "*** Zbirka je puna!"; } } // Zbirka.java package zbirke; public abstract class Zbirka implements Cloneable { protected double[] niz; protected int n; public Zbirka (int k) { niz = new double [k]; } public Zbirka () { this (10); } public abstract char oznaka (); public Object clone () { Zbirka zb = null; try { zb = (Zbirka) super.clone (); zb.niz = new double [niz.length]; for (int i=0; i<n; zb.niz[i]=niz[i++]); } catch (CloneNotSupportedException g) {} return zb; } public int prazno () { return niz.length - n; } public int puno () { return n; } public abstract Zbirka stavi (double b) throws GPuna; public String toString () { String s = oznaka () + "("; for (int i=0; i<n; i++) { if (i > 0) s += ","; s += niz[i]; } return s + ")"; } } // Niz.java package zbirke; public class Niz extends Zbirka { public Niz (int k) { super (k); } public Niz () { super (); } public char oznaka () { return 'N'; } public Zbirka stavi (double b) throws GPuna { if (n == niz.length) throw new GPuna (); int i = n - 1; while (i>=0 && niz[i]>b) niz[i+1] = niz[i--]; niz[i+1] = b; n++; return this; } } // Skup.java package zbirke; public class Skup extends Zbirka { public Skup (int k) { super (k); } public Skup () { super (); } public char oznaka () { return 'S'; } public Zbirka stavi (double b) throws GPuna { int i = 0; while (i<n && niz[i]!=b) i++; if (i == n) { if (n == niz.length) throw new GPuna (); niz[n++] = b; } return this; } } // ZbirkeT.java import zbirke.*; public class ZbirkeT { public static void main (String[] varg) { while (true) { System.out.print ("n? "); int n = Citaj.Int (); if (n <= 0) break; Zbirka[] niz = new Zbirka [n]; for (int i=0; i<n;) { System.out.print ("Vrs, kap? "); char vrs = Citaj.Char (); int kap = Citaj.Int (); switch (vrs) { case 'N': case 'n': niz[i++] = new Niz (kap); break; case 'S': case 's': niz[i++] = new Skup (kap); break; } } try { while (true) { System.out.print ("Broj? "); double b = Citaj.Double (); for (int i=0; i<n; niz[i++].stavi(b)); } } catch (GPuna g) {} int min = niz[0].puno(), max = min, imin = 0, imax = 0; for (int i=1; i<n; i++) if (niz[i].puno() < min) { min = niz[i].puno (); imin = i; } else if (niz[i].puno() > max) { max = niz[i].puno (); imax = i; } System.out.println ("min= " + niz[imin]); System.out.println ("max= " + niz[imax]); } } }(садржај)
n? 4 Vrs, kap? n 6 Vrs, kap? s 4 Vrs, kap? n 8 Vrs, kap? s 6 Broj? 1 Broj? 3 Broj? 2 Broj? 1 Broj? 5 Broj? 3 Broj? 4 min= S(1.0,3.0,2.0,5.0) max= N(1.0,1.0,2.0,3.0,3.0,5.0) n? 0
Copyright © 2010, Laslo Kraus
Последња ревизија: 8.9.2010.