Advertisement
Guest User

Untitled

a guest
Apr 6th, 2020
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.93 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3.  
  4. using namespace std;
  5.  
  6. // вашиот код
  7.  
  8. class Avtomobil {
  9.  
  10.     private:
  11.     char boja[21];
  12.     char brend[21];
  13.     char model[21];
  14.    
  15.     public:
  16.     Avtomobil() {}
  17.     Avtomobil(char *bo, char *br, char *m) {
  18.         strcpy(boja, bo);
  19.         strcpy(brend, br);
  20.         strcpy(model, m);
  21.     }
  22.    
  23.     Avtomobil & operator= (const Avtomobil &vtor) {
  24.         strcpy(boja, vtor.boja);
  25.         strcpy(brend, vtor.brend);
  26.         strcpy(model, vtor.model);
  27.        
  28.         return *this;
  29.     }
  30.    
  31.     void pecati() {
  32.         cout<<boja<<" "<<brend<<" "<<model<<endl;
  33.     }
  34. };
  35.  
  36. class ParkingPlac {
  37.  
  38.     private:
  39.     char adresa[21];
  40.     char *id;
  41.     int cena;
  42.     int profit;
  43.     Avtomobil *parkirani;
  44.     int brojParkirani;
  45.    
  46.     public:
  47.     ParkingPlac() {}
  48.     ParkingPlac(char *a, char *ID, int c) {
  49.         strcpy(adresa, a);
  50.         id = new char[strlen(ID)];
  51.         strcpy(id, ID);
  52.         cena = c;
  53.     }
  54.     ParkingPlac & operator= (const ParkingPlac &vtor) {
  55.         strcpy(adresa, vtor.adresa);
  56.         cena = vtor.cena;
  57.         profit = vtor.profit;
  58.         brojParkirani = vtor.brojParkirani;
  59.        
  60.         id = new char[strlen(vtor.id)];
  61.         strcpy(id, vtor.id);
  62.        
  63.         delete [] parkirani;
  64.        
  65.         parkirani = new Avtomobil[brojParkirani];
  66.        
  67.         for(int i=0; i<brojParkirani; i++)
  68.             parkirani[i] = vtor.parkirani[i];
  69.        
  70.         return *this;
  71.     }
  72.     char *getId() {return id;}
  73.     char *getAdresa() {return adresa;}
  74.    
  75.     ~ParkingPlac() {
  76.         delete id;
  77.         //delete [] parkirani;
  78.     }
  79.    
  80.     void pecati() {
  81.        
  82.         cout<<id<<" "<<adresa;
  83.         if(profit == 0) {
  84.             cout<<endl;
  85.             return;
  86.         }
  87.         cout<<" - "<<profit<<" denari"<<endl;
  88.     }
  89.     void platiCasovi(int casovi) {
  90.         profit += casovi*cena;
  91.     }
  92.     bool daliIstaAdresa(ParkingPlac p) {
  93.         return !strcmp(adresa, p.getAdresa());
  94.     }
  95.    
  96.     void parkirajVozilo(Avtomobil novoVozilo) {
  97.        
  98.         brojParkirani++;
  99.         Avtomobil *novi = new Avtomobil[brojParkirani];
  100.        
  101.         for(int i=0; i<brojParkirani-1; i++)
  102.             novi[i] = parkirani[i];
  103.        
  104.         novi[brojParkirani-1] = novoVozilo;
  105.        
  106.         delete [] parkirani;
  107.         parkirani = novi;
  108.     }
  109.    
  110.     void pecatiParkiraniVozila() {
  111.        
  112.         cout<<"Vo parkingot se parkirani slednite vozila: "<<endl;
  113.        
  114.         for(int i=0; i<brojParkirani; i++) {
  115.             cout<<i+1<<".";
  116.             parkirani[i].pecati();
  117.         }
  118.     }
  119. };
  120.  
  121. int main(){
  122.  
  123.     ParkingPlac p[100];
  124.     int n,m;
  125.     char adresa[50],id[50];
  126.     int brojcasovi,cenacas;
  127.     cin>>n;
  128.     if(n > 0){
  129.  
  130.  
  131.         for (int i=0;i<n;i++){
  132.             cin.get();
  133.             cin.getline(adresa,50);
  134.             cin>>id>>cenacas;
  135.            
  136.             ParkingPlac edna(adresa,id,cenacas);
  137.            
  138.             p[i]=edna;
  139.         }
  140.        
  141.         //plakjanje
  142.         cin>>m;
  143.         for (int i=0;i<m;i++){
  144.  
  145.             cin>>id>>brojcasovi;
  146.            
  147.             int findId=false;
  148.             for (int j=0;j<n;j++){                      // treba j<n namesto j<m
  149.                 if (strcmp(p[j].getId(),id)==0){       
  150.                     p[j].platiCasovi(brojcasovi);
  151.                     findId=true;
  152.                 }
  153.             }
  154.             if (!findId)
  155.             cout<<"Ne e platen parking. Greshen ID."<<endl;
  156.         }
  157.  
  158.         cout<<"========="<<endl;
  159.         ParkingPlac pCentar("Cvetan Dimov","C10",80);
  160.         for (int i=0;i<n;i++)
  161.             if (p[i].daliIstaAdresa(pCentar))
  162.                 p[i].pecati();
  163.     } else {
  164.  
  165.         ParkingPlac najdobarPlac("Mars", "1337", 1);
  166.         int brVozila;
  167.         cin >> brVozila;
  168.         for(int i = 0; i < brVozila; ++i){
  169.  
  170.             char boja[20];
  171.             char brend[20];
  172.             char model[20];
  173.  
  174.             cin >> boja >> brend >> model;
  175.             Avtomobil novAvtomobil(boja, brend, model);
  176.             najdobarPlac.parkirajVozilo(novAvtomobil);
  177.         }
  178.         if(brVozila != 0)
  179.         najdobarPlac.pecatiParkiraniVozila();
  180.  
  181.     }  
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement