Zajęcia 2#
Programowanie obiektowe#
Tu pojawi się notatka.
- Dziedziczenie
- Polimorfizm
- Hermetyzacja
- Dunders
Praca projektowa#
Część 2 — Programowanie obiektowe (20 pkt)#
Temat: Biblioteka — refaktoryzacja do OOP i rola bibliotekarza
Przepisz aplikację z Części 1 na wersję obiektową i rozszerz ją o rolę bibliotekarza.
Wymagania dotyczące klas:
Book— tytuł, autor, łączna liczba sztuk, liczba dostępnych sztuk.User(klasa bazowa) — login, hasło, rola. Klasy pochodne:Reader(posiada listę wypożyczonych książek i listę próśb o przedłużenie) orazLibrarian.Library— przechowuje kolekcje książek i użytkowników; zawiera metody realizujące logikę biznesową (wyszukiwanie, wypożyczanie, itp.).
Nowe funkcjonalności (bibliotekarz):
- Po zalogowaniu menu jest różne w zależności od roli.
- Bibliotekarz — lista wypożyczeń — wyświetla wszystkie aktualnie wypożyczone książki wraz z loginami użytkowników, którzy je wypożyczyli.
- Czytelnik — prośba o przedłużenie — czytelnik może wysłać prośbę o przedłużenie wybranej wypożyczonej książki (prośba trafia do kolejki).
- Bibliotekarz — obsługa próśb — bibliotekarz widzi listę próśb o przedłużenie i może każdą zaakceptować lub odrzucić.
Wymagania techniczne:
- Zastosowanie dziedziczenia (
Reader,Librariandziedziczą poUser). - Zastosowanie hermetyzacji — pola prywatne/chronione tam, gdzie to sensowne, dostęp przez metody lub properties.
- Metoda
__str__w co najmniej jednej klasie. - Dane początkowe tworzone jako instancje klas.
Punktacja (20 pkt):
| Element | Punkty |
|---|---|
Klasa Book z atrybutami i metodami |
2 |
Klasa User z dziedziczeniem (Reader, Librarian) |
4 |
Klasa Library z logiką biznesową w metodach |
3 |
Hermetyzacja i użycie __str__ |
2 |
| Menu zależne od roli (czytelnik / bibliotekarz) | 2 |
| Widok wypożyczeń dla bibliotekarza (książka + użytkownik) | 3 |
| Prośba o przedłużenie (czytelnik) i jej obsługa (bibliotekarz) | 4 |