Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- За потребите на компанија која врши продажба на звучници, да се креира класа Speaker во која се чуваат следните податоци:
- моќност (изразена во W, децимален број), модел (динамичка низа од знаци), дали има појачало (bool), основна цена (децимален број).
- оператор за споредба на два звучници според моделот,цена и моќност (5 поени)
- оператор + која додава 80% од моќноста на двата звучници, моделот станува двојна низа од двата модели со + измеѓу имињата и цената е 75% од собраните цени за двата звучници (5 поени)
- функција покачиЦена што ќе ја покачи основната цена на звучникот за толку колку што ќе внесеме (5 поени)
- Компанијата нуди два вида на звучници за кои треба да се дефинираат посебни класи: TowerSpeaker и MonitorSpeaker. За првиот вид звучници дополнително се чува податок за типот на столбот на звучникот (има две можности: full/semi), а за вториот вид звучници дополнително се чува податок за намената (има две можности: за во студио/за друга намена).
- За класите треба да се обезбедат:
- соодветни конструктори и деструктори (погледнете ги повиците во main функцијата) (5 поени)
- оператор << за печатење на звучниците во формат: (5 поени)
- модел има/нема појачало цена
- оператор > за споредба на два звучника од каков било вид според пресметаната цена (5 поени)
- метод принт() кој ќе принта звучникот со сите спецификации по редослед од конструктор
- метод float presmetajCena() за пресметување на цената на посебните видови звучници на следниот начин: (10 поени)
- за TowerSpeaker - цената се зголемува за 10% од основната ако звучникот има појачало и за 5% од основната ако видот на столбот е full
- за MonitorSpeaker - цената се зголемува за 10% од основната ако звучникот има појачало и за 15% од основната ако е наменет за во студио
- Во класата Speaker се чува целобројна променлива која е заедничка за сите звучници и го означува данокот на додадена вредност (ДДВ) кој се плаќа за овие производи. Иницијалната вредност на оваа променлива е 18 и ќе биде иста за сите звучници. За работа со оваа променлива да се имплементираат следните методи: (5 поени)
- Доколку се стави негативна вредност за данокот да се фрли усклучок кој ќе принта:
- Ne moze da se stavi negativna vrednost za danok (5 поени)
- Да се имплементира надворешна функција со потпис void lowestPrice(Speaker** s, int n) што ќе го отпечати звучникот со најмала цена и звучникот со најголема цена. (10 поени)
- void smeniDDV(int ddv) за менување на вредноста на ДДВ (5 поени)
- void vkupnoDDV(Speaker** s, int n) која ја печати вкупната цена што треба да се плати за сите звучници и по пресметаниот ДДВ. (5 поени)
- функција void daliIma(Speaker** s, int n) која ќе принта дали може да се купи звучникот т.е. дали го има звучникот во низата (5 поени)
- функција void pogolemaVrednost(Speaker** s, int n)која ќе принта кој тип на звучници има поголема средна вредност во споредба со другиот (10 поени)
- Функција kupiZvucnik(Speaker** s, int n, float kesh) што ќе ги отпечати сите звучници што можеме да ги купиме со дадена цена (10 poeni)
- */
- int main() {
- float power;
- char model[100];
- bool amp;
- float price;
- bool fullSemi;
- int n;
- cin >> n;
- Speaker** speakers = new Speaker*[n];
- for(int i = 0; i < n; ++i) {
- cin >> power;
- cin >> model;
- cin >> amp;
- cin >> price;
- cin >> fullSemi;
- if(i % 2 == 1)
- speakers[i] = new TowerSpeaker(power, model, amp, price, fullSemi);
- else
- speakers[i] = new MonitorSpeaker(power, model, amp, price, fullSemi);
- }
- cout<<"== Testirame najmal i najgolem zvucnik funkcija =="<<endl;
- lowestPrice(speakers, n);
- cout<<"== Testirame vkupnoDDV funkcija =="<<endl;
- Speaker::vkupnoDDV(speakers, n);
- int ddv;
- cout<<"== Testirame DDV =="<<endl;
- cin >> ddv;
- Speaker::smeniDDV(ddv);
- cout<<"== Testirame vkupnoDDV funkcija =="<<endl;
- Speaker::vkupnoDDV(speakers, n);
- for(int i = 0; i < n; ++i) {
- delete speakers[i];
- }
- delete [] speakers;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement