Advertisement
borisdexter

Objektno 3 chas

Jan 21st, 2020
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.01 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. // dinamicki alocirana niza od objekti
  4. // 1) pravime temp niza i gi zacuvuvame site objekti do sega
  5. // 2) prosiruvame nizata za +1 mesto
  6. // 3) gi vrakjame site objekti shto gi imavme nazad vo nizata
  7. // 4) dodavame noviot objekt na posledno mesto
  8. // 5) pokacuvame brojot na objekti vo nizata
  9. // 6) briseme temp niza
  10. using namespace std;
  11. class Student{
  12. private:
  13.     int index;
  14.     char ime[15];
  15.     char nasoka[5];
  16. public:
  17.     Student(){}
  18.     Student(int index,char* ime,char* nasoka){
  19.     this->index=index;
  20.     strcpy(this->ime,ime);
  21.     strcpy(this->nasoka,nasoka);
  22.     }
  23.     // copy constructor
  24.     Student(const Student &drugStudent){
  25.     this->index=drugStudent.index;
  26.     strcpy(this->ime,drugStudent.ime);
  27.     strcpy(this->nasoka,drugStudent.nasoka);
  28.     }
  29.  
  30.     bool operator==(Student &objekt){
  31.     if(this->index==objekt.index){
  32.         return true;
  33.     }else{
  34.         return false;
  35.     }
  36.     }
  37.  
  38.     int getIndex(){
  39.     return index;
  40.     }
  41.  
  42.     char* getNasoka(){
  43.     return nasoka;
  44.     }
  45.  
  46.     void print(){
  47.     cout<<ime<<" "<<index<<" "<<" "<<nasoka<<endl;
  48.     }
  49.  
  50. };
  51.  
  52. class Fakultet{
  53. private:
  54.     int brojStudenti;
  55.     Student *niza;
  56.     char ime[20];
  57. public:
  58.     Fakultet(){}
  59.     Fakultet(char* ime,Student *niza,int brojStudenti){
  60.     strcpy(this->ime,ime);
  61.     for(int i=0;i<brojStudenti;i++){
  62.         this->niza[i]=niza[i];
  63.     }
  64.     this->brojStudenti=brojStudenti;
  65.     }
  66.  
  67.     // print site studenti
  68.     void printStudenti(){
  69.     cout<<"Studenti zapishani na fakultetot "<<ime<<endl;
  70.     for(int i=0;i<brojStudenti;i++){
  71.         niza[i].print();
  72.     }
  73.     }
  74.  
  75.     void dodadi(Student &nov){
  76.     // gi pamtime site studenti vo tempNiza
  77.     Student *tempNiza=new Student[brojStudenti];
  78.     for(int i=0;i<brojStudenti;i++){
  79.         tempNiza[i]=niza[i];
  80.     }
  81.     // ja prosiruvame nizata za +1 mesto
  82.     niza=new Student[brojStudenti+1];
  83.     // gi vrakjame site studenti nazad vo nizata
  84.     for(int i=0;i<brojStudenti;i++){
  85.         niza[i]=tempNiza[i];
  86.     }
  87.     // ne ni treba veke i ja briseme
  88.     delete []tempNiza;
  89.     // go dodavame noviot studenti na poslednoto mesto
  90.     niza[brojStudenti]=nov;
  91.     // pokacuvame brojot na studenti vo nizata
  92.     brojStudenti++;
  93.     }
  94.  
  95.     Fakultet &operator+=(Student &objekt){
  96.     int flag=0;
  97.     for(int i=0;i<brojStudenti;i++){
  98.         if(niza[i]==objekt){
  99.             flag=1;
  100.         }
  101.     }
  102.     if(flag==0){
  103.     Student *tempNiza=new Student[brojStudenti];
  104.     for(int i=0;i<brojStudenti;i++){
  105.         tempNiza[i]=niza[i];
  106.     }
  107.     niza=new Student[brojStudenti+1];
  108.     for(int i=0;i<brojStudenti;i++){
  109.         niza[i]=tempNiza[i];
  110.     }
  111.     niza[brojStudenti]=objekt;
  112.     brojStudenti++;
  113.     delete []tempNiza;
  114.     }else{
  115.     cout<<"Veke go imame vo nizata"<<endl;
  116.     }
  117.     return *this;
  118.     }
  119.  
  120.     Fakultet &operator-=(Student &nov){
  121.     // gledame dali go imame vo nizata
  122.     int flag=0;
  123.     for(int i=0;i<brojStudenti;i++){
  124.         if(niza[i]==nov){
  125.             flag=1;
  126.         }
  127.     }
  128.     // ako go imame sakame da go izbrisheme
  129.     if(flag==1){
  130.     int brojac=0;
  131.     Student *novaNiza=new Student[brojStudenti-1];
  132.     // site shto ne se ednakvi na objektot gi stavame vo nova niza
  133.     for(int i=0;i<brojStudenti;i++){
  134.         if(niza[i]==nov){
  135.  
  136.         }else{
  137.             novaNiza[brojac]=niza[i];
  138.             brojac++;
  139.         }
  140.     }
  141.     // namaluvame brojot na studenti vo nizata
  142.     brojStudenti--;
  143.     // nizata ja pravime da zafakja 1 mesto pomalku
  144.     niza=new Student[brojStudenti];
  145.     for(int i=0;i<brojStudenti;i++){
  146.         niza[i]=novaNiza[i];
  147.     }
  148.     delete []novaNiza;
  149.     return *this;
  150.     }
  151.     }
  152. };
  153.  
  154.  
  155. int main(){
  156. Student niza[2];
  157. niza[0]=Student(171717,"Maja","kni");
  158. niza[1]=Student(181818,"Luka","pit");
  159. niza[0].print();
  160. Fakultet finki("FINKI",niza,2);
  161. finki.printStudenti();
  162. Student nov(151515,"Jovan","pit");
  163. //finki.dodadi(nov);
  164. finki+=nov;
  165. finki.printStudenti();
  166. finki-=nov;
  167. finki.printStudenti();
  168. return 0;
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement