Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.98 KB | None | 0 0
  1. #include<iostream>
  2. #include <memory>
  3. #include <tuple>
  4. using namespace std;
  5.  
  6. //narednu liniju code-a ignorisite, osim u slucaju da vam bude predstavljala smetnje u radu
  7. #pragma warning(disable:4996)
  8.  
  9. const char *crt = "\n-------------------------------------------\n";
  10.  
  11. enum vrstaDokumenta { PDF, DOC, TXT, HTML };
  12. const char * vrstaDokumentaChar[] = { "PDF", "DOC", "TXT", "HTML" };
  13.  
  14. enum vrstaAktivnosti { KREIRANJE, DODAVANJE, ZAMJENA, PRINTANJE };
  15. const char * vrstaAktivnostiChar[] = { "KREIRANJE", "DODAVANJE", "ZAMJENA", "PRINTANJE" };
  16.  
  17. const int BROJ_ZNAKOVA_PO_STRANICI = 30;
  18.  
  19. struct DatumVrijeme {
  20. int *_dan, *_mjesec, *_godina, *_sati, *_minuti;
  21. void Unos(int dan = 1, int mjesec = 1, int godina = 2000, int sati = 1, int minuti = 1) {
  22. _dan = new int(dan);
  23. _mjesec = new int(mjesec);
  24. _godina = new int(godina);
  25. _sati = new int(sati);
  26. _minuti = new int(minuti);
  27. }
  28. void Dealociraj() {
  29. delete _dan; _dan = nullptr;
  30. delete _mjesec; _mjesec = nullptr;
  31. delete _godina; _godina = nullptr;
  32. delete _sati; _sati = nullptr;
  33. delete _minuti; _minuti = nullptr;
  34. }
  35. void Ispis() {
  36. cout << *_dan << "." << *_mjesec << "." << *_godina << " " << *_sati << ":" << *_minuti << endl;
  37. }
  38.  
  39. int Dani() {
  40. return *_dan + *_mjesec * 30 + *_godina * 365;
  41. }
  42.  
  43.  
  44. bool IzmedjuDatuma(DatumVrijeme OD, DatumVrijeme DO)
  45. {
  46. return OD.Dani() <= Dani() && DO.Dani() >= Dani();
  47. }
  48.  
  49. unsigned int sumaMinuta() {
  50. return *_godina * 365 * 1440 + *_mjesec * 30 * 1440 + *_dan * 1440 + *_sati * 60 + *_minuti;
  51. }
  52. };
  53.  
  54. char * AlocirajNizKaraktera(const char * sadrzaj) {
  55. int vel = strlen(sadrzaj) + 1;
  56. char * temp = new char[vel];
  57. strcpy_s(temp, vel, sadrzaj);
  58. return temp;
  59. }
  60.  
  61. struct Modifikacija {
  62. char * _korisnicnkoIme;
  63. vrstaAktivnosti _aktivnost;
  64. DatumVrijeme _vrijemeModifikacije;
  65. void Unos(const char * sadrzaj, vrstaAktivnosti aktivnost, DatumVrijeme vm) {
  66. _korisnicnkoIme = AlocirajNizKaraktera(sadrzaj);
  67. _aktivnost = aktivnost;
  68. _vrijemeModifikacije.Unos(*vm._dan, *vm._mjesec, *vm._godina, *vm._dan, *vm._minuti);
  69. }
  70. void Dealociraj() {
  71. delete[] _korisnicnkoIme; _korisnicnkoIme = nullptr;
  72. _vrijemeModifikacije.Dealociraj();
  73. }
  74. void Ispis() { cout << _korisnicnkoIme << " (" << vrstaAktivnostiChar[_aktivnost] << ")"; _vrijemeModifikacije.Ispis(); }
  75.  
  76.  
  77. };
  78.  
  79. struct Dokument {
  80. unique_ptr<vrstaDokumenta> _vrsta;
  81. char * _naziv;
  82. char * _sadrzaj;
  83. Modifikacija * _modifikacije;
  84. int _brojModifikacija;
  85. //vrijeme kreiranja dokumenta je ujedno i vrijeme posljednje modifikacije
  86. void Unos(vrstaDokumenta vrsta, const char * naziv, DatumVrijeme kreiran) {
  87. _naziv = AlocirajNizKaraktera(naziv);
  88. _vrsta = make_unique<vrstaDokumenta>(vrsta);
  89. _brojModifikacija = 0;
  90. _modifikacije = new Modifikacija[_brojModifikacija + 1];
  91. _modifikacije->Unos("", KREIRANJE, kreiran);
  92. _brojModifikacija++;
  93. _sadrzaj = nullptr;
  94. }
  95. void Dealociraj() {
  96. delete[] _naziv; _naziv = nullptr;
  97. if (_sadrzaj != nullptr) {
  98. delete[] _sadrzaj; _sadrzaj = nullptr;
  99. }
  100. for (size_t i = 0; i < _brojModifikacija; i++)
  101. _modifikacije[i].Dealociraj();
  102. delete[] _modifikacije;
  103. _modifikacije = nullptr;
  104. }
  105. void Ispis() {
  106. cout << crt << _naziv << " " << vrstaDokumentaChar[*_vrsta] << " kreiran ";
  107. if (_sadrzaj != nullptr)
  108. cout << crt << _sadrzaj << crt;
  109. for (size_t i = 0; i < _brojModifikacija; i++)
  110. _modifikacije[i].Ispis();
  111. }
  112. void DodajModifikaciju(const char * korisnickoIme, vrstaAktivnosti va, DatumVrijeme d) {
  113.  
  114. Modifikacija *temp = new Modifikacija[_brojModifikacija + 1];
  115. for (size_t i = 0; i < _brojModifikacija; i++)
  116. {
  117. temp[i].Unos(_modifikacije[i]._korisnicnkoIme, _modifikacije[i]._aktivnost,
  118. _modifikacije[i]._vrijemeModifikacije);
  119.  
  120. }
  121. temp[_brojModifikacija].Unos(korisnickoIme, va, d);
  122. if (_brojModifikacija > 0)
  123. delete[]_modifikacije;
  124. _modifikacije = temp;
  125. _brojModifikacija++;
  126. }
  127. /*DODAJE SADRZAJ U FAJL, ZADRZAVAJUCI POSTOJECI. SVAKO DODAVANJE EVIDENTIRATI KAO MODIFIKACIJU. PARAMETRI:SADRZAJ, KORISNICKO IME, VRIJEME MODIFIKACIJE*/
  128. void DodajSadrzaj(const char *sadrzaj, const char* KorisnickoIme, DatumVrijeme d) {
  129.  
  130. if (_sadrzaj == nullptr) {
  131.  
  132. int vel = strlen(sadrzaj) + 1;
  133. _sadrzaj = new char[vel];
  134. strcpy_s(_sadrzaj, vel, sadrzaj);
  135. }
  136.  
  137. else {
  138. int vel1 = strlen(_sadrzaj) + strlen(sadrzaj) + 2;
  139. char *temp = new char[vel1];
  140. strcpy_s(temp, vel1, _sadrzaj);
  141. strcat_s(temp, vel1, sadrzaj);
  142. delete[]_sadrzaj;
  143. _sadrzaj = temp;
  144.  
  145. }
  146. DodajModifikaciju(KorisnickoIme, DODAVANJE, d);
  147.  
  148.  
  149. }
  150. const char * getEkstenzija() {
  151. for (int i = strlen(_naziv) - 1; i >= 0; i--)
  152. {
  153. if (_naziv[i] == '.')
  154. return _naziv + i + 1;
  155. }
  156. return nullptr;
  157. }
  158.  
  159. };
  160.  
  161.  
  162.  
  163. struct Printer {
  164. char * _model;
  165. Dokument * _dokumenti;
  166. int _trenutnoDokumenata;
  167.  
  168. void Unos(const char * model) {
  169. _model = AlocirajNizKaraktera(model);
  170. _dokumenti = nullptr;
  171. _trenutnoDokumenata = 0;
  172. }
  173. void Dealociraj() {
  174. delete[] _model; _model = nullptr;
  175. for (size_t i = 0; i < _trenutnoDokumenata; i++)
  176. _dokumenti[i].Dealociraj();
  177. delete[]_dokumenti; _dokumenti = nullptr;
  178. }
  179. void Ispis() {
  180. cout << _model << crt;
  181. for (size_t i = 0; i < _trenutnoDokumenata; i++)
  182. _dokumenti[i].Ispis();
  183. }
  184. /*
  185. DA BI PRINTER ISPRINTAO NEKI DOKUMENT MORAJU BITI ZADOVOLJENA SLJEDECA PRAVILA:
  186. 1. NAZIV DOKUMENTA MOZE SADRZAVATI SAMO SLOVA, A EKSTENZIJA MORA BITI IDENTICNA ONOJ DEFINISANOJ VRIJEDNOSCU ATRIBUTA vrstaDokumenta
  187. 2. NAD DOKUMENTOM MORAJU BITI IZVRSENE SLJEDECE MODIFIKACIJE:
  188. - 1 KREIRANJE
  189. - 1 ILI VIŠE DODAVANJA
  190. - 1 ILI VIŠE ZAMJENA SADRZAJA
  191. SAMO DOKUMENTI KOJI ZADOVOLJE USLOVE PRINTANJA TREBAJU BITI SACUVANI U NIZ _dokumenti. NA KONZOLU ISPISATI SADRZAJ
  192. DOKUMENTA KOJI SE PRINTA, A SA CRT LINIJOM ODVAJATI STRANICE DOKUMENTA. BROJ STRANICA DOKUMENTA SE AUTOMATSKI ODREDJUJE PRILIKOM PRINTANJA,
  193. A ZAVISI OD VRIJEDNOSTI BROJ_ZNAKOVA_PO_STRANICI UKLJUCUJUCI RAZMAKE I DRUGE VRSTE ZNAKOVA.
  194. ONEMOGUCITI PRINTANJE DOKUMENTA OSOBAMA KOJE NISU NAPRAVILE NAJMANJE JEDNU MODIFIKACIJU NA TOM DOKUMENTU. NAKON PRINTANJA SADRZAJA DOKUMENTA,
  195. POTREBNO JE DOKUMENTU DODATI I MODIFIKACIJU "PRINTANJE".
  196. */
  197.  
  198. bool Printaj(Dokument &d, const char *ip, DatumVrijeme datum) {
  199.  
  200. int brojac = 0;
  201.  
  202. for (int i = 0; i < d._brojModifikacija; i++)
  203. {
  204. if (strcmp(ip, d._modifikacije[i]._korisnicnkoIme) == 0)
  205. brojac++;
  206. }
  207. if (brojac < 1) {
  208. return false;
  209. }
  210.  
  211. else {
  212.  
  213. // NAZIV DOKUMENTA MOZE SADRZAVATI SAMO SLOVA
  214. for (int i = 0; i < strlen(d._naziv); i++)
  215. {
  216. if (!isalpha(d._naziv[i]) && d._naziv[i] != '.') {
  217. return false;
  218. }
  219. }
  220.  
  221. //EKSTENZIJA
  222. const char * potrebnaEkstenzija = vrstaDokumentaChar[*d._vrsta];
  223. const char * ekstenzija = d.getEkstenzija();
  224.  
  225. if (strlen(potrebnaEkstenzija) != strlen(ekstenzija)) {
  226. return false;
  227. }
  228. else {
  229. for (int i = 0; i < strlen(ekstenzija); i++)
  230. {
  231. if (tolower(potrebnaEkstenzija[i]) != tolower(ekstenzija[i])) {
  232. return false;
  233. break;
  234. }
  235. }
  236. }
  237.  
  238. //MODIFIKACIJE
  239. if (*d._vrsta < 0 || *d._vrsta > 3)
  240. return false;
  241.  
  242. int suma[4] = { 0 };
  243. for (int i = 0; i < d._brojModifikacija; i++)
  244. {
  245. suma[d._modifikacije[i]._aktivnost]++;
  246. }
  247. if (suma[0] != 1)
  248. return false;
  249. else if (suma[1] < 1)
  250. return false;
  251. /* else if (suma[2] < 1)
  252. return false;*/
  253.  
  254.  
  255. Dokument *temp = new Dokument[_trenutnoDokumenata + 1];
  256. int vel1;
  257. for (size_t i = 0; i < _trenutnoDokumenata; i++)
  258. {
  259. temp[i].Unos(*_dokumenti[i]._vrsta, _dokumenti[i]._naziv, _dokumenti[i]._modifikacije[0]._vrijemeModifikacije);
  260.  
  261. //temp[i].DodajSadrzaj(_dokumenti[i]._sadrzaj,_dokumenti[i]._modifikacije[0]._korisnicnkoIme,_dokumenti[i]._modifikacije[0]._vrijemeModifikacije);
  262. vel1 = strlen(_dokumenti[i]._sadrzaj) + 1;
  263. temp[i]._sadrzaj = new char[vel1];
  264. strcpy_s(temp[i]._sadrzaj, vel1, _dokumenti[i]._sadrzaj);
  265.  
  266.  
  267. for (int j = 1; j < _dokumenti[i]._brojModifikacija; j++)
  268. {
  269. temp[i].DodajModifikaciju(_dokumenti[i]._modifikacije[j]._korisnicnkoIme, _dokumenti[i]._modifikacije[j]._aktivnost,
  270. _dokumenti[i]._modifikacije[j]._vrijemeModifikacije);
  271. }
  272. }
  273.  
  274. temp[_trenutnoDokumenata].Unos(*d._vrsta, d._naziv, d._modifikacije[0]._vrijemeModifikacije);
  275. vel1 = strlen(d._sadrzaj) + 1;
  276. temp[_trenutnoDokumenata]._sadrzaj = new char[vel1];
  277. strcpy_s(temp[_trenutnoDokumenata]._sadrzaj, vel1, d._sadrzaj);
  278.  
  279. //temp[_trenutnoDokumenata].DodajSadrzaj(d._sadrzaj, d._modifikacije[0]._korisnicnkoIme, d._modifikacije[0]._vrijemeModifikacije);
  280. for (int j = 1; j < d._brojModifikacija; j++)
  281. {
  282. temp[_trenutnoDokumenata].DodajModifikaciju(d._modifikacije[j]._korisnicnkoIme, d._modifikacije[j]._aktivnost, d._modifikacije[j]._vrijemeModifikacije);
  283. }
  284.  
  285. delete[]_dokumenti;
  286. _dokumenti = temp;
  287. _trenutnoDokumenata++;
  288.  
  289. int brojac = -1;
  290. for (size_t i = 0; i < strlen(d._sadrzaj); i++)
  291. {
  292. if (brojac > BROJ_ZNAKOVA_PO_STRANICI) {
  293. cout << crt;
  294. brojac = -1;
  295. }
  296. cout << d._sadrzaj[i];
  297. brojac++;
  298. }
  299.  
  300. _dokumenti[_trenutnoDokumenata - 1].DodajModifikaciju(ip, PRINTANJE, datum);
  301. return true;
  302.  
  303. }
  304. }
  305.  
  306. float GetProsjecanBrojModifikacijaByVrsta(vrstaAktivnosti vrsta, Printer &printer, int brojac = 0, int uspjesni = 0, int brojacM = 0, int suma = 0)
  307. {
  308. if (brojac == printer._trenutnoDokumenata)
  309. {
  310. if (uspjesni == 0)
  311. return uspjesni;
  312. return (float)uspjesni / suma;
  313. }
  314. else
  315. {
  316. if (brojacM == printer._dokumenti[brojac]._brojModifikacija)
  317. return GetProsjecanBrojModifikacijaByVrsta(vrsta, printer, brojac + 1, uspjesni, 0, suma + 1);
  318.  
  319. else if (printer._dokumenti[brojac]._modifikacije[brojacM]._aktivnost == vrsta)
  320. return GetProsjecanBrojModifikacijaByVrsta(vrsta, printer, brojac, uspjesni + 1, brojacM + 1, suma);
  321.  
  322. return GetProsjecanBrojModifikacijaByVrsta(vrsta, printer, brojac, uspjesni, brojacM + 1, suma);
  323. }
  324. return GetProsjecanBrojModifikacijaByVrsta(vrsta, printer, brojac + 1, uspjesni, brojacM, suma);
  325. }
  326.  
  327. pair<Modifikacija*, int> GetModifikacijeByDatum(DatumVrijeme OD, DatumVrijeme DO)
  328. {
  329. int brojac = 0;
  330. for (int i = 0; i < _trenutnoDokumenata; i++)
  331. {
  332. for (int j = 0; j < _dokumenti[i]._brojModifikacija; j++)
  333. {
  334. if (_dokumenti[i]._modifikacije[j]._vrijemeModifikacije.IzmedjuDatuma(OD, DO))
  335. brojac++;
  336. }
  337. }
  338.  
  339. if (brojac == 0)
  340. return make_pair(nullptr, 0);
  341.  
  342. Modifikacija *t = new Modifikacija[brojac];
  343. int indeks = 0;
  344.  
  345. for (int i = 0; i < _trenutnoDokumenata; i++)
  346. {
  347. for (int j = 0; j < _dokumenti[i]._brojModifikacija; j++)
  348. {
  349. if (_dokumenti[i]._modifikacije[j]._vrijemeModifikacije.IzmedjuDatuma(OD, DO))
  350. t[indeks++].Unos(_dokumenti[i]._modifikacije[j]._korisnicnkoIme, _dokumenti[i]._modifikacije[j]._aktivnost,
  351. _dokumenti[i]._modifikacije[j]._vrijemeModifikacije);
  352. }
  353. }
  354. return make_pair(t, brojac);
  355. }
  356.  
  357. };
  358.  
  359.  
  360. int main() {
  361. DatumVrijeme prije3Dana; prije3Dana.Unos(3, 2, 2018, 10, 15);
  362. DatumVrijeme danas1; danas1.Unos(6, 2, 2018, 10, 15);//U KONTEKSTU MODIFIKACIJE, UNOS PODRAZUMIJEVA KREIRANJE
  363. DatumVrijeme danas2; danas2.Unos(6, 2, 2018, 10, 16);
  364. DatumVrijeme za10Dana; za10Dana.Unos(16, 2, 2018, 10, 15);
  365.  
  366. prije3Dana.Ispis();
  367.  
  368.  
  369.  
  370.  
  371. Dokument ispitPRII, ispitMAT, ispitUIT, ispitUITDrugiRok;
  372. ispitPRII.Unos(DOC, "ispitPRII.doc", prije3Dana);
  373. ispitMAT.Unos(DOC, "ispitMAT.doc", danas1);
  374. ispitUIT.Unos(DOC, "ispitUIT.doc", danas2);
  375. ispitUITDrugiRok.Unos(PDF, "ispitUITDrugiRok.pdf", za10Dana);
  376.  
  377.  
  378.  
  379. cout << ispitPRII._modifikacije[0]._korisnicnkoIme << endl;
  380. /*DODAJE SADRZAJ U FAJL, ZADRZAVAJUCI POSTOJECI. SVAKO DODAVANJE EVIDENTIRATI KAO MODIFIKACIJU. PARAMETRI:SADRZAJ, KORISNICKO IME, VRIJEME MODIFIKACIJE*/
  381. ispitPRII.DodajSadrzaj("Programiranje ili racunarsko programiranje (engl. programming) jeste vjestina pomocu koje ", "denis.music", danas1);
  382. ispitPRII.DodajSadrzaj("korisnik stvara i izvrsava algoritme koristeci odredjene programske jezike da bi ... ", "indira.hamulic", danas2);
  383.  
  384. ispitPRII.Ispis();//ISPISUJE SVE PODATKE O DOKUMENTU
  385.  
  386. ispitMAT.DodajSadrzaj("Matematika se razvila iz potrebe da se obavljaju proracuni u trgovini, vrse mjerenja zemljista i predvidjaju ", "jasmin.azemovic", danas1);
  387. ispitMAT.DodajSadrzaj("astronomski dogadjaji, i ove tri primjene se mogu dovesti u vezu sa grubom podjelom matematike ", "adel.handzic", danas2);
  388.  
  389. Printer hp3200; hp3200.Unos("HP 3200");
  390. /*
  391. DA BI PRINTER ISPRINTAO NEKI DOKUMENT MORAJU BITI ZADOVOLJENA SLJEDECA PRAVILA:
  392. 1. NAZIV DOKUMENTA MOZE SADRZAVATI SAMO SLOVA, A EKSTENZIJA MORA BITI IDENTICNA ONOJ DEFINISANOJ VRIJEDNOSCU ATRIBUTA vrstaDokumenta
  393. 2. NAD DOKUMENTOM MORAJU BITI IZVRSENE SLJEDECE MODIFIKACIJE:
  394. - 1 KREIRANJE
  395. - 1 ILI VIŠE DODAVANJA
  396. - 1 ILI VIŠE ZAMJENA SADRZAJA
  397. SAMO DOKUMENTI KOJI ZADOVOLJE USLOVE PRINTANJA TREBAJU BITI SACUVANI U NIZ _dokumenti. NA KONZOLU ISPISATI SADRZAJ DOKUMENTA KOJI SE PRINTA, A SA CRT LINIJOM ODVAJATI STRANICE DOKUMENTA.
  398. BROJ STRANICA DOKUMENTA SE AUTOMATSKI ODREDJUJE PRILIKOM PRINTANJA, A ZAVISI OD VRIJEDNOSTI BROJ_ZNAKOVA_PO_STRANICI UKLJUCUJUCI RAZMAKE I DRUGE VRSTE ZNAKOVA.
  399. ONEMOGUCITI PRINTANJE DOKUMENTA OSOBAMA KOJE NISU NAPRAVILE NAJMANJE JEDNU MODIFIKACIJU NA TOM DOKUMENTU. NAKON PRINTANJA SADRZAJA DOKUMENTA, POTREBNO JE DOKUMENTU DODATI I MODIFIKACIJU "PRINTANJE".
  400. */
  401. cout << "Printanje -> " << endl;
  402. if (hp3200.Printaj(ispitPRII, "denis.music", za10Dana))
  403. cout << "Printam -> " << ispitPRII._naziv << endl;
  404. if (hp3200.Printaj(ispitMAT, "denis.music", za10Dana))
  405. cout << "Printam -> " << ispitMAT._naziv << endl;
  406. if (hp3200.Printaj(ispitUIT, "iris.memic", za10Dana))
  407. cout << "Printam -> " << ispitUIT._naziv << endl;
  408. if (hp3200.Printaj(ispitUITDrugiRok, "goran.skondric", za10Dana))
  409. cout << "Printam -> " << ispitUITDrugiRok._naziv << endl;
  410.  
  411. //REKURZIVNA FUNKCIJA VRACA PROSJECAN BROJ MODIFIKACIJA ODREDJENE VRSTE KOJE SU VRSENE NAD PRINTANIM DOKUMENTIMA
  412. cout << "Prosjecan broj modifikacija odrejdne vrste printanih dokumenata je -> " << hp3200.GetProsjecanBrojModifikacijaByVrsta(DODAVANJE, hp3200,0,0,0,0) << crt;
  413.  
  414. Modifikacija * pok = nullptr;
  415. int brojac = 0;
  416. cout << "Modikacije napravljenje u periodu od ";
  417. danas1.Ispis();
  418. cout << " do ";
  419. za10Dana.Ispis();
  420. cout << endl;
  421. //FUNKCIJA GetModifikacijeByDatum VRACA SVE MODIFIKACIJE KOJE SU NAPRAVLJENE NA DOKUMENTIMA U PERIODU OD - DO (PROSLIJEDJENOM KAO PARAMETAR)
  422. tie(pok, brojac) = hp3200.GetModifikacijeByDatum(danas1, za10Dana);
  423. if (brojac > 0 && pok != nullptr)
  424. for (size_t i = 0; i < brojac; i++)
  425. pok[i].Ispis();
  426. cout << "...............kraj funckije pair-a .............." << endl;
  427. ////ISPISUJE INFORMACIJE O SVIM DOKUMENTIMA KOJI SU ISPRINTANI
  428. hp3200.Ispis();
  429.  
  430. /*NAPISATI LAMBDA FUNKCIJU ZamijeniIPrintaj KOJA U SADRZAJU SVIH PRINTANIH DOKUMENATA MIJENJA PRVI POSLATI PARAMETAR SA VRIJEDNOSCU DRUGOG PARAMETRA, TE VRACA BROJ ZAMIJENJENIH ZNAKOVA*/
  431. //RAZMAK MIJENJA ZNAKOM CRTICA U SADRZAJU DOKUMENATA KOJI SU PRINTANI danas1. ZAMJENU REGISTROVATI KAO MODIFIKACIJU
  432. auto Zamijeni = [&hp3200](char uslov, char znak, const char* imePrezime, DatumVrijeme datum) -> int
  433. {
  434. int brojac = 0;
  435. for (int i = 0; i < hp3200._trenutnoDokumenata; i++)
  436. {
  437.  
  438.  
  439. if (hp3200._dokumenti[i]._modifikacije[hp3200._dokumenti[i]._brojModifikacija - 1]._vrijemeModifikacije.Dani() == datum.Dani())
  440. {
  441. int vel = strlen(hp3200._dokumenti[i]._sadrzaj);
  442. for (int x = 0; x < vel; x++)
  443. {
  444. if (hp3200._dokumenti[i]._sadrzaj[x] == uslov)
  445. {
  446. hp3200._dokumenti[i]._sadrzaj[x] = znak;
  447. brojac++;
  448. };
  449. }
  450. }
  451.  
  452. }
  453. return brojac;
  454. };
  455.  
  456.  
  457. int zamijenjeno = Zamijeni(' ', '-', "denis.music", za10Dana);
  458. cout << "Zamijenjeno -> " << zamijenjeno << " znakova" << endl;
  459. hp3200.Ispis();
  460.  
  461.  
  462. prije3Dana.Dealociraj(); danas1.Dealociraj(); danas2.Dealociraj(); za10Dana.Dealociraj();
  463. ispitMAT.Dealociraj(); ispitPRII.Dealociraj(); ispitUIT.Dealociraj(); ispitUITDrugiRok.Dealociraj();
  464.  
  465. hp3200.Dealociraj();
  466. system("pause");
  467. return 0;
  468.  
  469. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement