{"paper":{"id":"e14-2019-styczen-egzamin-zawodowy-praktyczny","subject":"e14","category":"egzamin-zawodowy","year":2019,"month":"styczen","level":null,"variant":null,"exam_pdf":"e14-2019-styczen-egzamin-zawodowy-praktyczny/e14-2019-styczen-egzamin-zawodowy-praktyczny.pdf","key_pdf":"e14-2019-styczen-egzamin-zawodowy-praktyczny-zasady-oceniania/e14-2019-styczen-egzamin-zawodowy-praktyczny-zasady-oceniania.pdf","question_count":1,"source_label":"E14 · Egzamin zawodowy · styczeń 2019","subject_label":"e14","category_label":"Egzamin zawodowy"},"questions":[{"id":"e14-2019-styczen-egzamin-zawodowy-praktyczny/zad/PE","paper_id":"e14-2019-styczen-egzamin-zawodowy-praktyczny","number":"PE","points":null,"ptype":"open","subject":"e14","category":"egzamin-zawodowy","year":2019,"month":"styczen","level":null,"text":"Zadanie egzaminacyjne\nWykonaj aplikację internetową dla bazy danych filmów. Wykorzystaj pakiet XAMPP jako środowisko\nbazodanowo-aplikacyjne. Stronę internetową zbuduj przy wykorzystaniu edytora zaznaczającego składnię\noraz programu do obróbki grafiki rastrowej i wektorowej.\nAby wykonać zadanie, zaloguj się na konto Egzamin bez hasła. Na pulpicie znajdziesz archiwum ZIP\no nazwie pliki1.zip zabezpieczone hasłem: Baz@FilmY\nArchiwum należy rozpakować.\nNa pulpicie konta Egzamin utwórz folder. Jako nazwy folderu użyj swojego numeru PESEL. Rozpakowane\npliki umieść w tym folderze. Po skończonej pracy wyniki zapisz w tym folderze.\nOperacje na bazie danych\nBaza danych jest zgodna ze strukturą przedstawioną na obrazie 1. Tabela filmy ma dwa klucze obce łączące\nją z tabelami rezyserzy i gatunki.\nObraz 1. Baza danych oraz wartości tabeli gatunki\nUruchom usługi MySQL i Apache za pomocą XAMPP Control Panel. Za pomocą narzędzia phpMyAdmin\nwykonaj podane operacje na bazie danych:\n Utwórz nową bazę danych o nazwie dane\n Do bazy zaimportuj tabele z pliku dane.sql z rozpakowanego archiwum\n Wykonaj zrzut ekranu po imporcie. Zrzut zapisz w folderze z numerem PESEL, w formacie PNG\ni nazwij import. Nie kadruj zrzutu. Powinien on obejmować cały ekran, z widocznym paskiem zadań.\nNa zrzucie powinny być widoczne elementy wskazujące na poprawnie wykonany import tabel\n Zapisz i wykonaj zapytania SQL działające na bazie danych dane. Zapytania zapisz w pliku\nkwerendy.txt, w folderze z numerem PESEL. Wykonaj zrzuty ekranu przedstawiające wyniki działania\nkwerend. Zrzuty zapisz w formacie JPG i nadaj im nazwy kw1, kw2, kw3, kw4. Zrzuty powinny\nobejmować cały ekran monitora z widocznym paskiem zadań.\n Zapytanie 1: wstawiające do tabeli filmy jeden rekord o danych: film „Suburbicon” z roku 2017,\ngatunek filmu to komedia, ocena jest równa 5\n Zapytanie 2: wybierające jedynie pole tytul z tabeli filmy oraz odpowiadające mu pole nazwa\nz tabeli gatunki dla filmów, dla których pole ocena ma wartość 6 . Należy posłużyć się relacją\n Zapytanie 3: wybierające jedynie pola tytul oraz rok z tabeli filmy tylko dla gatunku dramatów\no ocenie równej 5\n Zapytanie 4: tworzące tabelę o nazwie aktorzy i polach id typu numerycznego, imie typu\ntekstowego, nazwisko typu tekstowego. Pole id nie może przyjmować wartości NULL\nWitryna internetowa\nObraz 2. Witryna internetowa. Kursor znalazł się na obszarze formularza.\nPrzygotowanie grafiki:\n Grafikę kadr.jpg należy skadrować. Na obrazie widoczne są dwie czarne linie wyznaczające kadr.\nZdjęcie powinno być wycięte tak, aby był widoczny tylko obszar pomiędzy liniami (linie nie mają być\nwidoczne).\nCechy witryny:\n Składa się ze strony o nazwie index.html\n Zastosowany właściwy standard kodowania polskich znaków\n Tytuł strony widoczny na karcie przeglądarki: „Filmy”\n Arkusz stylów w pliku o nazwie styl1.css prawidłowo połączony z kodem strony\n Podział strony na bloki: boczny panel po lewej stronie oraz trzy panele po prawej stronie - jeden pod\ndrugim, stopka pod wszystkimi panelami. Podział zrealizowany za pomocą znaczników sekcji, zgodnie\nz obrazem 2\n Zawartość lewego panelu:\n Nagłówek trzeciego stopnia o treści „Dostępne gatunki filmu”\n Lista numerowana (uporządkowana) z elementami o treści: „Sci-Fi”, „animacja”, „dramat”,\n„horror”, „komedia”\n Umieszczony w akapicie (paragrafie) odnośnik o treści „Pobierz obraz” prowadzący do obrazu\nkadr.jpg\n Umieszczony w akapicie odnośnik o treści „Sprawdź repertuar kin” prowadzący do strony\n„repertuar-kin.pl”, odnośnik otwiera się w osobnym oknie\n Zawartość pierwszego prawego panelu: nagłówek pierwszego stopnia o treści „FILMOTEKA”\n Zawartość drugiego prawego panelu: formularz wysyłający dane metodą POST do pliku dodaj.php\nz elementami umieszczonymi w osobnych wierszach:\n Tekst „Tytuł: ” oraz pole edycyjne typu tekstowego\n Tekst „Gatunek filmu: ” oraz pole edycyjne typu numerycznego\n Tekst „Rok produkcji: ” oraz pole edycyjne typu numerycznego\n Tekst „Ocena: ” oraz pole edycyjne typu numerycznego\n Przycisk o treści CZYŚĆ, po jego wciśnięciu dane z pól edycyjnych są usuwane\n Przycisk o treści DODAJ, po jego wciśnięciu dane są wysyłane do skryptu PHP\n Zawartość trzeciego prawego panelu: obraz kadr.jpg z tekstem alternatywnym „zdjęcia filmowe”\n Zawartość stopki:\n Akapit o treści „Autor strony: ”, dalej wstawiony numer PESEL zdającego\nStyl CSS witryny internetowej\nPlik styl1.css zawiera formatowanie:\n Domyślne dla całej strony: krój czcionki Helvetica\n Panelu lewego: kolor tła Navy, biały kolor czcionki, wysokość 700 px, szerokość 25%\n Pierwszego panelu prawego: kolor tła RoyalBlue, wysokość 100 px, szerokość 75%, wyrównanie\ntekstu do środka\n Drugiego panelu prawego: kolor tła SteelBlue, wysokość 300 px, szerokość 75%\n Trzeciego panelu prawego: kolor tła RoyalBlue, wysokość 300 px, szerokość 75%, wyrównanie tekstu\ndo środka\n Stopki: kolor tła SteelBlue, wyrównanie tekstu do środka, marginesy wewnętrzne 20 px\n Nagłówka pierwszego stopnia: odległość między literami wynosi 5 px\n Formularza: marginesy zewnętrzne 30 px, wysokość linii wynosi 3\n W momencie najechania kursorem na obszar formularza zmienia on kolor tła na DeepSkyBlue\nSkrypt połączenia z bazą\nWymagania dotyczące skryptów:\n Napisany w języku PHP, umieszczony w pliku dodaj.php (w pliku znajduje się tylko skrypt)\n Skrypt łączy się z serwerem bazodanowym na localhost, użytkownik root bez hasła, baza danych\no nazwie dane\n Pobiera dane z formularza ze wszystkich pól edycyjnych\n Dodaje dane do tabeli filmy za pomocą zmodyfikowanego zapytania 1\n Wypisuje tekst „Film <tytul> został dodany do bazy”, gdzie <tytul> oznacza tytuł wpisany do\nformularza\n Zamyka połączenie z bazą\nW tabeli 1 podano wybór funkcji PHP do obsługi bazy danych.\nTabela 1. Wybór funkcji języka PHP do obsługi bazy MySQL i MariaDB\nUWAGA: po zakończeniu pracy utwórz plik tekstowy. Zapisz w nim nazwę przeglądarki internetowej,\nw której weryfikowałeś poprawność działania witryny, zapisz go w folderze z numerem PESEL jako\nprzeglądarka.txt. Nagraj płytę z rezultatami pracy. W folderze z numerem PESEL powinny się znajdować\npliki: dodaj.php, import.png, index.html, kadr.jpg, kw1.jpg, kw2.jpg, kw3.jpg, kw4.jpg, kwerendy.txt,\nprzeglądarka.txt, styl1.css, ewentualnie inne przygotowane pliki. Po nagraniu płyty sprawdź poprawność\nnagrania. Opisz płytę swoim numerem PESEL i pozostaw na stanowisku, zapakowaną w pudełku wraz\nz arkuszem egzaminacyjnym.\nCzas przeznaczony na wykonanie zadania wynosi 150 minut.\nOcenie będzie podlegać 5 rezultatów:\n operacje na bazie danych,\n wygląd witryny internetowej,\n działanie witryny internetowej,\n styl CSS witryny internetowej,\n skrypt połączenia z bazą.\nFunkcje bilioteki mysqli\nZwracana wartość\nmysqli_connect(serwer, użytkownik, hasło, nazwa_bazy)\nid połączenia lub FALSE, gdy niepowodzenie\nmysqli_select_db(id_polaczenia, nazwa_bazy)\nTRUE/FALSE w zależności od stanu operacji\nmysqli_error(id_polaczenia)\nTekst komunikatu błędu\nmysqli_close(id_polaczenia)\nTRUE/FALSE w zależności od stanu operacji\nmysqli_query(id_polaczenia, zapytanie)\nWynik zapytania\nmysqli_fetch_row(wynik_zapytania)\nTablica numeryczna odpowiadająca wierszowi zapytania\nmysqli_fetch_array(wynik_zapytania)\nTablica zawierająca kolejny wiersz z podanych w wyniku\nzapytania lub FALSE, jeżeli nie ma więcej wierszy\nw wyniku zapytania\nmysqli_num_rows(wynik_zapytania)\nLiczba wierszy w podanym zapytaniu\nmysqli_num_fields(wynik_zapytania)\nLiczba kolumn w podanym zapytaniu\nWypełnia zdający\nDo arkusza egzaminacyjnego dołączam płytę CD opisaną numerem PESEL\nktórej jakość nagrania została przeze mnie sprawdzona.\nWypełnia Przewodniczący ZN\nPotwierdzam, że do arkusza egzaminacyjnego dołączona jest płyta CD, opisana numerem PESEL zdającego.\nCzytelny podpis Przewodniczącego ZN\n,","answer":null,"answer_text":"Nazwa\nkwalifikacji:\nTworzenie aplikacji internetowych i baz danych oraz administrowanie bazami\nOznaczenie\nkwalifikacji:\nE.14\nNumer zadania: 01\nKod arkusza:\nE.14-01-01_zo\nLp.\nElementy podlegające ocenie/kryteria oceny\nR.1\nRezultat 1: Operacje na bazie danych\nUwaga: W przypadku oceny zrzutów ekranu należy uznać za prawidłowe jeżeli widoczny jest cały obszar ekranu, a\nzapytanie ma charakter uniwersalny dla każdego zestawu danych. Nie należy oceniać wykadrowanych zrzutów ekranów\nR.1.1\nWykonano import tabel do bazy danych dane , czynność udokumentowano plikiem o nazwie import w formacie\nPNG. Zrzut zawiera cały obszar ekranu z widocznym paskiem zadań\nR.1.2\nZapisano plik kwerendy.txt z zapytaniami SQL oraz zapisano przynajmniej jeden zrzut ekranu w formacie JPG\nR.1.3\nUtworzono zapytanie 1 wstawiające do tabeli filmy jeden rekord o danych: film „Suburbicon” z roku 2017,\ngatunek filmu to komedia, ocena jest równa 5 np.:\nINSERT INTO filmy(gatunki_id, tytul, rok, ocena) VALUES (5, 'Suburbicon', 2017,\n5); lub\nINSERT INTO filmy VALUES (lista wartości) w tym przypadku muszą być podane wszystkie\nwartości lub\nINSERT INTO filmy SET (lista_przypisań) lub\nwynik działania udokumentowano zrzutem, na którym widoczna jest kwerenda i komunikat: \"Wstawionych\nrekordów: 1\" lub efekt działania kwerendy.\nR.1.4\nUtworzono zapytanie 2 wybierające jedynie pole tytul z tabeli filmy oraz odpowiadające mu pole nazwa z tabeli\ngatunki dla filmów, które są ocenione wartością 6. W pliku z kwerendami istnieje zapis np.:\nSELECT tytul, nazwa FROM filmy JOIN gatunki ON filmy.gatunki_id = gatunki.id WHERE\nocena = 6; możliwe również INNER JOIN lub\nSELECT tytul, nazwa FROM filmy, gatunki WHERE filmy.gatunki_id = gatunki.id AND\nocena = 6; lub\nwynik działania udokumentowano zrzutem, na którym widoczne są dokładnie dwa rekordy: Milczenie i W\nstarym, dobrym stylu, jedynie pola tytul i nazwa\nR.1.5\nUtworzono zapytanie 3 wybierające jedynie pola tytul oraz rok z tabeli filmy jedynie dla dramatów o ocenie\nrównej 5. W pliku z kwerendami istnieje zapis np.:\nSELECT tytul, rok FROM filmy WHERE gatunki_id = 3 AND ocena = 5;\nlub wynik działania udokumentowano zrzutem, na którym widoczny jest tylko jeden rekord: Sully, 2016\nR.1.6\nUtworzono zapytanie 4 tworzące tabelę o nazwie aktorzy i polach id typu numerycznego, imie typu tekstowego,\nnazwisko typu tekstowego. Pole id nie może przyjmować wartości NULL. W pliku z kwerendami istnieje zapis\nnp.:\nCREATE TABLE aktorzy (id int NOT NULL, imie text, nazwisko text); możliwe różne typy\ncałkowite: int, tinyint, smallint, mediumint, bigint, decimal oraz różne typy tekstowe:char(), varchar(), tinytext,\ntext, mediumtext, longtext, możliwe różne atrybuty lub wynik działania udokumentowano zrzutem, na którym\nwidoczna jest kwerenda i komunikat \"MySQL zwrócił pusty wynik \" lub efekt działania kwerendy\nR.2\nRezultat 2: Wygląd witryny internetowej\nUwaga: W napisach widocznych na stronie dopuszcza się drobne błędy literowe (nie zmieniające sensu tekstu), błędy\nwielkości liter i znaków diakrytycznych, tekst może być pisany w cudzysłowach lub bez\nJeśli witryna nie uruchamia się z powodu błędów PHP - sprawdzić wg kryteriów w kodzie źródłowym strony\nR.2.1\nWitrynę internetową zapisano w pliku index.html oraz zastosowano właściwy standard kodowania polskich\nznaków\nR.2.2\nNadano tytuł strony: \"Filmy”, jest on widoczny na karcie przeglądarki\nR.2.3\nWygląd strony zdefiniowano dzieląc ją na bloki: boczny panel po lewej stronie oraz trzy panele po prawej\nstronie - jeden pod drugim, stopka pod wszystkimi panelami. Zastosowano znaczniki sekcji\nR.2.4\nW lewym panelu zapisano nagłówek h3: \"Dostępne gatunki filmu\" oraz w panelu prawym pierwszym zapisano\nnagłówek h1: \"FILMOTEKA\" oraz przynajmniej raz zastosowano paragraf: dla odnośnika w panelu lewym lub\ndla tekstu w stopce\nR.2.5\nW panelu lewym umieszczono listę numerowaną o elementach: „Sci-Fi”, „animacja”, „dramat”, „horror”,\n„komedia”. Zastosowano znaczniki ol i li oraz je zamknięto\nR.2.6\nW panelu prawym drugim umieszczono formularz z czterema polami do wprowadzania danych oraz dwoma\nprzyciskami opisanymi: CZYŚĆ i DODAJ\nR.2.7\nW panelu prawym trzecim umieszczono obraz kadr.jpg z tekstem alternatywnym \"zdjęcia filmowe\"\nR.2.8\nSkadrowano obraz kadr.jpg tak, że jest widoczny obszar znajdujący się pomiędzy dwoma czarnymi liniami\nobrazu pierwotnego, linie nie są widoczne\nR.3\nRezultat 3: Działanie witryny internetowej\nUwaga: Jeśli witryna nie uruchamia się z powodu błędów PHP - sprawdzić wg kryteriów w kodzie źródłowym strony\nR.3.1\nUkład bloków po uruchomieniu strony w przeglądarce jest w pełni zgodny z obrazem 2 w arkuszu\negzaminacyjnym\nR.3.2\nDane z formularza przesyłane są za pomocą metody POST do skryptu w pliku dodaj.php\nR.3.3\nWciśnięcie przycisku CZYŚĆ powoduje czyszczenie formularza oraz przycisk DODAJ jest typu submit\nR.3.4\nPrzynajmniej jedno pole wprowadzania danych jest typu number\nR.3.5\nKliknięcie odnośnika \"Pobierz obraz\" pobiera / otwiera plik kadr.jpg oraz kliknięcie odnośnika \"Sprawdź\nrepertuar kin\" inicjuje próbę otworzenia strony \"repertuar-kin.pl\"\nR.3.6\nStrona repertuar-kin.pl jest otwierana w osobnym oknie / zakładce przeglądarki\nR.3.7\nStrona zawiera działające połączenie z zewnętrznym arkuszem stylów o nazwie styl1.css lub styll.css\nformatowanie pochodzi jedynie od CSS\nR.4\nRezultat 4: Styl CSS witryny internetowej\nUwaga: W przypadku, gdy nie jest spełnione kryterium 3.7, kryteria w rezultacie R.4 należy ocenić w kodzie CSS.\nSkładnia musi być zgodna ze specyfikacją CSS\nR.4.1\nUstawiono domyślny (*) krój czcionki dla całej strony na Helvetica\nR.4.2\nUstawiono kolor tła Navy dla panelu lewego, RoyalBlue dla prawego pierwszego i trzeciego oraz SteelBlue dla\nprawego drugiego i stopki\nR.4.3\nUstawiono biały kolor czcionki dla panelu lewego\nR.4.4\nUstawiono wysokość 700px dla panelu lewego oraz dla paneli prawych kolejno: 100px, 300px, 300px\nR.4.5\nUstawiono szerokość 25% dla panelu lewego oraz 75% dla paneli prawych\nR.4.6\nUstawiono wyrównanie tekstu do środka dla panelu prawego pierwszego i trzeciego oraz stopki\nR.4.7\nUstawiono marginesy wewnętrzne 20px dla stopki\nR.4.8\nUstawiono styl nagłówka pierwszego stopnia: odległość między literami 5px (np. letter-spacing)\nR.4.9\nUstawiono styl formularza: marginesy zewnętrzne 30px, wysokość linii - 3 (np. line-height: 3)\nR.4.10\nW momencie najechania kursorem na obszar formularza zmienia on kolor tła na DeepSkyBlue, np.\npseudoklasa hover. Dopuszcza się alternatywne rozwiązanie np. za pomocą skryptu\nR.5\nRezultat 5: Skrypt połączenia z bazą\nUwaga: dopuszcza się możliwość stosowania biblioteki PDO. W przypadku gdy witryna nie uruchamia się z powodu\nbłędów w skrypcie rezultaty 5.1 ÷ 5.4 należy sprawdzić w kodzie strony\nR.5.1\nSkrypt napisano w języku PHP i umieszczono w pliku dodaj.php\nR.5.2\nSkrypt realizuje połączenie z serwerem bazy danych i wybór bazy dane\nR.5.3\nPo wykonaniu operacji na bazie zastosowano funkcję zamknięcia bazy\nR.5.4\nSkrypt pobiera dane z formularza za pomocą tablicy $_POST\nR.5.5\nSkrypt wysyła do bazy danych zapytanie wstawiające dane do tabeli filmy zgodnie z wypełnionym formularzem.\nNależy wypełnić formularz, zatwierdzić, a następnie sprawdzić za pomocą PHPMyAdmin czy dane zostały\nwstawione do tabeli\nR.5.6\nSkrypt Wypisuje tekst „Film <tytul> został dodany do bazy”, gdzie <tytul> oznacza tytuł wpisany do formularza","solution":null,"image":"img/e14-2019-styczen-egzamin-zawodowy-praktyczny/zad-PE.webp","solution_image":null,"topics":null,"page_from":2,"source":"ocr","answer_source":null,"answer_text_source":"ocr","solution_source":null,"text_source":"ocr","source_label":"E14 · Egzamin zawodowy · styczeń 2019","subject_label":"e14","category_label":"Egzamin zawodowy"}]}