Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string.h>
- using namespace std;
- /*а потребите на оваа класа да се креираат потребните конструктори и да се напише соодветен деструктор.
- */
- class Statija
- {
- private:
- char naslov[100];
- char avtor[50];
- char *sodrzina;
- bool objavena;
- public:
- Statija(char *naslov="",char *avtor="",char *sodrzina="",bool objavena=false)
- {
- strcpy(this->naslov,naslov);
- strcpy(this->avtor,avtor);
- this->sodrzina=new char[strlen(sodrzina)+1];
- strcpy(this->sodrzina,sodrzina);
- this->objavena=objavena;
- }
- Statija(const Statija &s)
- {
- strcpy(this->naslov,s.naslov);
- strcpy(this->avtor,s.avtor);
- this->sodrzina=new char[strlen(s.sodrzina)+1];
- strcpy(this->sodrzina,s.sodrzina);
- this->objavena=s.objavena;
- }
- Statija &operator =(Statija &s)
- {
- if(this!=&s)
- {
- strcpy(this->naslov,s.naslov);
- strcpy(this->avtor,s.avtor);
- delete [] this->sodrzina;
- this->sodrzina=new char[strlen(s.sodrzina)+1];
- strcpy(this->sodrzina,sodrzina);
- this->objavena=s.objavena;
- }
- return *this;
- }
- ~Statija ()
- {
- delete [] sodrzina;
- }
- char *getSodrzina ()
- {
- return this->sodrzina;
- }
- void setSodrzina(char *sodrzina)
- {
- delete []this->sodrzina;
- this->sodrzina=new char[strlen(sodrzina)+1];
- strcpy(this->sodrzina,sodrzina);
- }
- void pecati()
- {
- cout<<this->naslov<<endl;
- cout<<this->avtor<<endl;
- cout<<this->sodrzina<<endl;
- }
- bool eAvtor(char *a) {
- return strcmp(avtor, a) == 0;
- }
- };
- class Vesnik
- { private:
- char ime[100];
- Statija *ss;
- Statija prva;
- int statii;
- public:
- Vesnik(char *ime="",Statija *ss,int statii=0)
- {
- strcpy(this->ime,ime);
- this->ss=new char Statija[statii];
- for(int i=0;i<statii;i++){
- this->ss[i]=Statija(ss[i]);
- }
- }
- ~Vesnik()
- {
- delete [] ss;
- }
- Vesnik(const Vesnik &v)
- { strcpy(this->ime,v.ime);
- this->ss=new char Statija(v.statii);
- this->ss=ss;
- for(int i=0; i<statii;i++)
- {
- this->ss[i]=Statija(v.ss[i]);
- }
- }
- Vesnik &operator=(Vesnik &v)
- {
- if(this!=&v)
- {
- strcpy(this->ime,v.ime);
- delete []this->ss;
- this->statii=v.statii;
- this->ss=new char Statija[statii];
- for(int i=0;i<statii;i++)
- {
- this->ss[i]=v.ss[i];
- }
- }
- return *this;
- }
- void dodadiStatija(Statija s)
- {
- Statija *temp;
- temp=new Statija[this->statii];
- for(int i=0,i<this->statii,i++)
- {
- temp[i]=Statija(this->ss[i]);
- }
- delete [] s;
- this->ss=new Statija[statii + 1];
- for(int i=0;i<statii)
- {
- this->ss[i]=Statija(this->temp[i]);
- }
- delete [] temp;
- this->ss[statii]=Statija(s);
- statii++;
- }
- void pecatiPrva()
- {
- prva.pecati();
- }
- void pecatiNajdolga()
- {
- for(int i=0;i<this->statii;i++)
- {
- for(int j=i+1;j<this->i+1;i++)
- {
- if(strlen(ss[i].getSodrzina())>strlen(ss[j].getSodrzina()))
- }
- }
- }
- int vkupnoOdAvtor(const char *avtor)
- { int avtorii=0;
- for(int i=0;i<statii;i++)
- {
- if(ss[i].eAvtor(avtor));
- {
- avtorii++;
- }
- }
- }
- };
- class Vesnik
- { private:
- char ime[100];
- Statija *ss;
- Statija prva;
- int statii;
- public:
- Vesnik(char *ime="",Statija *ss,int statii=0)
- {
- strcpy(this->ime,ime);
- this->ss=new char Statija[statii];
- for(int i=0;i<statii;i++){
- this->ss[i]=Statija(ss[i]);
- }
- }
- ~Vesnik()
- {
- delete [] s;
- }
- Vesnik(const Vesnik &v)
- { strcpy(this->ime,v.ime);
- this->ss=new char Statija[v.statii];
- this->ss=ss;
- for(int i=0; i<statii;i++)
- {
- this->ss[i]=Statija(v.ss[i]);
- }
- }
- Vesnik &operator=(Vesnik &v)
- {
- if(this!=&v)
- {
- strcpy(this->ime,v.ime);
- delete []this->ss;
- this->statii=v.statii;
- this->ss=new char Statija[statii];
- for(int i=0;i<statii;i++)
- {
- this->ss[i]=v.ss[i];
- }
- }
- return *this;
- }
- void dodadiStatija(Statija s)
- {
- Statija *temp;
- temp=new Statija[this->statii];
- for(int i=0;i<this-statii,i++)
- {
- temp[i]=Statija(this->ss[i]);
- }
- delete [] s;
- this->ss=new Statija[statii + 1];
- for(int i=0;i<statii)
- {
- this->ss[i]=Statija(this->temp[i]);
- }
- delete [] temp;
- this->ss[statii]=Statija(s);
- statii++;
- }
- void pecatiPrva()
- {
- prva.pecati();
- }
- pecatiNajdolga()
- {
- for(int i=0;i<this->statii;i++)
- {
- for(int j=i+1;j<this->i+1;i++)
- {
- if(strlen())
- }
- }
- }
- vkupnoOdAvtor(const *char avtor)
- { int avtorii=0;
- for(int i=0;i<statii;i++)
- {
- if(ss[i].eAvtor(avtor));
- {
- avtorii++;
- }
- }
- }
- };
- int main() {
- char naslov[100], avtor[50], sodrzina[100];
- int n;
- cin >> n;
- char ime[100];
- cin.getline(ime, 100);
- cin.getline(ime, 100);
- Statija prva("VAZNO","OOP","Vezba:OOP",true);
- Vesnik v(ime,prva);
- Statija **s = new Statija*[n];
- for(int i = 0; i < n; ++i) {
- cin.getline(naslov, 100);
- cin.getline(avtor, 50);
- cin.getline(sodrzina, 100);
- v.dodadiStatija(Statija(naslov, avtor, sodrzina, true)); //se koristi copy konstruktor
- }
- v.pecatiPrva();
- v.pecatiNajdolga();
- cout << v.vkupnoOdAvtor(avtor) << endl;
- for(int i = 0; i < n; ++i) {
- delete s[i];
- }
- delete [] s;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment