Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Koncert{
- protected:
- char name[20];
- char location[20];
- static float season_discout;
- float ticket_price;
- public:
- Koncert(const char *name="",const char *location="",float ticket_price=0)
- {
- strcpy(this->name,name);
- strcpy(this->location,location);
- this->ticket_price=ticket_price;
- }
- Koncert(const Koncert &k)
- {
- strcpy(this->name,k.name);
- strcpy(this->location,k.location);
- this->ticket_price=k.ticket_price;
- }
- static void setSezonskiPopust(float number)
- {
- season_discout=number;
- }
- static float getSezonskiPopust()
- {
- return season_discout;
- }
- char *getNaziv()
- {
- return name;
- }
- virtual float cena()
- {
- return ticket_price *(1-season_discout);
- }
- virtual int getType()
- {
- return 0;
- }
- virtual ~Koncert(){}
- float getTicket()
- {
- return ticket_price;
- }
- };
- float Koncert::season_discout=0.2;
- class ElektronskiKoncert:public Koncert{
- private:
- char *DJname;
- float time;
- bool dnevna_or_nokna;
- public:
- ElektronskiKoncert(const char *name="",const char *location="",float ticket_price=0.0
- ,const char *DJname="",float time=0.0,bool dnevna_or_nokna=false):Koncert(name,location,ticket_price)
- {
- this->DJname = new char[strlen(DJname)+1];
- strcpy(this->DJname,DJname);
- this->dnevna_or_nokna=dnevna_or_nokna;
- this->time=time;
- }
- ElektronskiKoncert(const ElektronskiKoncert &ek):Koncert(ek)
- {
- this->DJname = new char[strlen(ek.DJname)+1];
- strcpy(this->DJname,ek.DJname);
- this->dnevna_or_nokna=ek.dnevna_or_nokna;
- }
- float cena()
- {
- float dcena = Koncert::cena();
- if(time>7)
- {
- dcena+=360;
- }
- else if(time>5)
- {
- dcena+=150;
- }
- if(dnevna_or_nokna)
- dcena-=50;
- else
- dcena+=100;
- return
- dcena;
- }
- char *getDJ()
- {
- return DJname;
- }
- int getType()
- {
- return 1;
- }
- };
- void najskapKoncert(Koncert **koncerti,int n)
- {
- int max=0;
- int iMax=0;
- int brojac=0;
- for(int i=0;i<n;i++)
- {
- if(koncerti[i]->cena()>max)
- {
- max=koncerti[i]->cena();
- iMax=i;
- }
- if(koncerti[i]->getType()==1)
- {
- brojac++;
- }
- }
- cout<<"Najskap koncert: "<<koncerti[iMax]->getNaziv()<<" "<<koncerti[iMax]->cena()<<endl;
- cout<<"Elektronski koncerti: "<<brojac<<" od vkupno "<<n;
- }
- bool prebarajKoncert(Koncert **koncerti,int n,const char *naziv,bool elektronski)
- {
- for(int i=0;i<n;i++)
- {
- if(elektronski==true)
- {
- if(koncerti[i]->getType()==1)
- {
- if(strcmp(koncerti[i]->getNaziv(),naziv)==0)
- {
- cout<<koncerti[i]->getNaziv()<<" "<<koncerti[i]->cena()<<endl;
- return true;
- }
- }
- }
- else if(elektronski==false)
- {
- if(strcmp(koncerti[i]->getNaziv(),naziv)==0)
- {
- cout<<koncerti[i]->getNaziv()<<" "<<koncerti[i]->cena()<<endl;
- return true;
- }
- }
- }
- return false;
- }
- int main(){
- int tip,n,novaCena;
- char naziv[100], lokacija[100], imeDJ[40];
- bool dnevna;
- float cenaBilet, novPopust;
- float casovi;
- cin>>tip;
- if (tip==1){//Koncert
- cin>>naziv>>lokacija>>cenaBilet;
- Koncert k1(naziv,lokacija,cenaBilet);
- cout<<"Kreiran e koncert so naziv: "<<k1.getNaziv()<<endl;
- }
- else if (tip==2){//cena - Koncert
- cin>>naziv>>lokacija>>cenaBilet;
- Koncert k1(naziv,lokacija,cenaBilet);
- cout<<"Osnovna cena na koncertot so naziv "<<k1.getNaziv()<< " e: " <<k1.cena()<<endl;
- }
- else if (tip==3){//ElektronskiKoncert
- cin>>naziv>>lokacija>>cenaBilet>>imeDJ>>casovi>>dnevna;
- ElektronskiKoncert s(naziv,lokacija,cenaBilet,imeDJ,casovi,dnevna);
- cout<<"Kreiran e elektronski koncert so naziv "<<s.getNaziv()<<" i sezonskiPopust "<<s.getSezonskiPopust()<<endl;
- }
- else if (tip==4){//cena - ElektronskiKoncert
- cin>>naziv>>lokacija>>cenaBilet>>imeDJ>>casovi>>dnevna;
- ElektronskiKoncert s(naziv,lokacija,cenaBilet,imeDJ,casovi,dnevna);
- cout<<"Cenata na elektronskiot koncert so naziv "<<s.getNaziv()<<" e: "<<s.cena()<<endl;
- }
- else if (tip==5) {//najskapKoncert
- }
- else if (tip==6) {//prebarajKoncert
- Koncert ** koncerti = new Koncert *[5];
- int n;
- koncerti[0] = new Koncert("Area","BorisTrajkovski",350);
- koncerti[1] = new ElektronskiKoncert("TomorrowLand","Belgium",8000,"Afrojack",7.5,false);
- koncerti[2] = new ElektronskiKoncert("SeaDance","Budva",9100,"Tiesto",5,true);
- koncerti[3] = new Koncert("Superhiks","PlatoUkim",100);
- koncerti[4] = new ElektronskiKoncert("CavoParadiso","Mykonos",8800,"Guetta",3,true);
- char naziv[100];
- najskapKoncert(koncerti,5);
- }
- else if (tip==7){//prebaraj
- Koncert ** koncerti = new Koncert *[5];
- int n;
- koncerti[0] = new Koncert("Area","BorisTrajkovski",350);
- koncerti[1] = new ElektronskiKoncert("TomorrowLand","Belgium",8000,"Afrojack",7.5,false);
- koncerti[2] = new ElektronskiKoncert("SeaDance","Budva",9100,"Tiesto",5,true);
- koncerti[3] = new Koncert("Superhiks","PlatoUkim",100);
- koncerti[4] = new ElektronskiKoncert("CavoParadiso","Mykonos",8800,"Guetta",3,true);
- char naziv[100];
- bool elektronski;
- cin>>elektronski;
- if(prebarajKoncert(koncerti,5, "Area",elektronski))
- cout<<"Pronajden"<<endl;
- else cout<<"Ne e pronajden"<<endl;
- if(prebarajKoncert(koncerti,5, "Area",!elektronski))
- cout<<"Pronajden"<<endl;
- else cout<<"Ne e pronajden"<<endl;
- }
- else if (tip==8){//smeni cena
- Koncert ** koncerti = new Koncert *[5];
- int n;
- koncerti[0] = new Koncert("Area","BorisTrajkovski",350);
- koncerti[1] = new ElektronskiKoncert("TomorrowLand","Belgium",8000,"Afrojack",7.5,false);
- koncerti[2] = new ElektronskiKoncert("SeaDance","Budva",9100,"Tiesto",5,true);
- koncerti[3] = new Koncert("Superhiks","PlatoUkim",100);
- koncerti[2] -> setSezonskiPopust(0.9);
- najskapKoncert(koncerti,4);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement