Advertisement
Guest User

Untitled

a guest
Mar 29th, 2015
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5. class Automobile
  6. {
  7. private:
  8. char *marka; int *reg; int speed;
  9. public:
  10.  
  11. Automobile(){}
  12.  
  13. Automobile(char *m, int *p, int speed)
  14. {
  15. marka = new char[20];
  16. strcpy(this->marka, m);
  17. reg = new int[5];
  18. for(int i=0;i<5;i++)
  19. {reg[i]=p[i];}
  20.  
  21. this->speed=speed;
  22. }
  23.  
  24. Automobile(const Automobile &a)
  25. {
  26. marka = new char[20];
  27. reg = new int[5];
  28. for(int i=0;i<5;i++)
  29. {this->reg[i]=a.reg[i];}
  30. strcpy(this->marka,a.marka);
  31. speed=a.speed;
  32.  
  33. }
  34. int getSpeed()
  35. {return speed;}
  36.  
  37. Automobile &operator=(const Automobile &a)
  38. {
  39. if(this==&a){return *this;}
  40. delete [] marka;
  41. delete [] reg;
  42. marka = new char[20];
  43. reg = new int[5];
  44. for(int i=0;i<5;i++)
  45. {reg[i]=a.reg[i];}
  46. strcpy(marka,a.marka);
  47. speed=a.speed;
  48. return *this;
  49. }
  50.  
  51. ~Automobile()
  52. { delete [] marka;
  53. delete [] reg;}
  54.  
  55. int sporedba(Automobile a)
  56. {
  57. for(int i=0;i<5;i++)
  58. {
  59. if((reg[i])!=a.reg[i])
  60. {return 0;}
  61.  
  62. }
  63. return 1; // isti se
  64. }
  65.  
  66. void pecati()
  67. {
  68. cout<< "Marka\t" << marka << "\tRegistracija";
  69. for(int i=0;i<5;i++)
  70. {
  71. if(i==0)
  72. {cout<<"[ ";}
  73. cout<<reg[i]<<' ';
  74. if(i==4)
  75. {cout << "]";}
  76.  
  77. }
  78. }
  79. };
  80. class RentACar
  81. {
  82. private:
  83. char ime[100]; Automobile *a; int n;
  84. public:
  85. RentACar(char *ime)
  86. {
  87. strcpy(this->ime, ime);
  88. a = NULL;
  89. n=0;
  90. }
  91. ~RentACar()
  92. {delete [] a;}
  93. void add(Automobile avto)
  94. {
  95.  
  96. Automobile *temp=a;
  97. a = new Automobile[n+1];
  98. for(int i=0;i<n;i++)
  99. {a[i]=temp[i];}
  100.  
  101. a[n]=avto;
  102. delete [] temp;
  103. n++;
  104. }
  105. void sub(Automobile avto)
  106. {
  107. int index=0;
  108. for(int i=0;i<n;i++)
  109. {
  110. if(a[i].sporedba(avto))
  111. {index=i;}
  112.  
  113. }
  114.  
  115. a[index]=avto;
  116.  
  117. }
  118. void pecati()
  119. { cout << ime<<endl;
  120.  
  121. }
  122.  
  123. void pecatiNadBrzina(int max)
  124. {
  125. for(int i=0;i<n;i++)
  126. {
  127. if(max<a[i].getSpeed())
  128. {a[i].pecati();}
  129. }
  130. }
  131. };
  132.  
  133.  
  134. int main()
  135. {
  136. RentACar agencija("FINKI-Car");
  137. int n;
  138. cin>>n;
  139.  
  140.  
  141. for (int i=0;i<n;i++)
  142. {
  143. char marka[100];
  144. int regisracija[5];
  145. int maximumBrzina;
  146.  
  147. cin>>marka;
  148.  
  149. for (int i=0;i<5;i++)
  150. cin>>regisracija[i];
  151.  
  152. cin>>maximumBrzina;
  153.  
  154. Automobile nov(marka,regisracija,maximumBrzina);
  155.  
  156. //dodavanje na avtomobil
  157. agencija.add(nov);
  158.  
  159.  
  160. }
  161. //se cita grehsniot avtmobil, za koj shto avtmobilot so ista registracija treba da se izbrishe
  162. char marka[100];
  163. int regisracija[5];
  164. int maximumBrzina;
  165. cin>>marka;
  166. for (int i=0;i<5;i++)
  167. cin>>regisracija[i];
  168. cin>>maximumBrzina;
  169.  
  170. Automobile greshka(marka,regisracija,maximumBrzina);
  171.  
  172. //brishenje na avtomobil
  173. agencija.sub(greshka);
  174.  
  175.  
  176. agencija.pecati();
  177. agencija.pecatiNadBrzina(150);
  178.  
  179. return 0;
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement