Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef _MSC_VER
- #define _CRT_SECURE_NO_WARNINGS
- #endif
- #include <iostream>
- using namespace std;
- char crt[] = { "\n----------------------------------\n" };
- // ispitni 5
- struct Datum{
- int _dan;
- int _mjesec;
- int _godina;
- void Unos(int d, int m, int g){
- _dan = d;
- _mjesec = m;
- _godina = g;
- }
- void Ispis(){
- cout << "DATUM [dd/mm/gggg] -> [" << _dan << "/" << _mjesec << "/" << _godina <<"]" <<endl;
- }
- };
- struct PolozeniPredmet{
- char * _naziv;
- int _ocjena;
- Datum _datumPolaganja;
- void Unos(char *naziv, int ocjena, Datum datum){
- _naziv = new char[strlen(naziv) + 1];
- strcpy(_naziv, naziv);
- _ocjena = ocjena;
- _datumPolaganja.Unos(datum._dan, datum._mjesec, datum._godina);
- }
- void Ispis(){
- cout << "Naziv predmeta: " << _naziv << endl;
- cout << "Ocjena: " << _ocjena << endl;
- _datumPolaganja.Ispis();
- }
- void Dealokacija(){
- delete[]_naziv;
- _naziv = nullptr;
- }
- };
- struct Student{
- char * _imePrezime;
- int _index;
- PolozeniPredmet * Polozeni[40];
- int _brojPolozenih;
- void Unos(char * imePrezime, int index){
- _imePrezime = new char[strlen(imePrezime) + 1];
- _index = index;
- _brojPolozenih = 0;
- }
- void Ispis(){
- cout << "Ime prezime: " << _imePrezime << endl;
- cout << "Index: " << _index << endl;
- for (int i = 0; i < _brojPolozenih; i++)
- Polozeni[i]->Ispis();
- }
- void AddPolozeni(char * naziv, int ocjena, Datum datum){
- if (_brojPolozenih >= 40) { cout << "Nema dovoljno prostora!" << endl; return; }
- Polozeni[_brojPolozenih] = new PolozeniPredmet;
- Polozeni[_brojPolozenih]->Unos(naziv, ocjena, datum);
- _brojPolozenih++;
- }
- int PretragaPoDatatumu(Datum datumPolaganja){
- if (_brojPolozenih < 1){ cout << "Greska, nema polozenih predmeta." << endl; return 0; }
- int brojac = 0;
- for (int i = 0; i < _brojPolozenih; i++){
- if (Polozeni[i]->_datumPolaganja._dan == datumPolaganja._dan &&Polozeni[i]->_datumPolaganja._mjesec == datumPolaganja._mjesec && Polozeni[i]->_datumPolaganja._godina == datumPolaganja._godina){
- Polozeni[i]->Ispis();
- brojac++;
- }
- }
- return brojac;
- }
- void PretragaPoNazivu(char * naziv){
- if (_brojPolozenih < 1){ cout << "Greska, nema polozenih predmeta." << endl; return; }
- for (int i = 0; i < _brojPolozenih; i++){
- if (strstr(Polozeni[i]->_naziv, naziv) != 0)
- cout << Polozeni[i]->_naziv << endl;
- }
- }
- };
- int PretragaPoProsjeku(Student * pok, int max){
- // prebroji vrati broj studenata koji imaju prosjek veci od zadatog
- int brStudenata = 0;
- float prosjek, rez=0;
- cout << "Unesite prosjek za koji zelite izvrsiti pretragu: ";
- cin >> prosjek;
- cin.ignore();
- for (int i = 0; i <max; i++){
- float s = 0;
- for (int j = 0; j < pok[i]._brojPolozenih; j++){
- s += pok[i].Polozeni[j]->_ocjena;
- }
- rez = s / pok[i]._brojPolozenih;
- if (rez >= prosjek) brStudenata++;
- }
- return brStudenata;
- }
- int main(){
- int koliko;
- cout << "Koliko studenata zelite: ";
- cin >> koliko;
- cin.ignore();
- Student * niz = new Student[koliko];
- for (int i = 0; i < koliko; i++){
- cout << "\nUnesite ime i prezime studenta: ";
- char temp[30];
- cin.getline(temp, 30);
- int index;
- cout << "Unesite broj indexa: ";
- cin >> index;
- cin.ignore();
- niz[i].Unos(temp, index);
- for (int j = 0; j < 2; j++){
- cout << "\nUnesite naziv polozenog predmeta: ";
- char temp[30];
- cin.getline(temp, 30);
- int ocjena;
- cout << "Unesite ocjenu: ";
- cin >> ocjena;
- cin.ignore();
- cout << "Unesite datum [dd/mm/gggg]: ";
- int m, g, d;
- cin >> d >> m >> g;
- cin.ignore();
- Datum da;
- da.Unos(d,m,g);
- niz[i].AddPolozeni(temp, ocjena, da);
- }
- }
- int pretraga = PretragaPoProsjeku(niz, koliko);
- cout << pretraga << " studenata ima veci prosjek od zadanog!" << endl << endl;
- //dealociranje
- for (int i = 0; i < koliko; i++){
- for (int j = 0; j < niz[i]._brojPolozenih; j++){
- niz[i].Polozeni[j]->Dealokacija();
- }
- delete[] niz[i]._imePrezime;
- }
- system("pause > null");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement