Advertisement
EmpireJordan

C++ translation code for something i forgot lol

Mar 29th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.35 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. class TV{
  6. private:
  7.     char ime[100];
  8.     bool vid;
  9.     int kategorija;
  10.     float rejting;
  11. public:
  12.     TV(){}
  13.     TV(char *i,bool v,int k,float r){
  14.         strcpy(ime,i);
  15.         vid=v;
  16.         kategorija=k;
  17.         rejting=r;
  18.     }
  19.     //operator <<
  20.     friend ostream& operator<<(ostream &out,const TV &t){
  21.         if(t.vid==1){
  22.             out<<t.ime<<endl;
  23.             out<<"D"<<endl;
  24.             out<<t.kategorija<<endl;
  25.             out<<t.rejting<<endl;
  26.         }
  27.         else if(t.vid==0){
  28.             out<<t.ime<<endl;
  29.             out<<"A"<<endl;
  30.             out<<t.kategorija<<endl;
  31.             out<<t.rejting<<endl;
  32.         }
  33.         return out;
  34.     }
  35.     //operator==
  36.     bool operator==(const TV &t){
  37.         return (strcmp(ime,t.ime)==0&&(kategorija=t.kategorija)==0);
  38.     }
  39.     TV& operator++(){
  40.         rejting+=0.5;
  41.         return *this;
  42.     }
  43.     float getRejting(){
  44.         return rejting;
  45.     }
  46.     ~TV(){}
  47. };
  48.  
  49. class KabelskiOperator{
  50. private:
  51.     char ime[100];
  52.     TV *televizii;
  53.     int broj;
  54. public:
  55.     KabelskiOperator(char *i,TV *t,int b){
  56.         strcpy(ime,i);
  57.         broj=b;
  58.         televizii=new TV[broj];
  59.         for(int i=0;i<broj;i++){
  60.             televizii[i]=t[i];
  61.         }
  62.     }
  63.     KabelskiOperator(char *i){
  64.         strcpy(ime,i);
  65.         broj=0;
  66.         televizii=0;
  67.     }
  68.     //destructor
  69.    
  70.     //copy
  71.     KabelskiOperator(const KabelskiOperator &k){
  72.         strcpy(ime,k.ime);
  73.         broj=k.broj;
  74.         televizii=new TV[k.broj];
  75.         for(int i=0;i<k.broj;i++){
  76.             televizii[i]=k.televizii[i];  
  77.         }
  78.     }
  79.     //operator=
  80.     KabelskiOperator& operator=(const KabelskiOperator &k){
  81.         if(this!=&k){
  82.             strcpy(ime,k.ime);
  83.             broj=k.broj;
  84.             televizii=new TV[k.broj];
  85.             for(int i=0;i<k.broj;i++){
  86.                 televizii[i]=k.televizii[i];  
  87.             }
  88.         }
  89.         return *this;
  90.     }
  91.     //operator+=  
  92.     KabelskiOperator& operator+=(TV &t){
  93.         if(t.getRejting()>5){
  94.             TV *tmp=new TV[broj+1];
  95.             for(int i=0;i<broj;i++){
  96.                 tmp[i]=televizii[i];
  97.             }
  98.             tmp[broj++]=t;
  99.             delete [] televizii;
  100.            
  101.             televizii=tmp;
  102.            
  103.        }
  104.         return *this;
  105.     }
  106.     //operator <<
  107.     friend ostream& operator<<(ostream &out, KabelskiOperator &k){
  108.         out<<k.ime<<endl;
  109.         for(int i=0;i<k.broj;i++){
  110.             out<<k.televizii[i]<<endl;
  111.         }
  112.         return out;
  113.     }
  114.     void zgolemi(const TV &tv){
  115.         for(int i=0;i<broj;i++){
  116.             if(televizii[i]==tv){
  117.                 ++televizii[i];
  118.                 break;
  119.             }
  120.         }
  121.     }
  122. };
  123.  
  124. int main() {
  125.     int n, x;
  126.     cin >> n >> x;
  127.     char name[100];
  128.     cin >> name;
  129.     KabelskiOperator ko(name);
  130.     TV t;
  131.     for(int i = 0; i < n; ++i) {
  132.         char name[100];
  133.         bool digital;
  134.         int category;
  135.         float rating;
  136.         cin >> name >> digital >> category >> rating;
  137.         TV tv(name, digital, category, rating);
  138.         ko += tv;
  139.         if(i == x) {
  140.             t = tv;
  141.         }
  142.     }
  143.     cout << ko;
  144.     cout << "=== ZGOLEMI ===" << endl;
  145.     cout << t;
  146.     ko.zgolemi(t);
  147.     cout << ko;
  148.     return 0;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement