Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Вештачко цвеќе Problem 1 (0 / 0)
- Да се имплементира апстрактна класа за репрезентација на вештачко цвеќе. За секое вечтачко цвеќе се чуваат податоци за неговото име (низа од знаци), основна цена (цел број) и боја која преовладува на цвеќето (низа од знаци).
- Од класата VestackoCveke да се изведат класите SoSaksija и BezSaksija. За секое цвеќе кое е во саксија се чува колку е неговата маса (децимален број), а за цвеќето без саксија се чува инфомрација дали има цветови (булова променлива). (5 поени)
- За секој објект од двете изведени класи треба да бидат на располагање следниве методи:
- конструктор со аргументи што одговараат на податочните членови и set и get методи за податочните членови (5 поени)
- метод vratiCena, за пресметување на цената на цвеќето на следниот начин:
- За SoSaksija - основната цена се зголемува за 30% од вредноса на неговата маса.
- За BezSaksija - основната цена се зголемува за 50 ако цвеќето има цветови (10 поени)
- преоптоварен оператор ! = за споредба на две вештачки цвеќиња. Две цвеќиња се различни ако имаат различна боја која преовладува. (5 поени)
- Да се имплементира функција pecatiMinCena што на влез прима низа од вештачки цвеќиња, бројот на елементите од низата и едно вештачко цвеќе V. Функцијата го печати името, бојата и цена на најевтиното цвеќе од цвеќињата од низата кои се со различна боја со цвеќето V (погледни го повикот на функцијата) (10 поени)
- Комплетна функционалност на кодот (5 поени)
- Sample input
- 2
- 1 kaktus 124 zelen 20.5
- 2 kala 234 belo 1
- Sample output
- kaktus zelen 130.15
- //CODE//
- #include<iostream>
- #include<cstring>
- using namespace std;
- class VestackoCveke{
- char ime[20];
- int cena;
- char boja[10];
- public:
- VestackoCveke(const char *ime = " ", int cena = 0, const char *boja = " "){
- strcpy(this -> ime, ime);
- strcpy(this -> boja, boja);
- this -> cena = cena;
- }
- void setIme(char *ime){strcpy(this -> ime, ime);}
- void setBoja(char *boja){strcpy(this -> boja, boja);}
- void setCena(int cena){this -> cena = cena;}
- char *getIme(){return this -> ime;}
- char *getBoja(){return this -> boja;}
- int getCena(){return this -> cena;}
- virtual float vratiCena() = 0;
- virtual ~VestackoCveke(){}
- };
- class SoSaksija : public VestackoCveke{
- float masa;
- public:
- SoSaksija(const char *ime = " ", int cena = 0, const char *boja = " ", float masa = 0.0)
- : VestackoCveke(ime, cena, boja){
- this -> masa = masa;}
- float vratiCena(){
- return this -> getCena() + (0.3 * masa);
- }
- };
- class BezSaksija : public VestackoCveke{
- bool cvet;
- public:
- BezSaksija(const char *ime = " ", int cena = 0, const char *boja = " ", bool cvet = false)
- : VestackoCveke(ime, cena, boja){
- this -> cvet = cvet;
- }
- float vratiCena(){
- if (cvet)
- return this -> getCena() + 50;
- else
- return this -> getCena();
- }
- };
- bool operator !=(VestackoCveke *c1, VestackoCveke &c2){
- return (strcmp(c1 -> getBoja(), c2.getBoja()) != 0);
- }
- void pecatiMinCena(VestackoCveke **cvekinja, int n,SoSaksija &novo) {
- VestackoCveke *min = cvekinja[0];
- for(int i = 0; i < n; i++) {
- if(strcmp(cvekinja[i]->getBoja(), novo.getBoja())!=0)
- if(cvekinja[i]->getCena() < min->getCena())
- min = cvekinja[i];
- }
- cout << min->getIme();
- cout << " "<<min->getBoja();
- cout<< " "<<min-> vratiCena();
- }
- int main(){
- char ime[20],boja[10];
- int tip,cena;
- float masa;
- bool cvet;
- int n;
- cin>>n;
- VestackoCveke **cvekinja;
- cvekinja=new VestackoCveke *[n];
- for (int i=0;i<n;i++){
- cin>>tip>>ime>>cena>>boja;
- if (tip==1) {
- cin>>masa;
- cvekinja[i]=new SoSaksija(ime,cena,boja,masa);
- }
- else {
- cin>>cvet;
- cvekinja[i]=new BezSaksija(ime,cena,boja,cvet);
- }
- }
- SoSaksija novo("ljubicici",45,"crvena",10.5);
- pecatiMinCena(cvekinja,n,novo);
- for (int i=0;i<n;i++) delete cvekinja[i];
- delete [] cvekinja;
- return 0;
- }
Add Comment
Please, Sign In to add comment