Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- // vashiot kod ovde
- void string_copy(char* dest,const char* source,const int length) {
- strncpy(dest, source, length);
- dest[length] = 0;
- }
- class TV {
- char ime[100];
- bool digital;
- int kategorija;
- float rejting;
- public:
- TV(const char* _ime = "", const bool _digital = false, const int _kategorija = 0, const float _rejting = 0.0) {
- string_copy(ime, _ime, 99);
- digital = _digital;
- kategorija = _kategorija;
- rejting = _rejting;
- }
- TV(const TV& obj) {
- string_copy(ime, obj.ime, 99);
- digital = obj.digital;
- kategorija = obj.kategorija;
- rejting = obj.rejting;
- }
- TV& operator=(const TV& obj) {
- if(this != &obj) {
- string_copy(ime, obj.ime, 99);
- digital = obj.digital;
- kategorija = obj.kategorija;
- rejting = obj.rejting;
- }
- return *this;
- }
- bool operator==(const TV& obj) {
- return (strcmp(ime, obj.ime) == 0) && (kategorija == obj.kategorija);
- }
- TV& operator++() {
- rejting += 0.5;
- return *this;
- }
- friend ostream& operator<<(ostream& out, const TV& obj) {
- out << obj.ime << endl;
- out << (obj.digital ? ("D") : ("A")) << endl;
- out << obj.kategorija << endl;
- out << obj.rejting << endl;
- return out;
- }
- ~TV() {}
- float getRejting() const { return rejting; }
- };
- class KabelskiOperator {
- char ime[100];
- TV* tvs;
- int broj_televizii;
- public:
- KabelskiOperator(const char* _ime = "") {
- string_copy(ime, _ime, 99);
- broj_televizii = 0;
- tvs = NULL;
- }
- KabelskiOperator(const KabelskiOperator& obj) {
- string_copy(ime, obj.ime, 99);
- broj_televizii = obj.broj_televizii;
- tvs = new TV[broj_televizii];
- for(int i = 0; i < broj_televizii; ++i) {
- tvs[i] = obj.tvs[i];
- }
- }
- KabelskiOperator& operator=(const KabelskiOperator& obj) {
- if(this != &obj) {
- string_copy(ime, obj.ime, 99);
- broj_televizii = obj.broj_televizii;
- delete [] tvs;
- tvs = new TV[broj_televizii];
- for(int i = 0; i < broj_televizii; ++i) {
- tvs[i] = obj.tvs[i];
- }
- }
- return *this;
- }
- KabelskiOperator& operator+=(const TV& obj) {
- if(obj.getRejting() > 5) {
- TV* temp = new TV[broj_televizii+1];
- for(int i = 0; i < broj_televizii; ++i) {
- temp[i] = tvs[i];
- }
- delete [] tvs;
- tvs = temp;
- tvs[broj_televizii++] = obj;
- }
- return *this;
- }
- friend ostream& operator<<(ostream& out, const KabelskiOperator& obj) {
- out << obj.ime << endl;
- for(int i = 0; i < obj.broj_televizii; ++i) {
- out << obj.tvs[i] << endl;
- }
- return out;
- }
- ~KabelskiOperator() {
- delete [] tvs;
- }
- void zgolemi(const TV& tv) {
- for(int i = 0; i < broj_televizii; ++i) {
- if(tvs[i] == tv) {
- ++tvs[i];
- break;
- }
- }
- }
- };
- int main() {
- int n, x;
- cin >> n >> x;
- char name[100];
- cin >> name;
- KabelskiOperator ko(name);
- TV t;
- for(int i = 0; i < n; ++i) {
- char name[100];
- bool digital;
- int category;
- float rating;
- cin >> name >> digital >> category >> rating;
- TV tv(name, digital, category, rating);
- ko += tv;
- if(i == x) {
- t = tv;
- }
- }
- cout << ko;
- cout << "=== ZGOLEMI ===" << endl;
- cout << t;
- ko.zgolemi(t);
- cout << ko;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement