Advertisement
falkorXXI

X68213 - Biblioteca (PRO2)

Mar 22nd, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <stack>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. struct Llibre{
  7.     string nom;
  8.     int categoria;
  9. };
  10.  
  11. void treure_elements_pila(vector< stack<string> >& v, int nelem, int pila){
  12.     for(int i = 0; i < nelem; ++i){
  13.         v[pila-1].pop();
  14.     }
  15. }
  16.  
  17. void mostrar_pila(vector< stack<string> > v, int mostrar, int n){
  18.     cout << "Pila de la categoria " << mostrar << endl;
  19.     vector< stack<string> > aux(n);
  20.     aux[mostrar-1] = v[mostrar-1];
  21.     while(not aux[mostrar-1].empty()){
  22.         cout << aux[mostrar-1].top() << endl;
  23.         aux[mostrar-1].pop();
  24.     }
  25.     cout << endl;
  26. }
  27.  
  28. int main(){
  29.     int n; //categories, es a dir nombre de piles que hi hauran
  30.     int opcions;    //tareas a realizar
  31.     cin >> n;
  32.     vector< stack<string> > v(n); //creamos un vector de stacks(tantas pilas como nos dice n)
  33.     while(cin >> opcions and opcions != -4){
  34.         if(opcions == -1){
  35.             Llibre ll;
  36.             cin >> ll.nom >> ll.categoria;
  37.             v[ll.categoria - 1].push(ll.nom);
  38.         }
  39.         else if(opcions == -3){
  40.             int mostrar;
  41.             cin >> mostrar; //pila a mostrar
  42.             mostrar_pila(v, mostrar, n);
  43.         }
  44.         else if(opcions == -2){
  45.             int treu_llibres, pila_treu; //pila on esta el llibre a retirar
  46.             cin >> treu_llibres >> pila_treu;
  47.             treure_elements_pila(v, treu_llibres, pila_treu);
  48.         }
  49.     }
  50. }
  51.  
  52.  
  53. /*
  54.  (Opció -1) Un usuari retorna un llibre i ho posa en la pila de devolucions corresponent a la seva categoria
  55.  
  56.  (Opció -2) El personal de la biblioteca retira un cert nombre de llibres correlativament a partir de la cima d’una de las pilas del mostrador; tal nombre no pot ser major que la alçada de la pila
  57.  
  58.  (Opció -3) consistent en escriure el contengut d’una de las piles del mostrador
  59.  
  60.  (Opció -4) serà la de terminar el programa
  61.  */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement