Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 KB | None | 0 0
  1. struct book{
  2.     double szerokosc_k;
  3.     struct book* next;
  4.     struct book* prev;
  5. };
  6.  
  7. Class Shelf
  8. {
  9.     book* pierwsza_ksiazka; //wskaznik na pierwszy element listy booków
  10.     double szerokosc; // szerokosc polki, suma szer. ksiazek nie moze przekroczyc tej szerokosci
  11.     public:
  12.     Shelf(double w); //konstruktor z szerokoscia
  13.     ~Shelf(); //master destroyer
  14.     double szer_polki(); //zwraca szerokosc polki, normalnie nie ma dostepu bo private
  15.     void wypisz(); // wypisuje po kolei szerokosci ksiazek, zaczynajac od poczatku
  16.     int ile_ksiazek(); // zwraca ile ksiazek stoi na polce
  17.     double laczna_szerokosc();
  18.     double pobierz(int); //wyciaga ksiazke o podanym numerze, zsuwa resztę do kupy
  19.     bool wstaw_koniec(double); //wstawia na koniec ksiazke, jezeli sie da
  20. };
  21.  
  22. Shelf::~Shelf()
  23. {   if(pierwsza_ksiazka)
  24.     {
  25.         book* obecny=pierwsza_ksiazka;
  26.         while(obecny && obecny->next)
  27.         {
  28.             book* temp=obecny;
  29.             obecny=obecny->next;
  30.             delete temp;
  31.         }
  32.     delete obecny;
  33. }
  34. Shelf::Shelf(double w)
  35. {
  36.     pierwsza_ksiazka=NULL;
  37.     szerokosc=w;
  38. }
  39.  
  40. bool Shelf::wstaw_koniec(double r); //dostawiam ksiazke dl. r na sam koniec
  41. {
  42.     if(szerokosc-laczna_szerokosc()<r) return 0;    
  43.     if(pierwsza_ksiazka=NULL) //to pierwszą bedzie wlasnie tworzona ksiazka, zwroc 1 jako sukces
  44.     {
  45.         pierwsza_ksiazka->szerokosc_k=r;
  46.         pierwsza_ksiazka->prev=NULL;
  47.         pierwsza_ksiazka->nest=NULL;
  48.         return 1;
  49.     }
  50.     new book* ksiazka;
  51.     ksiazka->szerokosc_k=r; //tworze nowa ksiazke;
  52.     book* obecny = pierwsza_ksiazka; //zm. pomocnicza
  53.     while(obecny->next) obecny=obecny->next;//dochodzimy do ostatniego
  54.     obecny->next=ksiazka; //podlaczamy nowa ksiazke na koniec
  55.     ksiazka->prev =obecny; //itd
  56.     ksiazka->next =NULL; //itd
  57.     return 1; //sukces
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement