Advertisement
ZlatniotOdBaba

Untitled

May 15th, 2015
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cstring>
  4.  
  5. using namespace std;
  6.  
  7. class Brod
  8. {
  9.  
  10. protected:
  11. char ime[100];
  12. char drzava[30];
  13. float kvadratura;
  14.  
  15. public:
  16. Brod(){}
  17. Brod(char *ime,char *drzava,float kvadratura)
  18. {
  19. strcpy(this->ime,ime);
  20. strcpy(this->drzava,drzava);
  21. this->kvadratura=kvadratura;
  22. }
  23.  
  24. friend ostream &operator <<(ostream &out,Brod &m)
  25. {
  26. out<<"Ime: "<<m.ime<<endl;
  27. out<<"Drzava: "<<m.drzava<<endl;
  28. out<<"Kvadrati: "<<m.kvadratura<<endl;
  29. out<<"Cena: "<<m.Cena()<<endl;
  30. return out;
  31. }
  32.  
  33.  
  34.  
  35. virtual float Cena() const =0;
  36.  
  37. bool operator >(const Brod &m)
  38. {
  39. if(this->Cena()>m.Cena())
  40. return true;
  41. else return false;
  42. }
  43. };
  44.  
  45. class Jahta: public Brod
  46. {
  47. private:
  48. int brojpalubi;
  49. int brojmotori;
  50.  
  51. public:
  52. Jahta(){};
  53. Jahta(char *ime,char *drzava,float kvadratura,int brojpalubi,int brojmotori):Brod(ime,drzava,kvadratura)
  54. {
  55. this->brojpalubi=brojpalubi;
  56. this->brojmotori=brojmotori;
  57. };
  58.  
  59. float Cena() const
  60. {
  61. return kvadratura*700+brojmotori*20000+brojpalubi*4500;
  62. }
  63.  
  64. };
  65.  
  66. class Krstosuvac: public Brod
  67. {
  68. private:
  69. float kvadraturakab;
  70. int brojkabini;
  71.  
  72. public:
  73. Krstosuvac(){};
  74. Krstosuvac(char *ime,char *drzava,float kvadratura,float kvadraturakab,int brojkabini):Brod(ime,drzava,kvadratura)
  75. {
  76. this->kvadraturakab=kvadraturakab;
  77. this->brojkabini=brojkabini;
  78. }
  79.  
  80. float Cena() const
  81. {
  82. return (kvadraturakab*900)*brojkabini;
  83. }
  84.  
  85. };
  86.  
  87. class Tanker: public Brod
  88. {
  89. private:
  90. float volumen;
  91. int brojekipaz;
  92.  
  93. public:
  94. Tanker(){};
  95. Tanker(char *ime,char *drzava,float kvadratura,float volumen,int brojekipaz):Brod(ime,drzava,kvadratura)
  96. {
  97. this->volumen=volumen;
  98. this->brojekipaz=brojekipaz;
  99. }
  100.  
  101. float Cena() const
  102. {
  103. return (volumen*500)+(brojekipaz*3000);
  104. }
  105.  
  106. };
  107.  
  108. Brod& najskap_brod (Brod **b, int n) {
  109. Brod* max = b[0];
  110. for (int i = 1; i < n; i ++)
  111. if (b[i] > max)
  112. max = b[i];
  113. return *max;
  114. }
  115.  
  116. int main() {
  117. int n; // Broj na brodovi
  118.  
  119. int tip_brod; // Tip na Brod (1-Jahta, 2-Krstosuvac, 3-Tanker)
  120.  
  121. cin >> n;
  122.  
  123. Brod **brodovi = new Brod*[n];
  124. char ime[100];
  125. char drzava[30] ;
  126. float kvadratura;
  127. for(int i = 0; i < n; ++i) {
  128. cin >> tip_brod>> ime >> drzava >> kvadratura;
  129. if(tip_brod==1) {
  130. int br_palubi;
  131. int broj_motori;
  132. cin >> br_palubi >> broj_motori;
  133. brodovi[i] = new Jahta(ime, drzava, kvadratura, br_palubi, broj_motori);
  134. }
  135. else if(tip_brod == 2) {
  136. int br_kabini;
  137. float kvadrat_na_kabina;
  138. cin >> br_kabini >> kvadrat_na_kabina;
  139.  
  140. brodovi[i] = new Krstosuvac (ime, drzava, kvadratura, br_kabini, kvadrat_na_kabina);
  141. }
  142. else if(tip_brod == 3){
  143. float volumen;
  144. int br_ekipaz;
  145. cin >>volumen >> br_ekipaz;
  146.  
  147. brodovi[i]= new Tanker (ime, drzava, kvadratura, volumen, br_ekipaz);
  148. }
  149. }
  150.  
  151. cout<<"== BRODOVI =="<<endl;
  152. for (int i=0; i<n; i++){
  153. cout<<*(brodovi[i])<<endl;
  154. }
  155.  
  156. cout << "=== NAJSKAP BROD ===" << endl;
  157. cout << najskap_brod(brodovi, n);
  158.  
  159. return 0;
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement