garnettkg

Zad3 Klasa Goblik

Jan 26th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Napisati sledeće klase:
  2. GOblik - geometrijski oblik sa atributima: x, y (lokacija na ekranu) i naziv. Atributi su vidljivi samo klasama koje je nasleđuju.
  3. Trougao, Pravougaonik, Krug – nasleđuju GOblik i imaju metode:
  4. ispis – naziv, lokacija i povrsina (ToString)
  5. povrsina
  6. vratiX i vratiY
  7. (u konstruktoru se podešava naziv – “ručno”, a x i y kao ulazni parametri)
  8. Crtez: sadrži niz oblika čiji se maks. broj elemenata zadaje pri kreiranju objekta
  9. ima metode: DodajOblik(GOblik o) , UkupnaPovrsina() i ToString()
  10. Napisati odgovarajuće konstruktore za sve klase.
  11. Koristiti ključnu reč base
  12. Napisati test program koji će da kreira Crtez sa 5 geometrijskih obllika, ispiše ih i prikaže ukupnu površinu.
  13.  
  14.  
  15.  
  16.  
  17. using System;
  18. using System.Collections.Generic;
  19. using System.Linq;
  20. using System.Text;
  21. using System.Threading.Tasks;
  22.  
  23. namespace v3g2
  24. {
  25. class Crtez
  26. {
  27. private GOblik[] crtezi;
  28. int brSlobodnih = 0;
  29.  
  30. public Crtez(int duzina)
  31. {
  32. crtezi = new GOblik[duzina];
  33. }
  34. public void DodajOblik(GOblik g)
  35. {
  36. if (brSlobodnih <= crtezi.Length - 1)
  37. {
  38. crtezi[brSlobodnih] = g;
  39. brSlobodnih++;
  40. }
  41. }
  42. public double UkupnaPovrsina()
  43. {
  44. double p = 0;
  45. for (int i = 0; i < brSlobodnih; i++)
  46. {
  47. p += crtezi[i].P();
  48. }
  49. return p;
  50. }
  51. public override string ToString()
  52. {
  53. string s = "Geometrijski oblici:\n";
  54. for (int i = 0; i < brSlobodnih; i++)
  55. {
  56. s += crtezi[i].ToString();
  57. }
  58. s += "\nUkupna povrsina: " + UkupnaPovrsina()+"\n";
  59. return s;
  60. }
  61. }
  62. }
  63.  
  64.  
  65.  
  66.  
  67. using System;
  68. using System.Collections.Generic;
  69. using System.Linq;
  70. using System.Text;
  71. using System.Threading.Tasks;
  72.  
  73. namespace v3g2
  74. {
  75. class GOblik
  76. {
  77. protected int x,y;
  78. protected string naziv;
  79. public GOblik(int x, int y)
  80. {
  81. this.x = x;
  82. this.y = y;
  83. }
  84. public GOblik(int x, int y, string naziv)
  85. {
  86. this.x = x;
  87. this.y = y;
  88. this.naziv = naziv;
  89. }
  90. public virtual double P()
  91. { return -1; }
  92. public override string ToString()
  93. {
  94. return "Lokacija:{" + x + ", " + y + "}" + "\nNaziv: " + naziv + "\nPovrsina: " + P();
  95. }
  96.  
  97. }
  98. }
  99.  
  100.  
  101.  
  102.  
  103. using System;
  104. using System.Collections.Generic;
  105. using System.Linq;
  106. using System.Text;
  107. using System.Threading.Tasks;
  108.  
  109. namespace v3g2
  110. {
  111. class Program
  112. {
  113. static void Main(string[] args)
  114. {
  115. Crtez c = new Crtez(3);
  116. c.DodajOblik(new Trougao(2, 3, 4, 1, 22));
  117. c.DodajOblik(new Trougao(11, 33, 44, 11, 222));
  118. c.DodajOblik(new Trougao(13, 2, 6, 3, 12));
  119. Console.WriteLine(c.ToString());
  120. }
  121. }
  122. }
  123.  
  124.  
  125.  
  126. using System;
  127. using System.Collections.Generic;
  128. using System.Linq;
  129. using System.Text;
  130. using System.Threading.Tasks;
  131.  
  132. namespace v3g2
  133. {
  134. class Trougao:GOblik
  135. {
  136. int a, b, c;
  137. public Trougao(int a, int b, int c, int x, int y):base(x,y)
  138. {
  139. this.a = a;
  140. this.b = b;
  141. this.c = c;
  142. naziv = "Trougao";
  143.  
  144. }
  145. public override double P()
  146. {
  147. int o = a + b + c;
  148. return o/2*Math.Sqrt(Math.Pow(a,2)+Math.Pow(b,2)+Math.Pow(c,2));
  149. }
  150. public int VratiX()
  151. {
  152. return x;
  153. }
  154. public int VratiY()
  155. {
  156. return y;
  157. }
  158. public override string ToString()
  159. {
  160. return base.ToString()+" Stranice:{"+a+", "+b+", "+c+"}\n";
  161. }
  162.  
  163.  
  164. }
  165. }
Add Comment
Please, Sign In to add comment