Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string.h>
- using namespace std;
- //место за вашиот код
- class Delo {
- private:
- char ime[50];
- int godina;
- char poteklo[50];
- public:
- Delo(){}
- Delo(char *i, int god, char *p){
- strcpy(ime,i);
- strcpy(poteklo, p);
- godina=god;
- }
- bool operator==(Delo &d)
- {
- if(strcmp(ime,d.ime)==0) return true;
- else return false;
- }
- char *getIme(){return ime;}
- char *getPoteklo(){return poteklo;}
- int getGodina(){return godina;}
- };
- class Pretstava {
- protected:
- Delo delo;
- int prodadeni;
- char data[15];
- public:
- Pretstava(){}
- Pretstava(Delo de, int p, char *d)
- {
- strcpy(data,d);
- prodadeni=p;
- delo=de;
- }
- virtual int cena(){
- int M=0;
- int N=0;
- int ceni=0;
- if(delo.getGodina()>1900 || delo.getGodina()>2000){
- M=50;
- }
- else if(delo.getGodina()>1800&&delo.getGodina()<1899){
- M=75;
- }
- else if(delo.getGodina()<1800){
- M=100;
- }
- if(strcmp(delo.getPoteklo(),"Italija")==0){
- N=100;
- }
- else if(strcmp(delo.getPoteklo(),"Rusija")==0){
- N=150;
- }
- else{
- N=80;
- }
- ceni=N+M;
- return ceni;
- }
- virtual ~Pretstava(){}
- Delo getDelo(){return delo;}
- int getBroj(){return prodadeni;}
- };
- class Balet:public Pretstava{
- private:
- static int cenabalet;
- public:
- Balet(Delo de, int p, char *d):Pretstava(de,p,d){}
- static void setCenaBalet(int cb){cenabalet=cb;}
- virtual int cena(){
- int M=0;
- int N=0;
- int ceni=0;
- if(delo.getGodina()>1900 || delo.getGodina()>2000){
- M=50;
- }
- else if(delo.getGodina()>1800&&delo.getGodina()<1899){
- M=75;
- }
- else if(delo.getGodina()<1800){
- M=100;
- }
- if(strcmp(delo.getPoteklo(),"Italija")==0){
- N=100;
- }
- else if(strcmp(delo.getPoteklo(),"Rusija")==0){
- N=150;
- }
- else{
- N=80;
- }
- ceni=N+M+cenabalet;
- return ceni;
- }
- };
- int Balet::cenabalet=150;
- class Opera:public Pretstava{
- public:
- Opera(Delo de, int p, char *d):Pretstava(de,p,d){}
- };
- int prihod(Pretstava **p, int golemina){
- int s=0;
- for(int i=0;i<golemina;i++)
- s+=p[i]->cena() * p[i]->getBroj();
- return s;
- }
- int brojPretstaviNaDelo(Pretstava **p,int golemina, Delo d)
- {
- int b=0;
- for(int i=0;i<golemina;i++)
- if(p[i]->getDelo()==d)
- b++;
- return b;
- }
- //citanje na delo
- Delo readDelo(){
- char ime[50];
- int godina;
- char zemja[50];
- cin>>ime>>godina>>zemja;
- return Delo(ime,godina,zemja);
- }
- //citanje na pretstava
- Pretstava* readPretstava(){
- int tip; //0 za Balet , 1 za Opera
- cin>>tip;
- Delo d=readDelo();
- int brojProdadeni;
- char data[15];
- cin>>brojProdadeni>>data;
- if (tip==0) return new Balet(d,brojProdadeni,data);
- else return new Opera(d,brojProdadeni,data);
- }
- int main(){
- int test_case;
- cin>>test_case;
- switch(test_case){
- case 1:
- //Testiranje na klasite Opera i Balet
- {
- cout<<"======TEST CASE 1======="<<endl;
- Pretstava* p1=readPretstava();
- cout<<p1->getDelo().getIme()<<endl;
- Pretstava* p2=readPretstava();
- cout<<p2->getDelo().getIme()<<endl;
- }break;
- case 2:
- //Testiranje na klasite Opera i Balet so cena
- {
- cout<<"======TEST CASE 2======="<<endl;
- Pretstava* p1=readPretstava();
- cout<<p1->cena()<<endl;
- Pretstava* p2=readPretstava();
- cout<<p2->cena()<<endl;
- }break;
- case 3:
- //Testiranje na operator ==
- {
- cout<<"======TEST CASE 3======="<<endl;
- Delo f1=readDelo();
- Delo f2=readDelo();
- Delo f3=readDelo();
- if (f1==f2) cout<<"Isti se"<<endl; else cout<<"Ne se isti"<<endl;
- if (f1==f3) cout<<"Isti se"<<endl; else cout<<"Ne se isti"<<endl;
- }break;
- case 4:
- //testiranje na funkcijata prihod
- {
- cout<<"======TEST CASE 4======="<<endl;
- int n;
- cin>>n;
- Pretstava **pole=new Pretstava*[n];
- for (int i=0;i<n;i++){
- pole[i]=readPretstava();
- }
- cout<<prihod(pole,n);
- }break;
- case 5:
- //testiranje na prihod so izmena na cena za 3d proekcii
- {
- cout<<"======TEST CASE 5======="<<endl;
- int cenaBalet;
- cin>>cenaBalet;
- Balet::setCenaBalet(cenaBalet);
- int n;
- cin>>n;
- Pretstava **pole=new Pretstava*[n];
- for (int i=0;i<n;i++){
- pole[i]=readPretstava();
- }
- cout<<prihod(pole,n);
- }break;
- case 6:
- //testiranje na brojPretstaviNaDelo
- {
- cout<<"======TEST CASE 6======="<<endl;
- int n;
- cin>>n;
- Pretstava **pole=new Pretstava*[n];
- for (int i=0;i<n;i++){
- pole[i]=readPretstava();
- }
- Delo f=readDelo();
- cout<<brojPretstaviNaDelo(pole,n,f);
- }break;
- };
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment