Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<string.h>
- using namespace std;
- class Koncert{
- private:
- char title[20];
- char location[20];
- static float sale;
- float price;
- public:
- Koncert(){}
- Koncert(const char * title, const char * location, const float price){
- strcpy(this->title, title);
- strcpy(this->location, location);
- this->price = price;
- }
- static void setSezonskiPopust(const float newSale){
- sale = newSale;
- }
- static float getSezonskiPopust(){
- return sale;
- }
- virtual const float cena(){
- return this->price - this->price * sale;
- }
- const char * getNaziv(){
- return this->title;
- }
- const char * getTitle(){
- return this->title;
- }
- };
- float Koncert::sale = 0.2;
- class ElektronskiKoncert : public Koncert{
- private:
- char * DJ;
- float length;
- bool time;
- public:
- ElektronskiKoncert(){
- this->DJ = new char[0];
- this->length = 0;
- this->time = false;
- }
- ElektronskiKoncert(const char * title, const char * location, const float price, const char * DJ, const float length, const bool time) : Koncert(title, location, price){
- this->DJ = new char[strlen(DJ) + 1];
- strcpy(this->DJ, DJ);
- this->length = length;
- this->time = time;
- }
- const float cena(){
- float price = Koncert::cena();
- if(this->length > 5.0)
- price += 150.0;
- else if(this->length > 7.0)
- price += 360.0;
- if(this->time == true)
- price -= 50.0;
- else
- price += 100.0;
- return price;
- }
- ~ElektronskiKoncert(){
- delete [] this->DJ;
- }
- };
- void najskapKoncert(Koncert ** koncerti, int n){
- float max = koncerti[0]->cena();
- int index = 0;
- int count = 0;
- for(int i=1; i<n; i++){
- if(max < koncerti[i]->cena()){
- max = koncerti[i]->cena();
- index = i;
- }
- ElektronskiKoncert *tmp = dynamic_cast<ElektronskiKoncert *>(koncerti[i]);
- if(tmp)
- count++;
- }
- cout << "Najskap koncert: " << koncerti[index]->getTitle() << " " << koncerti[index]->cena() << "\n";
- cout << "Elektronski koncerti: " << count << " od vkupno " << n << "\n";
- }
- bool prebarajKoncert(Koncert ** koncerti, int n, char * naziv, bool elektronski){
- if(elektronski == true){
- for(int i=0; i<n; i++){
- ElektronskiKoncert *tmp = dynamic_cast <ElektronskiKoncert *>(koncerti[i]);
- if(tmp){
- if(strcmp(koncerti[i]->getTitle(), naziv) == 0){
- cout<<koncerti[i]->getNaziv()<<" "<<koncerti[i]->cena()<<"\n";
- return true;
- }
- }
- }
- }
- else{
- for(int i=0; i<n; i++){
- if(strcmp(koncerti[i]->getTitle(), naziv) == 0){
- cout<<koncerti[i]->getNaziv()<<" "<<koncerti[i]->cena()<<"\n";
- 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