Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <stdexcept>
- class ApstraktniStudent{
- protected:
- std::string ime,prezime;
- int index;
- mutable int broj_polozenih;
- mutable double prosjek;
- public:
- ApstraktniStudent(std::string ime,std::string prezime,int index):ime(ime),prezime(prezime),index(index),broj_polozenih(0),prosjek(5){}
- std::string DajIme()const{
- return ime;
- }
- std::string DajPrezime()const{
- return prezime;
- }
- int DajBrojIndeksa()const{
- return index;
- }
- int DajBrojPolozenih()const{
- return broj_polozenih;
- }
- double DajProsjek()const{
- return prosjek;
- }
- void RegistrirajIspit(int ocjena){
- if(ocjena<5 || ocjena >10)throw std::domain_error("Neispravna ocjena");
- if(ocjena>5){
- prosjek*=broj_polozenih;
- broj_polozenih++;
- prosjek+=ocjena;
- prosjek/=broj_polozenih;
- }
- }
- void PonistiOcjene(){
- broj_polozenih=0;
- prosjek=5;
- }
- virtual void IspisiPodatke()const=0;
- virtual ApstraktniStudent *DajKopiju()const=0;
- virtual ~ApstraktniStudent(){}
- };
- class StudentBachelor:public ApstraktniStudent{
- public:
- StudentBachelor(std::string ime,std::string prezime,int index):ApstraktniStudent(ime,prezime,index){}
- void IspisiPodatke()const{
- std::cout<<"Student bachelor studija "<<DajIme()<<" "<<DajPrezime()<<", sa brojem indeksa "<<index<<",\nima prosjek "<<prosjek<<"."<<std::endl;
- }
- StudentBachelor *DajKopiju()const{
- return new StudentBachelor(*this);
- }
- };
- class StudentMaster:public ApstraktniStudent{
- int godina_diplomiranja;
- public:
- StudentMaster(std::string ime,std::string prezime,int index,int godina_diplomiranja):ApstraktniStudent(ime,prezime,index),godina_diplomiranja(godina_diplomiranja){}
- void IspisiPodatke()const{
- std::cout<<"Student master studija "<<ime<<" "<<prezime<<", sa brojem indeksa "<<index<<",\nzavrsio bachelor studij godine "<<godina_diplomiranja<<",ima prosjek "<<prosjek<<"."<<std::endl;
- }
- StudentMaster *DajKopiju()const{
- return new StudentMaster(*this);
- }
- };
- int main ()
- {
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement