Opis sytuacji
Szkoła planuje wprowadzenie prostego programu do obsługi szkolnej biblioteki.
Aplikacja ma umożliwiać przeglądanie książek, wyszukiwanie po tytule lub autorze, filtrowanie tylko wypożyczonych pozycji, a także wypożyczanie i zwracanie książek.
Dane książek mają być przechowywane w pamięci programu (bez użycia bazy danych).
Każda książka ma informację o tytule, autorze, statusie (dostępna / wypożyczona) i dacie zwrotu.
Wymagania funkcjonalne
- Użytkownik może wpisać w polu „Szukaj” tytuł lub autora – lista automatycznie się filtruje.
- Dostępne są dwa przyciski filtrów:
- Wszystkie książki – pokazuje wszystkie pozycje.
- Wypożyczona – pokazuje tylko wypożyczone książki.
- Każda książka w liście wyświetla:
- Tytuł, autora, status (np. Dostępna lub Wypożyczona do 25.04.2024).
- Jeden przycisk akcji z napisem „Wypożycz” lub „Zwróć” w zależności od statusu.
- Po kliknięciu:
- „Wypożycz” – książka zmienia status na „Wypożyczona”, a data zwrotu ustalana jest automatycznie (np. +14 dni od dzisiaj).
- „Zwróć” – książka zmienia status na „Dostępna”, a data zwrotu jest usuwana.
- Program automatycznie aktualizuje listę po każdej zmianie.
Wymagania techniczne
Aplikację należy wykonać w środowisku Visual Studio 2022 jako:
- Aplikację WPF lub .NET MAUI (mobile).
Obie wersje mogą korzystać z tego samego modelu danych.
Struktura projektu powinna zawierać następujące katalogi:
Modele
Logika
Walidacja
Widoki
Opis działania klas
Klasa Ksiazka (plik Modele/Ksiazka.cs)
- Przechowuje dane pojedynczej książki.
- Zawiera właściwości:
Tytul,Autor,Status,DataZwrotu. - Dodatkowo udostępnia pola gotowe do bindowania:
StatusOpis– opis tekstowy statusu.AkcjaTekst– tekst przycisku („Wypożycz” lub „Zwróć”).
- Implementuje interfejs
INotifyPropertyChanged, aby automatycznie aktualizować UI.
Klasa BibliotekaSerwis (plik Logika/BibliotekaSerwis.cs)
- Zawiera kolekcję
ObservableCollection<Ksiazka> Ksiazki. - Umożliwia:
- Dodawanie książki (
DodajKsiazke). - Wypożyczanie książki (
WypozyczKsiazke). - Zwracanie książki (
ZmienStatusNaDostepna). - Filtrowanie i wyszukiwanie (
Filtruj,Szukaj).
- Dodawanie książki (
- Zawiera przykładowe dane startowe.
Klasa WalidatorKsiazki (plik Walidacja/WalidatorKsiazki.cs)
- Sprawdza poprawność danych książki.
- Weryfikuje, czy pola
TytuliAutornie są puste. - Dla książki wypożyczonej wymaga ustawienia
DataZwrotu. - Zwraca listę błędów w postaci
List<string>.
Opis interfejsu użytkownika
WPF
Okno główne MainWindow.xaml zawiera:
- Pole tekstowe
TextBox txtSzukajdo wyszukiwania. - Dwa przyciski filtrów (
btnWszystkie,btnWypozyczone). - Listę książek
ListView lvKsiazkiz danymi: tytuł, autor, status, przycisk akcji.
.NET MAUI
Strona główna MainPage.xaml zawiera:
- Pasek wyszukiwania
SearchBar sbSzukaj. - Dwa przyciski filtrów (
btnWszystkie,btnWypozyczone). - Listę książek
CollectionView cvKsiazkiz tymi samymi elementami.
Walidacja i dokumentacja
- Każda klasa i metoda powinna mieć komentarz XML (
///) z opisem działania. - W kodzie należy dodać czytelne komentarze w najważniejszych miejscach (np. przy metodach logiki i obsłudze zdarzeń).
- Projekt powinien być przygotowany zgodnie z zasadami INF.04 – prosty, czytelny, z zachowaniem konwencji nazw i struktury.
Przykładowy wygląd interfejsu
(tutaj wstaw obraz biblioteka.png)
Rysunek 1. Widok przykładowego interfejsu aplikacji „Biblioteka”.
Wymagane efekty działania
- Po uruchomieniu aplikacji wyświetla się lista książek z przykładowymi danymi.
- Użytkownik może:
- Wyszukiwać po tytule lub autorze.
- Przełączać filtry między wszystkimi a wypożyczonymi.
- Wypożyczać i zwracać książki.
- Program aktualizuje listę automatycznie po każdej operacji.
- Dane nie są zapisywane w bazie – przechowywane są tylko w pamięci.
Kryteria oceny (INF.04)
| Element | Punkty |
|---|---|
| Poprawna struktura projektu (Modele, Logika, Walidacja, Widoki) | 4 |
| Działający interfejs (lista, wyszukiwanie, przyciski) | 6 |
| Poprawne działanie logiki (zmiana statusu, filtr, wyszukiwanie) | 6 |
| Walidacja danych i brak błędów przy uruchomieniu | 3 |
| Komentarze i dokumentacja XML | 3 |
| Estetyka interfejsu i zgodność z opisem | 3 |
| Razem: | 25 pkt |
Aplikacja .NET MAUI

Aplikacja WPF


