Advertisement
chasnasestra

Кабелски телевизии

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