Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- using namespace std;
- class Statija
- {
- char naslov[100];
- char avtor[50];
- char *sodrzina;
- bool objavena;
- public:
- Statija() {}
- Statija(const char* naslov, const char* avtor, const char *sodrzina, bool objavena){
- strcpy(this->naslov, naslov);
- strcpy(this->avtor, avtor);
- this->sodrzina = new char[strlen(sodrzina) + 1];
- strcpy(this->sodrzina, sodrzina);
- this->objavena = objavena;
- }
- Statija& operator= (Statija &k){
- if (this != &k){
- strcpy(naslov, k.naslov);
- strcpy(avtor, k.avtor);
- sodrzina = new char[strlen(k.sodrzina) + 1];
- strcpy(sodrzina, k.sodrzina);
- objavena = k.objavena;
- }
- return *this;
- }
- Statija(const Statija& k){
- strcpy(naslov, k.naslov);
- strcpy(avtor, k.avtor);
- sodrzina = new char[strlen(k.sodrzina) + 1];
- strcpy(sodrzina, k.sodrzina);
- objavena = k.objavena;
- }
- void pecati(){
- cout << naslov << endl << avtor << endl << sodrzina << endl;
- }
- friend class Vesnik;
- ~Statija(){
- delete[] sodrzina;
- }
- };
- class Vesnik
- {
- char ime[100];
- Statija *p;
- int statii;
- Statija prva;
- public:
- Vesnik() {}
- Vesnik(char *ime, Statija prva){
- strcpy(this->ime, ime);
- this->prva = prva;
- statii = 0;
- }
- void dodadiStatija(Statija &s){
- Statija *tmp = new Statija[statii + 1];
- for (int i = 0; i<statii; i++){
- tmp[i] = p[i];
- }
- tmp[statii++] = s;
- if (statii!=1)
- delete[] p;
- p = tmp;
- }
- void pecatiNajdolga(){
- int max = strlen(p[0].sodrzina);
- int indeks = 0;
- for (int i = 0; i<statii; i++){
- if (strlen(p[i].sodrzina)>max){
- max = strlen(p[i].sodrzina);
- indeks = i;
- }
- }
- p[indeks].pecati();
- }
- void pecatiPrva(){
- prva.pecati();
- }
- int vkupnoOdAvtor(const char *avtor){
- int n = 0;
- for (int i = 0; i<statii; i++){
- if (!(strcmp(p[i].avtor, avtor))){
- n++;
- }
- }
- return n;
- }
- ~Vesnik(){
- delete[] p;
- }
- };
- 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);
- //prva.pecati();
- Vesnik v(ime, prva);
- //Vesnik v;
- //Statija **s = new Statija*[n];
- for (int i = 0; i < n; ++i) {
- cin.getline(naslov, 100);
- cin.getline(avtor, 50);
- cin.getline(sodrzina, 100);
- Statija s(naslov, avtor, sodrzina, true);
- v.dodadiStatija(s); //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
Advertisement