Mitko_jos

lab 10 zad2

May 6th, 2012
514
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.97 KB | None | 0 0
  1.  
  2. package zad2;
  3.  
  4. import java.util.Date;
  5.  
  6. /**
  7. *
  8. * @author Jovanovski
  9. */
  10. public class Iznajmuvanje {
  11. public String iziznajmuvach;
  12. public Date pocetok, kraj;
  13. public double cenaPoDen;
  14.  
  15. public Iznajmuvanje(String iziznajmuvach, Date pocetok, Date kraj, double cenaPoDen) {
  16. this.iziznajmuvach = iziznajmuvach;
  17. this.pocetok = pocetok;
  18. this.kraj = kraj;
  19. this.cenaPoDen = cenaPoDen;
  20. }
  21.  
  22. public double vkCena(){
  23. int denovi = (int)( (kraj.getTime() - pocetok.getTime()) / (1000 * 60 * 60 * 24));
  24. return denovi*cenaPoDen;
  25. }
  26.  
  27. public boolean daliKraj(Date d1){
  28. if(d1.equals(kraj)) return true;
  29. return false;
  30. }
  31.  
  32. public void pecati(){
  33. System.out.println("Iznajmuvac: "+iziznajmuvach+" Pocetok: "+pocetok+" Kraj: "+kraj+" Cena po den: "+ cenaPoDen+"\n");
  34. }
  35. }
  36.  
  37.  
  38. package zad2;
  39.  
  40. import java.util.Date;
  41.  
  42. /**
  43. *
  44. * @author Jovanovski
  45. */
  46. public class IznajmuvanjeAvtomobil extends Iznajmuvanje{
  47. private String model;
  48. private double konjskiSili;
  49.  
  50. public IznajmuvanjeAvtomobil(String model, double konjskiSili, String iziznajmuvach, Date pocetok, Date kraj, double cenaPoDen) {
  51. super(iziznajmuvach, pocetok, kraj, cenaPoDen);
  52. this.model = model;
  53. this.konjskiSili = konjskiSili;
  54. }
  55.  
  56. @Override
  57. public double vkCena(){
  58. int denovi = (int)( (super.kraj.getTime() - super.pocetok.getTime()) / (1000 * 60 * 60 * 24));
  59. if(konjskiSili>70)
  60. return denovi*super.cenaPoDen+1000;
  61. else
  62. return denovi*super.cenaPoDen;
  63. }
  64.  
  65. @Override
  66. public boolean daliKraj(Date d1){
  67. if(d1.equals(super.kraj)) return true;
  68. return false;
  69. }
  70.  
  71. @Override
  72. public void pecati(){
  73. System.out.println("Iznajmuvac: "+super.iziznajmuvach+" Pocetok: "+super.pocetok+" Kraj: "+super.kraj+" Cena po den: "+ super.cenaPoDen+" Model: "+model+"Konjski sili: "+konjskiSili+"\n");
  74. }
  75.  
  76. }
  77.  
  78.  
  79.  
  80. package zad2;
  81.  
  82. import java.util.Date;
  83.  
  84. /**
  85. *
  86. * @author Jovanovski
  87. */
  88. public class IznajmuvanjeStan extends Iznajmuvanje {
  89. private double Kvadrati;
  90.  
  91. public IznajmuvanjeStan(double Kvadrati, String iziznajmuvach, Date pocetok, Date kraj, double cenaPoDen) {
  92. super(iziznajmuvach, pocetok, kraj, cenaPoDen);
  93. this.Kvadrati = Kvadrati;
  94. }
  95.  
  96. @Override
  97. public double vkCena(){
  98. int denovi = (int)( (super.kraj.getTime() - super.pocetok.getTime()) / (1000 * 60 * 60 * 24));
  99. return denovi*super.cenaPoDen+(Kvadrati*50);
  100. }
  101.  
  102. @Override
  103. public boolean daliKraj(Date d1){
  104. if(d1.equals(super.kraj)) return true;
  105. return false;
  106. }
  107.  
  108. @Override
  109. public void pecati(){
  110. System.out.println("Iznajmuvac: "+super.iziznajmuvach+" Pocetok: "+super.pocetok+" Kraj: "+super.kraj+" Cena po den: "+ super.cenaPoDen+" Kvadrati: "+Kvadrati+"\n");
  111. }
  112. }
  113.  
  114.  
  115. package zad2;
  116.  
  117. import java.util.Date;
  118.  
  119. /**
  120. *
  121. * @author Jovanovski
  122. */
  123. public class Agencija {
  124.  
  125. public int brnaiznajmuvanja = 0;
  126. private Iznajmuvanje niza[];
  127.  
  128. public Agencija() {
  129. niza = new Iznajmuvanje[20];
  130. }
  131.  
  132. public void dodadiIznajmuvanje(Iznajmuvanje a) {
  133. niza[brnaiznajmuvanja] = a;
  134. brnaiznajmuvanja++;
  135. System.out.println("Dodadov!");
  136. }
  137.  
  138. public void listajIznajmuvanja() {
  139. for (int i = 0; i < brnaiznajmuvanja; i++) {
  140. niza[i].pecati();
  141. }
  142. System.out.println("Listav!");
  143. }
  144.  
  145. public void listajIznajmuvanjaAvtomobil() {
  146. for (int i = 0; i < brnaiznajmuvanja; i++) {
  147. if (niza[i] instanceof IznajmuvanjeAvtomobil) {
  148. niza[i].pecati();
  149. }
  150. }
  151. }
  152.  
  153. public void listajIznajmuvanjaStan() {
  154. for (int i = 0; i < brnaiznajmuvanja; i++) {
  155. if (niza[i] instanceof IznajmuvanjeStan) {
  156. niza[i].pecati();
  157. }
  158. }
  159. }
  160.  
  161. public void listajIznajmuvanjaDo(Date d1) {
  162. for (int i = 0; i < brnaiznajmuvanja; i++) {
  163. if (niza[i].kraj.before(d1)) {
  164. niza[i].pecati();
  165. }
  166. }
  167. }
  168.  
  169. public double vratiVkupenProfit() {
  170. double profit = 0;
  171. for (int i = 0; i < brnaiznajmuvanja; i++) {
  172. profit+=niza[i].vkCena();
  173. }
  174. return profit;
  175. }
  176. }
  177.  
  178.  
  179. package zad2;
  180.  
  181. import java.util.Date;
  182. import java.util.Scanner;
  183.  
  184. /**
  185. *
  186. * @author Jovanovski
  187. */
  188. public class Test {
  189.  
  190. public static void main(String[] args) {
  191. Scanner input = new Scanner(System.in);
  192. Agencija a = new Agencija(); //se kreira ovjekt od klasata Agencija
  193. System.out.print("Simulacija na agencija na deneshen den...");
  194. System.out.print("Vnesete datum: ");
  195. int datum = input.nextInt();
  196. System.out.print("Vnesete mesec: ");
  197. int mesec = input.nextInt();
  198. System.out.print("Vnesete godina: ");
  199. int godina = input.nextInt();
  200. long time = Date.UTC(godina, mesec, datum, 0, 0, 0);
  201. Date pocetok = new Date(time);
  202. int izbor, podizbor;
  203. do {
  204. System.out.println("1.Dodadi iznajmuvanje");
  205. System.out.println("2.Listaj site");
  206. System.out.println("3.Listaj avtomobili");
  207. System.out.println("4.Listaj stanovi");
  208. System.out.println("5.Listaj iznajmuvanja do datum");
  209. System.out.println("6.Pecati vkupen profit");
  210. System.out.println("7.Kraj");
  211. System.out.print("Vashtiot izbor e: ");
  212. izbor = input.nextInt();
  213. switch (izbor) {
  214. case 1:
  215. if(a.brnaiznajmuvanja<=20){
  216. System.out.print("Vnesete iznajmuvach: ");
  217. input.nextLine();
  218. String iznajmuvach = input.nextLine();
  219. System.out.print("Vnesete datum: ");
  220. datum = input.nextInt();
  221. System.out.print("Vnesete mesec: ");
  222. mesec = input.nextInt();
  223. System.out.print("Vnesete godina: ");
  224. godina = input.nextInt();
  225. Date kraj = new Date(godina, mesec, datum);
  226. System.out.print("Vnesete cena po den: ");
  227. double cenaPoDen = input.nextDouble();
  228. do {
  229. System.out.println("1. Avtomogil?");
  230. System.out.println("2.Stan?");
  231. System.out.println("3.Ostanato?");
  232. System.out.print("Vashtiot izbor e: ");
  233. podizbor = input.nextInt();
  234. } while (podizbor != 1 && podizbor != 2 && podizbor != 3);
  235. switch (podizbor) {
  236. case 1:
  237. System.out.print("Vnesete model: ");
  238. input.nextLine();
  239. String model = input.nextLine();
  240. System.out.print("Vnesete broj na konjski sili: ");
  241. double konjSili = input.nextDouble();
  242. a.dodadiIznajmuvanje(new IznajmuvanjeAvtomobil(model, konjSili,iznajmuvach,pocetok, kraj, cenaPoDen));
  243. break;
  244. case 2:
  245. System.out.print("Vnesete ja kvadraturata: ");
  246. double kvadrati = input.nextDouble();
  247. a.dodadiIznajmuvanje(new IznajmuvanjeStan(kvadrati, iznajmuvach,pocetok, kraj, cenaPoDen));
  248. break;
  249. case 3:
  250. a.dodadiIznajmuvanje(new Iznajmuvanje(iznajmuvach, pocetok, kraj, cenaPoDen));
  251. break;
  252. }
  253. }
  254. else{
  255. System.out.println("Vekje se napraveni maksimalni 20 iznajmuvanja!");
  256. }
  257. break;
  258. case 2:
  259. a.listajIznajmuvanja();
  260. break;
  261. case 3:
  262. a.listajIznajmuvanjaAvtomobil();
  263. break;
  264. case 4:
  265. a.listajIznajmuvanjaStan();
  266. break;
  267. case 5:
  268. System.out.print("Vnesete datum: ");
  269. datum = input.nextInt();
  270. System.out.print("Vnesete mesec: ");
  271. mesec = input.nextInt();
  272. System.out.print("Vnesete godina: ");
  273. godina = input.nextInt();
  274. Date d = new Date(godina, mesec, datum);
  275. a.listajIznajmuvanjaDo(d);
  276. break;
  277. case 6:
  278. System.out.println("Profit: "+a.vratiVkupenProfit());
  279. break;
  280. }
  281. } while (izbor != 7);
  282. }
  283. }
Advertisement
Add Comment
Please, Sign In to add comment