C++ Structure

You might also like

You are on page 1of 3

1 c:\Users\omega\documents\visualstudio2012\Projects\Project8\Project8\Source.

cpp
#include<iostream>
usingnamespacestd;
structPolozeniPredmet
{
char*_naziv;//dinamickilociranobjekat
int_ocjena;//statickilociranobjekat
int_semestar;
voidUnos(char*naziv,intocjena,intsemestar)//prosljedzivanjenaUnosiunosenjepodataka
{
_naziv=newchar[strlen(naziv)+1]; //pravimudinamickojmemorijuvelkuvarijablunazivda
prekopiramnaziv
strcpy(_naziv,naziv); //kopiramonostojeprosljedzeno
_ocjena=ocjena;//nemapotrebedapravimspremnikustatickojmemorijikadvecpostojisamo
prosljedim:)
_semestar=semestar;
}
voidIspis()//svestojeunjetotosemozeiispisati:)
{
cout<<_naziv<<""<<_ocjena<<""<<_semestar<<endl;
}
};
structStudent
{
char*_ImePrezime;
PolozeniPredmet*_polozeni[40];//pravimsvakomstudentupo40predmetaod039:)))
intbrojPolozenih;
voidUnos(char*imePrezime)//uunosporsljedzenoimeiprezime
{
_ImePrezime=newchar[strlen(imePrezime)+1];
strcpy(_ImePrezime,imePrezime);
brojPolozenih=0;//kadakreiramstudentamoramznatikolikojepoloziopredmetatj.0:))))
}
voidIspis()//ispisujempodatkeizstrukturestudentapostoimampristuppolozenimpredmetimainjih
ispisujem
{
cout<<_ImePrezime<<endl;
for(inti=0;i<brojPolozenih;i++) //ispissvihpolozenihpredmeta....
_polozeni[i]>Ispis();
}
boolAddPolozeni1(PolozeniPredmetnoviPredmet)//boolmozedavratitrueilifalsetj.1ili0
{
if(brojPolozenih<39)//dalimogudastavimnovipredmetdaneprekoracimopseg
{
for(inti=0;i<brojPolozenih;i++)//provjeravamimamliistipredmetakoimamanesmijemga
unjeti
if(strcmp(_polozeni[i]>_naziv,noviPredmet._naziv)==0)//provjeraimena
{
returnfalse; //akosamganasaovratimfalse,zastonevracastrue?
} //truejeakosamgadodaoaakonisamfalse:))))
_polozeni[brojPolozenih]=newPolozeniPredmet; //kadnemaviseistogpredmetajapravimnovi
predmetiunosimpodatke:)
_polozeni[brojPolozenih]>Unos(noviPredmet._naziv,noviPredmet._ocjena,noviPredmet._semestar);/
/pozivamUnosiprosljedzujemvrijednosti
brojPolozenih++; //povecavambrojpolozenipredmeta:)
returntrue; //vracamtruedasamgadodao:)
}
else//akosamprekoraciobrojpredmeta
returnfalse;//vracamfalsedaganisamdodao:(
}
boolRemovePolozeni(char*naziv) //brisanjepredmeta
{
for(inti=0;i<brojPolozenih;i++) //pregledamsvepolozenepredmete
if(strcmp(_polozeni[i]>_naziv,naziv)==0) //akosamnasaoisrinazivzabrisanjejaondaradim
{
delete[]_polozeni[i];//brisemsveu_polozenitj.*_naziv,_ocjena,_semestar:)
_polozeni[i]=newPolozeniPredmet; //danijepraznomjestopravimnovipredmeti
prosljedzujemmuodzadnjegunjetogpredmeta
_polozeni[i]>Unos(_polozeni[brojPolozenih1]>_naziv,_polozeni[brojPolozenih1]>_ocjena,
_polozeni[brojPolozenih1]>_semestar);//prosljedzivanjepodataka
delete[]_polozeni[brojPolozenih1]; //delociramzadnjevrijednosti
brojPolozenih; //akosamonajpremjestionapredhodnulokacijuondaumanjujemnemamisti
brojpolozenihnego1
cout<<"Predmetuspjesnouklonjen!\n";
2 c:\Users\omega\documents\visualstudio2012\Projects\Project8\Project8\Source.cpp
returntrue; //vracamdasamgaizbrisao
}
cout<<"Predmetnijeuklonjen!\n";
returnfalse; //akoganisamizbrisaovracamfalse:(
}
floatGetProsjekBySemestar(intsemestar)
{
floatsuma=0;
intbrojac=0;
for(inti=0;i<brojPolozenih;i++)
if(_polozeni[i]>_semestar==semestar)
{
suma+=_polozeni[i]>_ocjena;
brojac++;
}
if(brojac==0)
return5.0;
else
returnsuma/brojac;
}
PolozeniPredmet*GetPolozeniByNaziv(char*naziv)
{
PolozeniPredmetpredmeti;
for(inti=0;i<brojPolozenih;i++)
if(strcmp(_polozeni[i]>_naziv,naziv)==0)
{
predmeti.Unos(_polozeni[i]>_naziv,_polozeni[i]>_ocjena,_polozeni[i]>_semestar);
return&predmeti;
}
}
};
floatPronadjiNajboljegStudenta(Student*s,intmax)
{
chartrazi[20];
cout<<"Koajipredmettrazite:";
cin.getline(trazi,19);
intstudent=0,predmet=0;
boolnadzen=false;
for(inti=0;i<max;i++)
{
for(intj=0;j<s[i].brojPolozenih;j++)
{
if(strcmp(s[i]._polozeni[j]>_naziv,trazi)==0)
{
student=i;
predmet=j;
nadzen=true;
}
}
}
if(nadzen==true)
{
cout<<"Student:"<<s[student]._ImePrezime<<endl;
s[student]._polozeni[predmet]>Ispis();
}
else
cout<<"Nijepronadzenstudentsatrazenimpredmetom!\n";
floatsuma=0,maxSuma=0;
for(inti=0;i<max;i++)
{
suma=0;
for(intj=0;j<s[i].brojPolozenih;j++)
{
suma+=s[i]._polozeni[j]>_ocjena;
}
suma=suma/s[i].brojPolozenih;
if(suma>maxSuma)
maxSuma=suma;
}
returnmaxSuma;
}
voidmain()
3 c:\Users\omega\documents\visualstudio2012\Projects\Project8\Project8\Source.cpp
{
intmax=3;
Student*niz=newStudent[max];
niz[0].Unos("NekiStudent1");
niz[1].Unos("NekiStudent2");
niz[2].Unos("NekiStudent3");
PolozeniPredmetp1;p1.Unos("Uvoduprogramiranje",8,1);
PolozeniPredmetp2;p2.Unos("Progrmairanje1",7,2);
PolozeniPredmetp3;p3.Unos("Programiranje2",9,3);
cout<<"studentu1,dodatpredmetUvoduprogramiranje:1da0ne:"<<niz[0].AddPolozeni1(p1)<<endl;
cout<<"studentu1,dodatpredmetProgrmairanje1:1da0ne:"<<niz[0].AddPolozeni1(p2)<<endl;
cout<<"studentu2,dodatpredmetUvoduprogramiranje:1da0ne:"<<niz[1].AddPolozeni1(p1)<<endl;
cout<<"studentu2,dodatpredmetProgrmairanje1:1da0ne:"<<niz[1].AddPolozeni1(p2)<<endl;
cout<<"studentu2,dodatpredmetProgrmairanje1:1da0ne:"<<niz[1].AddPolozeni1(p2)<<endl;
cout<<"studentu3,dodatpredmetUvoduprogramiranje:1da0ne:"<<niz[2].AddPolozeni1(p1)<<endl;
cout<<"studentu3,dodatpredmetProgrmairanje1:1da0ne:"<<niz[2].AddPolozeni1(p2)<<endl;
cout<<"studentu3,dodatpredmetProgramiranje2:1da0ne:"<<niz[2].AddPolozeni1(p3)<<endl;
cout<<"Studentu1uklonjenpredmetProgramiranje2:1da0ne:"<<niz[1].RemovePolozeni("Programiranje2"
)<<endl;
cout<<"Studentu2uklonjenpredmetUvoduprogramiranje:1da0ne:"<<niz[2].RemovePolozeni("Uvodu
programiranje")<<endl;
cout<<"Ukupniprosjeku2semestruzastudenta1je:"<<niz[1].GetProsjekBySemestar(2)<<endl;
PolozeniPredmetpredmet;
predmet=*niz[1].GetPolozeniByNaziv("ramir");
boolnadzen=false;
for(inti=0;i<niz[i].brojPolozenih;i++)
if(strcmp(predmet._naziv,niz[1]._polozeni[i]>_naziv)==0)
nadzen=true;
if(nadzen==true)
{
cout<<"Pronasaosam!";
predmet.Ispis();
}
else
cout<<"Nismanasaotrazenipredmet!\n";
cout<<"Maksimalniprosjek:"<<PronadjiNajboljegStudenta(niz,3);
for(inti=0;i<3;i++) //delokacijeizdinamickememorije,svelociranomora
seponistit
for(intj=0;j<niz[i].brojPolozenih;j++)
deleteniz[i]._polozeni[j];
for(inti=0;i<3;i++)
{
delete[]niz[i]._ImePrezime;
niz[i].brojPolozenih=NULL;
}
delete[]niz;
system("pause>0");
}

You might also like