Advertisement
Guest User

Untitled

a guest
May 20th, 2018
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5. class Transport{
  6. protected:
  7. char destinacija[20];
  8. int cena;
  9. int kilometri;
  10. public:
  11. virtual int cenaTransport()=0;
  12. virtual void pecati()=0;
  13. bool operator<(const Transport &A)
  14. {
  15. if(cena<A.cena) return 1;
  16. return 0;
  17. }
  18. };
  19. class AvtomobilTransport : public Transport{
  20. protected:
  21. bool shofer;
  22. public:
  23. AvtomobilTransport(char *d,int c,int k,bool s)
  24. {
  25. strcpy(destinacija,d);
  26. cena=c;
  27. kilometri=k;
  28. shofer=s;
  29. }
  30. int cenaTransport()
  31. {
  32. int p=cena;
  33. if(shofer==1)
  34. p+=(0.2*cena);
  35. return p;
  36. }
  37. char *getDestinacija()
  38. {
  39. return destinacija;
  40. }
  41. int getRastojanie()
  42. {
  43. return kilometri;
  44. }
  45. void pecati()
  46. {
  47. cout<<getDestinacija()<<" "<<getRastojanie()<<" "<<cenaTransport()<<endl;
  48. }
  49. };
  50. class KombeTransport : public Transport{
  51. protected:
  52. int broj;
  53. public:
  54. KombeTransport(char *d,int c,int k, int b)
  55. {
  56. strcpy(destinacija,d);
  57. cena=c;
  58. kilometri=k;
  59. broj=b;
  60. }
  61. int cenaTransport()
  62. {
  63. int p=cena;
  64. p-=broj*200;
  65. return p;
  66. }
  67. char *getDestinacija()
  68. {
  69. return destinacija;
  70. }
  71. int getRastojanie()
  72. {
  73. return kilometri;
  74. }
  75. void pecati()
  76. {
  77. cout<<getDestinacija()<<" "<<getRastojanie()<<" "<<cenaTransport()<<endl;
  78. }
  79. };
  80. void pecatiPoloshiPonudi(Transport **a, int n, AvtomobilTransport &m )
  81. {
  82. for(int i=0;i<n;i++)
  83. {
  84. if(m.cenaTransport()<a[i]->cenaTransport())
  85. {
  86. a[i]->pecati();
  87. }
  88. }
  89. }
  90. int main(){
  91.  
  92. char destinacija[20];
  93. int tip,cena,rastojanie,lugje;
  94. bool shofer;
  95. int n;
  96. cin>>n;
  97. Transport **ponudi;
  98. ponudi=new Transport *[n];
  99.  
  100. for (int i=0;i<n;i++){
  101.  
  102. cin>>tip>>destinacija>>cena>>rastojanie;
  103. if (tip==1) {
  104. cin>>shofer;
  105. ponudi[i]=new AvtomobilTransport(destinacija,cena,rastojanie,shofer);
  106.  
  107. }
  108. else {
  109. cin>>lugje;
  110. ponudi[i]=new KombeTransport(destinacija,cena,rastojanie,lugje);
  111. }
  112.  
  113.  
  114. }
  115.  
  116. AvtomobilTransport nov("Ohrid",2000,600,false);
  117. pecatiPoloshiPonudi(ponudi,n,nov);
  118.  
  119. for (int i=0;i<n;i++) delete ponudi[i];
  120. delete [] ponudi;
  121. return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement