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 naziv[20];
- char lokacija[20];
- float cenaNaBilet;
- static float sezonskiPopust;
- public:
- Koncert(char *naziv = "",char *lokacija = "",float cenaNaBilet = 0.0){
- strcpy(this->naziv,naziv);
- strcpy(this->lokacija,lokacija);
- this->cenaNaBilet = cenaNaBilet;
- }
- ~Koncert(){}
- static void setSezonskiPopust(float Popust){
- sezonskiPopust = Popust;
- }
- static float getSezonskiPopust(){
- return sezonskiPopust;
- }
- char *getNaziv(){
- return naziv;
- }
- virtual float cena(){
- return cenaNaBilet - cenaNaBilet * sezonskiPopust;
- }
- float getCena(){
- return cenaNaBilet;
- }
- void setCenaBilet(int cena) {
- cenaNaBilet = cena;
- }
- void setNaziv(char *novNaziv) {
- strcpy(naziv, novNaziv);
- }
- void setLokacija(char *novaLokacija) {
- strcpy(lokacija, novaLokacija);
- }
- char *getLokacija(){
- return lokacija;
- }
- };
- class ElektronskiKoncert: public Koncert{
- private:
- char *imeNaDj;
- float vremetraenie;
- bool KogaSeRaboti;
- public:
- ElektronskiKoncert(){
- strcpy(naziv,"");
- strcpy(lokacija,"");
- cenaNaBilet = 0.0;
- imeNaDj = new char[0];
- vremetraenie = 0.0;
- KogaSeRaboti = true;
- }
- ElektronskiKoncert(char *naziv,char *lokacija,float cenaNaBilet,char *imeNaDj,
- float vremetraenie,bool KogaSeRaboti): Koncert(naziv,lokacija,cenaNaBilet){
- this->imeNaDj = new char[strlen(imeNaDj)+1];
- strcpy(this->imeNaDj,imeNaDj);
- this->vremetraenie = vremetraenie;
- this->KogaSeRaboti = KogaSeRaboti;
- }
- float cena(){
- float Cena = Koncert::cena();
- if(vremetraenie > 7.0){
- Cena += 360;
- }
- if(vremetraenie > 5.0&&vremetraenie < 7.0){
- Cena += 150;
- }
- if(vremetraenie < 5.0){
- Cena += 0;
- }
- if(KogaSeRaboti == true){
- Cena -= 50;
- }
- if(KogaSeRaboti == false){
- Cena += 100;
- }
- return Cena;
- }
- };
- void najskapKoncert(Koncert ** koncerti, int n){
- float maxCena = koncerti[0]->cena();
- int brojElektronskiKoncerti = 0;
- int ind = 0;
- for(int i = 1;i < n;i++){
- if(koncerti[i]->cena() > maxCena){
- maxCena = koncerti[i]->cena();
- ind = i;
- }
- }
- cout<<"Najskap koncert: "<<koncerti[ind]->getNaziv()<<" "<<koncerti[ind]->cena()<<endl;
- for(int i = 0;i < n;i++){
- if(ElektronskiKoncert *ek = dynamic_cast<ElektronskiKoncert*>(koncerti[i])){
- brojElektronskiKoncerti++;
- }
- }
- cout<<"Elektronski koncerti: "<<brojElektronskiKoncerti<<" od vkupno "<<n<<endl;
- }
- bool prebarajKoncert(Koncert ** koncerti, int n, char * naziv, bool elektronski){
- int flag = 0;
- if(elektronski){
- for(int i = 0;i < n;i++){
- if(ElektronskiKoncert *ek = dynamic_cast<ElektronskiKoncert*>(koncerti[i])){
- if(strcmp(koncerti[i]->getNaziv(),naziv) == 0){
- cout<<koncerti[i]->getNaziv()<<" "<<koncerti[i]->cena()<<endl;
- flag = 1;
- }
- }
- }
- }
- else{
- for(int i = 0;i < n;i++){
- if(strcmp(koncerti[i]->getNaziv(),naziv) == 0){
- cout<<koncerti[i]->getNaziv()<<" "<<koncerti[i]->cena()<<endl;
- flag = 1;
- }
- }
- }
- if(flag == 1){
- return true;
- }
- else {
- return false;
- }
- }
- float Koncert::sezonskiPopust(0.20);
- 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