Advertisement
LDG2875

tema!

Mar 17th, 2022
1,021
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.35 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #include <vector>
  4. #define N 10000
  5.  
  6. using namespace std;
  7.  
  8. int max_size = 100;
  9.  
  10. class Accesoriu
  11. {
  12.     string nume, culoare;
  13.     double pret;
  14.     int id;
  15.  
  16. public:
  17.     /// GETTERS AND SETTERS///
  18.     void set_Id(int idd);
  19.     int get_Id();
  20.  
  21.     void set_Pret(double ppret);
  22.     double get_Pret();
  23.  
  24.     void set_Culoare(string cculoare);
  25.     string get_Culoare();
  26.  
  27.     void set_Nume(string nnume);
  28.     string get_Nume();
  29.  
  30.  
  31.  
  32. };
  33.  
  34. void Accesoriu::set_Culoare(string cculoare)
  35. {
  36.     Accesoriu:: culoare=cculoare;
  37. }
  38.  
  39. string Accesoriu::get_Culoare()
  40. {
  41.     return culoare;
  42. }
  43.  
  44. void Accesoriu::set_Id(int idd)
  45. {
  46.     Accesoriu::id=idd;
  47. }
  48.  
  49. int Accesoriu::get_Id()
  50. {
  51.     return id;
  52. }
  53.  
  54. void Accesoriu::set_Nume(string nnume)
  55. {
  56.     Accesoriu:: nume=nnume;
  57. }
  58.  
  59. string Accesoriu::get_Nume()
  60. {
  61.     return nume;
  62. }
  63.  
  64. void Accesoriu::set_Pret(double ppret)
  65. {
  66.     Accesoriu:: pret=ppret;
  67. }
  68.  
  69. double Accesoriu::get_Pret()
  70. {
  71.     return pret;
  72. }
  73.  
  74.  
  75. class Angajat
  76. {
  77.     string nume;
  78.     double salariu;
  79. public:
  80.  
  81.     void set_Nume(string nnume);
  82.     string get_Nume();
  83.  
  84.     void set_Salariu(double ssalariu);
  85.     double get_Salariu();
  86.  
  87.  
  88. };
  89.  
  90. void Angajat::set_Nume(string nnume)
  91. {
  92.     Angajat:: nume = nnume;
  93. }
  94.  
  95. string Angajat::get_Nume()
  96. {
  97.     return nume;
  98. }
  99.  
  100. void Angajat::set_Salariu(double ssalariu)
  101. {
  102.     Angajat:: salariu=ssalariu;
  103. }
  104.  
  105. double Angajat::get_Salariu()
  106. {
  107.     return salariu;
  108. }
  109.  
  110.  
  111.  
  112. class Boutique
  113. {
  114.     Accesoriu *accesorii = new Accesoriu[100];
  115.     Angajat angajati[10];
  116.  
  117.     int nr_accesorii, nr_angajati;
  118.     int i;
  119.  
  120. public:
  121.  
  122.     /// GETTERS AND SETTERS///
  123.     void set_NrAccesorii(int nnr_accesorii)
  124.     {
  125.         nr_accesorii = nnr_accesorii;
  126.     }
  127.     int get_NrAccesorii()
  128.     {
  129.         return nr_accesorii;
  130.     }
  131.  
  132.     void set_NrAngajati(int nnr_angajati)
  133.     {
  134.         nr_angajati = nnr_angajati;
  135.     }
  136.  
  137.     int get_NrAngajati()
  138.     {
  139.         return nr_angajati;
  140.     }
  141.  
  142.  
  143.     ///CONSTRUCTORI & DESTRUCTORI///
  144.     /// CONSTRUCTOR DE COPIERE
  145.  
  146.     Boutique(Accesoriu *newarr)
  147.     {
  148.         int i;
  149.         for(i=0; i<nr_accesorii; i++)
  150.             newarr[i] = accesorii[i];
  151.     }
  152.  
  153.  
  154.     Boutique() /// constructor de initializare (fara parametrii) cu null pe fiecare componenta
  155.     {
  156.         for(i = 0; i < nr_accesorii; i++)
  157.         {
  158.             accesorii[i].set_Nume("");
  159.             accesorii[i].set_Culoare("");
  160.             accesorii[i].set_Pret(0);
  161.             accesorii[i].set_Id(0);
  162.         }
  163.  
  164.     }
  165.     ~Boutique() /// destructor care dezaloca toate "accesoriile" pointate de componentele vectorului
  166.     {
  167.         nr_accesorii = 0;
  168.         delete[]accesorii;
  169.         cout << "obiect distrus" <<"\n";
  170.  
  171.     }
  172.  
  173.  
  174.     void AdaugareAccesoriu( Accesoriu x);
  175.  
  176.     void EliminareAccesoriu( int idd);
  177.  
  178.     void  eliminare(string nnume); /// eliminare accesoriu cu numele X
  179.  
  180.     void eliminare( double ppret); /// eliminare accesoriu dupa un anumit pret
  181.  
  182.     void eliminare(int salary);
  183.  
  184.     void  Celmaiieftin_Accesoriu();
  185.  
  186.     void Afisare_Accesorii();
  187.  
  188.     void Cautare_Accesoriu(string nnume, string cculoare);
  189. };
  190.  
  191. void Boutique::AdaugareAccesoriu(Accesoriu x)
  192. {
  193.     Accesoriu *newarr;
  194.     if(nr_accesorii  + 1 > max_size)
  195.     {
  196.         newarr = new Accesoriu[nr_accesorii];
  197.         max_size = max_size * 2;
  198.     }
  199.  
  200.     for(int i = 0; i < nr_accesorii; ++i)
  201.     {
  202.         newarr[i] = accesorii[i];
  203.     }
  204.     newarr[nr_accesorii+1] = x;
  205.  
  206.     delete[]accesorii;
  207.     accesorii = new Accesoriu[max_size];
  208.     for(int i = 0; i < nr_accesorii; ++i)
  209.     {
  210.         accesorii[i] = newarr[i];
  211.     }
  212. }
  213.  
  214. void Boutique::EliminareAccesoriu(int idd)
  215. {
  216.     int i, m = -1;
  217.     Accesoriu *newarr = new Accesoriu[nr_accesorii];
  218.     for(i=0; i<nr_accesorii; i++)
  219.         if(accesorii[i].get_Id() != idd)
  220.         {
  221.             newarr[m++] = accesorii[i];
  222.         }
  223.     delete[]accesorii;
  224.     accesorii = new Accesoriu[max_size];
  225.     for(int i = 0; i < m; ++i)
  226.     {
  227.         accesorii[i] = newarr[i];
  228.     }
  229.     nr_accesorii = m;
  230. }
  231.  
  232. void Boutique::eliminare(string nnume)
  233. {
  234.     int i, m = -1;
  235.     Accesoriu *newarr = new Accesoriu[nr_accesorii];
  236.  
  237.     for(i=0; i<nr_accesorii; i++)
  238.         if(accesorii[i].get_Nume() != nnume)
  239.         {
  240.             newarr[m++] = accesorii[i];
  241.         }
  242.     delete[]accesorii;
  243.     accesorii = new Accesoriu[max_size];
  244.     for(int i = 0; i < m; ++i)
  245.     {
  246.         accesorii[i] = newarr[i];
  247.     }
  248.     nr_accesorii = m;
  249. }
  250.  
  251. void Boutique::eliminare(double ppret)
  252. {
  253.     int i, m = -1;
  254.     Accesoriu *newarr = new Accesoriu[nr_accesorii];
  255.  
  256.     for(i=0; i<nr_accesorii; i++)
  257.         if(accesorii[i].get_Pret() != ppret)
  258.         {
  259.             newarr[m++] = accesorii[i];
  260.  
  261.         }
  262.     delete[]accesorii;
  263.     accesorii = new Accesoriu[max_size];
  264.     for(int i = 0; i < m; ++i)
  265.     {
  266.         accesorii[i] = newarr[i];
  267.     }
  268.     nr_accesorii = m;
  269. }
  270.  
  271. void Boutique::eliminare(int salary)
  272. {
  273.     int i;
  274.     int m = -1;
  275.     Angajat newarr[10];
  276.     for(i=0; i<nr_angajati; i++)
  277.         if(angajati[i].get_Salariu() != salary)
  278.         {
  279.             newarr[m++] = angajati[i];
  280.         }
  281.  
  282.     nr_angajati = m;
  283.     for(i=0; i<m; i++)
  284.         angajati[i]=newarr[i];
  285. }
  286.  
  287. void Boutique::Cautare_Accesoriu(string nnume, string cculoare)
  288. {
  289.     bool ok = 0;
  290.     int i;
  291.     for(i=0; i<nr_accesorii; i++)
  292.         if(accesorii[i].get_Nume() == nnume && accesorii[i].get_Culoare() == cculoare)
  293.         {
  294.             ok = 1;
  295.             cout << accesorii[i].get_Id() <<" "<< accesorii[i].get_Pret() <<"\n";
  296.         }
  297.  
  298.     if(ok == 0)
  299.         cout << "Nu am gasit produsul dorit.";
  300.  
  301. }
  302. void Boutique::Celmaiieftin_Accesoriu()
  303. {
  304.     int i;
  305.     double vmin=300;
  306.     for(i=0; i<nr_accesorii; i++)
  307.         if(accesorii[i].get_Pret() < vmin)
  308.             vmin = accesorii[i].get_Pret();
  309.     for(i=0; i<nr_accesorii; i++)
  310.         if(accesorii[i].get_Pret()==vmin)
  311.             cout << accesorii[i].get_Id() <<"\n";
  312. }
  313.  
  314. void Boutique::Afisare_Accesorii()
  315. {
  316.     int i;
  317.     for(i=0; i<nr_accesorii; i++)
  318.         cout << accesorii[i].get_Id()<<" "<<accesorii[i].get_Nume()<<"\n";
  319.  
  320. }
  321.  
  322. Accesoriu a1, a2, a3;
  323. Boutique B;
  324.  
  325. void Menu()
  326. {
  327.     int task;
  328.     string Culoare_Accesoriu, Nume_Accesoriu;
  329.     int ID_Accesoriu;
  330.     cout << " Esti in cautarea unui accesoriu? Ai venit in locul potrivit. Iti prezentam gama noastra de produse.";
  331.     B.Afisare_Accesorii();
  332.  
  333.     cout << " Daca vrei sa iesi din magazin, apasa tasta 0. Daca vrei sa continui, apasa tasta 1.";
  334.     cin >> task;
  335.     while(task !=0)
  336.     {
  337.  
  338.         cout <<" Vrei sa cauti un accesoriu dupa nume si culoare? Daca da, apasa 1, daca nu, apasa 2.";
  339.         cin >> task;
  340.         if(task == 1)
  341.         {
  342.             cout<< "Introdu numele accesoriului (care poate fi palarie, bereta, sapca) si culoarea ( rosu, verde, albastru).";
  343.             cin >> Nume_Accesoriu >> Culoare_Accesoriu;
  344.             B.Cautare_Accesoriu(Culoare_Accesoriu, Nume_Accesoriu);
  345.  
  346.         }
  347.  
  348.         if(task != 0)
  349.         {
  350.             cout << "Vrei sa cauti cel mai ieftin Accesoriu? Daca da, apasa 1, daca nu, apasa 2.";
  351.             cin >> task;
  352.             if(task == 1)
  353.                 B.Celmaiieftin_Accesoriu();
  354.             if(task!=0)
  355.                 cout << "Te-ai hotarat ce accesoriu vrei? Introdu id-ul lui";
  356.             {
  357.                 cin >> ID_Accesoriu;
  358.                 B.EliminareAccesoriu(ID_Accesoriu);
  359.             }
  360.         }
  361.  
  362.     }
  363.  
  364.     cout << "Te mai asteptam!";
  365.  
  366. }
  367.  
  368. int main()
  369. {
  370.     cout << "Bine ati venit in Boutique!"<<"\n";
  371.  
  372.     a1.set_Id(1);
  373.     a1.set_Nume("palarie");
  374.     a1.set_Culoare("rosie");
  375.     a1.set_Pret(50.0);
  376.     a2.set_Id(2);
  377.     a2.set_Nume("palarie");
  378.     a2.set_Culoare("mov");
  379.     a2.set_Pret(50.0);
  380.     a3.set_Id(3);
  381.     a3.set_Nume("bereta");
  382.     a3.set_Culoare("rosie");
  383.     a3.set_Pret(75.0);
  384.  
  385.     B.AdaugareAccesoriu(a1);
  386.     B.AdaugareAccesoriu(a2);
  387.  
  388.     //cout <<"Accesoriile noastre sunt: "<<"\n";
  389.     // cout << a1.get_Nume()<<" "<<a1.get_Culoare()<<" "<<a1.get_Pret() <<"\n";
  390.     //cout << a2.get_Nume() <<" "<<a2.get_Culoare()<<" "<<a2.get_Pret()<<"\n";
  391.     //cout << a3.get_Nume()<<" "<<a3.get_Culoare()<<" "<<a3.get_Pret() <<"\n";
  392.  
  393.     Accesoriu a4;
  394.     a4 = a1;
  395.     //cout << a4.get_Nume()<<" "<<a4.get_Culoare()<<" "<<a4.get_Pret() <<"\n";
  396.  
  397.     Menu();
  398.  
  399.     return 0;
  400. }
  401.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement