Advertisement
aed1oN

sadsa

Jun 10th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <stdexcept>
  4.  
  5. class ApstraktniStudent{
  6. protected:
  7.     std::string ime,prezime;
  8.     int index;
  9.     mutable int broj_polozenih;
  10.     mutable double prosjek;
  11. public:
  12.     ApstraktniStudent(std::string ime,std::string prezime,int index):ime(ime),prezime(prezime),index(index),broj_polozenih(0),prosjek(5){}
  13.     std::string DajIme()const{
  14.         return ime;
  15.     }
  16.     std::string DajPrezime()const{
  17.         return prezime;
  18.     }
  19.     int DajBrojIndeksa()const{
  20.         return index;
  21.     }
  22.     int DajBrojPolozenih()const{
  23.         return broj_polozenih;
  24.     }
  25.     double DajProsjek()const{
  26.         return prosjek;
  27.     }
  28.     void RegistrirajIspit(int ocjena){
  29.         if(ocjena<5 || ocjena >10)throw std::domain_error("Neispravna ocjena");
  30.         if(ocjena>5){
  31.             prosjek*=broj_polozenih;
  32.             broj_polozenih++;
  33.             prosjek+=ocjena;
  34.             prosjek/=broj_polozenih;
  35.         }
  36.     }
  37.     void PonistiOcjene(){
  38.         broj_polozenih=0;
  39.         prosjek=5;
  40.     }
  41.     virtual void IspisiPodatke()const=0;
  42.     virtual ApstraktniStudent *DajKopiju()const=0;
  43.     virtual ~ApstraktniStudent(){}
  44. };
  45.  
  46. class StudentBachelor:public ApstraktniStudent{
  47. public:
  48.     StudentBachelor(std::string ime,std::string prezime,int index):ApstraktniStudent(ime,prezime,index){}
  49.     void IspisiPodatke()const{
  50.         std::cout<<"Student bachelor studija "<<DajIme()<<" "<<DajPrezime()<<", sa brojem indeksa "<<index<<",\nima prosjek "<<prosjek<<"."<<std::endl;
  51.     }
  52.     StudentBachelor *DajKopiju()const{
  53.         return new StudentBachelor(*this);
  54.     }
  55. };
  56.  
  57. class StudentMaster:public ApstraktniStudent{
  58.     int godina_diplomiranja;
  59. public:
  60.     StudentMaster(std::string ime,std::string prezime,int index,int godina_diplomiranja):ApstraktniStudent(ime,prezime,index),godina_diplomiranja(godina_diplomiranja){}
  61.     void IspisiPodatke()const{
  62.         std::cout<<"Student master studija "<<ime<<" "<<prezime<<", sa brojem indeksa "<<index<<",\nzavrsio bachelor studij godine "<<godina_diplomiranja<<",ima prosjek "<<prosjek<<"."<<std::endl;
  63.     }
  64.     StudentMaster *DajKopiju()const{
  65.         return new StudentMaster(*this);
  66.     }
  67. };
  68.  
  69. int main ()
  70. {
  71.  
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement