Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- void string_copy(char* destination, const char* source, int lenght){
- strncpy(destination, source, lenght);
- destination[lenght] = 0;
- }
- class TV {
- private:
- char ime_na_televizija[100];
- bool vid;
- int kategorija;
- float rejting;
- public:
- TV(const char* i ="", const bool v= true, const int k = 0, const float r = 0.0){
- string_copy(ime_na_televizija, i, 99);
- vid = v;
- kategorija = k;
- rejting = r;
- }
- TV(const TV &t){
- string_copy(ime_na_televizija, t.ime_na_televizija, 99);
- vid = t.vid;
- kategorija = t.kategorija;
- rejting = t.rejting;
- }
- TV &operator = (const TV &t){
- if(this != &t){
- string_copy(ime_na_televizija, t.ime_na_televizija, 99);
- vid = t.vid;
- kategorija = t.kategorija;
- rejting = t.rejting;
- }
- return *this;
- }
- friend ostream &operator << (ostream &o, const TV &t){
- o<<t.ime_na_televizija<<endl;
- o<<(t.vid ? ("D") : ("A"))<<endl;
- o<<t.kategorija<<endl;
- o<<t.rejting<<endl;
- return o;
- }
- bool operator ==(const TV &t){
- return (strcmp(ime_na_televizija, t.ime_na_televizija) == 0) && (kategorija == t.kategorija);
- }
- TV &operator ++ (){
- rejting+=0.5;
- return *this;
- }
- float getR() const {
- return rejting;
- }
- ~TV(){}
- };
- class KabelskiOperator{
- private:
- char ime_na_operator[100];
- TV* televizija;
- int broj_na_televizii;
- public:
- KabelskiOperator(const char*ime = ""){
- string_copy(ime_na_operator, ime, 99);
- broj_na_televizii = 0;
- televizija = 0;
- }
- KabelskiOperator(const KabelskiOperator &k){
- string_copy(ime_na_operator, k.ime_na_operator, 99);
- broj_na_televizii = k.broj_na_televizii;
- televizija = new TV[broj_na_televizii];
- for(int i = 0; i < broj_na_televizii; i++){
- televizija[i] = k.televizija[i];
- }
- }
- KabelskiOperator &operator = (const KabelskiOperator &k){
- if(this != &k){
- string_copy(ime_na_operator, k.ime_na_operator, 99);
- broj_na_televizii = k.broj_na_televizii;
- delete [] televizija;
- televizija = new TV[broj_na_televizii];
- for(int i = 0; i < broj_na_televizii; i++){
- televizija[i] = k.televizija[i];
- }
- }
- return *this;
- }
- friend ostream &operator << (ostream &o, const KabelskiOperator &k){
- o<<k.ime_na_operator<<endl;
- for(int i = 0; i < k.broj_na_televizii; i++){
- o<<k.televizija[i]<<endl;
- }
- return o;
- }
- KabelskiOperator &operator += (const TV &t){
- if(t.getR() > 5){
- TV *tmp = new TV[broj_na_televizii + 1];
- for(int i = 0; i < broj_na_televizii; i++){
- tmp[i] = televizija[i];
- }
- delete [] televizija;
- televizija = tmp;
- televizija[broj_na_televizii++] = t;
- }
- return *this;
- }
- void zgolemi(const TV &t){
- for(int i = 0; i < broj_na_televizii; i++){
- if(televizija[i] == t){
- ++televizija[i];
- break;
- }
- }
- }
- ~KabelskiOperator(){
- delete [] televizija;
- }
- };
- 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