Advertisement
Guest User

Zvucnici ispitna

a guest
Sep 19th, 2019
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.07 KB | None | 0 0
  1. /*
  2. За потребите на компанија која врши продажба на звучници, да се креира класа Speaker во која се чуваат следните податоци:
  3. моќност (изразена во W, децимален број), модел (динамичка низа од знаци), дали има појачало (bool), основна цена (децимален број).
  4. оператор за споредба на два звучници според моделот,цена и моќност (5 поени)
  5. оператор + која додава 80% од моќноста на двата звучници, моделот станува двојна низа од двата модели со + измеѓу имињата и цената е 75% од собраните цени за двата звучници (5 поени)
  6. функција покачиЦена што ќе ја покачи основната цена на звучникот за толку колку што ќе внесеме (5 поени)
  7. Компанијата нуди два вида на звучници за кои треба да се дефинираат посебни класи: TowerSpeaker и MonitorSpeaker. За првиот вид звучници дополнително се чува податок за типот на столбот на звучникот (има две можности: full/semi), а за вториот вид звучници дополнително се чува податок за намената (има две можности: за во студио/за друга намена).
  8. За класите треба да се обезбедат:
  9. соодветни конструктори и деструктори (погледнете ги повиците во main функцијата) (5 поени)
  10. оператор << за печатење на звучниците во формат: (5 поени)
  11. модел има/нема појачало цена
  12. оператор > за споредба на два звучника од каков било вид според пресметаната цена (5 поени)
  13. метод принт() кој ќе принта звучникот со сите спецификации по редослед од конструктор
  14. метод float presmetajCena() за пресметување на цената на посебните видови звучници на следниот начин: (10 поени)
  15. за TowerSpeaker - цената се зголемува за 10% од основната ако звучникот има појачало и за 5% од основната ако видот на столбот е full
  16. за MonitorSpeaker - цената се зголемува за 10% од основната ако звучникот има појачало и за 15% од основната ако е наменет за во студио
  17.  
  18. Во класата Speaker се чува целобројна променлива која е заедничка за сите звучници и го означува данокот на додадена вредност (ДДВ) кој се плаќа за овие производи. Иницијалната вредност на оваа променлива е 18 и ќе биде иста за сите звучници. За работа со оваа променлива да се имплементираат следните методи: (5 поени)
  19. Доколку се стави негативна вредност за данокот да се фрли усклучок кој ќе принта:
  20. Ne moze da se stavi negativna vrednost za danok (5 поени)
  21.  
  22. Да се имплементира надворешна функција со потпис void lowestPrice(Speaker** s, int n) што ќе го отпечати звучникот со најмала цена и звучникот со најголема цена. (10 поени)
  23. void smeniDDV(int ddv) за менување на вредноста на ДДВ (5 поени)
  24. void vkupnoDDV(Speaker** s, int n) која ја печати вкупната цена што треба да се плати за сите звучници и по пресметаниот ДДВ. (5 поени)
  25. функција void daliIma(Speaker** s, int n) која ќе принта дали може да се купи звучникот т.е. дали го има звучникот во низата (5 поени)
  26. функција void pogolemaVrednost(Speaker** s, int n)која ќе принта кој тип на звучници има поголема средна вредност во споредба со другиот (10 поени)
  27. Функција kupiZvucnik(Speaker** s, int n, float kesh) што ќе ги отпечати сите звучници што можеме да ги купиме со дадена цена (10 poeni)
  28. */
  29.  
  30. int main() {
  31. float power;
  32. char model[100];
  33. bool amp;
  34. float price;
  35. bool fullSemi;
  36. int n;
  37. cin >> n;
  38. Speaker** speakers = new Speaker*[n];
  39. for(int i = 0; i < n; ++i) {
  40. cin >> power;
  41. cin >> model;
  42. cin >> amp;
  43. cin >> price;
  44. cin >> fullSemi;
  45. if(i % 2 == 1)
  46. speakers[i] = new TowerSpeaker(power, model, amp, price, fullSemi);
  47. else
  48. speakers[i] = new MonitorSpeaker(power, model, amp, price, fullSemi);
  49. }
  50. cout<<"== Testirame najmal i najgolem zvucnik funkcija =="<<endl;
  51. lowestPrice(speakers, n);
  52. cout<<"== Testirame vkupnoDDV funkcija =="<<endl;
  53. Speaker::vkupnoDDV(speakers, n);
  54. int ddv;
  55. cout<<"== Testirame DDV =="<<endl;
  56. cin >> ddv;
  57. Speaker::smeniDDV(ddv);
  58. cout<<"== Testirame vkupnoDDV funkcija =="<<endl;
  59. Speaker::vkupnoDDV(speakers, n);
  60.  
  61. for(int i = 0; i < n; ++i) {
  62. delete speakers[i];
  63. }
  64. delete [] speakers;
  65. }
  66. return 0;
  67. }

Advertisement
Add Comment
Please, Sign In to add comment
Advertisement