INF.04-02-24.06-SG

Rok: 2024

Zadanie egzaminacyjne

UWAGA: katalog z rezultatami pracy oraz płytę należy opisać numerem zdającego, którym został podpisany arkusz, czyli numerem PESEL lub w przypadku jego braku numerem paszportu. Dalej w zadaniu numer ten jest nazwany numerem zdającego.

Wykonaj aplikację konsolową oraz desktopową według wskazań. Wykonaj dokumentację zgodnie z opisem w części III instrukcji do zadania. Wykorzystaj konto Egzamin bez hasła. Do rozwiązania zadania wykorzystaj archiwum pliki2.zip

Utwórz folder i nazwij go numerem zdającego. W folderze utwórz podfoldery: konsolowa, desktopowa, dokumentacja. Po wykonaniu każdej aplikacji, jej pełny kod (cały folder projektu) spakuj do archiwum. Następnie pozostaw w podfolderze jedynie spakowane archiwum, skopiowane z projektu pliki źródłowe, których treść była modyfikowana oraz jeśli istnieje plik wykonywalny.

Część I. Aplikacja konsolowa

Za pomocą narzędzi do tworzenia aplikacji konsolowych utwórz program do odczytywania i wyświetlania danych z pliku. Program implementuje część aplikacji do odtwarzania muzyki, jego zadaniem jest wczytanie danych o albumach muzycznych, a następnie wyświetlenie ich.

Założenia aplikacji:

  • Zastosowany obiektowy język programowania zgodny z zainstalowanym na stanowisku egzaminacyjnym: C++ lub C#, lub Java, lub Python
  • Podejście obiektowe lub strukturalne
  • Plik DataStructure.txt zawiera strukturę rekordu danych o albumach muzycznych. Przy podejściu obiektowym należy utworzyć klasę o takich polach, a przy podejściu strukturalnym – strukturę. Należy dobrać odpowiednie typy dla pól pasujące do danych zamieszczonych w pliku Data.txt. Dla liczby pobrań należy zastosować typ przynajmniej 32 bitowy
  • Wczytanie danych:
    • Dane są wczytane z pliku Data.txt (muszą zostać wczytane wszystkie dane zawarte w pliku). Należy założyć, że do pliku mogą zostać dopisane nowe albumy, przy czym jego struktura nigdy się nie zmienia oraz plik jest zawsze poprawny strukturalnie (wszystkie rekordy są kompletne i poprawne ze względu na typy pól)
  • UWAGA: W niektórych językach programowania np. Python można zdefiniować kodowanie znaków: encoding=”utf-8″ jako parametr funkcji otwierającej plik.
    • Dane jednego rekordu są przypisane do odpowiednich pól obiektu lub struktury
    • Każdy rekord jest zapisywany w tablicy lub dowolnej kolekcji
    • Wczytanie odbywa się w osobnej metodzie lub funkcji
  • Wyświetlenie danych:
    • Dane z każdego rekordu są kolejno wyświetlane w konsoli, w osobnych liniach, patrz obraz 1
    • Wyświetlonych jest tyle rekordów, ile faktycznie zostało wczytanych
    • Wyświetlenie odbywa się w osobnej metodzie lub funkcji
  • W programie może być zastosowane angielskie lub polskie nazewnictwo zmiennych i funkcji lub metod
  • Program powinien być zapisany czytelnie, z zachowaniem zasad czystego formatowania kodu, należy stosować znaczące nazwy zmiennych
  • Do kodu należy dołączyć dokumentację, która została opisana w części III zadania egzaminacyjnego.

Kod aplikacji przygotuj do nagrania na płytę. W folderze konsolowa powinno znaleźć się archiwum całego projektu o nazwie konsola.zip, skopiowany z projektu plik z kodem źródłowym programu oraz plik wykonywalny, jeżeli istnieje.

Obraz 1. Fragment wyniku działania aplikacji

Część II. Aplikacja desktopowa

Za pomocą dostępnego na stanowisku egzaminacyjnym środowiska programistycznego wykonaj aplikację

desktopową będącą interfejsem graficznym programu utworzonego w konsoli.

Obraz 2. Stan początkowy aplikacji
Obraz 3. Po wciśnięciu przycisku z prawej strony

Na obrazie 2 przedstawiono ideę aplikacji desktopowej. W zależności od użytego środowiska programistycznego wygląd może nieznacznie się różnić. Do wykonania zadania można posłużyć się fragmentami aplikacji konsolowej.

Opis wyglądu aplikacji:

  • Okno o nazwie „MojeDźwięki, Wykonał:” następnie wstawiony numer zdającego. Okno ma tło koloru SeaGreen (#2E8B57)
  • Kontrolki rozmieszczone i formatowane zgodnie z obrazem 2:
    • Dwa przyciski po prawej i lewej stronie, przyciski są wypełnione grafiką z plików obraz2.png i obraz3.png. Wysokość obrazów 70
    • Obraz płyty winylowej z pliku obraz.png
    • 5 napisów (etykiet) kolejno z nazwą wykonawcy, tytułem albumu, liczbą utworów, rokiem wydania i liczbą pobrań
    • Przycisk o treści „Pobierz”
    • Formatowanie napisów: kolor czcionki biały i #61D918, rozmiary czcionek: 50, 30, 20, czcionka pochylona dla nazwy albumu. Zgodnie z obrazem 2
    • Formatowanie przycisku do pobrania: kolor tła #61D918, czcionka pogrubiona, rozmiaru 20

Działanie aplikacji po załadowaniu okna:

  • Wczytuje dane z pliku Dane.txt
  • Dane pierwszego albumu są wyświetlane zgodnie z obrazem 2

Działanie aplikacji po kliknięciu przycisku po lewej stronie:

  • Wyświetlane są dane poprzedniego albumu, na przykład, gdy aktualnie wyświetlany jest album siódmy (The Rasmus), zostanie wyświetlony album szósty (Melanie Martinez)
  • Gdy aktualnie wyświetlany jest pierwszy album (Gorillaz), zostanie wyświetlony album ostatni (Faith No More)

Działanie aplikacji po kliknięciu przycisku po prawej stronie:

  • Wyświetlane są dane następnego albumu, na przykład, gdy aktualnie wyświetlany jest pierwszy album, zostanie wyświetlony drugi album, patrz obraz 3
  • Gdy aktualnie wyświetlany jest ostatni album, to zostanie wyświetlony pierwszy album

Działanie aplikacji po kliknięciu przycisku Pobierz:

  • Zostaje zwiększona o jeden liczba pobrań dla danego albumu. Efekt powinien być widoczny w oknie aplikacji oraz zapamiętany w trakcie jej działania (nie musi być trwale zapisywany do pliku Dane.txt)

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 uruchomienia aplikacji. Informacje dotyczące dokumentacji i zrzutu ekranowego umieszczono w części III zadania egzaminacyjnego.

Kod aplikacji przygotuj do nagrania na płytę. W folderze desktopowa powinno znaleźć się archiwum całego projektu o nazwie desktopowa.zip, skopiowane z projektu pliki źródłowe, które były modyfikowane w czasie egzaminu (interfejs użytkownika i logika aplikacji) oraz plik wykonywalny, jeżeli istnieje.

Część III. Dokumentacja aplikacji

Wykonaj dokumentację do aplikacji utworzonych na egzaminie. W kodzie źródłowym aplikacji konsolowej za pomocą komentarza utwórz nagłówek dowolnej funkcji / metody, według wzoru z listingu 1. W przypadku podejścia obiektowego zamiast słowa „funkcji” można napisać „metody”. Komentarz powinien znaleźć się nad lub pod nazwą funkcji. 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 funkcji (liczba gwiazdek dowolna)

********************************************** 
nazwa funkcji:	<nazwa>
opis funkcji:	<krótki opis co robi funkcja, cel zastosowania>
parametry:	<opis parametru1, lub „brak”>
<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 (np. stan początkowy, po wybraniu przycisków itd.). Wymagane zrzuty ekranu:

  • Aplikacja konsolowa – dowolna liczba zrzutów nazwanych konsola1, konsola2,
  • Aplikacja desktopowa – dowolna liczba zrzutów nazwanych desktop1, desktop2,

W edytorze tekstu pakietu biurowego utwórz plik z dokumentacją i nazwij go egzamin. Dokument powinien zawierać informacje:

  • Nazwę systemu operacyjnego, na którym pracował zdający
  • Nazwy środowisk programistycznych, z których zdający korzystał na egzaminie
  • Nazwy języków programowania

Zrzuty ekranu i dokument umieść w podfolderze dokumentacja.

UWAGA: Nagraj płytę z rezultatami pracy. W folderze z numerem zdającego powinny się znajdować podfoldery desktopowa, dokumentacja, konsolowa. W folderze desktopowa: spakowany cały projekt aplikacji desktopowej, pliki ze źródłami interfejsu i logiki, opcjonalnie plik wykonywalny. W folderze dokumentacja: pliki ze zrzutami oraz plik egzamin. W folderze konsolowa: spakowany cały projekt aplikacji konsolowej, pliki źródłowe, opcjonalnie plik wykonywalny. Opisz płytę numerem zdającego i pozostaw na stanowisku, zapakowaną w pudełku wraz z arkuszem egzaminacyjnym.