Programowanie obiektowe

Wymagania odnośnie programu zaliczeniowego

Dowolny, nieegzotyczny język programowania obiektowego (sugerowane: C++, Java, C#, TypeScript). W programie mają wystąpić:

  • Klasy z polami prywatnymi, akcesorami (setter, getter), konstruktory (domyślny, ogólny).
  • Dziedziczenie i związki całość-część (kompozycja i/lub agregacja), proszę zwrócić uwagę na aktywowanie konstruktorów klas bazowych oraz obiektów częściowych.
  • Klasa abstrakcyjna (interfejs), polimorfizm.

Przykłady

Program obliczania pól figur płaskich — metamorfoza. Od wersji „przedszkolnej” ku wersji SOLID, Java, projekt NetBeans, w środku 3 pakiety, każdy zawiera jedną z wersji programu.

Materiały wykładowe

Materiały do ćwiczeń


Ćwiczenie 1

Niżej dostępne są kody źródłowe programu wyznaczającego średnie zużycie paliwa na 100 km dla jakiegoś pojazdu. Wartość ta zostaje wyznaczona na podstawie przejechanego dystansu i ilości paliwa zużytego na tym dystansie. Dostępne są implementacje programiku (spakowany folder projektowy, zip):

Proszę pobrać kody projektów i wprowadzić następujące modyfikacje:

  1. Po wyliczeniu średniego spalania, program ma wyświetlić również koszt przejechania jednego kilometra.
  2. Użytkownik ma możliwość wybory rodzaju paliwa — benzyna, olej napędowy, gaz, wybór z wykorzystaniem komponentów „radio button”.
  3. Dla każdego rodzaju paliwa powinna być zdefiniowana indywidualna cena za litr, brana pod uwagę przy wyznaczaniu kosztu przejazdu jednego kilometra.
  4. Ceny za litr paliwa powinny być wczytywane na starcie programu z pliku tekstowego o formacie:

    ET 4.5
    ON 4.3
    LPG 2.5
    

Można wprowadzić w programie możliwość edycji cen w osobnym oknie.

Proszę przemyśleć możliwość definiowania w programie obiektu realizującego obliczenia spalania i kosztów przejazdu jednego kilometra, przechowującego ceny paliw i obsługującego ich ustalanie/wczytywanie. Umożliwi to oddzielenie warstwy widoku (interfejs użytkownika) od warstwy „biznesowej”. Dla języka C++ proszę spróbować zdefiniować odpowiednią klasę tak, aby byłe przenośna pomiędzy środowiskiem VCL/Builder a Qt/QtCreator.

Zrealizowane projekty proszę zachować, będą brane pod uwagę przy negocjowaniu oceny zaliczeniowej.