Információ Európa országairól (összetett alkalmazás)



Hasonló dokumentumok
Villamosmérnöki szak Alkalmazott informatika mellék szakirány Laboratórium II. (VIAU5102) World Wide Web lapok készítése (Silabusz)

Kő, Papír, Olló. Felhasználói dokumentáció

ÁLTALÁNOS WEBLAPSZERKESZTÉSI TUDNIVALÓK ÁLTALÁNOS HTML KÓDOLÁSI TUDNIVALÓK

Képnézeget. Gépigény: Bármilyen számítógépen m ködik, amin található böngész és Internet elérés.

A DBM függvények használata

mhtml:file://d:\vizsga\html\hogyan szerkeszteni weboldalt - HTML alapok.mht

Ed. Version 1.2. Az XML nyelv. Az XML nyelv. Győri László munkája. Ed. Version 1.2

Széchenyi István Egyetem. Műszaki Tudományi Kar. Informatikai és Villamosmérnöki Intézet Távközlési Tanszék. Villamosmérnöki szak HTML

Planet Me blog aggregátor létrehozása

forrás: Web és PHP leckék

INFORMATIKAI ALAPISMERETEK

Országzászlók (2015. május 27., Sz14)

HTML ÉS PHP AZ ALAPOKTÓL

HTML, CSS. Morabito Érdi SzC Eötvös József Szakképző Iskolája

Az evangélikus honlapszerkesztő rendszer használata

SZABADKAI MŰSZAKI SZAKFŐISKOLA. E-mobil prezentáció dokumentációja SZABADKA, 2015.

Programozási módszertan. Dinamikus programozás: Nyomtatási feladat A leghosszabb közös részsorozat

Mester Gyula 2003 Internet

8. Mohó algoritmusok Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete

C# feladatok gyűjteménye

XML-HMTL Beadandó Dolgozat. Avagy, mit sikerült validálnunk fél év alatt

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

Informatikai tevékenység 2234 Maglód, Széchenyi u Mérnöki, tanácsadói tevékenység Iroda: Mobil: Telefon:

INFORMATIKAI ALAPISMERETEK

Adatok szűrése, rendezése

2015, Diszkrét matematika

Internet programozása. 3. előadás

3. Gyakorlat Ismerkedés a Java nyelvvel

INFORMATIKAI ALAPISMERETEK

(statikus) HTML (XHTML) oldalak, stíluslapok

Szolgáltatások 01 Állandó letelepedés: egy adott társasággal kapcsolatos kérés

Internet technológiák

INFORMATIKAI ALAPISMERETEK

TÉRINFORMATIKA AZ INTERNETEN

Példa: Aktuális könyvtár tartalmának fájlba mentése, melynek neve az aktuális dátum és idő: ls l > `date+%f_%h-%m`.txt

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

9. MODUL WEBKEZDŐ. A vizsgafeladat megoldásához kizárólag a választott webkészítő program, illetve jegyzettömb (editor) használható.

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

NONPROFIT ÉRDEKVÉDELMI SZERVEZETEK FEJLESZTÉSE (PL.3346) Java-script nyelv. programozás alapjai. Haramia László

SZAKDOLGOZAT. Vígh Gábor DEBRECEN 2009.

NeoCMS tartalommenedzselő szoftver leírása

117. AA Megoldó Alfréd AA 117.

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

ÜGYVITELI ALAPISMERETEK

Körkörös listák. fej. utolsó. utolsó. fej

C# gyorstalpaló. Készítette: Major Péter


Két tűz között. statikus site generátorok és javascript alkalmazások és a Drupal

KÖNYVELÉS A GYAKORLATBAN. Webes ERP RENDSZERREL MEGOLDOTT ESETTANULMÁNY

2.3. A C nyelv utasításai

Nemzeti Fejlesztési és Gazdasági Minisztérium támogatásával megvalósuló KKC-2008-V számú projekt B2CR ONLINE KOMMUNIKÁCIÓ

Mesterséges intelligencia 1 előadások

Informatika E FAKT , = ±

Picture Style Editor verzió Kezelési kézikönyv

Programozás és adatbázis kezelés PHP ben

Adatbázisok I. Az SQL nyelv

MS Access Feladatgyűjtemény


Blonde. Szépségszalon, Szolárium, Spa, Fitness. Ügyviteli Rendszer. Funkcionális Specifikáció. Verzió 1.1

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

Egyszerű programozási tételek

Decentralizáció és piacosítás

Adatbázisok I A relációs algebra

Központi proxy szolgáltatás

Egyre színesebb a fentrol.hu

A C# programozási nyelv alapjai

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

INFORMATIKAI ALAPISMERETEK

Alap számológép alkalmazás

hp Intelligens bővítőmodul

Bevezetés a C++ programozási nyelvbe

1.1 DEVIZÁS SZÁMLA KIEGYENLÍTÉSÉHEZ KAPCSOLÓDÓ AUTOMATIKUS ÁRFOLYAM KÜLÖNBÖZET KÖNYVELÉS

Súgó a KMCSSZ olvasási különpróba rendszeréhez

ÉS TESZTEK A DEFINITSÉG

C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán

The evolution of spam techniques and countermeasures

Eddig még nem használt vezérlőket is megismerünk: PlaceHolder, RadioButtonList.

BARANGOLÁS AZ E-KÖNYVEK BIRODALMÁBAN Milyen legyen az elektonikus könyv?

Általános Szerződési Feltételek

BÉRSTATISZTIKAI PROGRAM HASZNÁLATI ÚTMUTATÓJA

Entity Framework alapú adatbáziselérés

A Surfer for Windows használata (8. verzió)

Informatika Kft. Budapest, XXV. Villányi út 11.

INFORMATIKAI ALAPISMERETEK

Bevezető Mi a statisztika? Mérés Feldolgozás Adatok rendezése Adatok jellemzése Időbeli elemzés Feladatok. Statisztika I.

Máté: Számítógépes grafika alapjai

VISUAL BASIC ALAPISMERETEK

I. sz. 220 körül Origenész összeállítja Hexapla címen az Ószövetség hat különbözı fordítását

Java programozási nyelv

M4 TÁBLÁZATKEZELÉS ALAPJAI

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

Programozás I gyakorlat. 5. Struktúrák

S z á m í t ó g é p e s a l a p i s m e r e t e k

1. Áttekintés 1.1 Figyelmeztetések (1) Az új akkumulátorok optimális teljesítményüket 2-3 feltöltési és lemerítési ciklus után érik el.

AXEL Számlázó és készletnyilvántartó program

Többfelhasználós és internetes térkép kezelés, megjelenítés

2016/06/23 07:47 1/13 Kérdések

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Adatbázis használata PHP-ből

Átírás:

Információ Európa országairól (összetett alkalmazás) Információ Európa osrzágairól Készítsünk webes felületet, melyen Európa térképe klikkelésre érzékeny (szenzitív) képként jelenik meg! Bármelyik országot választva, a rá jellemző legfontosabb adatok (ország neve, főváros, terület, lakók száma, népsűrűség, nemzeti jövedelem, beszélt nyelvek, pénznem, egy főre eső nemzeti jövedelem) és az ország zászlaja jelenjenek meg a képernyőn! Készítsünk összesítő Európainfo táblázatot, melyen valamennyi európai ország jellemző adatai kölönböző szempontok szerint rendezve egyszerre láthatók. Az adatok tárolásához szöveges fájlt használjunk! A feladat megvalósítása Szöveges fájl készítése Először el kell készíteni a szöveges fájlt. A fájl egy-egy sorába egy-egy ország adatait írjuk. Az egyes tulajdonságokat vesszővel választjuk el egymástól. Példaként a Magyarországgal kapcsolatos sor a következő: Magyarország,93030,10068000,108,Budapest,magyar,4640,forint/fillér, mazaszlo.gif A tulajdonságok sorrendje minden ország esetében azonos: ország neve, terület, lakók száma, népsűrűség, főváros, nyelv, nemzeti jövedelem, valutanem, zászlót ábrázoló képfájl neve. (Az adatok a Fischer Almanach 2002-ben megjelent kiadványából vannak.) Zászlók képeinek összegyűjtése A zászlók képeit egy mappában célszerű összegyűjteni. Ezek az internetről is könnyen letölthetők. A webes megjelenítés miatt kiterjesztésük gif, jpg vagy png lehet. A szenzitív Európa-térkép elkészítése Keresni (esetleg rajzolni) kell egy térképet, melyen az országok jól láthatók. A képet szkennerrel digitalizáljuk. A létrehozott képfájlt megfelelő programmal (Paint, Microsoft Photo Editor) jpg vagy gif formába konvertáljuk. A klikkelésre érzékeny helyek feltérképezéséhez gondolatban minden ország belsejébe egy-egy kört írunk, s feljegyezzük középpontjának koordinátáit és sugarát. Az egér különböző helyzeteihez tartozó x,y koordináták az említett szoftvereket használva a képernyőről leolvashatók.

A rendezési szempontokat tartalmazó menüt és szenzitív képet megjelenítő weboldal elkészítése (europa.html) Létrehozunk egy oldalt, melynek bal felére a menüt, jobb felére az Európa-térképet tesszük. A menü minden eleme egy-egy hivatkozás (link), ezek bármelyikére klikkelve a választott szempont szerint rendezett Európainfo táblázatot kapjuk. Ahogy a listából látható, a kölönböző szempontok szerint rendezett lista előállításához a sort.php programot hívjuk. A program neve után írt?sort=x kifejezéssel adjuk át a programnak, hogy éppen mely szempont szerint kívánunk rendezni (pl: x=o esetén ország neve, x=t esetén terület szerint rendezünk). A <MAP NAME="EUROPA"> </MAP> tag-ek között a kép klikkelésre érzékeny részeit definiáljuk. A SHAPE és COORDS tulajdonságok a szenzitív tartományok alakját, ill. koordinátáit mutatják. Az AREA HREF= bejegyzés után a hívásra kerülő programot tüntetjük fel a hívási paraméterrel. Az átadott paraméter esetünkben mindig az ország neve. Például a Magyarország belsejében levő körre klikkelve az orszaginfo.php?orsz=magyarország hívással az orszaginfo.php aktivizálódik, melynek feladata a Magyarországra jellemző adatoknak és a magyar zászlónak a felhasználó képernyőjén való megjelenítése. <HTML> <BODY BGCOLOR=white VLINK=blue> <TABLE> <TR> <TD VALIGN=top> <H2>Lista megjelenítése</h2> <H3> Rendezési szempont: </H3> <A HREF="sort.php?sort=o"> Ország</A><BR> <A HREF="sort.php?sort=f"> Főváros</A><BR> <A HREF="sort.php?sort=t"> Terület</A><BR> <A HREF="sort.php?sort=j"> Nemzeti Jövedelem /fő</a><br> <A HREF="sort.php?sort=l"> Lakók száma</a><br> <A HREF="sort.php?sort=n"> Népsűrűség fő/km<sup>2</a><br> </CENTER> <TD><IMG SRC="europa.jpg" USEMAP="#EUROPA" > </TR> </TABLE> <MAP NAME="EUROPA"> <AREA HREF="orszaginfo.php?orsz=Magyarország" SHAPE=CIRCLE COORDS="252,268,10"> <AREA HREF="orszaginfo.php?orsz=Ausztria" SHAPE=CIRCLE COORDS="217,261,10"> <AREA HREF="orszaginfo.php?orsz=Németország" SHAPE=CIRCLE COORDS="185,222,10"> </MAP> </BODY> </HTML>

A választott országgal kapcsolatos információt megjelenítő oldal dinamikus generálása (orszaginfo.php) Az orszaginfo.php?orsz=x formájú programhívásnál x a választott ország neve. Az x nevű országra jellemző adatok eléréséhez az Europainfo.txt szöveges fájlt olvasásra kell megnyitni. Addig kell olvasni a sorokat, míg a megjelölt országig el nem jutunk. Ha megtaláltuk, akkor ezt a sort ($sor változó tartalmát) szét kell szedni alkotóelemeire. Ezen elemek az országra jellemző tulajdonságok. A $sor tartalmát a vessző karakter mentén 'robbantjuk' szét ($szavak=explode(",",$sor)). Az így különválasztott adatok a szavak tömb egy-egy elemét képezik. Az ország neve például a szavak tömb 0., az országra jellemző valuta a szavak tömb 7., a zászlót tároló fájl neve a tömb 8. elemébe kerül. Végül a képernyőn megjelennek az országra jellemző adatok, s megjelenik a zászló képe is. <HTML> <BODY BGCOLOR=white> <H1 ALIGN=CENTER> PC EUROPA </H1> <H2 ALIGN=CENTER> Információ Európa országairól </H2> <??> $f=fopen("europainfo.txt","r"); $i=0; while($sor=fgets($f,10000)) $szavak=explode(",",$sor); if ($szavak[0]==$orsz) break; <H1 ALIGN=CENTER> <? echo $szavak[0]?></h1> <P align=center> <IMG SRC="zaszlok/<? echo $szavak[8]?>" width=50> </P> <TABLE ALIGN=CENTER BGCOLOR=LIGHTGREY> <TR> <TD> Terület: <BR> Főváros:<BR> Népesség:<BR> Népűrűség:<BR> Nyelvek:<BR> Pénznem:<BR> Nemzeti jövedelem:<br> <TD> <? echo $szavak[1]?> km<sup>2</sup><br> <? echo $szavak[4]?><br> <? echo $szavak[2]?> fő <BR> <? echo $szavak[3]?> fő/km<sup>2</sup><br> <? echo $szavak[5]?><br>

</TR> </TABLE> <? echo $szavak[7]?><br> <? echo $szavak[6]?> $/fő<br> <P ALIGN=CENTER> <A HREF="europa.html"> <IMG SRC="europa.jpg" WIDTH=50> </A> </P> </BODY> </HTML> A kívánt szempont szerint rendezett Európainfo tábla előállítása és megjelenítése (sort.php) Az adatok rendezéséhez egy adat nevű tömböt hozunk létre. A tömbnek annyi eleme van, ahány országa van Európának. Definiálunk továbbá egy orszag nevű objektumosztályt. Ennek tulajdonságai a definícióból egyértelműen láthatók: class orszag var $orsz; var $ter; var $lakos; var $neps; var $fov; var $nyelv; var $joved; var $penz; Az adat tömb minden eleme az ország objektumosztály egy-egy előfordulása. A sort.php program három fő egységből áll: 1. Az adat tömb feltöltése a szöveges fájl (Europainfo.txt) adataival 2. A rendezés A sort.php programot paraméteresen hívjuk. A rendezési szempontot a hívási paraméter adja meg. Például a sort.php?sort=o hívással az ország szerinti rendezést kérjük. A rendezés a buborék algoritmus szerint (bubble sort) valósul meg, azaz a rendezés során mindig a szomszédos elemeket vizsgáljuk meg és cseréljük ki, ha az szükséges. A tömb elemein többször is végigmenve megvizsgáljuk a szomszédos elemek rendezési szempont szerinti tulajdonságát. Az adat tömb i-edik és i+1-edik elemének megfelelő tulajdonságát hasonlítjuk össze, s szükség esetén felcseréljük a két elemet. A rendezésnek akkor van vége, ha a teljes tömböt végignézve nincs szükség további cserére. A rendezési feltétel a hívási paraméter értékétől függ. Ha például ország szerint kívánunk rendezni, a feltételes kifejezés a következő: $felt=$adat[$i]->orsz >$adat[$i+1]->orsz

Mivel többféle elv szerint kérhetjük a rendezést, a többirányú elágazást a programban a switch utasítással valósítjuk meg. Ha a kijelölt feltétel igaz, a $felt változó értéke 1 lesz, a szomszédos elemeket ki kell cserélni. Az Európatábla megjelenítése A program a rendezett tömb adataival HTML-oldalt generál. Ezt a táblázatot a kliens browsere jeleníti meg. <HTML> <BODY> <h1 align=center>európa országai</h1> <P align=center> <A HREF="europa.html">Vissza</A> </P> <? class orszag var $orsz; var $ter; var $lakos; var $neps; var $fov; var $nyelv; var $joved; var $penz; // Tömb feltöltése az Europainfo.txt adataival $f=fopen("europainfo.txt","r"); $i=0; while($sor=fgets($f,10000)) $szavak=explode(",",$sor); $adat[$i] = new orszag; $adat[$i]->orsz = $szavak[0]; $adat[$i]->ter = $szavak[1]; $adat[$i]->lakos = $szavak[2]; $adat[$i]->neps = $szavak[3]; $adat[$i]->fov = $szavak[4]; $adat[$i]->nyelv = $szavak[5]; $adat[$i]->joved = $szavak[6]; $adat[$i]->penz = $szavak[7]; $i++; fclose($f); $n=$i;

// Rendezés do $cs=0; for ($i=0; $i<$n-1; $i++) switch($sort) case "o": $felt=$adat[$i]->orsz >$adat[$i+1]->orsz; break; case "f": $felt=$adat[$i]->fov >$adat[$i+1]->fov; break; case "t": $felt=$adat[$i]->ter > $adat[$i+1]->ter; break; case "j": $felt=$adat[$i]->joved > $adat[$i+1]->joved; break; case "l": $felt=$adat[$i]->lakos > $adat[$i+1]->lakos; break; case "n": $felt=$adat[$i]->neps > $adat[$i+1]->neps; break; if ($felt==1) $cs=1; $seg=$adat[$i]; $adat[$i]=$adat[$i+1]; $adat[$i+1]=$seg; while ($cs==1); // Táblázat megjelenítése echo "<TABLE align=center>"; echo "<TR bgcolor=lightblue><th>ország<th>főváros<th>terület <TH>Nemz.jöved<TH>Lakók száma<th>népsűrűség"; for ($i=0; $i<$n; $i++) echo "<TR bgcolor=lightblue>"; echo "<TD>".$adat[$i]->orsz; echo "<TD>".$adat[$i]->fov; echo "<TD ALIGN=right>".$adat[$i]->ter; echo "<TD ALIGN=right>".$adat[$i]->joved; echo "<TD ALIGN=right>".$adat[$i]->lakos; echo "<TD ALIGN=right>".$adat[$i]->neps; echo "</TR>"; echo "</TABLE>";?> </BODY> </HTML>