Mitrezzz

Маркет

Mar 26th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.35 KB | None | 0 0
  1. *Да се дефинира класа Mushterija за која ќе се чуваат податоци за:
  2.  
  3. име на муштеријата(динамички алоцирана низа од знаци)
  4. колку производи купил (цел број)
  5. цена на секој производ (динамички алоцирана низа од децимални броеви)
  6.  
  7. За потребите на оваа класа да се креираат потребните конструктори, соодветни сет и гет методи ( или кои и да ти требаат )и да се напише соодветен деструктор. Дополнително за оваа класа да се дефинира функцијата:
  8.  
  9. print() - функција во која ќе се печатат податоците за муштеријата во следниот формат: име - производи - вкупната цена на производи.
  10. hint: вкупна цена ќе треба ви биде функција
  11.  
  12. *Да се дефинира класа Market во која се чуваат:
  13.  
  14. име (динамички алоцирана низа од знаци)
  15. динмички алоцирана низа од објекти од класата Муштерија
  16. број на муштерии (цел број)
  17.  
  18. За потребите на оваа класа да се дефинираат потребните конструктори и да се напише соодветен деструктор. Да се имплементираат и следниве функции:
  19.  
  20. dodadi(Mushterija p) - за додавање нов муштерија во маркетот
  21. izbrisi(Mushterija p) - за да го избрише муштеријата пратен во параметри
  22. print() - ќе ги испринта сите муштерии
  23. averageCena() - ќе ја испринта средната вредност на вкупната цената на производи на сите муштерии заедно
  24. aboveAverage() - ќе ги испринта сите муштерии што имаат цена на производи над средната вредност
  25.  
  26. Оваа решете ја и good to go сте за понеделник. Со среќа! Решението го добивате недела сабајле :D
  27.  
  28. #include<iostream>
  29. #include<cstring>
  30. using namespace std;
  31.  
  32. class Mushterija{
  33. private:
  34. float *cena;
  35. int proizvodi;
  36. char *ime;
  37. public:
  38.     Mushterija(){}
  39.     Mushterija(char *ime,int proizvodi,float *cena){
  40.     this->ime=new char[strlen(ime)+1];
  41.     strcpy(this->ime,ime);
  42.     this->proizvodi=proizvodi;
  43.     this->cena=new float[proizvodi];
  44.     for(int i=0;i<proizvodi;i++){
  45.         this->cena[i]=cena[i];
  46.     }
  47.     }
  48.     float vkupnaCena(){
  49.     float zbir=0;
  50.     for(int i=0;i<proizvodi;i++){
  51.         zbir+=cena[i];
  52.     }
  53.     return zbir;
  54.     }
  55.     void print(){
  56.     cout<<ime<<" kupil "<<proizvodi<<" proizvodi, vkupna cena: "<<vkupnaCena()<<endl;
  57.     }
  58.     int getProizvodi(){
  59.     return this->proizvodi;
  60.     }
  61.     char* getIme(){
  62.     return this->ime;
  63.     }
  64.  
  65. };
  66. class Market{
  67. private:
  68. Mushterija *mushterii;
  69. int n;
  70. char *ime;
  71. public:
  72.     Market(){}
  73.     Market(char *ime){
  74.     this->ime=new char[strlen(ime)+1];
  75.     strcpy(this->ime,ime);
  76.     mushterii = new Mushterija[0];
  77.     for(int i=0;i<n;i++)
  78.         this->mushterii[i]=mushterii[i];
  79.     n=0;
  80.     }
  81.     void print(){
  82.     for(int i=0;i<n;i++){
  83.         mushterii[i].print();
  84.     }
  85.     }
  86.  
  87.     float averageCena(){
  88.     float zbir=0;
  89.     for(int i=0;i<n;i++){
  90.         zbir+=mushterii[i].vkupnaCena();
  91.     }
  92.     return zbir/n;
  93.     }
  94.  
  95.     void dodadi(Mushterija &p){
  96.     Mushterija *tmp = new Mushterija[n+1];
  97.     for(int i=0;i<n;i++){
  98.         tmp[i]=mushterii[i];
  99.     }
  100.     mushterii=new Mushterija[n+1];
  101.     for(int i=0;i<n;i++){
  102.         mushterii[i]=tmp[i];
  103.     }
  104.     mushterii[n]=p;
  105.     n++;
  106.     delete []tmp;
  107.     }
  108.  
  109.     void izbrisi(Mushterija &p){
  110.     Mushterija *tmp = new Mushterija[n-1];
  111.     int brojac=0;
  112.     for(int i=0;i<n;i++){
  113.         if(!(strcmp(p.getIme(),mushterii[i].getIme())==0)){
  114.             tmp[brojac]=mushterii[i];
  115.             brojac++;
  116.         }
  117.     }
  118.     mushterii=new Mushterija[n-1];
  119.     n--;
  120.     for(int i=0;i<n;i++){
  121.         mushterii[i]=tmp[i];
  122.     }
  123.     delete []tmp;
  124.     }
  125.     void aboveAverage(){
  126.     float average = averageCena();
  127.     for(int i=0;i<n;i++){
  128.         if(mushterii[i].vkupnaCena()>averageCena()){
  129.             mushterii[i].print();
  130.         }
  131.     }
  132.     }
  133.  
  134. };
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141. int main(){
  142. char imeM[15];
  143. cin>>imeM;
  144. Market hubo(imeM);
  145. int n;
  146. cin>>n;
  147. Mushterija niza[n];
  148. char ime[15];
  149. int dolz;
  150. for(int i=0;i<n;i++){
  151.     cin>>ime>>dolz;
  152.     float proizvodi[dolz];
  153.     for(int j=0;j<dolz;j++){
  154.         cin>>proizvodi[j];
  155.     }
  156.     niza[i] = Mushterija(ime,dolz,proizvodi);
  157.     hubo.dodadi(niza[i]); // povik na dodadi funkcijata
  158. }
  159. cout<<"\nSite mushterii vo marketot se"<<endl;
  160. hubo.print(); // printame site mushterii vo marketot
  161. cout<<"\nAverage cena e "<<hubo.averageCena()<<endl; // printa average plata na site mushterii
  162. cout<<"\nKe go izbrisham objektot "<<niza[1].getIme()<<endl;
  163. hubo.izbrisi(niza[1]);
  164. cout<<"\nSite mushterii vo marketot posle brishenje na "<<niza[1].getIme()<<" se"<<endl;
  165. hubo.print();
  166. cout<<"\nGi printam site shto imaat nad average cena na proizvodi"<<endl;
  167. hubo.aboveAverage();
  168. return 0;
  169. }
  170.  
  171. // main
  172. int main(){
  173. char imeM[15];
  174. cin>>imeM;
  175. Market hubo(imeM);
  176. int n;
  177. cin>>n;
  178. Mushterija niza[n];
  179. char ime[15];
  180. int dolz;
  181. for(int i=0;i<n;i++){
  182.     cin>>ime>>dolz;
  183.     float proizvodi[dolz];
  184.     for(int j=0;j<dolz;j++){
  185.         cin>>proizvodi[j];
  186.     }
  187.     niza[i] = Mushterija(ime,dolz,proizvodi);
  188.     hubo.dodadi(niza[i]); // povik na dodadi funkcijata
  189. }
  190. cout<<"\nSite mushterii vo marketot se"<<endl;
  191. hubo.print(); // printame site mushterii vo marketot
  192. cout<<"\nAverage cena e "<<hubo.averageCena()<<endl; // printa average plata na site mushterii
  193. cout<<"\nKe go izbrisham objektot "<<niza[1].getIme()<<endl;
  194. hubo.izbrisi(niza[1]);
  195. cout<<"\nSite mushterii vo marketot posle brishenje na "<<niza[1].getIme()<<" se"<<endl;
  196. hubo.print();
  197. cout<<"\nGi printam site shto imaat nad average cena na proizvodi"<<endl;
  198. hubo.aboveAverage();
  199. return 0;
  200. }
Add Comment
Please, Sign In to add comment