Arkusz INF.04 : 2022 - czerwiec - zad. 02
Oznaczenie: INF.04-02-22.06-SG Limit czasu: 150 minut
Zadanie egzaminacyjne
- UWAGA!
- Katalog z rezultatami pracy oraz płytę należy opisać numerem, którym został podpisany arkusz, czyli numerem PESEL lub w przypadku jego braku numerem paszportu.
Wykonaj aplikację konsolową oraz webową według wskazań. Wykonaj dokumentację do aplikacji konsolowej, zgodnie z opisem w części III instrukcji do zadania. W tym celu zaloguj się na konto Egzamin bez hasła.
Utwórz folder i nazwij go swoim numerem. W folderze utwórz podfoldery: konsola, web, testy. Po wykonaniu każdej aplikacji, jej pełny kod (cały folder projektu) spakuj do archiwum. Następnie pozostaw w podfolderze jedynie pliki źródłowe, których treść modyfikowałeś, plik uruchomieniowy, jeśli jest to możliwe oraz spakowane archiwum. Zrzuty ekranu dokumentujące uruchomienie obu aplikacji umieść w folderze testy.
Część I. Aplikacja konsolowa
Korzystając z mechanizmów programowania obiektowego zaprojektuj część logiki systemu forum użytkowników. Zaimplementuj klasę o nazwie osoba z konstruktorami, metodą i obsługą pola statycznego.
Założenia klasy:
- Zastosowano obiektowy język programowania zgodny z zainstalowanym na stanowisku egzaminacyjnym:
C++lubC#, lubJava, lubPython. - Klasa
Osobazawiera:- Dwa pola: numeryczne
idoraz tekstoweimię osoby. Dostęp do obu pól ma jedynie klasa. W przypadku późniejszego rozszerzenia klasy, klasy potomne nie mają dostępu do tych pól. - Ogólnie dostępne pole
statycznezliczające liczbę instancji klasy, początkowo wypełnione wartością0. - Trzy konstruktory:
- bezparametrowy, ustawia wartości
0i pusty dla pól - z dwoma parametrami, które przekazują wartości
idiimienia - kopiujący
- bezparametrowy, ustawia wartości
- Każdy z konstruktorów dodatkowo
inkrementujeliczbę instancji klasy - Metodę do wypisania
imieniaobiektu klasyOsobaw postaci: „Cześć <argument>, mam na imię <imie>”, gdzie pole <argument> jest innym imieniem przekazanym jako parametr wejściowy metody. Jeżeli w obiekcie nie wypełniono wartości pola z imieniem wyświetlany jest komunikat „Brak danych”
- Dwa pola: numeryczne
- UWAGA!
- W języku Python, zamiast przeciążenia konstruktorów, należy utworzyć konstruktor z dwoma parametrami o wartościach domyślnych (0, pusty napis), który będzie zastępował konstruktor bezparametrowy oraz konstruktor z dwoma parametrami. Następnie zaimplementować metodę kopiującą dane z jednego obiektu do drugiego.
- Program powinien być zapisany czytelnie, z zachowaniem zasad czystego formatowania kodu, należy stosować znaczące nazwy pól i metod.
- Do klasy należy dołączyć
dokumentacjęoraztestyw postaci programu głównego. Testy zostały opisane wczęści IIIzadania egzaminacyjnego.
Kod aplikacji przygotuj do nagrania na płytę. W podfolderze konsola powinno znaleźć się archiwum całego projektu o nazwie konsola.zip, plik z kodem źródłowym klasy oraz plik uruchomieniowy, jeżeli istnieje.
Część II. Aplikacja Web
Wykonaj aplikację internetową typu front-end obsługującą zapisy na kursy z zastosowaniem dostępnego na stanowisku egzaminacyjnym frameworka Angular lub biblioteki React. Zastosuj bibliotekę Bootstrap do zdefiniowania stylu formularza.
Obraz 1a. Aplikacja framework Angular

Obraz 1b. Aplikacja React.js

Na obrazach 1a i 1b przedstawiono działanie aplikacji przygotowanej w środowisku Angular i React.js, stan po wybraniu przycisku „Zapisz do kursu”. W konsoli widoczne wyświetlenie imienia i nazwiska oraz nazwy kursu na podstawie danych wprowadzonych do formularza
Założenia aplikacji:
- Aplikacja składa się z jednego komponentu
- Danymi komponentu jest
tablicaznazwami kursów, o elementach: "Programowanie w C#", "Angular dla początkujących", "Kurs Django". Dla uproszczenia tablica może być zdefiniowana jakopole komponentu. Należy założyć, że tablica w przyszłości może się zmienić, co będzie miało wpływ na zachowanie i wygląd aplikacji. - Komponent wyświetla:
- Nagłówek
drugiegostopnia o treści: „Liczba kursów: <liczba>”, gdzie <liczba> oznaczawielkośćtablicy z nazwami kursów - Listę
numerowanągenerowaną automatycznie dla wszystkich elementów tablicy, niezależnie od jej wymiaru - Formularz składający się z:
- pola
edycyjnegoi jego etykiety o treści „Imię i nazwisko:” - edycyjnego pola
numerycznegoi jego etykiety o treści „Numer kursu:” przycisku„Zapisz do kursu”
- pola
- Nagłówek
- Aplikacja w stanie początkowym wyświetla puste pola formularza
- Elementy formularza są formatowane zgodnie z obrazem
1alub1bza pomocą stylów bibliotekiBootstrap. Do budowy szablonu HTML należy wykorzystać pomoc zamieszczoną wTabeli 1. Należy zastosować znaczące nazwy dla identyfikatorów pól formularza - Po wybraniu przycisku formularza jest generowane zdarzenie zatwierdzenia formularza, które wyświetla w konsoli przeglądarki:
Wartośćwpisaną w pierwszym polu formularzaNazwę kursuodpowiadającą numerowi wpisanemu w drugie pole formularza, gdy kurs o takim numerze istnieje. W przeciwnym wypadku wyświetla komunikat "Nieprawidłowy numer kursu"
- Aplikacja powinna być zapisana czytelnie, z zachowaniem zasad czystego formatowania kodu, należy stosować znaczące nazwy zmiennych i funkcji
- Dokumentacja do programu wykonana zgodnie z wytycznymi z
części IIIzadania egzaminacyjnego
Kod aplikacji przygotuj do nagrania na płytę. W podfolderze web powinno znaleźć się archiwum całego projektu o nazwie web.zip oraz pliki z kodem źródłowym, które były modyfikowane.
Część III. Testy utworzonych aplikacji
Wykonaj testy aplikacji konsolowej oraz dokumentację do aplikacji utworzonych na egzaminie.
W podfolderze konsola w programie głównym aplikacji konsolowej należy sprawdzić działanie klasy poprzez, kolejno:
- Wyświetlenie komunikatu „Liczba zarejestrowanych osób to <licznik>”, gdzie <licznik> jest
wartościąpobraną zpola statycznegoklasy - Utworzenie obiektu za pomocą konstruktora
bezparametrowego - Utworzenie obiektu za pomocą konstruktora z
dwoma parametrami. Dane obiektu wprowadzane z klawiatury - Utworzenie obiektu za pomocą konstruktora
kopiującego(w Python konstruktora bezparametrowego i metody kopiującej). Obiekt z wypełnionymi polami jest źródłem kopiowania danych - Wywołanie metody do wypisania
imieniaz parametrem wejściowym równym„Jan”dla wszystkich utworzonych obiektów - Ponowne wyświetlenie komunikatu „Liczba zarejestrowanych osób to <licznik>”, gdzie <licznik> jest wartością pobraną z
pola statycznegoklasy
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 nazwanychkonsola1,konsola2... - Aplikacja
web– dowolna liczba zrzutów nazwanychweb1,web2... (np. stan początkowy, po wypełnieniu pól, po zatwierdzeniu konsola przeglądarki, gdy w drugim polu formularza jest prawidłowy numer oraz gdy jest nieprawidłowy numer kursu)
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/frameworków/bibliotekużytych podczas tworzenia aplikacji
Zrzuty ekranu i dokument umieść w folderze o nazwie testy.
- UWAGA!
- Nagraj płytę z rezultatami pracy. W folderze z numerem zdającego powinny się znajdować podfoldery: konsola, testy, web. W folderze konsola: spakowany cały projekt aplikacji konsolowej, pliki z kodem źródłowym, opcjonalnie plik uruchomieniowy. W folderze testy: pliki ze zrzutami oraz plik egzamin. W folderze web: spakowany cały projekt aplikacji web, pliki modyfikowane przez zdającego.
- Po nagraniu płyty sprawdź poprawność nagrania. Opisz płytę swoim numerem i pozostaw na stanowisku, zapakowaną w pudełku wraz z arkuszem egzaminacyjnym.
Czas przeznaczony na wykonanie zadania wynosi 180 minut.
Ocenie będą podlegać 4 rezultaty:
- implementacja, kompilacja, uruchomienie programu
- aplikacja konsolowa
- aplikacja web
- testy aplikacji.
Tabela 1. Wybrane elementy frameworka Angular, biblioteki React.js i biblioteki Bootstrap - przykłady


Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!
Kody zniżkowe - kup taniej
Mamy fajne rabaty dla widzów naszego kanału YouTube - otóż można zamówić dwa tomy książek "Wprowadzenie do bezpieczeństwa IT" (15% taniej) oraz książkę "Twierdza Linux. Bezpieczeństwo dla dociekliwych" (10% taniej) - użyjcie odpowiedniego kodu, wpisując go w specjalne pole w koszyku:
KOD: pasja
Dostajesz rabat -15%
KOD: pasja
Dostajesz rabat -15%
KOD: pasja-linux
Dostajesz rabat -10%
Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Proszę, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!