Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Student
- {
- string ime,prezime;
- int br_indexa,br_polozenih;
- double prosjek;
- public:
- Student()/**Konstruktor Bez Parametara koji podesava prosjek na 5 i broj polozenih na nulu**/
- {
- Student::prosjek=5;
- Student::br_polozenih=0;
- }
- Student(string ime,string prezime,int br_indexa)/**Konstruktor sa tri parametra skontajte sami**/
- {
- Student::ime=ime;
- Student::prezime=prezime;
- Student::br_indexa=br_indexa;
- }
- ~Student()/**Destruktor**/
- {
- /**BLJA**/
- }
- Student(const Student &b)/**Konstruktor kopije**/
- {
- /**BLJA**/
- }
- Student &operator=(const Student &b)/**Operator dodjele**/
- {
- //MATEMATICKOM INDUKCIJOM, TJ KORISTECI CTRL+C I CTRL+V PRETHODNIH KODOVA.
- /**BLJABLJA**/
- }
- string DajIme() const
- {
- return ime;
- }
- string DajPrezime() const
- {
- return prezime;
- }
- int DajIndex() const
- {
- return br_indexa;
- }
- int DajBrojPolozenih()const
- {
- return br_polozenih;
- }
- double DajProsjek() const
- {
- return prosjek;
- }
- /**Gore iznad potrebni geteri da se odrade.**/
- void Registracija(int n)/**Registracija ocjene i automatsko racunanje prosjeka, ocjenu je moguce evidentirati samo ako je prolazna**/
- {
- if(n<5 || n>10) throw "Halo";
- prosjek=(prosjek*br_polozenih+n)/(br_polozenih+1);
- br_polozenih++;
- }
- friend ostream &operator<<(ostream &cout,const Student &s)/**Operator Ispisa za studenta Ime prezime index i prosjek**/
- {
- return cout << "Ime:" << s.ime << "Prezime: " << s.prezime << "Broj indexa: "<< s.br_indexa << "Prosjek: " << s.prosjek <<endl;
- }
- friend istream &operator>>(istream &cin, Student &s)/**Operator Unosa za studenta**/
- {
- return cin >>s.ime>>s.prezime>>s.br_indexa>>s.prosjek;
- }
- };
- class Fakultet
- {
- int kapacitet,br_studenata, stanje;
- Student **pok;
- public:
- Fakultet(int maxi)/**Konstruktor Sa jednim Parametrom koji vrsi alokaciju prostora**/
- {
- if(maxi<=0) throw "hheheh";
- pok=new Student *[maxi];
- br_studenata=0; kapacitet=maxi;
- }
- ~Fakultet()/**Ono nas brate isto **/
- {
- for(int i=0; i<br_studenata; i++)
- {
- delete[] pok[i];
- }
- delete [] pok;
- }
- Fakultet(const Fakultet &f)/**Ofoono znate sta je**/
- {
- br_studenata=f.br_studenata;
- kapacitet=f.kapacitet;
- pok= new Student*[kapacitet];
- for(int i=0; i<br_studenata; i++)
- {
- pok[i]=new Student (*f.pok[i]);
- }
- }
- Fakultet &operator =(Fakultet &f)/**Istoo**/
- {
- if(this==&f) return *this;
- for(int i=0; i<br_studenata; i++)
- {
- delete[] pok[i];
- }
- delete [] pok;
- br_studenata=f.br_studenata;
- kapacitet=f.kapacitet;
- pok= new Student*[kapacitet];
- for(int i=0; i<br_studenata; i++)
- {
- pok[i]=new Student (*f.pok[i]);
- }
- return *this;
- }
- void DodajStudenta(Student s) /**Dodadavanje studenta kada se posalje po vrijednosti**/
- {
- if(br_studenata==kapacitet) throw "uhch";
- pok[br_studenata]=new Student (s);
- br_studenata++;
- }
- void DodajStudenta(Student *s)/**Dodavanje studenta cija se adresa posalje**/
- {
- if(br_studenata==kapacitet) throw "hehehe";
- pok[br_studenata]=s;
- br_studenata++;
- }
- void DodajStudenta(string ime,string prezime,int ind)/**Dodavanje studenta ciji se pdoaci posalju**/
- {
- if(br_studenata==kapacitet) throw "sjdjc";
- pok[br_studenata]=new Student (ime, prezime, ind);
- br_studenata++;
- }
- int DajKapacitet() const
- {
- return kapacitet;
- }
- int DajStanje() const
- {
- return stanje;
- }
- void IspisiStudenta()/**Ispisivanje studenata sortiranih po prosjeku od najveceg ka najmanjem a da nakon ispisa poredak ostane isti kao pri unosu**/
- {
- Student **p1=new Student *[kapacitet];
- for(int i=0; i<br_studenata; i++)
- {
- p1[i]=pok[i];
- }
- for(int i=0; i<br_studenata; i++)
- {
- for(int j=i; j<br_studenata-1; j++)
- {
- if(p1[i]->DajProsjek()<p1[j]->DajProsjek())
- {
- Student *pom=p1[i];
- p1[i]=p1[j];
- p1[j]=pom;
- }
- }
- }
- for(int i=0; i<br_studenata; i++)
- {
- cout << *p1[i];
- }
- delete [] p1;
- }
- void OcistiFax() /**Ispisivanje svih studenata sa fakulteta**/
- {
- for (int i=0; i<br_studenata; i++)
- {
- delete [] pok[i];
- }
- br_studenata=0;
- }
- void UnosOcjene(int index,int ocjena)/**Unos ocjene za odredjenog studenta ciji se index posalje**/
- {
- for(int i=0; i<br_studenata; i++)
- {
- if(pok[i]->DajIndex()==index)
- pok[i]->Registracija(ocjena);
- }
- }
- void IspisiOderdjenog(int index)/**Ispisivanje studenta sa odredjenim indexom, ukoliko pronadje potrebno je baciti nesto**/
- {
- for(int i=0; i<br_studenata; i++)
- {
- if(pok[i]->DajIndex()==index)
- cout << *pok[i] << " " << endl;
- }
- }
- void IspisiProsjecne(double prosjek)/**Ispisivanje studenata ciji je prosjek veci od zadanog**/
- {
- for(int i=0; i<br_studenata; i++)
- {
- if(pok[i]->DajProsjek()>prosjek)
- cout<< *pok[i];
- }
- }
- Student &operator[](int ind) /**Dvije verzije pristupnih operatora koji pristupaju studentu sa odredjin indexom**/
- {
- for(int i=0; i<br_studenata; i++)
- {
- if(pok[i]->DajIndex()==ind)
- return *pok[i];
- }
- }
- Student operator[](int ind) const
- {
- for(int i=0; i<br_studenata; i++)
- {
- if(pok[i]->DajIndex()==ind)
- return *pok[i];
- }
- }
- void Polozilivise(int n)/**Ispisivanje studenata koji su polozili vise predmeta od zadanih**/
- {
- for (int i=0; i<br_studenata; i++)
- {
- if (pok[i]->DajBrojPolozenih()>n)
- cout<<*pok[i];
- }
- }
- };
- int main ()
- {
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement