INF.04 · C# · lekcja 19

Projekt końcowy — system wypożyczalni w konsoli

Wypożyczalnia: od modelu do działającej operacji

  • Zrozum
  • Sprawdź
  • Napisz sam

Po tej lekcji: wypożyczalnia: od modelu do działającej operacji

Dzisiaj zrobisz konkretną rzecz

Pojedyncze umiejętności — klasa, dziedziczenie, wyjątek — to jedno. Prawdziwa wartość pojawia się dopiero wtedy, gdy złożysz je w jeden, spójny, DZIAŁAJĄCY program — dokładnie tak, jak wygląda zadanie praktyczne na egzaminie INF.04 i jak wygląda prawdziwa praca programisty.

To dokładnie taki projekt, jaki mógłbyś zobaczyć jako zadanie na egzaminie INF.04 w części praktycznej — aplikacja konsolowa z hierarchią klas, kolekcją obiektów i menu sterowanym przez użytkownika.

Sprawdź w działaniu

Wypożyczalnia: od modelu do działającej operacji

Najpierw przewidź wynik. Zmień dane w modelu i porównaj efekt. Spróbuj także przypadku granicznego, a nie tylko pierwszego poprawnego przykładu.

Ta interakcja wymaga włączonego JavaScriptu.

Model pokazuje wybraną zasadę. Nie uruchamia ani nie ocenia wklejonego kodu C#.

1. Przygotuj i uruchom własny projekt

2. Najpierw mały przykład

Wykonaj tę próbę przed dłuższym rozwiązaniem. Zacznij od jednej operacji bez menu. Dopiero gdy stan zmienia się poprawnie, dodawaj kolekcję, klasy pochodne i obsługę wejścia według wymagań projektu. To uruchamialny pierwszy etap, nie całe rozwiązanie zadania.

Program.cscsharp
var film = new Film("Diuna");
Console.WriteLine(film.Wypozycz());
Console.WriteLine(film.Wypozycz());
film.Zwroc();
Console.WriteLine(film.Wypozycz());

class Film
{
    public string Tytul { get; }
    public bool Wypozyczony { get; private set; }
    public Film(string tytul) { Tytul = tytul; }
    public bool Wypozycz()
    {
        if (Wypozyczony) return false;
        Wypozyczony = true; return true;
    }
    public void Zwroc() { Wypozyczony = false; }
}
Wynik
True
False
True
  1. Co sprawdzić? Zmień jedną wartość i przed uruchomieniem zapisz przewidywany rezultat. Porównaj go z opisem wyniku; przy błędzie wróć do konkretnej instrukcji.

Jak to działa — 1

To podsumowanie całego działu — zbudujesz KOMPLETNY, działający system wypożyczalni w konsoli, łącząc wszystkie 17 poprzednich lekcji w jeden spójny projekt: klasy i obiekty, hermetyzację, konstruktory, dziedziczenie, polimorfizm, klasy abstrakcyjne, wyjątki, kolekcje generyczne i (opcjonalnie) jeden z poznanych wzorców projektowych.

Wymagane elementy projektu: 1. Klasa abstrakcyjna Produkt (pola: Tytul, CzyWypozyczony; metoda abstrakcyjna OplataZaDzien()). 2. Co najmniej dwie klasy pochodne, np. Film i Konsola, każda z własną implementacją OplataZaDzien(). 3. Klasa Wypozyczalnia przechowująca List<Produkt> (Lekcja 8 + 16), z metodami: Wypozycz(Produkt p) (rzuca wyjątek, jeśli produkt jest już wypożyczony — Lekcja 16), Zwroc(Produkt p), WyswietlDostepne() (wypisuje tylko produkty z CzyWypozyczony == false). 4. Obsługa błędów przez try-catch przy próbie wypożyczenia niedostępnego produktu. 5. Menu tekstowe w pętli (Lekcja 7) pozwalające użytkownikowi wybrać akcję (wypożycz/zwróć/pokaż dostępne/zakończ) przez instrukcję switch (Lekcja 5).

Jak to działa — 2

To dokładnie ten poziom złożoności, jakiego można się spodziewać w rozbudowanym zadaniu praktycznym z programowania obiektowego na egzaminie INF.04.

Sprawdź, zanim przepiszesz cały program

Największy błąd na tym etapie to próba napisania wszystkiego naraz — buduj projekt DOKŁADNIE w kolejności z listy wymaganych elementów, testując każdy fragment osobno, zanim przejdziesz do kolejnego (dokładnie tak, jak w zadaniach łatwym/średnim/trudnym powyżej). Drugi błąd: kopiowanie fragmentów kodu z poprzednich lekcji bez zastanowienia, czy dokładnie pasują do nowego kontekstu — wróć do konkretnej lekcji, jeśli czegoś nie pamiętasz, zamiast zgadywać. Trzeci: pominięcie obsługi wyjątków "bo to tylko projekt szkolny" — to właśnie umiejętność łączenia obsługi błędów z resztą logiki biznesowej jest tym, co odróżnia solidny projekt od prowizorki.

Ćwiczenie z pomocą · samodzielna praca

4. Teraz Twoja zmiana

Zanim zaczniesz kodować, narysuj na kartce diagram klas (podobny do diagramu w tej lekcji) z dokładnymi polami i metodami każdej klasy Twojego projektu.

Oczekiwany rezultat
Spełnij warunki polecenia. Zapisz wejście, otrzymany wynik i wyjaśnij, która część kodu za niego odpowiada.
Potrzebujesz pomocy? Rozwiązuj krok po kroku.
Krok 1 — pokaż podpowiedź

Wróć do podstawowej formy oraz objaśnienia: Zacznij od jednej operacji bez menu. Dopiero gdy stan zmienia się poprawnie, dodawaj kolekcję, klasy pochodne i obsługę wejścia według wymagań projektu. To uruchamialny pierwszy etap, nie całe rozwiązanie zadania.

Krok 2 — pokaż podpowiedź

Zmień tylko część potrzebną do polecenia. Zachowaj działającą wersję przed zmianą i uruchamiaj po każdym małym etapie.

Krok 3 — pokaż podpowiedź

Sprawdź przypadek zwykły i graniczny; porównaj z regułą: True False True

Otwórz tylko tyle podpowiedzi, ile potrzebujesz. Po każdym kroku wróć do zadania i sprawdź wynik.

5. Sprawdź rozumienie, nie tylko uruchomienie

Dalej na swoim koncie

Rozgrzewki, quiz i zadania są w biurku ucznia.

Teoria jest otwarta dla wszystkich. Żeby rozwiązywać zadania, zapisywać szkice i widzieć swój postęp, zaloguj się.

Zaloguj się →
Źródła i dalsza nauka