import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class BladCzytaniaZKlawiaturyLiczbyCalkowitej extends NumberFormatException
{
private static final long serialVersionUID = 1L;
public BladCzytaniaZKlawiaturyLiczbyCalkowitej(String message) {
super(message);
}
}
class Klawiatura {
public static String name = "Wczytałem liczbe: ";
public static String czytajZnaki() throws IOException {
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
return br.readLine();
}
public Integer czytajLiczbeCalkowita() throws
BladCzytaniaZKlawiaturyLiczbyCalkowitej {
String znaki = null;
try {
if ((znaki = czytajZnaki()) != null) {
return Integer.valueOf(znaki);
}
}
catch (NumberFormatException e) {
throw new BladCzytaniaZKlawiaturyLiczbyCalkowitej("Podana ciag znaków nie jest liczba całkowita.");
}
catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
abstract class Figura {
protected int liczba_bokow;
protected int[] boki;
protected String nazwa_figury;
protected String jednostki;
protected float[] boki2;
public Figura(String nazwa_figury, String jednostki, int... boki) {
this.nazwa_figury = nazwa_figury;
this.jednostki = jednostki;
this.boki = boki;
}
public Figura(String nazwa_figury, String jednostki, float... boki) {
this.nazwa_figury = nazwa_figury;
this.jednostki = jednostki;
this.boki2 = boki2;
}
public abstract double getPole();
public abstract double getObwod();
public void wypiszPole() {
System.out.print("Pole "+nazwa_figury+" (o bokach [");
for (int i = 0; i < boki.length-1; i++) {
System.out.print(boki[i]+", ");
}
if (boki.length-1>=0) System.out.print(boki[boki.length-1]);
System.out.println("]) = "+getPole()+" "+jednostki+"^2");
}
public void wypiszObwod() {
System.out.print("Obwod "+nazwa_figury+" (o bokach [");
for (int i = 0; i < boki.length-1; i++) {
System.out.print(boki[i]+", ");
}
if (boki.length-1>=0) System.out.print(boki[boki.length-1]);
System.out.println("]) = "+getObwod()+" "+jednostki);
}
}
class Prostokat extends Figura {
public Prostokat(String jednostki, int... bok) {
super("Prostokat", jednostki, bok);
}
public double getObwod() {
return boki[0]*boki[1];
}
public double getPole() {
return 2*(boki[0]+boki[1]);
}
}
class Kolo extends Figura {
public Kolo(String jednostki, int... boki) {
super("Koło", jednostki, boki);
}
public void wypiszPole() {
System.out.print("Pole "+nazwa_figury+" (o promieniu r ="+boki[0]+" "+jednostki+")");
System.out.println(" = "+getPole()+" "+jednostki+"^2");
}
public void wypiszObwod() {
System.out.print("Obwod "+nazwa_figury+" (o promieniu r -"+boki[0]+" "+jednostki+")");
System.out.println(" = "+getObwod()+" "+jednostki);
}
public double getObwod() {
return 2*Math.PI*boki[0];
}
public double getPole() {
return boki[0]*boki[0]*Math.PI;
}
}
class Trojkat extends Figura {
public Trojkat(String jednostki, int... bok) {
super("Trojkat", jednostki, bok);
}
public void wypiszPole() {
System.out.print("Pole "+nazwa_figury+" (o wysokosci h ="+boki[1]+" "+jednostki+")");
System.out.println(" = "+getPole()+" "+jednostki+"^2");
}
public void wypiszObwod() {
System.out.print("Obwod "+nazwa_figury+" (o wysokosci h ="+boki[1]+" "+jednostki+")");
System.out.println(" = "+getObwod()+" "+jednostki);
}
public double getObwod(){
return boki[0]+boki[1]+ boki[2];
}
public double getPole() {
return 0.5*boki[0]*boki[1];
}
}
class Trapez extends Figura {
public Trapez(String jednostki, int... bok) {
super("Trapez", jednostki, bok);
}
public void wypiszPole() {
System.out.print("Pole "+nazwa_figury+" (o wysokosci h ="+boki[4]+" "+jednostki+")");
System.out.println(" = "+getPole()+" "+jednostki+"^2");
}
public void wypiszObwod() {
System.out.print("Obwod "+nazwa_figury+" (o wysokosci h ="+boki[4]+" "+jednostki+")");
System.out.println(" = "+getObwod()+" "+jednostki);
}
public double getObwod(){
return boki[0]+boki[1]+ boki[2]+boki[3];
}
public double getPole() {
return 0.5*(boki[0]+boki[1])*boki[4];
}
}
class Romb extends Figura {
public Romb(String jednostki, int... bok) {
super("Romb", jednostki, bok);
}
public void wypiszPole() {
System.out.print("Pole "+nazwa_figury+" (o przekatnych p q ="+boki[1]+" "+jednostki+" "+boki[2]+" "+jednostki+")");
System.out.println(" = "+getPole()+" "+jednostki+"^2");
}
public void wypiszObwod() {
System.out.print("Pole "+nazwa_figury+" (o przekatnych p q ="+boki[1]+" "+jednostki+" "+boki[2]+" "+jednostki+")");
System.out.println(" = "+getObwod()+" "+jednostki);
}
public double getObwod(){
return 4*boki[0];
}
public double getPole() {
return 0.5*boki[1]*boki[2];
}
}
public class FiguryGeometryczne {
public static void main(String[] args) {
Klawiatura klawiatura = new Klawiatura();
Figura[] figury = new Figura[5];
System.out.println("Podaj promien koła:");
Integer r=klawiatura.czytajLiczbeCalkowita();
figury[0] = new Kolo("cm", 10);
System.out.println("Podaj bok prostokata:");
Integer a=klawiatura.czytajLiczbeCalkowita();
System.out.println("Podaj 2. bok prostokata:");
Integer b=klawiatura.czytajLiczbeCalkowita();
figury[1] = new Prostokat("cm", a, b);
System.out.println("Podaj bok trojkata prostokatnego:");
Integer c=klawiatura.czytajLiczbeCalkowita();
System.out.println("Podaj 2. bok trojkata prostokatnego:");
Integer d=klawiatura.czytajLiczbeCalkowita();
System.out.println("Podaj wysokosc trojkata prostokatnego:");
Integer h=klawiatura.czytajLiczbeCalkowita();
figury[2] = new Trojkat ("cm", c, d, h);
System.out.println("Podaj podstawe trapezu:");
Integer f=klawiatura.czytajLiczbeCalkowita();
System.out.println("Podaj 2. podstawe trapezu:");
Integer g=klawiatura.czytajLiczbeCalkowita();
System.out.println("Podaj wysokosc trapezu:");
Integer j=klawiatura.czytajLiczbeCalkowita();
System.out.println("Podaj 3. bok trapezu:");
Integer x=klawiatura.czytajLiczbeCalkowita();
System.out.println("Podaj 4. bok trapezu:");
Integer y=klawiatura.czytajLiczbeCalkowita();
figury[3] = new Trapez ("cm", f, g, j, x, y);
System.out.println("Podaj bok rombu:");
Integer k=klawiatura.czytajLiczbeCalkowita();
System.out.println("Podaj przekatna rombu:");
Integer p=klawiatura.czytajLiczbeCalkowita();
System.out.println("Podaj 2. przekatna rombu:");
Integer q=klawiatura.czytajLiczbeCalkowita();
figury[4] = new Romb ("cm", k, p, q);
for (int i = 0; i < figury.length; i++) {
figury[i].wypiszObwod();
figury[i].wypiszPole();
}
}
}
Wyszukiwarka
Podobne podstrony:
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6Alt klawiatura numeryczna Kurs dla opornychPodstawa komputerowego redagowania tekstu nie bój się klawiaturyklawiatrura do avrinterfejs PS2 myszka klawiaturaObce układy klawiatury w Puppy LinuxWriter Cyrylica na normalnej klawiaturzeSkróty klawiaturowe Excel 2007zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 8Klawiaturaobsluga klawiaturySkróty klawiaturowe Adobe PhotoshopKlawiatopis klawiaturyzestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 4więcej podobnych podstron