![]() Ласло Краус |
Програмирање на језику Java - колоквијуми Први колоквијум Прва група 1. 12. 2006 |
---|
Написати на језику Java следећи пакет типова:
(
x,
y)
, где су x и y координате тачке.
Грешке пријављивати изузецима. У класама за изузетке предвидети састављање текста поруке.
Написати на језику Java интерактиван програм (са менијем) који читајући потребне податке с главног улаза:
На располагању стоји готова класа Citaj
у безименом пакету која садржи заједничке методе за читање свих стандардних типова података (датотека \\Xs200-2\Nastava\ProgJava\Citaj.java
).
ispitx
(x
је број радне станице за којим се ради). Лозинка на свакој радној станици је student
.N:
(Nastava
on
\\Xs200-2
) у каталогу ObjektnoProg\RSx
(x
је број радне станице за којим се ради).// Tacka.java package krive; public class Tacka { double x, y; public Tacka () {} public Tacka (double xx, double yy) {x=xx; y=yy;} public double x () { return x; } public double y () { return y; } } // Kriva.java package krive; public abstract class Kriva { protected abstract double x (double p); protected abstract double y (double p); public Tacka T ( double p) { return new Tacka (x(p), y(p)); } } // Spirala.java package krive; public class Spirala extends Kriva { private double a, b; public Spirala () { a = 1; } public Spirala (double aa, double bb) { a = aa; b = bb; } protected double x (double p) { return a * p * Math.cos (b+p); } protected double y (double p) { return a * p * Math.sin (b+p); } } // Oscil.java package krive; public class Oscil extends Kriva { private double a, b, c; public Oscil () { a = b = 1; } public Oscil (double aa, double bb, double cc) { a = aa; b = bb; c = cc;} protected double x (double p) { return p; } protected double y (double p) { return a * Math.sin (b*p+c); } } // GKrive.java package krive; public abstract class GKrive extends Exception {} // GIndeks.java package krive; public class GIndeks extends GKrive { public String toString () { return "*** Nedoszvoljen indeks!"; } } // GPuno.java package krive; public class GPuno extends GKrive { public String toString () { return "*** Mesto je puno!"; } } // GPrazno.java package krive; public class GPrazno extends GKrive { public String toString () { return "*** Mesto je prazno!"; } } // Zbirka.java package krive; public class Zbirka { private Kriva[] niz; private int n; public Zbirka (int kap) { niz = new Kriva[kap]; } public Zbirka () { this (10); } public Zbirka stavi (Kriva k, int i) throws GIndeks, GPuno { if (i<0 || i>=niz.length) throw new GIndeks (); if (niz[i] != null) throw new GPuno (); niz[i] = k; return this; } public boolean parzno (int i) throws GIndeks { if (i<0 || i>=niz.length) throw new GIndeks (); return niz[i] == null; } public Zbirka izbaci (int i) throws GIndeks { if (i<0 || i>=niz.length) throw new GIndeks (); niz[i] = null; return this; } public void tabeliraj (int i, double pMin, double pMax, double dP) throws GIndeks, GPrazno { if (i<0 || i>=niz.length) throw new GIndeks (); if (niz[i] == null) throw new GPrazno (); for (double p=pMin; p<=pMax; p+=dP) { Tacka t = niz[i].T(p); System.out.printf ("%7.2f (%.2f,%.2f)\n", p, t.x(), t.y()); } } } // KriveT.java import krive.*; public class KriveT { private static class GIzbor extends GKrive { public String toString () { return "*** Nedozvoljen izbor!"; } } public static void main (String[] varg) { Zbirka zbr = new Zbirka (5); radi: while (true) { try { System.out.print ("(Stavi, Izbaci, Tabeliraj, Kraj)? "); switch (Citaj.Char()) { case 's': { System.out.print ("Mesto? "); int ind = Citaj.Int (); Kriva k = null; System.out.print("(Spirala, Oscil)? "); switch (Citaj.Char()) { case 's': System.out.print ("a,b? "); zbr.stavi ( new Spirala (Citaj.Double(), Citaj.Double()), ind ); break; case 'o': System.out.print ("a,b,c? "); zbr.stavi ( new Oscil (Citaj.Double(), Citaj.Double(), Citaj.Double()), ind ); break; default: throw new GIzbor (); } break; } case 'i': { System.out.print ("Mesto? "); zbr.izbaci (Citaj.Int()); break; } case 't': { System.out.print ("Mesto? "); int ind = Citaj.Int (); System.out.print ("pmin,pmax,dp? "); zbr.tabeliraj (ind, Citaj.Double(), Citaj.Double(), Citaj.Double()); break; } case 'k': break radi; default: throw new GIzbor (); } } catch (GKrive g) { System.out.println(g); } } } }(садржај)
Copyright © 2010, Laslo Kraus
Последња ревизија: 8.9.2010.