![]() Ласло Краус |
Објекнто програмирање 2 - колоквијуми Први колоквијум 26. 11. 2011 |
---|
Написати на језику Java следећи пакет типова (грешке пријављивати изузецима опремљеним текстовима порука):
(
тежина)
.
[
возач,
сопственаТежина]
.
[
возач,
сопственаТежина](
товар/
носивост)
.
[
возач,
сопственаТежина]{
путник|…|
путник}
.
Написати на језику Java програм који:
Користити константне параметре (не треба ништа учитавати с главног улаза).
ispitx
(x
је број радне станице за којим се ради). Лозинка на свакој радној станици је student
.Z:
.
// Merljiv.java package vozila; public interface Merljiv { double tezina(); } // Osoba.java package vozila; public class Osoba implements Merljiv { private String ime; private double tez; public Osoba(String iime, double ttez) { ime = iime; tez = ttez; } public double tezina() { return tez; } public String toString() { return ime + "(" + tez + ")"; } } // Vozilo.java package vozila; public abstract class Vozilo implements Merljiv { private Osoba vozac; private double sopTez; public Vozilo(Osoba voz, double sopT) { vozac = voz; sopTez = sopT; } public double tezina() { return sopTez + vozac.tezina(); } public abstract char vrsta(); public String toString() { return vrsta() + "[" + vozac + "," + sopTez + "]"; } } // GUtovar.java package vozila; public class GUtovar extends Exception { public String toString() { return "*** Previse tereta!"; } } // GIstovar.java package vozila; public class GIstovar extends Exception { public String tostring() { return "*** Nema toliko tereta!"; } } // TVozilo.java package vozila; public class TVozilo extends Vozilo { private double nosivost, tovar = 0; public TVozilo(Osoba vozac, double sopTez, double nos) { super(vozac, sopTez); nosivost = nos; } public double tezina() { return super.tezina() + tovar; } public char vrsta() { return 'T'; } public TVozilo utovari(double tez) throws GUtovar{ if (tovar + tez > nosivost) throw new GUtovar(); tovar += tez; return this; } public TVozilo istovar(double tez)throws GIstovar{ if (tovar - tez < 0) throw new GIstovar(); tovar -= tez; return this; } public String toString() { return super.toString() + "(" + tovar + "/" + nosivost + ")"; } } // GUlaz.java package vozila; public class GUlaz extends Exception { public String toString() { return "*** Previse putnika!"; } } // GIzlaz.java package vozila; public class GIzlaz extends Exception { public String toString() { return "*** Nema tog putnika;"; } } // PVozilo.java package vozila; public class PVozilo extends Vozilo { private Osoba[] osobe; public PVozilo(Osoba vozac, double sopTez, int kap) { super(vozac, sopTez); osobe = new Osoba [kap]; } public double tezina() { double t = super.tezina(); for (int i=0; i<osobe.length; i++) if (osobe[i] != null) t += osobe[i].tezina(); return t; } public char vrsta() { return 'P'; } public PVozilo ulazi(Osoba oso) throws GUlaz { int i = 0; while (i<osobe.length && osobe[i]!=null) i++; if (i == osobe.length) throw new GUlaz(); osobe[i] = oso; return this; } public PVozilo izlazi(Osoba oso) throws GIzlaz { int i = 0; while (i<osobe.length && osobe[i]!=oso) i++; if (i == osobe.length) throw new GIzlaz(); osobe[i] = null; return this; } public String toString() { String s = super.toString() + "{"; boolean prva = true; for (int i=0; i<osobe.length; i++) if (osobe[i] != null) { if (!prva) s += "|"; s += osobe[i]; prva = false; } return s + "}"; } } // Program.java import vozila.*; public class Program { public static void main(String[] varg) { TVozilo tv = new TVozilo(new Osoba("Marko",70),500,1500); PVozilo pv = new PVozilo(new Osoba("Petar",65),350,4); try { tv.utovari(500).istovar(300); Osoba milena = new Osoba("Milena", 58), ivana = new Osoba("Ivana", 55), bojana = new Osoba("Bojana", 62), sanja = new Osoba("Sanja", 65); pv.ulazi(milena).ulazi(ivana).ulazi(bojana) .izlazi(ivana).izlazi(sanja); } catch (Exception g) { System.out.println(g); } System.out.println(tv); System.out.println(pv); } }(садржај)
*** Nema tog putnika! T[Marko(70.0),500.0](200.0/1500.0) - 770.0 P[Petar(65.0),350.0]{Milena(58.0)|Bojana(62.0)} - 535.0
Copyright © 2012, Laslo Kraus
Последња ревизија: 25.1.2012.