Programowanie obiektowe

Akademia Humanitas, lato 2023 : ćwiczenia i programy demonstracyjne

  • Wprowadzenie do definiowania prostych klas: symulacja systemu alrmowego, demo Java, demo C#.

  • Ćwiczenie pierwsze: definiowanie prostych klas, agregacja (pdf).. Do wykonania ćwiczenia będzie potrzebna interakcja z użytkownikiem via konsola, demo prostego menu konsolowego: implementacja C#, implementacja Java.

  • Ćwiczenie drugie: definiowanie prostych klas, obsługa plików tekstowych (pdf)..

  • Ćwiczenie 3 dla grup IO: Proszę się zapoznać z koncepcją wzorca projektowego kompozyt (implementacje: Java, pdf). Bazując na tych informacjach proszę przekształcić zamieszczony wyżej kod symulatora systemu alarmowego w taki sposób, aby do systemu alarmowego można było dodawać jako element inny system alarmowy. W ten sposób będzie można tworzyć hierarchicznie zorganizowane systemy alarmowe.
  • Ćwiczenie 4 dla grup IO: Proszę się zapoznać z koncepcją wzorca projektowego obserwator(implementacje: Java, pdf). Bazując na tych informacjach proszę napisać następujący program ćwiczeniowy: Załóżmy, że istnieje klasa CzujnikTemperatury, posiadająca prywatne pole temperatura, przechowujące zarejestrowaną wartość temperatury zapisaną w stopniach Celsiusza. Załóżmy również, że klasa posiada metodę ustaw(nowaWartość) pozwalającą na zmianę wartości temperatury. Wartość temperatury pokazują trzy programowe wyświetlacze, reagując na każdą zmianę temperatury spowodowaną wywołaniem metody ustaw obiektu klasy CzujnikTemperatury. Każdy z wyświetlaczy pokazuje temperaturę w innej skali temperatur: Celsiusza, Kelvina i Fahrenheit’a. Proszę zidentyfikować jaki wzorzec projektowy dobrze opisuje przedstawioną sytuację oraz napisać prosty program demonstracyjny implementujący zidentyfikowany wzorzec.

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.