Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <stdexcept>
- #include <cstring>
- #include <string>
- #include <algorithm>
- #include "TestCurenja.h"
- using namespace std;
- class Student {
- protected:
- string ime_i_prezime;
- int index;
- public:
- Student(string ime_i_p, int ind) : ime_i_prezime(ime_i_p), index(ind) {}
- string DajIme () const {return ime_i_prezime; }
- int DajIndex () const { return index; }
- virtual ~Student() {}
- virtual void Ispisi () const {
- cout<<"Student "<<ime_i_prezime<<" ima index: "<<index;
- }
- };
- class DiplomiraniStudent : public Student {
- int godina_diplomiranja;
- public:
- DiplomiraniStudent(string ime_i_p, int ind, int god_dipl) : Student(ime_i_p, ind), godina_diplomiranja(god_dipl) {}
- int DajGodinuDiplomiranja() const { return godina_diplomiranja; }
- void Ispisi () const {
- Student::Ispisi();
- cout<<" , a diplomirao je "<<godina_diplomiranja<<". godine.";
- }
- };
- class StudenskaSluzba {
- protected:
- int broj_studenata;
- const int kapacitet;
- Student **studenti;
- public:
- static bool Kriterij1(Student *s1,Student *s2) {
- return s1->DajIme()<s2->DajIme(); }
- static bool Kriterij2(Student *s1,Student *s2) {
- return s1->DajIndex()<s2->DajIndex();
- }
- explicit StudenskaSluzba(int kapacitet) : broj_studenata(0), kapacitet(kapacitet), studenti(new Student *[kapacitet]) {}
- ~StudenskaSluzba ();
- StudenskaSluzba(const StudenskaSluzba &s)=delete;
- StudenskaSluzba &operator=(const StudenskaSluzba &s)=delete;
- void UpisiStudenta (string ime_i_prezime, int br_ind);
- void UpisiDiplomiranogStudenta (string ime_i_prezime, int br_ind, int god_dipl);
- void IspisiPoAbecedi() {
- sort(studenti,studenti+broj_studenata, Kriterij1);
- for (int i=0; i<broj_studenata; i++) {
- studenti[i]->Ispisi();
- cout<<endl;
- }}
- void IspisiPoIndeksu () {
- sort(studenti, studenti+broj_studenata, Kriterij2);
- for (int i=0; i<broj_studenata; i++) {
- studenti[i]->Ispisi();
- cout<<endl;
- }}
- };
- StudenskaSluzba::~StudenskaSluzba() {
- for (int i=0; i<broj_studenata; i++)
- delete studenti[i];
- delete [] studenti;
- }
- void StudenskaSluzba::UpisiStudenta (string ime_i_prezime, int br_ind) {
- if (broj_studenata>=kapacitet) throw "Popunjen niz!";
- studenti[broj_studenata++]=new Student(ime_i_prezime, br_ind);
- }
- void StudenskaSluzba::UpisiDiplomiranogStudenta (string ime_i_prezime, int br_ind, int god_dipl) {
- if (broj_studenata>=kapacitet) throw "Popunjen niz!";
- studenti[broj_studenata++]=new DiplomiraniStudent(ime_i_prezime, br_ind, god_dipl);
- }
- int main () {
- try { StudenskaSluzba studenti(5);
- studenti.UpisiStudenta("Selma Hecimovic", 4543);
- studenti.UpisiDiplomiranogStudenta("Emina Hasanovic", 2342, 2010);
- studenti.UpisiDiplomiranogStudenta("Emina Hodzic",3452,2011);
- studenti.UpisiDiplomiranogStudenta("Esma Hecimovic",6543,2009);
- studenti.UpisiStudenta("Belma Homarac",5555);
- cout<<"Ispis po abecednom redu:"<<endl;
- studenti.IspisiPoAbecedi();
- cout<<endl;
- cout<<"Ispis po broju indeksa: "<<endl;
- studenti.IspisiPoIndeksu();
- cout<<endl;
- }
- catch (const char x[]) {
- cout<<x;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement