Advertisement
barbos01

Untitled

Nov 5th, 2021
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.29 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. int numar_cd = 0;
  6. class CD
  7. {
  8.  
  9. private:
  10.     char interpret[30];//stocam numele interpretului
  11.     char titlu[30];//titlul albumului
  12.     char melodii[30][50];//vector care contine melodiile
  13.     int nr_melodii = 0;//numarul de melodi de pe CD
  14. public:
  15.     friend void introducere_informatii(CD magazin[101]);//functie de introducere de CD-uri
  16.     friend  void afisare_cd(CD magazin[101]);//functie pentru a afisa continutul unui CD
  17.     friend void ordonare(CD magazin[101], int nr_ord);// Ordoneaza piesele unui CD alfabetic
  18.     friend void stergere_cd(CD magazin[101], int nr_ord);// Sterge CD-ul si elementele acestuia
  19. };
  20.  
  21. void introducere_informatii(CD magazin[101])
  22. {
  23.     cin.get();
  24.     int n;
  25.     cout<<"Introduceti numele interpretului: ";
  26.     cin.get(magazin[numar_cd].interpret, 30);
  27.     cin.get();
  28.     cout<<"Introduceti titlul albumului: ";
  29.     cin.get(magazin[numar_cd].titlu, 30);
  30.     cin.get();
  31.     cout<<"Introduceti numarul melodiilor: " ;
  32.     cin>>n;
  33.     magazin[numar_cd].nr_melodii = n;
  34.     for(int i = 0; i < n; i++)
  35.     {
  36.         cout<<"Introduceti numele piesei: ";
  37.         cin.get();
  38.         cin.get(magazin[numar_cd].melodii[i], 30);
  39.     }
  40.     numar_cd++;
  41.  
  42.  
  43. }
  44.  
  45. void afisare_cd(CD magazin[101])
  46. {
  47.     for( int i = 0; i < numar_cd; i++)
  48.     {
  49.         cout<<"CD-ul "<<i+1<<" contine: \n";
  50.         cout<<"Titlul albumului este: ";
  51.         cout<<magazin[i].titlu;
  52.         cout<<"\nNumele interpretului este: ";
  53.         cout<<magazin[i].interpret;
  54.         cout<<"\nPiesele de pe acest album sunt: ";
  55.         for(int j = 0; j < magazin[i].nr_melodii; j++)
  56.             cout<<magazin[i].melodii[j]<< " ";
  57.         cout<<endl;
  58.         cout<<"\n\n";
  59.     }
  60.     cout<<"\n";
  61.  
  62. }
  63.  
  64. void ordonare(CD magazin[101], int nr_ord)
  65. {
  66.     for(int i = 0; i < magazin[nr_ord].nr_melodii; i++)
  67.     {
  68.         for(int j = i + 1; j < magazin[nr_ord].nr_melodii; j++)
  69.         {
  70.             if(strcmp(magazin[nr_ord].melodii[i], magazin[nr_ord].melodii[j]) > 0)
  71.             {
  72.                 char aux[30];
  73.                 strcpy(aux, magazin[nr_ord].melodii[i]);
  74.                 strcpy(magazin[nr_ord].melodii[i], magazin[nr_ord].melodii[j]);
  75.                 strcpy(magazin[nr_ord].melodii[j], aux);
  76.             }
  77.         }
  78.     }
  79.     cout<<"Piesele de pe cd-ul " << nr_ord + 1 <<" sunt: ";
  80.     for(int j = 0; j < magazin[nr_ord].nr_melodii; j++)
  81.         cout<<magazin[nr_ord].melodii[j]<< " ";
  82.     cout<<endl;
  83.     cout<<"\n\n";
  84. }
  85.  
  86. void stergere_cd(CD magazin[101], int nr_ord)
  87. {
  88.     if(nr_ord == numar_cd-1)
  89.     {
  90.         numar_cd--;
  91.         cout<<"\nSingurul CD din sistem a fost sters, va rugam introduceti altele!\n";
  92.     }
  93.     else
  94.     {
  95.         for(int i = nr_ord; i < numar_cd - 1; i++)
  96.         {
  97.             strcpy( magazin[i].interpret,  magazin[i + 1].interpret);
  98.             strcpy( magazin[i].titlu, magazin[i + 1].titlu);
  99.             magazin[i].nr_melodii = magazin[i + 1].nr_melodii;
  100.             for(int j = 0; j < magazin[i].nr_melodii; j++)
  101.             {
  102.                 strcpy(magazin[i].melodii[j], magazin[i + 1].melodii[j]);
  103.             }
  104.         }
  105.         numar_cd--;
  106.         cout<<"CD-urile care au ramas sunt: ";
  107.         afisare_cd(magazin);
  108.     }
  109. }
  110.  
  111. int main()
  112. {
  113.     CD magazin[101];
  114.     int choice;
  115.     do
  116.     {
  117.         cout<<"--------------------------------------------\n";
  118.         cout<<"MENIU\n";
  119.         cout<<"1. Introduceti un CD nou;\n";
  120.         cout<<"2. Afisati toate CD-urile, cu componenta acestora;\n";
  121.         cout<<"3. Ordonare piese;\n";
  122.         cout<<"4. Stergere CD;\n";
  123.         cout<<"5. Iesire.\n\n";
  124.         cout<<"--------------------------------------------\n";
  125.         cout<<"Optiunea dumneavoastra este: ";
  126.         cin>>choice;
  127.         cout<<"-------------------------------------------\n";
  128.         switch(choice)
  129.         {
  130.         case 1:
  131.             introducere_informatii(magazin);
  132.             break;
  133.         case 2:
  134.             if(numar_cd == 0)
  135.                 cout<<"Nu exista CD-uri introduse! Incercati sa adaugati!\n";
  136.             else
  137.                 afisare_cd(magazin);
  138.             break;
  139.         case 3:
  140.             cout<<"`````````````````````````````````\n";
  141.             if(numar_cd == 0)
  142.                 cout<<"Nu exista CD-uri introduse! Incercati sa adaugati!\n";
  143.             else
  144.             {
  145.                 int nr_cd;
  146.                 cout<<"Introduceti CD-ul unde doriti sa ordonati crescator piesele: ";
  147.                 cin>>nr_cd;
  148.                 ordonare(magazin, nr_cd-1);
  149.             }
  150.             cout<<"`````````````````````````````````\n";
  151.             break;
  152.         case 4:
  153.             cout<<"`````````````````````````````````\n";
  154.             if(numar_cd == 0)
  155.                 cout<<"Nu exista CD-uri introduse! Incercati sa adaugati!\n";
  156.             else
  157.             {
  158.                 cout<<"Introduceti CD-ul pe care doriti sa-l stergeti: ";
  159.                 int nr_cd;
  160.                 cin>>nr_cd;
  161.                 stergere_cd(magazin,nr_cd-1);
  162.             }
  163.             cout<<"`````````````````````````````````\n";
  164.             break;
  165.         case 5:
  166.             exit(0);
  167.         default:
  168.             cout<<" Alegeti una dintre optiunile mentionate!\n";
  169.         }
  170.     }
  171.     while(choice != 5);
  172.  
  173.  
  174.  
  175.     return 0;
  176. }
  177.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement