Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // vashiot kod ovde
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Statija
- {
- private:
- char naslov[100];
- char avtor[50];
- char *sodrzhina;
- bool objavena;
- public:
- Statija(char *naslov="", char *avtor="", char *sodrzhina="", bool objavena=false)
- {
- strcpy(this->naslov, naslov);
- strcpy(this->avtor, avtor);
- this->sodrzhina = new char[strlen(sodrzhina)+1];
- strcpy(this->sodrzhina, sodrzhina);
- this->objavena = objavena;
- }
- Statija(const Statija &s)
- {
- strcpy(this->naslov, s.naslov);
- strcpy(this->avtor, s.avtor);
- this->sodrzhina = new char[strlen(s.sodrzhina)+1];
- strcpy(this->sodrzhina, s.sodrzhina);
- this->objavena = s.objavena;
- }
- ~Statija()
- {
- delete[]this->sodrzhina;
- }
- Statija &operator = (Statija &s)
- {
- if(this!= &s)
- {
- strcpy(this->naslov, s.naslov);
- strcpy(this->avtor, s.avtor);
- delete[]this->sodrzhina;
- this->sodrzhina = new char[strlen(s.sodrzhina)+1];
- strcpy(this->sodrzhina, s.sodrzhina);
- this->objavena = s.objavena;
- }
- return *this;
- }
- char *getSodrzhina()
- {
- return this->sodrzhina;
- }
- char *getAvtor()
- {
- return this->avtor;
- }
- char *getNaslov()
- {
- return this->naslov;
- }
- bool getObjavena()
- {
- return this->objavena;
- }
- void pecati()
- {
- cout<<this->naslov<<endl;
- cout<<this->avtor<<endl;
- cout<<this->sodrzhina<<endl;
- }
- };
- class Vesnik
- {
- private:
- char ime[100];
- Statija *s;
- int brStatii;
- Statija prva;
- public:
- Vesnik(char *ime="", Statija prva=0)
- {
- strcpy(this->ime, ime);
- this->prva = prva;
- brStatii = 0; /*се друго што не е во конструктор
- иницијализираме на 0*/
- //this->s=new Statija[0];
- s = NULL;
- }
- Vesnik(Vesnik &v)
- {
- strcpy(this->ime, v.ime);
- this->s = new Statija[this->brStatii];
- for(int i=0; i<this->brStatii; i++)
- {
- this->s[i] = v.s[i];
- }
- this->brStatii = v.brStatii;
- this->prva=v.prva;
- }
- Vesnik &operator = (Vesnik &v)
- {
- if(this!=&v)
- {
- strcpy(this->ime, v.ime);
- delete[]this->s;
- this->s = new Statija[this->brStatii];
- for(int i=0; i<this->brStatii; i++)
- {
- this->s[i] = v.s[i];
- }
- this->brStatii = v.brStatii;
- this->prva = v.prva;
- }
- return *this;
- }
- void dodadiStatija(Statija S)
- {
- Statija *tmp;
- tmp = new Statija[this->brStatii];
- for(int i=0; i<this->brStatii; i++)
- {
- tmp[i] = s[i];
- }
- delete[]this->s;
- this->s = new Statija[this->brStatii+1];
- for(int i=0; i<this->brStatii; i++)
- {
- this->s[i] = tmp[i];
- }
- delete[]tmp;
- this->s[brStatii]=S;
- this->brStatii++;
- }
- void pecatiNajdolga()
- {
- int counter;
- int max=0, n;
- for(int i=0; i<this->brStatii; i++)
- {
- n = strlen(s[i].getSodrzhina());
- if(n>max)
- {
- max=n;
- counter = i;
- }
- }
- s[counter].pecati();
- }
- void pecatiPrva()
- {
- prva.pecati();
- }
- int vkupnoOdAvtor(char *avtor)
- {
- int brojac=0;
- for(int i=0; i<this->brStatii; i++)
- {
- if(strcmp(this->s[i].getAvtor(), avtor)==0)
- {
- brojac++;
- }
- }
- return brojac;
- }
- }; //крај класа Vesnik
- int main() {
- char naslov[100], avtor[50], sodrzina[100];
- int brStatii;
- cin >> brStatii;
- 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*[brStatii];
- for(int i = 0; i < brStatii; ++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 < brStatii; ++i) {
- delete s[i];
- }
- delete [] s;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement