Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Пицерија (0 / 0)
- Да се дефинира класа Пица за која ќе се чуваат податоци за (5 поени):
- име на пицата (низа од 15 знаци)
- цена (цел број)
- состојки (динамички алоцирана низа од знаци)
- намалување на цената во проценти (цел број) - ако пицата не е на промоција намалувањето има вредност нула, во спротивно, вредност поголема од нула и не поголема од 100.
- За потребите на оваа класа да се креираат потребните конструктори и да се напише соодветен деструктор. (10 поени) Дополнително за оваа класа да се дефинира функцијата:
- pecati() - функција во која ќе се печатат податоците за пицата во следниот формат: име - состојки, цена. (5 поени)
- istiSe(Pica p) - функција за споредба на две пици според состојките (5 поени):
- Да се дефинира класа Picerija во која се чуваат (5 поени):
- име (низа од максимум 15 знаци)
- динмички алоцирана низа од објекти од класата Pica
- број на пици (цел број)
- За потребите на оваа класа да се дефинираат потребните конструктори и да се напише соодветен деструктор. (10 поени) Да се имплементираат и следниве методи:
- dodadi (Pica P) - за додавање нова пица во пицеријата, но само ако не постои иста во низата (нема пица со исти состојки со пицата што треба да се додаде). (10 поени)
- void piciNaPromocija() - се печатат сите пици од пицеријата што се на промоција во формат : име - состојки, цена, цена со попуст. (10 поени)
- Sample input
- FINKI-Pica
- 4
- Margarita
- 200
- Domaten sos, kaskaval, maslinovo maslo
- 0
- Napolitana
- 210
- Domaten sos, kaskaval, svezi sampinjoni, maslinovo maslo
- 0
- Kapricioza
- 210
- Domaten sos, kaskaval, sunka, svezi sampinjoni
- 30
- Vegetarijana
- 230
- Domaten sos, kaskaval, tikvici, svezi sampinjoni, piperka, domat, maslinki, rukola, pcenka
- 20
- Pica-FINKI
- Tuna
- 230
- Domaten sos, kaskaval, pcenka, maslinki, tuna, rukola
- 0
- Sample output
- FINKI-Pica
- Pici na promocija:
- Kapricioza - Domaten sos, kaskaval, sunka, svezi sampinjoni, 210 147
- Vegetarijana - Domaten sos, kaskaval, tikvici, svezi sampinjoni, piperka, domat, maslinki, rukola, pcenka, 230 184
- Pica-FINKI
- Pici na promocija:
- Kapricioza - Domaten sos, kaskaval, sunka, svezi sampinjoni, 210 147
- Vegetarijana - Domaten sos, kaskaval, tikvici, svezi sampinjoni, piperka, domat, maslinki, rukola, pcenka, 230 184
- //CODE//
- #include <iostream>
- #include <cstring>
- using namespace std;
- class Pica{
- char ime[15];
- int cena;
- char *sostojki;
- int popust;
- public:
- Pica(){}
- Pica(const char *ime, int cena, const char *sostojki, int popust){
- strcpy(this -> ime, ime);
- this -> cena = cena;
- this -> sostojki = new char[strlen(sostojki) + 1];
- strcpy(this -> sostojki, sostojki);
- this -> popust = popust;
- }
- Pica(const Pica &p){
- strcpy(this -> ime, p.ime);
- this -> cena = p.cena;
- this -> sostojki = new char[strlen(p.sostojki) + 1];
- strcpy(this -> sostojki, p.sostojki);
- this -> popust = p.popust;
- }
- Pica &operator=(const Pica &p){
- if(this != &p){ strcpy(this -> ime, p.ime);
- this -> cena = p.cena;
- delete [] sostojki;
- sostojki = new char[strlen(p.sostojki) + 1];
- strcpy(this -> sostojki, p.sostojki);
- this -> popust = p.popust;
- }
- return *this;
- }
- void pecati ()
- {
- cout<<ime<<" - "<<sostojki<<", "<<cena<<" "<<cena - (float(popust*cena)/100)<<endl;
- }
- bool istiSe(Pica p){
- if (!strcmp(sostojki, p.sostojki))
- return true;
- else
- return false;
- }
- int getPopust(){return this -> popust;}
- };
- class Picerija{
- char ime[15];
- Pica *pici;
- int brpici;
- public:
- Picerija(const char *ime = " "){
- strcpy(this -> ime, ime);
- this -> brpici = 0;
- this -> pici = new Pica[0];
- }
- Picerija(const Picerija &p){
- strcpy(this -> ime, ime);
- this -> brpici = p.brpici;
- this -> pici = new Pica[p.brpici];
- for(int i = 0; i < p.brpici; i++){
- this -> pici[i] = p.pici[i];}
- }
- Picerija &operator=(const Picerija &p){
- if(this != &p){
- strcpy(this -> ime, ime);
- this -> brpici = p.brpici;
- this -> pici = new Pica[p.brpici];
- for(int i = 0; i < p.brpici; i++){
- this -> pici[i] = p.pici[i];}
- } return *this;
- }
- void setIme(char *ime){strcpy(this -> ime, ime);}
- const char* getIme(){return this -> ime;}
- void dodadi (Pica p)
- {
- if (p.getPopust() > 0 && p.getPopust() <= 100)
- {
- Pica *tmp = new Pica[brpici + 1];
- for (int i = 0; i < brpici; i++)
- {
- tmp[i] = pici[i];
- }
- if (!brpici)
- {
- tmp[brpici++] = p;
- delete [] pici;
- pici = tmp;
- }
- else
- if(tmp[brpici - 1].istiSe(p) != true)
- {
- tmp[brpici++] = p;
- delete [] pici;
- pici = tmp;
- }
- }
- }
- void piciNaPromocija(){
- for(int i = 0; i < brpici; i++){
- pici[i].pecati();
- }
- }
- };
- int main () {
- int n;
- char ime[15];
- cin >> ime;
- cin >> n;
- Picerija p1(ime);
- for(int i = 0; i < n; i++){
- char imp[100];
- cin.get();
- cin.getline(imp,100);
- int cena;
- cin >> cena;
- char sostojki[100];
- cin.get();
- cin.getline(sostojki,100);
- int popust;
- cin >> popust;
- Pica p(imp,cena,sostojki,popust);
- p1.dodadi(p);
- }
- Picerija p2 = p1;
- cin >> ime;
- p2.setIme(ime);
- char imp[100];
- cin.get();
- cin.getline(imp,100);
- int cena;
- cin >> cena;
- char sostojki[100];
- cin.get();
- cin.getline(sostojki,100);
- int popust;
- cin >> popust;
- Pica p(imp,cena,sostojki,popust);
- p2.dodadi(p);
- cout<<p1.getIme()<<endl;
- cout<<"Pici na promocija:"<<endl;
- p1.piciNaPromocija();
- cout<<p2.getIme()<<endl;
- cout<<"Pici na promocija:"<<endl;
- p2.piciNaPromocija();
- return 0;
- }
Add Comment
Please, Sign In to add comment