Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.24 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4. class Koncert{
  5. protected:
  6. char naziv[20];
  7. char lokacija[20];
  8. float cenaNaBilet;
  9. static float sezonskiPopust;
  10. public:
  11. Koncert(char *naziv = "",char *lokacija = "",float cenaNaBilet = 0.0){
  12. strcpy(this->naziv,naziv);
  13. strcpy(this->lokacija,lokacija);
  14. this->cenaNaBilet = cenaNaBilet;
  15. }
  16. ~Koncert(){}
  17. static void setSezonskiPopust(float Popust){
  18. sezonskiPopust = Popust;
  19. }
  20. static float getSezonskiPopust(){
  21. return sezonskiPopust;
  22. }
  23. char *getNaziv(){
  24. return naziv;
  25. }
  26. virtual float cena(){
  27. return cenaNaBilet - cenaNaBilet * sezonskiPopust;
  28. }
  29. float getCena(){
  30. return cenaNaBilet;
  31. }
  32. void setCenaBilet(int cena) {
  33. cenaNaBilet = cena;
  34. }
  35.  
  36. void setNaziv(char *novNaziv) {
  37. strcpy(naziv, novNaziv);
  38. }
  39.  
  40. void setLokacija(char *novaLokacija) {
  41. strcpy(lokacija, novaLokacija);
  42. }
  43. char *getLokacija(){
  44. return lokacija;
  45. }
  46. };
  47. class ElektronskiKoncert: public Koncert{
  48. private:
  49. char *imeNaDj;
  50. float vremetraenie;
  51. bool KogaSeRaboti;
  52. public:
  53. ElektronskiKoncert(){
  54. strcpy(naziv,"");
  55. strcpy(lokacija,"");
  56. cenaNaBilet = 0.0;
  57. imeNaDj = new char[0];
  58. vremetraenie = 0.0;
  59. KogaSeRaboti = true;
  60. }
  61. ElektronskiKoncert(char *naziv,char *lokacija,float cenaNaBilet,char *imeNaDj,
  62. float vremetraenie,bool KogaSeRaboti): Koncert(naziv,lokacija,cenaNaBilet){
  63. this->imeNaDj = new char[strlen(imeNaDj)+1];
  64. strcpy(this->imeNaDj,imeNaDj);
  65. this->vremetraenie = vremetraenie;
  66. this->KogaSeRaboti = KogaSeRaboti;
  67. }
  68. float cena(){
  69. float Cena = Koncert::cena();
  70. if(vremetraenie > 7.0){
  71. Cena += 360;
  72. }
  73. if(vremetraenie > 5.0&&vremetraenie < 7.0){
  74. Cena += 150;
  75. }
  76. if(vremetraenie < 5.0){
  77. Cena += 0;
  78. }
  79. if(KogaSeRaboti == true){
  80. Cena -= 50;
  81. }
  82. if(KogaSeRaboti == false){
  83. Cena += 100;
  84. }
  85. return Cena;
  86. }
  87. };
  88. void najskapKoncert(Koncert ** koncerti, int n){
  89. float maxCena = koncerti[0]->cena();
  90. int brojElektronskiKoncerti = 0;
  91. int ind = 0;
  92. for(int i = 1;i < n;i++){
  93. if(koncerti[i]->cena() > maxCena){
  94. maxCena = koncerti[i]->cena();
  95. ind = i;
  96. }
  97. }
  98. cout<<"Najskap koncert: "<<koncerti[ind]->getNaziv()<<" "<<koncerti[ind]->cena()<<endl;
  99. for(int i = 0;i < n;i++){
  100. if(ElektronskiKoncert *ek = dynamic_cast<ElektronskiKoncert*>(koncerti[i])){
  101. brojElektronskiKoncerti++;
  102. }
  103. }
  104. cout<<"Elektronski koncerti: "<<brojElektronskiKoncerti<<" od vkupno "<<n<<endl;
  105. }
  106. bool prebarajKoncert(Koncert ** koncerti, int n, char * naziv, bool elektronski){
  107. int flag = 0;
  108. if(elektronski){
  109. for(int i = 0;i < n;i++){
  110. if(ElektronskiKoncert *ek = dynamic_cast<ElektronskiKoncert*>(koncerti[i])){
  111. if(strcmp(koncerti[i]->getNaziv(),naziv) == 0){
  112. cout<<koncerti[i]->getNaziv()<<" "<<koncerti[i]->cena()<<endl;
  113. flag = 1;
  114. }
  115. }
  116. }
  117. }
  118. else{
  119. for(int i = 0;i < n;i++){
  120. if(strcmp(koncerti[i]->getNaziv(),naziv) == 0){
  121. cout<<koncerti[i]->getNaziv()<<" "<<koncerti[i]->cena()<<endl;
  122. flag = 1;
  123. }
  124. }
  125. }
  126. if(flag == 1){
  127. return true;
  128. }
  129. else {
  130. return false;
  131. }
  132. }
  133. float Koncert::sezonskiPopust(0.20);
  134. int main(){
  135. int tip,n,novaCena;
  136. char naziv[100], lokacija[100], imeDJ[40];
  137. bool dnevna;
  138. float cenaBilet, novPopust;
  139. float casovi;
  140.  
  141. cin>>tip;
  142. if (tip==1){//Koncert
  143. cin>>naziv>>lokacija>>cenaBilet;
  144. Koncert k1(naziv,lokacija,cenaBilet);
  145. cout<<"Kreiran e koncert so naziv: "<<k1.getNaziv()<<endl;
  146. }
  147. else if (tip==2){//cena - Koncert
  148. cin>>naziv>>lokacija>>cenaBilet;
  149. Koncert k1(naziv,lokacija,cenaBilet);
  150. cout<<"Osnovna cena na koncertot so naziv "<<k1.getNaziv()<< " e: " <<k1.cena()<<endl;
  151. }
  152. else if (tip==3){//ElektronskiKoncert
  153. cin>>naziv>>lokacija>>cenaBilet>>imeDJ>>casovi>>dnevna;
  154. ElektronskiKoncert s(naziv,lokacija,cenaBilet,imeDJ,casovi,dnevna);
  155. cout<<"Kreiran e elektronski koncert so naziv "<<s.getNaziv()<<" i sezonskiPopust "<<s.getSezonskiPopust()<<endl;
  156. }
  157. else if (tip==4){//cena - ElektronskiKoncert
  158. cin>>naziv>>lokacija>>cenaBilet>>imeDJ>>casovi>>dnevna;
  159. ElektronskiKoncert s(naziv,lokacija,cenaBilet,imeDJ,casovi,dnevna);
  160. cout<<"Cenata na elektronskiot koncert so naziv "<<s.getNaziv()<<" e: "<<s.cena()<<endl;
  161. }
  162. else if (tip==5) {//najskapKoncert
  163.  
  164. }
  165. else if (tip==6) {//prebarajKoncert
  166. Koncert ** koncerti = new Koncert *[5];
  167. int n;
  168. koncerti[0] = new Koncert("Area","BorisTrajkovski",350);
  169. koncerti[1] = new ElektronskiKoncert("TomorrowLand","Belgium",8000,"Afrojack",7.5,false);
  170. koncerti[2] = new ElektronskiKoncert("SeaDance","Budva",9100,"Tiesto",5,true);
  171. koncerti[3] = new Koncert("Superhiks","PlatoUkim",100);
  172. koncerti[4] = new ElektronskiKoncert("CavoParadiso","Mykonos",8800,"Guetta",3,true);
  173. char naziv[100];
  174. najskapKoncert(koncerti,5);
  175. }
  176. else if (tip==7){//prebaraj
  177. Koncert ** koncerti = new Koncert *[5];
  178. int n;
  179. koncerti[0] = new Koncert("Area","BorisTrajkovski",350);
  180. koncerti[1] = new ElektronskiKoncert("TomorrowLand","Belgium",8000,"Afrojack",7.5,false);
  181. koncerti[2] = new ElektronskiKoncert("SeaDance","Budva",9100,"Tiesto",5,true);
  182. koncerti[3] = new Koncert("Superhiks","PlatoUkim",100);
  183. koncerti[4] = new ElektronskiKoncert("CavoParadiso","Mykonos",8800,"Guetta",3,true);
  184. char naziv[100];
  185. bool elektronski;
  186. cin>>elektronski;
  187. if(prebarajKoncert(koncerti,5, "Area",elektronski))
  188. cout<<"Pronajden"<<endl;
  189. else cout<<"Ne e pronajden"<<endl;
  190.  
  191. if(prebarajKoncert(koncerti,5, "Area",!elektronski))
  192. cout<<"Pronajden"<<endl;
  193. else cout<<"Ne e pronajden"<<endl;
  194.  
  195. }
  196. else if (tip==8){//smeni cena
  197. Koncert ** koncerti = new Koncert *[5];
  198. int n;
  199. koncerti[0] = new Koncert("Area","BorisTrajkovski",350);
  200. koncerti[1] = new ElektronskiKoncert("TomorrowLand","Belgium",8000,"Afrojack",7.5,false);
  201. koncerti[2] = new ElektronskiKoncert("SeaDance","Budva",9100,"Tiesto",5,true);
  202. koncerti[3] = new Koncert("Superhiks","PlatoUkim",100);
  203. koncerti[2] -> setSezonskiPopust(0.9);
  204. najskapKoncert(koncerti,4);
  205. }
  206. return 0;
  207. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement