Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 2.367 pregleda

Najnovija ↓

trebam pomoc u vezi zapocetog zadatka 14.01.2017. u 18:02 · pre 119 meseci
izmenjeno 2 puta, poslednji put endem30 14.01.2017. u 21:08
  1. endem3014.01.2017. u 21:08zapis iz teksta poruke
  2. X Files14.01.2017. u 19:39zapis iz teksta poruke
#1
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]
Re: trebam pomoc u vezi zapocetog zadatka 15.01.2017. u 17:57 · pre 119 meseci #3
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!
Re: trebam pomoc u vezi zapocetog zadatka 18.01.2017. u 18:25 · pre 119 meseci #4
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
}

Sviđa mi se1
Re: trebam pomoc u vezi zapocetog zadatka 20.01.2017. u 02:00 · pre 119 meseci
izmenjeno 1 put, poslednji put endem30 20.01.2017. u 02:16
  1. endem3020.01.2017. u 02:16zapis iz teksta poruke
#5
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 :)
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme