Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstring>
- // dinamicki alocirana niza od objekti
- // 1) pravime temp niza i gi zacuvuvame site objekti do sega
- // 2) prosiruvame nizata za +1 mesto
- // 3) gi vrakjame site objekti shto gi imavme nazad vo nizata
- // 4) dodavame noviot objekt na posledno mesto
- // 5) pokacuvame brojot na objekti vo nizata
- // 6) briseme temp niza
- using namespace std;
- class Student{
- private:
- int index;
- char ime[15];
- char nasoka[5];
- public:
- Student(){}
- Student(int index,char* ime,char* nasoka){
- this->index=index;
- strcpy(this->ime,ime);
- strcpy(this->nasoka,nasoka);
- }
- // copy constructor
- Student(const Student &drugStudent){
- this->index=drugStudent.index;
- strcpy(this->ime,drugStudent.ime);
- strcpy(this->nasoka,drugStudent.nasoka);
- }
- bool operator==(Student &objekt){
- if(this->index==objekt.index){
- return true;
- }else{
- return false;
- }
- }
- int getIndex(){
- return index;
- }
- char* getNasoka(){
- return nasoka;
- }
- void print(){
- cout<<ime<<" "<<index<<" "<<" "<<nasoka<<endl;
- }
- };
- class Fakultet{
- private:
- int brojStudenti;
- Student *niza;
- char ime[20];
- public:
- Fakultet(){}
- Fakultet(char* ime,Student *niza,int brojStudenti){
- strcpy(this->ime,ime);
- for(int i=0;i<brojStudenti;i++){
- this->niza[i]=niza[i];
- }
- this->brojStudenti=brojStudenti;
- }
- // print site studenti
- void printStudenti(){
- cout<<"Studenti zapishani na fakultetot "<<ime<<endl;
- for(int i=0;i<brojStudenti;i++){
- niza[i].print();
- }
- }
- void dodadi(Student &nov){
- // gi pamtime site studenti vo tempNiza
- Student *tempNiza=new Student[brojStudenti];
- for(int i=0;i<brojStudenti;i++){
- tempNiza[i]=niza[i];
- }
- // ja prosiruvame nizata za +1 mesto
- niza=new Student[brojStudenti+1];
- // gi vrakjame site studenti nazad vo nizata
- for(int i=0;i<brojStudenti;i++){
- niza[i]=tempNiza[i];
- }
- // ne ni treba veke i ja briseme
- delete []tempNiza;
- // go dodavame noviot studenti na poslednoto mesto
- niza[brojStudenti]=nov;
- // pokacuvame brojot na studenti vo nizata
- brojStudenti++;
- }
- Fakultet &operator+=(Student &objekt){
- int flag=0;
- for(int i=0;i<brojStudenti;i++){
- if(niza[i]==objekt){
- flag=1;
- }
- }
- if(flag==0){
- Student *tempNiza=new Student[brojStudenti];
- for(int i=0;i<brojStudenti;i++){
- tempNiza[i]=niza[i];
- }
- niza=new Student[brojStudenti+1];
- for(int i=0;i<brojStudenti;i++){
- niza[i]=tempNiza[i];
- }
- niza[brojStudenti]=objekt;
- brojStudenti++;
- delete []tempNiza;
- }else{
- cout<<"Veke go imame vo nizata"<<endl;
- }
- return *this;
- }
- Fakultet &operator-=(Student &nov){
- // gledame dali go imame vo nizata
- int flag=0;
- for(int i=0;i<brojStudenti;i++){
- if(niza[i]==nov){
- flag=1;
- }
- }
- // ako go imame sakame da go izbrisheme
- if(flag==1){
- int brojac=0;
- Student *novaNiza=new Student[brojStudenti-1];
- // site shto ne se ednakvi na objektot gi stavame vo nova niza
- for(int i=0;i<brojStudenti;i++){
- if(niza[i]==nov){
- }else{
- novaNiza[brojac]=niza[i];
- brojac++;
- }
- }
- // namaluvame brojot na studenti vo nizata
- brojStudenti--;
- // nizata ja pravime da zafakja 1 mesto pomalku
- niza=new Student[brojStudenti];
- for(int i=0;i<brojStudenti;i++){
- niza[i]=novaNiza[i];
- }
- delete []novaNiza;
- return *this;
- }
- }
- };
- int main(){
- Student niza[2];
- niza[0]=Student(171717,"Maja","kni");
- niza[1]=Student(181818,"Luka","pit");
- niza[0].print();
- Fakultet finki("FINKI",niza,2);
- finki.printStudenti();
- Student nov(151515,"Jovan","pit");
- //finki.dodadi(nov);
- finki+=nov;
- finki.printStudenti();
- finki-=nov;
- finki.printStudenti();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement