Guest User

Untitled

a guest
Apr 25th, 2018
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 KB | None | 0 0
  1. /* Naam: Renee Witsenburg
  2. * Studentnummer: 10001388
  3. * Studie: Informatica
  4. */
  5.  
  6. public class Test {
  7. public static void main (String[] args) {
  8. Afstand d1 = new Afstand (10, " mm ");
  9. Afstand d2 = new Afstand (2.5, " cm ");
  10. Afstand d3 = d1.optellen(d2);
  11.  
  12. Punt p1 = new Punt (new Afstand (10, " mm "), new Afstand (15, " mm " ));
  13. Punt p2 = new Punt (new Afstand (30, " mm "), new Afstand (50, " mm " ));
  14. Punt p3 = new Punt (new Afstand (10, " mm "), new Afstand (50, " mm " ));
  15.  
  16. Afstand d4 = p1.aftrekken(p2);
  17.  
  18. Vorm[] list = new Vorm[3];
  19.  
  20. list[0] = new Lijn(p1, p2 );
  21. list[1] = new Rechthoek(p1, d2, d3 );
  22. list[2] = new Cirkel(p3, d2 );
  23.  
  24. System.out.println (" d1 : " + d1 );
  25. System.out.println (" d2 : " + d2 );
  26. System.out.println (" d3 : " + d3 );
  27. System.out.println (" d4 : " + d4 );
  28. System.out.println (" p1 : " + p1 );
  29. System.out.println (" p2 : " + p2 );
  30. System.out.println (" p3 : " + p3 );
  31.  
  32. for(int i = 0; i < list.length ; i++) {
  33. System.out.println (" list [" + i + "]: " + list[i]);
  34. System.out.println (" Omtrek : " + list[i].omtrek());
  35. System.out.println (" Oppervlakte : " + list[i].oppervlakte() + " m ˆ2 " );
  36. }
  37. }
  38. }
  39.  
  40. /* Afstanden: een 1-dimensonaal nummer met een meeteenheid (mm, cc, m, km).
  41. * Afstanden kun je optellen en
  42. * aftrekken liet hierbij wel op mogelijk verschillende meeteenheden.
  43. */
  44. class Afstand{
  45.  
  46. double lengte;
  47. String eenheid;
  48.  
  49. Afstand(double l, String eenheid) {
  50. lengte = l;
  51. this.eenheid = eenheid;
  52. }
  53. Afstand aftrekken(Afstand d2) {
  54. return new Afstand(this.converteren() - d2.converteren(), "m");
  55. }
  56. Afstand optellen(Afstand d2) {
  57. return new Afstand((this.converteren() + d2.converteren()) * 100, "cm");
  58. }
  59.  
  60. double converteren() {
  61. if(eenheid.equals("mm")) {
  62. return lengte / 1000;
  63. }
  64. if(eenheid.equals("cm")) {
  65. return lengte / 100;
  66. }
  67. if(eenheid.equals("km")) {
  68. return lengte * 1000;
  69. }
  70. else
  71. return lengte;
  72. }
  73.  
  74. public String toString() {
  75. return(this.lengte + " " + this.eenheid);
  76. }
  77. }
  78.  
  79. /* Punten: bestaande uit een verticale en horizontale afstand tot de oorsprong.
  80. * Een punt kan zijn afstand tot een ander punt berekenen.
  81. */
  82. class Punt{
  83. public Afstand x, y;
  84.  
  85. Punt(Afstand d1, Afstand d2){
  86. x = new Afstand(d1.lengte, d1.eenheid);
  87. y = new Afstand(d2.lengte, d2.eenheid);
  88. }
  89.  
  90. Punt(Punt punt) {
  91. this.x = punt.x;
  92. this.y = punt.y;
  93. }
  94.  
  95. public Afstand aftrekken(Punt punt) {
  96. double a, b;
  97. a = Math.abs(this.x.converteren() - punt.x.converteren());
  98. b = Math.abs(this.y.converteren() - punt.y.converteren());
  99. return new Afstand(Math.sqrt((a * a) + (b * b)), "mm");
  100. }
  101.  
  102. public String toString() {
  103. return "(" + x + "; " + y + ")";
  104. }
  105. }
  106.  
  107. /* ... zijn eigenschappen printen (e.g. radius, positie).
  108. * ... zijn omtrek printen.1
  109. * ... zijn oppervlakte printen.
  110. */
  111. class Vorm {
  112. Punt p1;
  113.  
  114. Vorm() {
  115. }
  116. Vorm(Punt x) {
  117. p1 = x;
  118. }
  119. double omtrek() {
  120. return new Afstand(0.0, "m");
  121. }
  122. double oppervlakte() {
  123. return new Afstand(0.0, "m");
  124. }
  125. }
  126. /* Lijnen: bestaande uit twee verschillende punten. Een lijn kan zijn eigen
  127. * lengte berekenen.
  128. */
  129. class Lijn extends Vorm{
  130. Punt p1, p2;
  131.  
  132. Lijn(Punt p, Punt o) {
  133. p1 = p;
  134. p2 = o;
  135. }
  136. Vorm omtrek() {
  137. double x, y, afstand;
  138. x = Math.abs(p2.x.converteren() - p1.x.converteren());
  139. y = Math.abs(p2.y.converteren() - p1.y.converteren());
  140. afstand = Math.sqrt((y * y) +(x * x));
  141. return new Afstand(afstand, "m");
  142. }
  143. Vorm oppervlakte() {
  144. return new Afstand(0.0, "m");
  145. }
  146. }
  147.  
  148. /* Cirkels: bestaande uit een middenpunt en een radius (als afstand van het
  149. * middenpunt). Een cirkel kan zijn omtrek en oppervlakte berekenen.
  150. */
  151. class Cirkel extends Vorm {
  152. public Punt p3, straal;
  153.  
  154. Cirkel(){}
  155.  
  156. Cirkel(Afstand d2, Punt p3) {
  157. straal = new Afstand(d2.lengte, d2.eenheid);
  158. }
  159.  
  160. double oppervlakte(){
  161. //straal = Math.abs(d2.x.converteren());
  162. return(straal * straal * Math.PI);
  163. }
  164.  
  165. double omtrek(){
  166. //straal = Math.abs(d2.x.converteren());
  167. return(straal * 2 * Math.PI);
  168. }
  169. }
  170.  
  171. /* Rechthoek: bestaande uit een middenpunt en twee afstanden. Een rechthoek
  172. * kan zijn omtrek en oppervlakte berekenen.
  173. */
  174. class Rechthoek extends Vorm {
  175. Afstand x, y;
  176.  
  177. Rechthoek(Punt p) {
  178. super(p);
  179. }
  180. Rechthoek(Punt p, Afstand breedte, Afstand lengte) {
  181. super(p);
  182. x = breedte;
  183. y = lengte;
  184. }
  185. Afstand omtrek(){
  186. double x, y;
  187. double omtrek = ((lengte * 2) + (breedte * 2));
  188. return new Afstand(omtrek, "m");
  189. }
  190. double oppervlakte(){
  191. double oppervlakte = (lengte * breedte);
  192. return new Afstand(oppervlakte, "m");
  193. }
  194. }
Add Comment
Please, Sign In to add comment