Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct DatumVrijeme
- {
- int* _dan;
- int* _mjesec;
- int* _godina;
- int* _sati;
- int* _minute;
- //Standardne funkcije(unos,ispis,dealokacija)
- void Unos()
- {
- cout << "Unesite dan, mjesec i godinu : " << endl;
- int tmp;
- cin >> tmp;
- _dan = new int(tmp);
- cin >> tmp;
- _mjesec = new int(tmp);
- cin >> tmp;
- _godina = new int(tmp);
- cout << "Unesite sate i minute : " << endl;
- cin >> tmp;
- _sati = new int(tmp);
- cin >> tmp;
- _minute = new int(tmp);
- cin.ignore();
- }
- void Ispis()
- {
- cout << "Datum : " << *_dan << "/" << *_mjesec << "/" << *_godina << endl;
- cout << "Vrijeme : " << *_sati << "/" << *_minute << endl;
- }
- void Dealociraj() {
- delete _dan; _dan = nullptr;
- delete _mjesec; _mjesec = nullptr;
- delete _godina; _godina = nullptr;
- delete _sati; _sati = nullptr;
- delete _minute; _minute = nullptr;
- }
- void Kopiraj(DatumVrijeme d) {
- _dan = new int(*d._dan);
- _mjesec = new int(*d._mjesec);
- _godina = new int(*d._godina);
- _minute = new int(*d._minute);
- _sati = new int(*d._sati);
- }
- bool istiDatum(DatumVrijeme d)
- {
- if (d._dan == _dan && d._mjesec == _mjesec && d._godina == _godina)
- return true;
- return false;
- }
- };
- struct Korisnik
- {
- char *_korisnickoIme;
- int _godinaRodjenja;
- //Standardne funkcije
- void Unos() {
- cout << "Unesite korisnicko ime : " << endl;
- char tmp[100];
- cin.getline(tmp, 100);
- _korisnickoIme = new char[strlen(tmp) + 1];
- strcpy_s(_korisnickoIme, strlen(tmp) + 1, tmp);
- cout << "Unesite godinu rodjenja : " << endl;
- cin >> _godinaRodjenja;
- cin.ignore();
- }
- void Ispis() {
- cout << "Korisnicko ime : " << _korisnickoIme << endl;
- cout << "Godina rodjenja : " << _godinaRodjenja << endl;;
- }
- void Dealociraj() {
- delete[]_korisnickoIme; _korisnickoIme = nullptr;
- }
- void Kopiraj(Korisnik k) {
- _korisnickoIme = new char[strlen(k._korisnickoIme)+1];
- strcpy_s(_korisnickoIme, strlen(k._korisnickoIme)+1, k._korisnickoIme);
- _godinaRodjenja = k._godinaRodjenja;
- }
- };
- struct Komentar
- {
- char * _komentar;
- DatumVrijeme _vrijemeKomentara;
- Korisnik _korisnik;
- //Standardne funkcije
- void Unos() {
- cout << "Unesite komentar : " << endl;
- char tmp[100];
- cin.getline(tmp, 100);
- _komentar = new char[strlen(tmp) + 1];
- strcpy_s(_komentar, strlen(tmp) + 1, tmp);
- cout << "***VRIJEME KOMENTARA***" << endl;
- _vrijemeKomentara.Unos();
- cout << "***KORISTNIK KOMENTARA***" << endl;
- _korisnik.Unos();
- }
- void Ispis() {
- cout << "Komentar : " << _komentar;
- cout << "***VRIJEME KOMENTARA***" << endl;
- _vrijemeKomentara.Ispis();
- cout << "***KORISNIK KOMENTARA***" << endl;
- _korisnik.Ispis();
- }
- void Kopiraj(Komentar k){
- _komentar = new char[strlen(k._komentar) + 1];
- strcpy_s(_komentar, strlen(k._komentar) + 1, k._komentar);
- _vrijemeKomentara.Kopiraj(k._vrijemeKomentara);
- _korisnik.Kopiraj(k._korisnik);
- }
- void Dealociraj()
- {
- _vrijemeKomentara.Dealociraj();
- _korisnik.Dealociraj();
- delete[] _komentar; _komentar = nullptr;
- }
- };
- struct Objava
- {
- char * _tekst;
- DatumVrijeme _vrijemeObjave;
- Korisnik _korisnik;
- Komentar * _komentari;//komentari na objavu
- int _trenutnoKomentara;
- //Standardne funkcije
- void Unos() {
- cout << "***UNOS OBJAVE***" << endl;
- cout << "Unesite tekst : " << endl;
- char tmp[100];
- cin.getline(tmp, 100);
- _tekst = new char[strlen(tmp) + 1];
- strcpy_s(_tekst, strlen(tmp) + 1, tmp);
- cout << "*** VRIJEME OBJAVE ***" << endl;
- _vrijemeObjave.Unos();
- cout << "*** KORISNIK OBJAVE *** " << endl;
- _korisnik.Unos();
- _trenutnoKomentara = 0;
- _komentari = nullptr;
- }
- void Ispis() {
- cout << "***ISPIS OBJAVE***" << endl;
- cout << "Tekst : " << _tekst << endl;
- cout << "***VRIJEME OBJAVE***" << endl;
- _vrijemeObjave.Ispis();
- cout << "***ISPIS KORISNIKA***" << endl;
- _korisnik.Ispis();
- cout << "***ISPIS KOMENTARA***" << endl;
- cout << "Trenutno komentara : " << _trenutnoKomentara << endl;
- for (int i = 0; i < _trenutnoKomentara; i++)
- _komentari[i].Ispis();
- }
- void Dealociraj() {
- delete[] _tekst; _tekst = nullptr;
- _vrijemeObjave.Dealociraj();
- _korisnik.Dealociraj();
- for (int i = 0; i < _trenutnoKomentara; i++)
- _komentari[i].Dealociraj();
- delete[] _komentari;
- }
- void dodajKomentar(char * komentar, DatumVrijeme vrijemeKomentara, Korisnik k) {
- Komentar* noviNiz = new Komentar[_trenutnoKomentara + 1];
- for (int i = 0; i < _trenutnoKomentara; i++)
- noviNiz[i].Kopiraj(_komentari[i]);
- cout << "***DODAJ KOMENTAR***" << endl;
- /*cout << "Upisite komentar : " << endl;
- char tmp[100];
- cin.getline(tmp, 100);
- komentar = new char[strlen(tmp) + 1];
- strcpy_s(komentar, strlen(tmp) + 1, tmp);
- noviNiz[_trenutnoKomentara]._komentar = komentar;*/
- noviNiz[_trenutnoKomentara]._komentar = new char[strlen(komentar) + 1];
- strcpy_s(noviNiz[_trenutnoKomentara]._komentar, strlen(komentar) + 1, komentar);
- cout <<"***VRIJEME KOMENTARA***" << endl;
- noviNiz[_trenutnoKomentara]._vrijemeKomentara.Kopiraj(vrijemeKomentara);
- cout << "***KORISNIK KOMENTARA***" << endl;
- noviNiz[_trenutnoKomentara]._korisnik.Kopiraj(k);
- for (int i = 0; i < _trenutnoKomentara; i++)
- _komentari[i].Dealociraj();
- delete[] _komentari;
- _komentari = noviNiz;
- _trenutnoKomentara++;
- }
- void dodajKomentar(Komentar k) {
- char* komentar;
- cout << "Upisite komentar : " << endl;
- char tmp[100];
- cin.getline(tmp, 100);
- komentar = new char[strlen(tmp) + 1];
- strcpy_s(komentar, strlen(tmp) + 1, tmp);
- dodajKomentar(komentar, k._vrijemeKomentara, k._korisnik);
- }
- void dodajKomentar() {
- Komentar* noviNiz = new Komentar[_trenutnoKomentara + 1];
- for (int i = 0; i < _trenutnoKomentara; i++)
- noviNiz[i].Kopiraj(_komentari[i]);
- noviNiz[_trenutnoKomentara].Unos();
- for (int i = 0; i < _trenutnoKomentara; i++)
- _komentari[i].Dealociraj();
- delete[]_komentari;
- _komentari = noviNiz;
- _trenutnoKomentara++;
- }
- //uklanja komentar na osnovu vremena kada je isti dodan
- bool ukloniKomentar(DatumVrijeme vrijemeKomentara);
- };
- //U main funkciji napraviti vise objava, pronaci objavu koja ima najvise komentara
- //Ispisati objavu u main funkciji
- Objava* NajaktivnijaObjave(Objava * objave);
- void main()
- {
- Objava a;
- DatumVrijeme d;
- Korisnik k;
- //d.Unos();
- //k.Unos();
- a.Unos();
- //a.dodajKomentar("tekst",d,k);
- a.dodajKomentar();
- a.dodajKomentar();
- a.Ispis();
- system("pause>0");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement