![]() Ласло Краус |
Програмирање на језику Java - колоквијуми Први колоквијум Друга група 3. 12. 2005 |
|---|
Саставити на језику Java следећи пакет класа:
K(r,h).
Грешке пријављивати изузецима. У класама за изузетке предвидети састављање текста поруке.
Саставити на језику Java класу са главним програмом који:
На располагању стоји готова класа Citaj у безименом пакету која садржи заједничке методе за читање свих стандардних типова података (датотека \\Xs200−2\Nastava\ProgJava\Citaj.java).
studentx (x је број радне станице за којим се ради). Лозинка на свакој радној станици је student.N: (Nastava on \\Xs200-2) у каталогу ObjektnoProg\RSx (x је број радне станице за којим се ради).
// GPredmeti.java
package predmeti;
public abstract class GPredmeti extends Exception {
private String por;
protected GPredmeti (String p) { por = p; }
public String toString () { return "*** " + por; }
}
// GPun.java
package predmeti;
public class GPun extends GPredmeti {
public GPun () { super ("Stek je pun!"); }
}
// GPrazan.java
package predmeti;
public class GPrazan extends GPredmeti {
public GPrazan () { super ("Stek je prazan!"); }
}
// Predmet.java
package predmeti;
public abstract class Predmet implements Cloneable {
public abstract double vel ();
public Object clone () {
try { return super.clone (); }
catch (CloneNotSupportedException g) { return null; }
}
}
// Kupa.java
package predmeti;
public class Kupa extends Predmet {
private double r, h;
public Kupa (double rr,double hh) { r = rr; h = hh; }
public Kupa () { r = h = 1; }
public double vel () { return r * r * Math.PI * h / 3; }
public String toString () { return "K(" + r + "," + h + ")"; }
}
// Stek.java
package predmeti;
public class Stek implements Cloneable {
private Predmet[] niz;
private int vrh;
public Stek (int k) { niz = new Predmet [k]; }
public Stek () { this (3); }
public int vel () { return vrh; }
public Stek stavi (Predmet p) throws GPun {
if (vrh == niz.length) throw new GPun ();
niz[vrh++] = p;
return this;
}
public Predmet uzmi () throws GPrazan {
if (vrh == 0) throw new GPrazan ();
return niz[--vrh];
}
public Object clone () {
Stek s = null;
try {
s = (Stek) super.clone ();
s.niz = new Predmet [niz.length];
for (int i=0; i<vrh; s.niz[i]=(Predmet)niz[i++].clone());
} catch (CloneNotSupportedException g) {}
return s;
}
public String toString () {
String s = "";
for (int i=vrh-1; i>=0; s+=niz[i--]+" ");
return s;
}
}
// PredmetiT.java
import predmeti.*;
public class PredmetiT {
public static void main (String[] varg) {
System.out.print ("Kapacitet? ");
Stek s = new Stek (Citaj.Int ());
double sr = 0; int n = 0;
radi: while (true) {
try {
System.out.print ("Izbor (S-stavi, U-uzmi, Z-zavrsi)? ");
switch (Citaj.Char ()) {
case 'S': case 's':
System.out.print ("r,h? ");
s.stavi (new Kupa (Citaj.Double(), Citaj.Double()));
break;
case 'U': case 'u':
{ Predmet p = s.uzmi ();
System.out.println ("Predmet: " + p);
sr += p.vel (); n++;
break;
}
case 'Z': case 'z': break radi;
default:
System.out.println ("*** Neispravan izbor!");
}
} catch (GPredmeti g) { System.out.println (g); }
}
if (n > 0) sr /= n;
System.out.println ("Srednje velicina: " + sr);
}
}
Kapacitet? 3
Izbor (S-stavi, U-uzmi, Z-zavrsi)? s
r,h? 3 5
Izbor (S-stavi, U-uzmi, Z-zavrsi)? s
r,h? 2 6
Izbor (S-stavi, U-uzmi, Z-zavrsi)? u
Predmet: K(2.0,6.0)
Izbor (S-stavi, U-uzmi, Z-zavrsi)? s
r,h? 5 7
Izbor (S-stavi, U-uzmi, Z-zavrsi)? s
r,h? 6 7
Izbor (S-stavi, U-uzmi, Z-zavrsi)? s
r,h? 1 2
*** Stek je pun!
Izbor (S-stavi, U-uzmi, Z-zavrsi)? u
Predmet: K(6.0,7.0)
Izbor (S-stavi, U-uzmi, Z-zavrsi)? u
Predmet: K(5.0,7.0)
Izbor (S-stavi, U-uzmi, Z-zavrsi)? u
Predmet: K(3.0,5.0)
Izbor (S-stavi, U-uzmi, Z-zavrsi)? u
*** Stek je prazan!
Izbor (S-stavi, U-uzmi, Z-zavrsi)? z
Srednje velicina: 129.8524963483781
(садржај)
Copyright © 2010, Laslo Kraus
Последња ревизија: 8.9.2010.