Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.30 KB | None | 0 0
  1. MAIN
  2. public static void main(String[] args) {
  3.         try {
  4.             Grupa G = new Grupa(20);
  5.             Okrag o1 = new Okrag(2);
  6.             G.UstawFigure(0, o1);
  7.             Okrag o2 = new Okrag(6.66);
  8.             G.UstawFigure(1, o2);
  9.             Okrag o3 = new Okrag(7.2);
  10.             G.UstawFigure(2, o3);
  11.             Trojkat t1 = new Trojkat(2,3,4);
  12.             G.UstawFigure(6, t1);
  13.             Trojkat t2 = new Trojkat(3.12,4.1,5.86);
  14.             G.UstawFigure(7, t2);
  15.             Trojkat t3 = new Trojkat(6.66,6.66,6.66);
  16.             G.UstawFigure(8, t3);
  17.             Prostokat p1 = new Prostokat(2,3);
  18.             G.UstawFigure(9, p1);
  19.             Prostokat p2 = new Prostokat(1.12,2.22);
  20.             G.UstawFigure(10, p2);
  21.             Prostokat p3 = new Prostokat(6.66,6.66);
  22.             G.UstawFigure(11, p3);
  23.             System.out.println("Grupa figur: "+G.KlasaFigury());
  24.             System.out.printf("Suma pĂłl: %.2f\n" , G.PolePowierzchni());
  25.             System.out.printf("Suma obwodĂłw: %.2f\n",G.Obwod());
  26.             System.out.println();
  27.             G.Wyswietl();  
  28.         }
  29.         catch(NiepoprawneDane n){
  30.             System.out.println("BĹ‚Ä…d w utworzeniu nowej figury - niepoprawne dane!");
  31.         }
  32.  
  33. //FIGURA
  34. public abstract class Figura {
  35.     abstract String KlasaFigury();
  36.     abstract double PolePowierzchni();
  37.     abstract double Obwod();  
  38. }
  39. //OKRĄG
  40. public class Okrag extends Figura{
  41.     private double promien;
  42.     public Okrag(double promien) throws NiepoprawneDane {
  43.         if(promien > 0) this.promien = promien;
  44.         else throw new NiepoprawneDane();
  45.     }
  46.     public String KlasaFigury(){
  47.         return "Okrąg";
  48.     };
  49.     public double PolePowierzchni(){
  50.         return Math.PI * promien * promien;
  51.     };
  52.     public double Obwod(){
  53.         return 2 * Math.PI * promien;
  54.     };
  55. }
  56. // PROSTOKĄT
  57. public class Prostokat {
  58.     private double a, b;
  59.    
  60.    
  61.     public Prostokat(double a, double b) throws NiepoprawneDane {
  62.         if(a > 0 || b > 0) {
  63.             this.a = a;
  64.             this.b = b;
  65.         }
  66.         else throw new NiepoprawneDane();
  67.     }
  68.     public String KlasaFigury() {
  69.         return "Prostokat";
  70.     };
  71.    
  72.     public double PolePowierzchni(){
  73.         return a*b;
  74.     };
  75.    
  76.     public double Obwod(){
  77.         return (2*a)+(2*b);
  78.     };
  79. }
  80. // TRÓJKĄT
  81. public class Trojkat {
  82.     private double a, b, c;  
  83.     public Trojkat(double a, double b, double c) throws NiepoprawneDane {
  84.         if(a > 0 || b > 0 || c > 0){
  85.             this.a = a;
  86.             this.b = b;
  87.             this.c = c;
  88.         }
  89.         else throw new NiepoprawneDane();
  90.     }  
  91.     public String KlasaFigury(){
  92.         return "Trojkat";
  93.     }
  94.     public double PolePowierzchni(){
  95.         double p = (a+b+c)/2;
  96.         return Math.sqrt(p*(p-a)*(p-b)*(p-c));
  97.     }  
  98.     public double Obwod(){
  99.         return a+b+c;
  100.     }  
  101. }
  102. // GRUPA
  103. public class Grupa extends Figura {
  104.     Figura[] tab;
  105.     public Grupa(int n) throws NiepoprawneDane {
  106.         if(n > 0) tab = new Figura[n];
  107.         else throw new NiepoprawneDane();
  108.     }
  109.     public void UstawFigure(int i, Figura figura) throws NiepoprawneDane {
  110.         if(i>0 || i<= tab.length){
  111.             tab[i] = figura;
  112.         }
  113.         else throw new NiepoprawneDane();
  114.     }
  115.    
  116.     public void Wyswietl(){
  117.         System.out.println("Numer  |  Nazwa figury  |  Obwod  |  Pole powierzchni  |");
  118.         for(int i = 0;i<tab.length;i++)
  119.         {
  120.             if(tab[i]!=null)System.out.printf("[%2d]   |  %9s     |  %6.2f |  %6.2f            |\n",i,tab[i].KlasaFigury(),tab[i].Obwod(),tab[i].PolePowierzchni());
  121.         }
  122.     }
  123.     public String KlasaFigury(){
  124.         String nazwy = "";
  125.         for(int i=0; i<tab.length; i++){
  126.             if(tab[i]!= null) nazwy += tab[i].KlasaFigury() + " ";
  127.         }
  128.         return nazwy;
  129.     }
  130.     public double Obwod(){
  131.         double suma = 0;
  132.         for(Figura nr:tab){
  133.             if(nr!=null) suma+= nr.Obwod();
  134.         }
  135.         return suma;
  136.     }
  137.     public double PolePowierzchni(){
  138.         double pole = 0;
  139.         for(int i=0; i<tab.length; i++){
  140.             if(tab[i]!=null) pole+= tab[i].PolePowierzchni();
  141.         }
  142.     }
  143. }
  144. // NIEPOPRAWNEDANE
  145. public class NiepoprawneDane extends Exception {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement