Advertisement
Guest User

Patuvanje

a guest
Oct 19th, 2019
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.99 KB | None | 0 0
  1. import java.security.cert.Extension;
  2. import java.util.Scanner;
  3.  
  4. class MyException extends Exception {
  5. private String text;
  6.  
  7. public MyException(String text) {
  8. super();
  9. this.text = text;
  10. }
  11.  
  12. public String myMessage() {
  13. return text;
  14. }
  15.  
  16. }
  17.  
  18. class Patuvanje {
  19.  
  20. private String ime;
  21. private int cena;
  22.  
  23. public Patuvanje() {
  24. super();
  25. }
  26.  
  27. public Patuvanje(String ime, int cena) {
  28. super();
  29. this.ime = ime;
  30. this.cena = cena;
  31. }
  32.  
  33. public String getIme() {
  34. return ime;
  35. }
  36.  
  37. public void setIme(String ime) {
  38. this.ime = ime;
  39. }
  40.  
  41. public int getCena() {
  42. return cena;
  43. }
  44.  
  45. public void setCena(int cena) {
  46. this.cena = cena;
  47. }
  48.  
  49. public int vratiVremeVoDenovi() {
  50. return 0;
  51. }
  52.  
  53. public static int vratiMinCena(Patuvanje[] niza, int n, Patuvanje zaSporedba) {
  54. int minCena = 2137483647;
  55. boolean flag = false;
  56. for (int i = 0; i < n; i++) {
  57. if (niza[i].vratiVremeVoDenovi() > zaSporedba.vratiVremeVoDenovi()) {
  58. if (niza[i].getCena() < minCena) {
  59. minCena = niza[i].getCena();
  60. flag = true;
  61. }
  62. }
  63. }
  64. if (flag)
  65. return minCena;
  66. else
  67. return 0;
  68. }
  69. }
  70.  
  71. class GodishenOdmor extends Patuvanje {
  72.  
  73. private int vremetraenjeDenovi;
  74.  
  75. public GodishenOdmor() {
  76. super();
  77. }
  78.  
  79. public GodishenOdmor(String ime, int cena, int vremetraenjeDenovi) {
  80. super(ime, cena - 1000);
  81. this.vremetraenjeDenovi = vremetraenjeDenovi;
  82. }
  83.  
  84. public int getVremetraenjeDenovi() {
  85. return vremetraenjeDenovi;
  86. }
  87.  
  88. public void setVremetraenjeDenovi(int vremetraenjeDenovi) {
  89. this.vremetraenjeDenovi = vremetraenjeDenovi;
  90. }
  91.  
  92. @Override
  93. public int vratiVremeVoDenovi() {
  94. return vremetraenjeDenovi;
  95. }
  96.  
  97. @Override
  98. public String toString() {
  99. return this.getIme();
  100. }
  101.  
  102. }
  103.  
  104. class PraznicnoPatuvanje extends Patuvanje {
  105.  
  106. private int pochetenDatum;
  107. private int pochetenMesec;
  108. private int kraenDatum;
  109. private int kraenMesec;
  110.  
  111. public PraznicnoPatuvanje() {
  112. super();
  113.  
  114. }
  115.  
  116. public PraznicnoPatuvanje(String ime, int cena, int pD, int pM, int kD, int kM) {
  117. super(ime, cena);
  118. try {
  119. if (pM > kM)
  120. throw new MyException("Iskluchok");
  121. /*else if (pochetenMesec == kraenMesec&&pochetenDatum > kraenDatum)
  122. throw new MyException("Iskluchok");*/
  123. else {
  124. pochetenDatum = pD;
  125. pochetenMesec = pM;
  126. kraenDatum = kD;
  127. kraenMesec = kM;
  128. }
  129. } catch (MyException a) {
  130. pochetenDatum = kD;
  131. pochetenMesec = kM;
  132. kraenDatum = pD;
  133. kraenMesec = pM;
  134. System.out.println(a.myMessage());
  135. }
  136. }
  137.  
  138. public int getPochetenDatum() {
  139. return pochetenDatum;
  140. }
  141.  
  142. public void setPochetenDatum(int pochetenDatum) {
  143. this.pochetenDatum = pochetenDatum;
  144. }
  145.  
  146. public int getPochetenMesec() {
  147. return pochetenMesec;
  148. }
  149.  
  150. public void setPochetenMesec(int pochetenMesec) {
  151. this.pochetenMesec = pochetenMesec;
  152. }
  153.  
  154. public int getKraenDatum() {
  155. return kraenDatum;
  156. }
  157.  
  158. public void setKraenDatum(int kraenDatum) {
  159. this.kraenDatum = kraenDatum;
  160. }
  161.  
  162. public int getKraenMesec() {
  163. return kraenMesec;
  164. }
  165.  
  166. public void setKraenMesec(int kraenMesec) {
  167. this.kraenMesec = kraenMesec;
  168. }
  169.  
  170. @Override
  171. public int vratiVremeVoDenovi() {
  172. return ((kraenMesec - 1) * 30 + kraenDatum) - ((pochetenMesec - 1) * 30 + pochetenDatum);
  173. }
  174.  
  175. @Override
  176. public String toString() {
  177. return this.getIme();
  178. }
  179.  
  180. }
  181.  
  182. public class Test {
  183.  
  184. public static double prosekVremetraenje(Patuvanje[] patuvanja) {
  185. double prosek = 0;
  186. for (int i = 0; i < patuvanja.length; i++) {
  187. prosek += patuvanja[i].vratiVremeVoDenovi();
  188. }
  189. return prosek / patuvanja.length;
  190. }
  191.  
  192. public static String patuvanjaVoMesec(Patuvanje[] patuvanja) {
  193. String izlez = new String();
  194. for (int i = 0; i < patuvanja.length; i++) {
  195. if (patuvanja[i] instanceof PraznicnoPatuvanje) {
  196. PraznicnoPatuvanje tmp = (PraznicnoPatuvanje) patuvanja[i];
  197. if (tmp.getPochetenMesec() == 6)
  198. izlez += patuvanja[i].toString() + " ";
  199. }
  200.  
  201. }
  202. return izlez;
  203.  
  204. }
  205.  
  206. public static void main(String[] args) {
  207.  
  208. int n;
  209. Scanner in = new Scanner(System.in);
  210. n = in.nextInt();
  211.  
  212. Patuvanje nizaPatuvanje[] = new Patuvanje[n];
  213.  
  214. for (int i = 0; i < n; i++) {
  215. int tip = in.nextInt();
  216. if (tip == 0) {
  217. String ime = in.next();
  218. int cena = in.nextInt();
  219. int vreme = in.nextInt();
  220. nizaPatuvanje[i] = new GodishenOdmor(ime, cena, vreme);
  221. } else {
  222. String ime = in.next();
  223. int cena = in.nextInt();
  224. int pocD = in.nextInt();
  225. int pocM = in.nextInt();
  226. int krajD = in.nextInt();
  227. int krajM = in.nextInt();
  228. nizaPatuvanje[i] = new PraznicnoPatuvanje(ime, cena, pocD, pocM, krajD, krajM);
  229.  
  230. }
  231. }
  232.  
  233. System.out.println(Test.patuvanjaVoMesec(nizaPatuvanje));
  234.  
  235. System.out.println(Test.prosekVremetraenje(nizaPatuvanje));
  236.  
  237. String ime = in.next();
  238. int cena = in.nextInt();
  239. int vreme = in.nextInt();
  240. GodishenOdmor novOdmor = new GodishenOdmor(ime, cena, vreme);
  241.  
  242. System.out.println(Patuvanje.vratiMinCena(nizaPatuvanje, n, novOdmor));
  243.  
  244. }
  245.  
  246. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement