[ endem30 @ 14.01.2017. 17:02 ] @
ako moze neko da mi pomogne koji znaju riješit ovaj problem jer ja sam se pogubio

#include <iostream>
using namespace std;

struct Predmet
{
char * _naziv;
int _ocjena;
int _ects;

void unos() {
char temp[50];
int vel;
cout << "Naziv Predmeta: ";
cin.getline(temp, 50);
vel = strlen(temp) + 1;
_naziv = new char[vel];
strcpy_s(_naziv, vel, temp);



}
void ispis() {
cout << "Naziv Predmeta: " << _naziv << endl;

}
void dealociraj() {
delete[]_naziv; _naziv = nullptr;
}
void kopiraj(Predmet p) {
int vel = strlen(p._naziv) + 1;
_naziv = new char[vel];
strcpy_s(_naziv, vel, p._naziv);

}
/*bool istiPredmet(Predmet p) {

if (strcmp(_naziv, p._naziv) == 0)
return true;
return false;*/

}
};

struct Student
{
char * _imePrezime;
char * _brojIndeksa;
int _trenutno;

Predmet *_predmeti[40];


void unos() {

char temp[50];
int vel;
cout << "Ime: ";
cin.getline(temp, 50);
vel = strlen(temp) + 1;
_imePrezime = new char[vel];
strcpy_s(_imePrezime, vel, temp);

char temp[50];
int vel;
cout << "Broje Indexa: ";
cin.getline(temp, 50);
vel = strlen(temp) + 1;
_brojIndeksa = new char[vel];
strcpy_s(_brojIndeksa, vel, temp);

_trenutno = 0;

for (int i = 0; i < 40; i++)
_predmeti = nullptr;
}
void ispis() {
cout << "Ime i Prezime: " << _imePrezime << endl;
cout << "Broj indexa: " << _brojIndeksa << endl;
for (int i = 0; i < _trenutno; i++)
_predmeti->ispis();
}
void dealociraj() {

delete[]_imePrezime; _imePrezime = nullptr;
delete[]_brojIndeksa; _brojIndeksa = nullptr;
for (int i = 0; i < _trenutno; i++)
{
_predmeti->dealociraj();
delete _predmeti;
}
}
//nije moguće dodati dva predmeta sa istim nazivom
bool dodajPredmet(Predmet p) {

/*for (int i = 0; i < _trenutno; i++)
{
if ((strcmp(_predmeti[_trenutno]->_naziv, p._naziv) == 0))
return false;
}*/


_predmeti[_trenutno] = new Predmet;
_predmeti[_trenutno]->kopiraj(p);
_trenutno++;
return true;
}
//ukoliko student nema ocjena prosjek mu je 5

float izracunajProsjek() {
float prosjek = 0;
for (int i = 0; i < _trenutno; i++)

prosjek += _predmeti._ocjena;

return prosjek / _predmeti;
}
};
//funkcija treba da vrati studenta sa najboljim prosjekom
Student najboljiStudent(Student * studenti, int max);

void main()
{
//napraviti niz od 3 studenta

//dodati im po 2 predmeta
//pronaći najboljeg studenta
}
[/code]

[Ovu poruku je menjao X Files dana 14.01.2017. u 19:39 GMT+1]

[Ovu poruku je menjao endem30 dana 14.01.2017. u 21:08 GMT+1]
[ Branimir Maksimovic @ 15.01.2017. 04:42 ] @
Za pocetak pocni koristiti string i vector klase.... ovo sto si poslao je mucno za gledanje...
[ endem30 @ 15.01.2017. 16:57 ] @
oprosti ali ja sam tek počeo da učim cpp tako da znam koristit se stringovima vektorima i klasama nebi trazio pomoc od onih koji znaju mnogo više al u svakom slučaju hvala!
[ Branimir Maksimovic @ 18.01.2017. 17:25 ] @
Pa evo ti nesto sto lici na C++/11 samo popuni main f-ju....

Code:

#include <iostream>
#include <string>
#include <set>
#include <vector>
#include <algorithm>
#include <cassert>
using namespace std;

struct Predmet
{
string _naziv;
int _ocjena;
int _ects;

bool operator<(const Predmet& other)const {
        return _naziv<other._naziv;
}
void unos() {
cout << "Naziv Predmeta: ";
getline(cin,_naziv);

}
void ispis()const {
cout << "Naziv Predmeta: " << _naziv << endl;

}
bool istiPredmet(Predmet p) {

    return (_naziv == p._naziv);
}
};

struct Student
{
string _imePrezime;
string _brojIndexa;

set<Predmet> _predmeti;


void unos() {

cout << "Ime: ";
getline(cin,_imePrezime);
cout << "Broj Indexa: ";
getline(cin,_brojIndexa);

}
void ispis()const {
cout << "Ime i Prezime: " << _imePrezime << endl;
cout << "Broj indexa: " << _brojIndexa << endl;
for (const auto& p :_predmeti)
    p.ispis();
}
//nije moguće dodati dva predmeta sa istim nazivom
bool dodajPredmet(Predmet p) {

_predmeti.insert(p);
return true;
}
//ukoliko student nema ocjena prosjek mu je 5

float izracunajProsjek()const {
float prosjek = 0;
for (const auto& p : _predmeti)

prosjek += p._ocjena;

return prosjek==0?5:prosjek / _predmeti.size();
}
};
//funkcija treba da vrati studenta sa najboljim prosjekom
Student najboljiStudent(const vector<Student>& studenti){
        assert(studenti.size());
        float max = 5;
        int best=0;
        for(size_t i = 0;i<studenti.size();++i) {
                float p =  studenti[i].izracunajProsjek();
                if (p > max ) {
                        max = p;
                        best = i;
                }
        }
        return studenti[best];
}

int main()
{
        // ovo uradi ti....
//napraviti niz od 3 studenta

//dodati im po 2 predmeta
//pronaći najboljeg studenta
}

[ endem30 @ 20.01.2017. 01:00 ] @
Branimir Maksimovic : mnogo hvala na kodu i razumjevanju

skinuo sam knjigu Programming: Principles and Practice Using C++ standard c++11 i c++14
i pratim par youtube kanala pa se nadam da cu popravit svoj kod :)

[Ovu poruku je menjao endem30 dana 20.01.2017. u 02:16 GMT+1]