rijads

armin II parc.

Jun 9th, 2014
391
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.09 KB | None | 0 0
  1. #include<iostream>
  2. #include<iomanip>
  3. #include<cmath>
  4. #include<assert.h>
  5. #include<cstring>
  6. #include<conio.h>
  7. #include<fstream>
  8. #include<ctime>
  9. using namespace std;
  10.  
  11. int brojac = 0;
  12.  
  13. struct Datum{
  14.     int _dan, _mjesec, _godina;
  15.  
  16.     void Unos(int d, int m, int g)
  17.     {
  18.         _dan = d;
  19.         _mjesec = m;
  20.         _godina = g;
  21.     }
  22.  
  23.     void Ispis()
  24.     {
  25.         cout << "/" << _dan;
  26.         cout << "/" << _mjesec;
  27.         cout << "/" << _godina;
  28.  
  29.     }
  30.  
  31. };
  32. struct PolozeniPredmet{
  33.     char *_naziv;
  34.     Datum *_datumPolaganja;
  35.     int _ocjena;
  36.     bool *_priznat;
  37.     void Unos(char *naziv, Datum d, int *ocjena, bool *priznat = false)
  38.     {
  39.         _naziv = new char[strlen(naziv) + 1];
  40.         _naziv = naziv;
  41.         _datumPolaganja = new Datum;
  42.         *_datumPolaganja = d;
  43.         _ocjena = *ocjena;
  44.  
  45.         _priznat = priznat;
  46.     }
  47.     void Ispis(){
  48.         cout << endl;
  49.         cout << _naziv << endl;
  50.         cout << _ocjena << endl;
  51.         _datumPolaganja->Ispis();
  52.         if (_priznat)
  53.             cout << "priznat" << endl;
  54.     }
  55.     void Delociraj()
  56.     {
  57.         delete[] _naziv;
  58.         _naziv = NULL;
  59.     }
  60. };
  61. struct Student{
  62.     int _brojIndeksa;
  63.     char *_imePrezime;
  64.     Datum _datumRodenja;
  65.     PolozeniPredmet *_polozeniPredmeti[40];
  66.     int *_trenutnoPolozeni;
  67.  
  68.     void Unos(int indeks, char *imePrezime, Datum *datumRodenja, PolozeniPredmet pol){
  69.         _trenutnoPolozeni = new int(0);
  70.         _brojIndeksa = indeks;
  71.         _imePrezime = new char[strlen(imePrezime) + 1];
  72.         _imePrezime = imePrezime;
  73.         _datumRodenja = *datumRodenja;
  74.         _polozeniPredmeti[0] = new PolozeniPredmet;
  75.         _polozeniPredmeti[0]->Unos(pol._naziv, *pol._datumPolaganja, &pol._ocjena);
  76.         (*_trenutnoPolozeni)++;
  77.  
  78.     }
  79.     void Ispis(){
  80.         cout << _brojIndeksa << endl;
  81.         cout << *_trenutnoPolozeni << endl;
  82.         cout << _imePrezime << endl;
  83.         _datumRodenja.Ispis();
  84.         for (int i = 0; i < *_trenutnoPolozeni; i++)
  85.         {
  86.             _polozeniPredmeti[i]->Ispis();
  87.         }
  88.  
  89.     }
  90.     bool DodajPolozeni(char *naziv, Datum datum, int *ocjena)
  91.     {
  92.         for (int i = 0; i < *_trenutnoPolozeni; i++)
  93.         {
  94.             if (strcmp(_polozeniPredmeti[i]->_naziv, naziv) == 0)
  95.                 return false;
  96.         }
  97.  
  98.  
  99.         _polozeniPredmeti[*_trenutnoPolozeni] = new PolozeniPredmet();
  100.         _polozeniPredmeti[*_trenutnoPolozeni]->Unos(naziv, datum, ocjena);
  101.  
  102.         *_trenutnoPolozeni = *_trenutnoPolozeni + 1;
  103.  
  104.         return true;
  105.     }
  106.     int UkloniPolozeni(Datum *datum){
  107.         bool veci = false;
  108.         int b2 = 0;
  109.         for (int i = 0; i < *_trenutnoPolozeni; i++)
  110.         {
  111.             if (_polozeniPredmeti[i]->_datumPolaganja->_godina > datum->_godina)
  112.                 veci = true;
  113.             else if (_polozeniPredmeti[i]->_datumPolaganja->_godina = datum->_godina)
  114.             {
  115.                 if (_polozeniPredmeti[i]->_datumPolaganja->_mjesec > datum->_mjesec)
  116.                     veci = true;
  117.                 else if (_polozeniPredmeti[i]->_datumPolaganja->_dan > datum->_dan)
  118.                     veci = true;
  119.             }
  120.  
  121.  
  122.             if (veci && _polozeniPredmeti[i]->_priznat == false)
  123.             {
  124.                 _polozeniPredmeti[i] = _polozeniPredmeti[i + 1];
  125.                 b2++;
  126.                 *_trenutnoPolozeni = *_trenutnoPolozeni - 1;
  127.             }
  128.         }
  129.         return b2;
  130.  
  131.     }
  132.     PolozeniPredmet *GetPolozenibyNaziv(char *naziv)
  133.     {
  134.  
  135.         char *p = NULL;
  136.         for (int i = 0; i < *_trenutnoPolozeni; i++)
  137.         {
  138.             p = strstr(_polozeniPredmeti[i]->_naziv, naziv);
  139.             if (p != NULL)
  140.                 brojac++;
  141.  
  142.         }
  143.         PolozeniPredmet *niz = new PolozeniPredmet[brojac];
  144.         brojac = 0;
  145.  
  146.         for (int i = 0; i < *_trenutnoPolozeni; i++)
  147.         {
  148.             p = strstr(_polozeniPredmeti[i]->_naziv, naziv);
  149.             if (p != NULL)
  150.                 niz[brojac] = *_polozeniPredmeti[i];
  151.             brojac++;
  152.         }
  153.         if (brojac = 0)
  154.         {
  155.             return NULL;
  156.         }
  157.         else
  158.         {
  159.             return niz;
  160.         }
  161.  
  162.     }
  163.  
  164. };
  165.  
  166.  
  167.  
  168. void main(){
  169.     Student s1;
  170.     Datum d1, d2;
  171.     int ocj = 10;
  172.     bool *pr = new bool(true);
  173.     PolozeniPredmet p1, p2;
  174.     d1.Unos(12, 21, 3423);
  175.     d2.Unos(23, 45, 3456);
  176.     p1.Unos("pr1", d1, &ocj);
  177.     p2.Unos("r2ssss", d2, &ocj, pr);
  178.  
  179.     s1.Unos(123, "armin roksa", &d1, p1);
  180.     if (s1.DodajPolozeni("haha", d2, &ocj))
  181.         cout << "dodan" << endl;
  182.     else
  183.         cout << "nije" << endl;
  184.     cout << "trenutnop" << *s1._trenutnoPolozeni << endl;
  185.     s1.Ispis();
  186.  
  187.     PolozeniPredmet *p;
  188.     p = s1.GetPolozenibyNaziv("haha");
  189.     if (p != NULL)
  190.     {
  191.         cout << "ima" << endl;
  192.  
  193.     }
  194.     else
  195.         cout << "nema nista" << endl;
  196.     s1.UkloniPolozeni(&d1);
  197.     s1.Ispis();
  198.  
  199.     system("pause>0");
  200. }
Advertisement
Add Comment
Please, Sign In to add comment