Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Gitara
- {
- private:
- char serial_number[25];
- float price;
- int year;
- char type[40];
- public:
- Gitara()
- {
- strcpy(this->serial_number,"");
- this->price=0.0;
- this->year=0;
- strcpy(this->type,"");
- }
- Gitara(char *type,char *serial_number,int year,float price)
- {
- strcpy(this->serial_number,serial_number);
- this->price=price;
- this->year=year;
- strcpy(this->type,type);
- }
- Gitara(const Gitara >)
- {
- strcpy(this->serial_number,gt.serial_number);
- this->price=gt.price;
- this->year=gt.year;
- strcpy(this->type,gt.type);
- }
- bool daliIsti(Gitara &git)
- {
- if(strcmp(this->serial_number,git.serial_number)==0)
- return true;
- else return false;
- }
- void pecati()
- {
- cout<<serial_number<<" "<<type<<" "<<price<<endl;
- }
- int getGodina()
- {
- return year;
- }
- char * getSeriski()
- {
- return serial_number;
- }
- char * getTip()
- {
- return type;
- }
- float getNabavna()
- {
- return price;
- }
- };
- class Magacin
- {
- private:
- char name[30];
- char location[60];
- Gitara *guitars;
- int number;
- int year_opened;
- public:
- Magacin(const char *name="",const char *location="",int year_opened=0)
- {
- strcpy(this->name,name);
- strcpy(this->location,location);
- this->year_opened=year_opened;
- this->guitars = new Gitara[0];
- this->number=0;
- }
- Magacin(const Magacin &m)
- {
- strcpy(this->name,m.name);
- strcpy(this->location,m.location);
- this->year_opened=m.year_opened;
- this->number=m.number;
- for(int i=0;i<m.number;i++)
- {
- this->guitars[i]=m.guitars[i];
- }
- }
- Magacin &operator=(const Magacin&m)
- {
- if(this!=&m)
- {
- strcpy(this->name,m.name);
- strcpy(this->location,m.location);
- this->year_opened=m.year_opened;
- this->number=m.number;
- for(int i=0;i<m.number;i++)
- {
- this->guitars[i]=m.guitars[i];
- }
- }
- return *this;
- }
- double vrednost()
- {
- double sum=0.0;
- for(int i=0;i<number;i++)
- {
- sum+=guitars[i].getNabavna();
- }
- return sum;
- }
- void dodadi(Gitara guitar)
- {
- Gitara *pok = new Gitara[number+1];
- for(int i=0;i<number;i++)
- pok[i] = guitars[i];
- pok[number++] = guitar;
- guitars = pok;
- }
- void prodadi(Gitara &guitar)
- {
- int brojac=0;
- for(int i=0;i<number;i++)
- {
- if((guitars[i].daliIsti(guitar))==false)
- brojac++;
- }
- Gitara *pok = new Gitara[brojac];
- brojac =0;
- for(int i=0;i<number;i++)
- {
- if((guitars[i].daliIsti(guitar))==false)
- {
- pok[brojac++] = guitars[i];
- }
- }
- //delete [] guitars;
- guitars = pok;
- number = brojac;
- }
- void pecati(bool daliNovi)
- {
- cout<<name<<" "<<location<<endl;
- for(int i=0;i<number;i++)
- {
- if(daliNovi==true)
- {
- if(guitars[i].getGodina()>year_opened)
- {
- guitars[i].pecati();
- }
- }
- else
- guitars[i].pecati();
- }
- }
- };
- int main() {
- // se testira zadacata modularno
- int testCase;
- cin >> testCase;
- int n, godina;
- float cena;
- char seriski[50],tip[50];
- if(testCase == 1) {
- cout << "===== Testiranje na klasata Gitara ======" << endl;
- cin>>tip;
- cin>>seriski;
- cin >> godina;
- cin >> cena;
- Gitara g(tip,seriski, godina,cena);
- cout<<g.getTip()<<endl;
- cout<<g.getSeriski()<<endl;
- cout<<g.getGodina()<<endl;
- cout<<g.getNabavna()<<endl;
- } else if(testCase == 2){
- cout << "===== Testiranje na klasata Magacin so metodot print() ======" << endl;
- Magacin kb("Magacin1","Lokacija1");
- kb.pecati(false);
- }
- else if(testCase == 3) {
- cout << "===== Testiranje na klasata Magacin so metodot dodadi() ======" << endl;
- Magacin kb("Magacin1","Lokacija1",2005);
- cin>>n;
- for (int i=0;i<n;i++){
- cin>>tip;
- cin>>seriski;
- cin >> godina;
- cin >> cena;
- Gitara g(tip,seriski, godina,cena);
- cout<<"gitara dodadi"<<endl;
- kb.dodadi(g);
- }
- kb.pecati(true);
- }
- else if(testCase == 4) {
- cout << "===== Testiranje na klasata Magacin so metodot prodadi() ======" << endl;
- Magacin kb("Magacin1","Lokacija1",2012);
- cin>>n;
- Gitara brisi;
- for (int i=0;i<n;i++){
- cin>>tip;
- cin>>seriski;
- cin >> godina;
- cin >> cena;
- Gitara g(tip,seriski, godina,cena);
- if(i==2)
- brisi=g;
- cout<<"gitara dodadi"<<endl;
- kb.dodadi(g);
- }
- kb.pecati(false);
- kb.prodadi(brisi);
- kb.pecati(false);
- }
- else if(testCase == 5) {
- cout << "===== Testiranje na klasata Magacin so metodot prodadi() i pecati(true) ======" << endl;
- Magacin kb("Magacin1","Lokacija1",2011);
- cin>>n;
- Gitara brisi;
- for (int i=0;i<n;i++){
- cin>>tip;
- cin>>seriski;
- cin >> godina;
- cin >> cena;
- Gitara g(tip,seriski, godina,cena);
- if(i==2)
- brisi=g;
- cout<<"gitara dodadi"<<endl;
- kb.dodadi(g);
- }
- kb.pecati(true);
- kb.prodadi(brisi);
- cout<<"Po brisenje:"<<endl;
- Magacin kb3;
- kb3=kb;
- kb3.pecati(true);
- }
- else if(testCase ==6)
- {
- cout << "===== Testiranje na klasata Magacin so metodot vrednost()======" << endl;
- Magacin kb("Magacin1","Lokacija1",2011);
- cin>>n;
- Gitara brisi;
- for (int i=0;i<n;i++){
- cin>>tip;
- cin>>seriski;
- cin >> godina;
- cin >> cena;
- Gitara g(tip,seriski, godina,cena);
- if(i==2)
- brisi=g;
- kb.dodadi(g);
- }
- cout<<kb.vrednost()<<endl;
- kb.prodadi(brisi);
- cout<<"Po brisenje:"<<endl;
- cout<<kb.vrednost();
- Magacin kb3;
- kb3=kb;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement