1. Zaimplementuj strukturę Książka o polach
Transkrypt
1. Zaimplementuj strukturę Książka o polach
Zajęcia 12. Wszystkie zadania są samodzielne (punktacja na końcu). 1. Zaimplementuj strukturę Książka o polach: 1. tytuł: string 2. waga: double 3. wielkość: double 2. Zaimplementuj strukturę Półka, która będzie pozwalała na przechowywanie książek w sposób uporządkowany tzn. każda książka na półce zna książkę po swojej lewej i prawej stronie (lista dwukierunkowa). Innymi słowy, półka przechowuje listę książek. Ilość książek na płce może być dowolna, ale łączna ich waga i wielkość nie może przekroczyć ustalownego zakresu przechowywanego w polach Półki: 1. max_waga: double 2. max_wielkosc: double Może warto przechowywać również aktualną wagę i wielkość wszystkich książek na półce. 3. Półka powinna udostępniać metody dodawania i pobierania książek z półki: 1. bool dodaj(Książka k, bool zLewej = true) – Metoda dodaje książkę na pierwszą pozycję od lewej jeśli zLewej=true (jest to argument z wartością domyślną), albo pierwszą pozycję od prawej jeśli zLewej = false. Jeśli łączna waga lub wielkość książek na półce po dodaniu nowej pozycji przekroczy maxymalny zakres półki, to książki proszę nie dodawać i zwrócić z metody false, w przeciwnym razie zwracamy true 2. bool dodaj(Książka k, Książka sąsiad, bool lewySąsiad = true) – dodaje książkę k na pólkę z lewej strony książki sąsiad (jeśli lewySąsiad = true) albo z prawej strony książki sąsiad (jeśli lewySąsiad = false). Jak wyżej metoda zwraca true jeśli uda się książkę dodać. 3. Książka pobierz(string początekTytułu) – zwraca (nie usuwa) pierwszą od lewej książkę z półki, której tytuł zaczyna się od początekTytułu (jeśli nie ma to null). 4. void usun(string doWagi) – usuwa z półki wszystkie książki, które mają wagę nie większą niż argument doWagi. 5. void usun(bool (*filtr)(Książka k)) – usuwa z półki wszystkie książki spełniające predykat filtr. Proszę przetestować na różnych predykatach. 4. Prosę napisać funkcje globalne 1. void zapisz(Półka p, string plik) – zapisuje stan półki do pliku o nazwie plik 2. Półka utwórz(string plik) – odtwarza i zwraca Półkę na podstawie informacji zawartych w pliku plik Format pliku może być dowolny z tym że powinna być możliwość odtworzenia półki metodą utwórz(). Do zdobycia łącznie 4 punkty: zad 1 + zad 2 = 1 pkt zad 3.1 + zad 3.2 = 1pkt zad 3.3 + zad 3.4 + zad 3.5 = 1 pkt zad 4 = 1 pkt