INF.04-02-25.01-SG – Zadanie 2

Część I. Aplikacja konsolowa

Napisz program implementujący klasę i dwie klasy potomne, który obsługuje działanie urządzeń domowych.

Założenia do programu:

  • Program wykonywany w konsoli
  • Zastosowany obiektowy język programowania zgodny z zainstalowanym na stanowisku egzaminacyjnym: C++ lub C#, lub Java, lub Python
  • Program zawiera klasę bazową reprezentującą urządzenie oraz dwie klasy potomne reprezentujące pralkę oraz odkurzacz
  • Wymaganie do klasy bazowej:
    • Implementuje jedną ogólnodostępną metodę, która wyświetla treść komunikatu. Komunikat jest argumentem metody. Metoda nie zwraca wartości.
  • Wymagania do klasy reprezentującej pralkę:
    • Definiuje pole przechowujące numer programu prania, który jest liczbą całkowitą. Pole inicjowane jest wartością 0. Instancje klasy nie mają dostępu do pola, pole nie jest widoczne w klasach dziedziczących po klasie pralki
    • Implementuje ogólnodostępną metodę do ustawienia numeru programu prania. Argumentem metody jest numer programu. Gdy jest on liczbą z przedziału od 1 do 12, metoda ustawia pole określające numer programu na tą wartość. W przeciwnym wypadku pole jest ustawione na wartość 0. Metoda zwraca wartość pola numeru programu
  • Wymagania do klasy reprezentującej odkurzacz:
    • Definiuje pole reprezentujące stan odkurzacza, które jest typu logicznego, inicjowane wartością false. Wartość false oznacza, że odkurzacz jest wyłączony, true – włączony. Pole dostępne tylko w tej klasie, niedostępne w klasach potomnych
    • Implementuje ogólnodostępną bezargumentową metodę on(), która włącza odkurzacz. Metoda nie zwraca wartości. Włączenie polega na ustawieniu pola stanu na wartość true oraz wywołaniu metody klasy bazowej z komunikatem „Odkurzacz włączono”. Zmiana stanu i komunikat mogą być wykonane tylko i wyłącznie, gdy odkurzacz jest wyłączony
    • Implementuje ogólnodostępną bezargumentową metodę off(), która wyłącza odkurzacz. Metoda nie zwraca wartości. Wyłączenie polega na ustawieniu pola stanu na wartość false oraz wywołaniu metody klasy bazowej z komunikatem „Odkurzacz wyłączono”. Zmiana stanu i komunikat mogą być wykonane tylko i wyłącznie, gdy odkurzacz jest włączony
  • Wymagania do programu głównego:
    • Należy zainicjować dwa obiekty typu pralka i odkurzacz
    • Na obiekcie typu pralka należy przetestować ustawienie programu prania z wartościami poprawnymi i niepoprawnymi. Powinny być wyświetlone odpowiednie komunikaty, patrz obrazy 1 i 2
    • Na obiekcie typu odkurzacz należy:
      • Wywołać metodę on()trzykrotnie; mimo trzykrotnego wywołania tylko raz wyświetla się komunikat – patrz obraz 1
      • Wywołać metodę klasy bazowej z treścią: „Odkurzacz wyładował się”
      • Wywołać metodę off()
    • Program powinien podejmować zrozumiałą komunikację z użytkownikiem. Jej przykład przedstawiono na obrazach 1 i 2
    • W programie może być zastosowane angielskie lub polskie nazewnictwo klas, pól, metod, instancji klas, zmiennych
    • Program powinien być zapisany czytelnie, z zachowaniem zasad czystego formatowania kodu, należy stosować znaczące nazwy zmiennych, metod
    • Dokumentację aplikacji należy utworzyć zgodnie z opisem w części III treści zadania.

Część II. Aplikacja mobilna

Za pomocą środowiska programistycznego dostępnego na stanowisku egzaminacyjnym wykonaj aplikację mobilną do obsługi urządzeń domowych. Do wykonania zadania należy wykorzystać obrazy zawarte w archiwum pliki4.zip zabezpieczonym hasłem: Int3rn3tOfThingS

Stan początkowy aplikacji został przedstawiony na obrazach 3 i 4. Interakcje w aplikacji zostały przedstawione na obrazach 5 i 6. W zależności od zastosowanego środowiska programistycznego oraz emulowanego systemu wynik końcowy może nieznacznie różnić się od przedstawionego.

Elementy aplikacji:

  • Napis (etykieta) o treści: „Urządzenia Domowe”
  • Napis o treści: „Autor: ”, dalej wstawiony numer zdającego
  • Rozkład dotyczący pralki:
    • Obraz pralka.jpg
    • Napis o treści: „Pralka”
    • Pole edycyjne z podpowiedzią o treści: „Podaj nr prania 1..12” umożliwiające wpisywanie jedynie liczb
    • Przycisk o treści: „Zatwierdź”
    • Napis o treści: „Numer prania: nie podano”
  • Rozkład dotyczący odkurzacza:
    • Obraz odkurzacz.jpg
    • Napis o treści: „Odkurzacz”
    • Przycisk o treści: „Włącz”
    • Napis o treści: „Odkurzacz wyłączony”
    • Napis o treści: „Status: naładowany”
  • Rozmieszczenie elementów zgodne z obrazami 3 i 4
  • Działanie aplikacji:
    • Po wciśnięciu przycisku „Zatwierdź” pobierana jest liczba z pola edycyjnego, jeśli jest ona z przedziału od 1 do 12 to zmieniany jest napis poniżej na: „Numer prania: <numer>”, gdzie <numer> oznacza wartość podaną w polu edycyjnym (obraz 5)
    • Po wciśnięciu przycisku „Włącz”, zmienia się podpis przycisku na „Wyłącz” oraz treść napisu poniżej na: „Odkurzacz włączony”. Jeżeli kolejny raz zostanie wciśnięty przycisk, napisy wracają do stanu początkowego („Włącz” oraz „Odkurzacz wyłączony”) (obraz 6)

Założenia aplikacji:

  • Interfejs użytkownika zapisany za pomocą języka znaczników wspieranego w danym środowisku (np. XAML, XML)
  • Zastosowane rozkłady liniowe (Linear / Stack lub inny o tej idei), aby można było uzyskać widok taki jak na obrazach 3 i 4.
  • Kolory tła:
    • Dla głównego rozkładu lub strony: LightBlue (#ADD8E6)
    • Dla pola edycyjnego: SkyBlue (#87CEEB)
    • Dla przycisków: RoyalBlue (#4169E1)
  • Kolor czcionki wpisanego tekstu oraz czcionki podpowiedzi dla pola edycyjnego: Navy (#000080)
  • Marginesy zewnętrzne:
    • Dla pierwszych dwóch napisów 5
    • Dla przycisków 10
    • Dla obrazów marginesy lewy, prawy i dolny 20, górny 0
  • Tekst zapisany powiększoną czcionką dla napisów „Urządzenia Domowe”, „Pralka”, „Odkurzacz”
  • Pierwsze dwa napisy na stronie są wyśrodkowane
  • Obrazy mają wysokość 150
  • Aplikacja powinna być zapisana czytelnie, z zachowaniem zasad czystego formatowania kodu, należy stosować znaczące nazwy zmiennych i funkcji.

Podejmij próbę kompilacji i emulacji aplikacji. Informacje dotyczące dokumentacji i zrzutów ekranowych umieszczono w części III zadania.

Kod aplikacji przygotuj do nagrania na płytę. W podfolderze mobilna powinno znaleźć się archiwum całego projektu o nazwie mobilna.zip, skopiowane z projektu plik (lub pliki) z kodem źródłowym interfejsu użytkownika (XAML lub XML) oraz plik źródłowy kodu skojarzonego z interfejsem użytkownika.

Część III. Dokumentacja aplikacji konsolowej

Wykonaj dokumentację do aplikacji utworzonych na egzaminie. W kodzie źórdłowym aplikacji konsolowej za pomocą komentarza utwórz nagłówek metody klasy bazowej, według wzoru z listingu 1. Komentarz powinien znaleźć sięnad lub pod nazwą metody. W miejscu nawiasów <> należy podać odpowiednie opisy.

UWAGA: Dokumentację należy umieścić w komentarzu (wieloliniowym lub kilku jednoliniowych). Znajdujący się w listingu 1 wzór dokumentacji jest bez znaków początku i końca komentarza, gdyż te są różne dla różnych języków programowania.

Listing 1. Wzór dokumentacji metody (liczba gwiazdek dowolna)
************************************************
nazwa:	<tu wstaw nazwę metody>
opis:	<co wykonuje metoda?>	
parametry:	<nazwa i opis parametrul, lub „brak”>
<nazwa i opis parametru2>
... zwracany typ i opis: <nazwa typu i opis co jest zwracane lub „brak”> autor:	<numer zdającego>	
************************************************

Wykonaj zrzuty ekranu dokumentujące uruchomienie aplikacji utworzonych podczas egzaminu. Zrzuty powinny obejmować cały obszar ekranu monitora z widocznym paskiem zadań. Jeżeli aplikacja uruchamia się, na zrzucie należy umieścić okno z wynikiem działania programu oraz otwarte środowisko programistyczne z projektem lub okno terminala z kompilacją projektu. Jeżeli aplikacja nie uruchamia się z powodu błędów kompilacji, należy na zrzucie umieścić okno ze spisem błędów i widocznym otwartym środowiskiem programistycznym. Wykonać należy tyle zrzutów, ile interakcji podejmuje aplikacja. Wymagane zrzuty ekranu:

  • Aplikacja konsolowa – dowolna liczba zrzutów nazwanych konsola1, konsola2,
  • Aplikacja mobilna – dowolna liczba zrzutów nazwanych mobile1, mobile2, … (np. stan początkowy, po wciśnięciu przycisku Zatwierdź”, po wciśnięciu przycisku „Włącz”, następnie „Wyłącz”)

W edytorze tekstu pakietu biurowego utwórz plik z dokumentacją i nazwij go egzamin. Dokument powinien zawierać informacje o wykorzystanych w czasie egzaminu narzędziach:

  • Nazwę   systemu operacyjnego
  • Nazwy   środowisk programistycznych
  • Nazwę   emulatora dla aplikacji mobilnej
  • Nazwy   języków programowania

Zrzuty ekranu i dokument umieść w podfolderze dokumentacja.