Advertisement
Guest User

Untitled

a guest
Mar 24th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.56 KB | None | 0 0
  1. class Avtomobil{
  2.  
  3. private:
  4. char brand[20];
  5. char model[20];
  6. char boja[20];
  7.  
  8. public:
  9. //default constructor
  10. Avtomobil(){
  11.  
  12. strcpy(brand, "");
  13. strcpy(model, "");
  14. strcpy(boja, "");
  15. }
  16. //argument constructor
  17. Avtomobil(const char* boja, const char* brand, const char* model){
  18.  
  19. strcpy(this->brand, brand);
  20. strcpy(this->model, model);
  21. strcpy(this->boja, boja);
  22. }
  23. //assignment operator
  24. Avtomobil& operator=(Avtomobil& avto){
  25.  
  26. if(this != &avto){
  27.  
  28. strcpy(this->brand, avto.brand);
  29. strcpy(this->model, avto.model);
  30. strcpy(this->boja, avto.boja);
  31. }
  32. return *this;
  33. }
  34.  
  35. void pecati(){
  36.  
  37. cout << boja << " " << brand << " " << model << endl;
  38. }
  39.  
  40. };
  41.  
  42.  
  43. class ParkingPlac{
  44.  
  45. private:
  46. char adresa[20];
  47. char *ID;
  48. int cena;
  49. int zarabotka;
  50. Avtomobil *parkiraniVozila;
  51. int brParkirani;
  52.  
  53. public:
  54. //default constructor
  55. ParkingPlac(){
  56. strcpy(adresa, "");
  57. ID = new char[0];
  58. cena = 0;
  59. zarabotka = 0;
  60. brParkirani = 0;
  61. parkiraniVozila = new Avtomobil[brParkirani];
  62. }
  63. //constructor
  64. ParkingPlac(const char *adresa,const char* id, int cena){
  65.  
  66. zarabotka = 0;
  67. this->cena = cena;
  68. strcpy(this->adresa, adresa);
  69. ID = new char[strlen(id)+1];
  70. strcpy(ID, id);
  71.  
  72.  
  73. brParkirani = 0;
  74. parkiraniVozila = new Avtomobil[brParkirani];
  75.  
  76. }
  77. //destructor
  78. ~ParkingPlac(){
  79. delete [] ID;
  80. delete [] parkiraniVozila;
  81. }
  82. //copy constructor
  83. ParkingPlac(const ParkingPlac &a){
  84.  
  85. ID = new char[strlen(a.ID)+1];
  86. strcpy(ID, a.ID);
  87. strcpy(adresa, a.adresa);
  88. cena = a.cena;
  89. zarabotka = a.zarabotka;
  90. //
  91. brParkirani = a.brParkirani;
  92. parkiraniVozila = new Avtomobil[a.brParkirani];
  93. for(int i = 0; i < brParkirani; ++i){
  94.  
  95. (this->parkiraniVozila)[i] = a.parkiraniVozila[i];
  96. }
  97.  
  98. }
  99.  
  100. //assignment operator
  101. ParkingPlac& operator=(ParkingPlac &a){
  102.  
  103. if (this != &a){
  104.  
  105. delete [] ID;
  106. ID = new char[strlen(a.ID)+1];
  107. strcpy(ID, a.ID);
  108. cena = a.cena;
  109. zarabotka = a.zarabotka;
  110. strcpy(adresa, a.adresa);
  111. //
  112. delete [] parkiraniVozila;
  113. brParkirani = a.brParkirani;
  114. parkiraniVozila = new Avtomobil[a.brParkirani];
  115. for(int i = 0; i < brParkirani; ++i){
  116.  
  117. (this->parkiraniVozila)[i] = a.parkiraniVozila[i];
  118. }
  119. }
  120. return *this;
  121. }
  122.  
  123. const char* getId(){
  124.  
  125. return ID;
  126. }
  127.  
  128. void pecati(){
  129. //ova e bolje
  130. // cout << ID << " " << adresa << " - " << zarabotka << " denari" << endl;
  131.  
  132. cout << ID << " " << adresa;
  133. if (zarabotka > 0){
  134. cout << " - " << zarabotka << " denari";
  135. }
  136. cout << endl;
  137. }
  138.  
  139. void platiCasovi(int casovi){
  140.  
  141. zarabotka += casovi*cena;
  142. }
  143.  
  144. bool daliIstaAdresa(ParkingPlac p){
  145.  
  146. if (strcmp(p.adresa, adresa) == 0) return true;
  147. return false;
  148. }
  149.  
  150.  
  151. void parkirajVozilo(Avtomobil novoVozilo){
  152.  
  153. Avtomobil* novaLista = new Avtomobil[brParkirani+1];
  154. for(int i = 0; i < brParkirani; ++i){
  155.  
  156. novaLista[i] = parkiraniVozila[i];
  157. }
  158. delete [] parkiraniVozila;
  159. parkiraniVozila = novaLista;
  160. parkiraniVozila[brParkirani++] = novoVozilo;
  161. }
  162.  
  163. void pecatiParkiraniVozila(){
  164.  
  165. cout << "Vo parkingot se parkirani slednite vozila: " << endl;
  166.  
  167. for(int i = 0; i < brParkirani; ++i){
  168.  
  169. cout << i+1 << ".";
  170. parkiraniVozila[i].pecati();
  171. }
  172. }
  173. };
  174.  
  175.  
  176. int main(){
  177.  
  178. ParkingPlac p[100];
  179. int n,m;
  180. char adresa[50],id[50];
  181. int brojcasovi,cenacas;
  182. cin>>n;
  183. if(n > 0){
  184.  
  185.  
  186. for (int i=0;i<n;i++){
  187. cin.get();
  188. cin.getline(adresa,50);
  189. cin>>id>>cenacas;
  190.  
  191. ParkingPlac edna(adresa,id,cenacas);
  192.  
  193. //povik na operatorot =
  194. p[i]=edna;
  195. }
  196.  
  197. //plakjanje
  198. cin>>m;
  199. for (int i=0;i<m;i++){
  200.  
  201. cin>>id>>brojcasovi;
  202.  
  203. int findId=false;
  204. for (int j=0;j<m;j++){
  205. if (strcmp(p[j].getId(),id)==0){
  206. p[j].platiCasovi(brojcasovi);
  207. findId=true;
  208. }
  209. }
  210. if (!findId)
  211. cout<<"Ne e platen parking. Greshen ID."<<endl;
  212. }
  213.  
  214. cout<<"========="<<endl;
  215. ParkingPlac pCentar("Cvetan Dimov","C10",80);
  216. for (int i=0;i<n;i++)
  217. if (p[i].daliIstaAdresa(pCentar))
  218. p[i].pecati();
  219. } else {
  220.  
  221. ParkingPlac najdobarPlac("Mars", "1337", 1);
  222. int brVozila;
  223. cin >> brVozila;
  224. for(int i = 0; i < brVozila; ++i){
  225.  
  226. char boja[20];
  227. char brend[20];
  228. char model[20];
  229.  
  230. cin >> boja >> brend >> model;
  231. Avtomobil novAvtomobil(boja, brend, model);
  232. najdobarPlac.parkirajVozilo(novAvtomobil);
  233. }
  234. if(brVozila != 0)
  235. najdobarPlac.pecatiParkiraniVozila();
  236. }
  237. }
  238.  
  239. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement