Advertisement
Guest User

Untitled

a guest
Mar 30th, 2015
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.46 KB | None | 0 0
  1. package pl.pg;
  2.  
  3. interface Fabryka
  4. {
  5. Figura zwrocFigure(String typ, int a, int b, int c) throws Wyjatek,Wyjatek2;
  6. }
  7.  
  8. class Wyjatek extends Exception // Nasz własny wyjątek!
  9. {
  10. public Wyjatek(String name)
  11. {
  12. super("To nie jest poprawna figura klasy "+name+"!");
  13. }
  14. }
  15.  
  16. class Wyjatek2 extends Exception
  17. {
  18. public Wyjatek2(String name)
  19. {
  20. super("Błędna nazwa. Nie ma takiej figury."+name+"<3.");
  21. }
  22. }
  23.  
  24.  
  25. abstract class Figura
  26. {
  27. String name;
  28.  
  29.  
  30. abstract double pole();
  31.  
  32. abstract double obwod();
  33.  
  34. protected boolean weryfikacja(float a,float b) throws Wyjatek
  35. {
  36. boolean ok = (a > 0) && (b > 0);
  37. if (!ok)
  38. throw new Wyjatek(name);
  39. return ok;
  40. }
  41.  
  42. protected boolean weryfikacja(float a,float b,float c) throws Wyjatek
  43. {
  44. boolean ok = (a > 0) && (b > 0) && (c > 0);
  45. if (!ok)
  46. throw new Wyjatek(name);
  47. return ok;
  48. }
  49.  
  50. @Override
  51. public String toString()
  52. {
  53. String info = new String(name +", obwod: "+obwod()+", pole: "+ pole());
  54. return info;
  55. }
  56. }
  57.  
  58. class Prostokat extends Figura
  59. {
  60. double a, b;
  61.  
  62. public Prostokat(float a, float b) throws Wyjatek
  63. {
  64. name = "Prostokat";
  65. if(weryfikacja(a,b))
  66. {
  67. this.a = a;
  68. this.b = b;
  69. }
  70. }
  71.  
  72. public double pole()
  73. {
  74. return a * b;
  75. }
  76.  
  77. public double obwod()
  78. {
  79. return 2 * (a + b);
  80. }
  81.  
  82. }
  83.  
  84. class Trojkat extends Figura
  85. {
  86. double a, b,c;
  87.  
  88. public Trojkat(float a, float b,float c) throws Wyjatek
  89. {
  90. name = "Trojkat";
  91. if(weryfikacja(a,b,c))
  92. {
  93. this.a = a;
  94. this.b = b;
  95. this.c = c;
  96. }
  97.  
  98. }
  99.  
  100. public double pole()
  101. {
  102. double p=(a+b+c)/2;
  103. double wynik=Math.sqrt(p*(p-a)*(p-b)*(p-c));
  104. return wynik;
  105. }
  106.  
  107. public double obwod()
  108. {
  109. return (a + b + c);
  110. }
  111. }
  112.  
  113.  
  114. class FabrykaFigur implements Fabryka
  115. {
  116. public FabrykaFigur()
  117. {
  118.  
  119. }
  120.  
  121. public Figura zwrocFigure(String typ, int a, int b, int c) throws Wyjatek,Wyjatek2
  122. {
  123. Figura wynik;
  124. if(typ=="trojkat" || typ== "Trojkat" || typ=="Trójkąt" || typ=="trójkąt")
  125. {
  126. wynik=new Trojkat(a,b,c);
  127. }
  128. else if(typ=="prostokat" || typ== "Prostokat" || typ=="Prostokąt" || typ=="prostokąt")
  129. {
  130. wynik=new Prostokat(a,b);
  131. }
  132. else
  133. throw new Wyjatek2("Lubie Placki");
  134.  
  135. return wynik;
  136.  
  137. }
  138. }
  139.  
  140. public class Figury
  141. {
  142.  
  143. public static void main(String[] args) throws Wyjatek
  144. {
  145. try
  146. {
  147. //Prostokat p = new Prostokat(-2,4);
  148. //System.out.println(p);
  149.  
  150. FabrykaFigur China=new FabrykaFigur();
  151. System.out.println(China.zwrocFigure("Trójkąt", 4, 3, 5));
  152.  
  153. }
  154. catch(Exception e)
  155. {
  156. System.out.println("HAHAHA");
  157. e.printStackTrace();
  158. }
  159. }
  160.  
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement