Programozási nyelvek II. JAVA

Hasonló dokumentumok
Programozási nyelvek II. JAVA

Osztályok. 4. gyakorlat

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat április 13. Például (bemenet/pelda.

Tájékoztató. Használható segédeszköz: -

3. Osztályok II. Programozás II

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Programozási alapismeretek 4.

Bevezetés a Python programozási nyelvbe

BME MOGI Gépészeti informatika 8.

Programozás 2. gyakorlat

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Dokumentáció. 1. Beadandó feladat

Programozás I ZH, Név:... A. csoport EHA: pont Gyakorlatvezető:...

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Objektum elvu alkalmaza sok fejleszte se

OOP: Java 8.Gy: Gyakorlás

Programozási nyelvek II.: JAVA, 3. gyakorlat

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

JAVA PROGRAMOZÁS 2.ELŐADÁS

C++ programozási nyelv

Rendszerterv. Makoviczki András. Neptun: JJ26AR

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

C++ programozási nyelv Konstruktorok-destruktorok

AWK programozás Bevezetés

Programozási nyelvek II.: JAVA

Programozási nyelvek Java

Levelezős Programozás beugró (Java) december 1.

Szoftvertechnolo gia gyakorlat

INFORMATIKAI ALAPISMERETEK

Programozási nyelvek Java

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

AWK programozás, minták, vezérlési szerkezetek

RESIDENT EVIL CODENAME: NIK

OOP: Java 8.Gy: Abstract osztályok, interfészek

Objektumelvű programozás

Tájékoztató. Használható segédeszköz: -

Forráskód formázási szabályok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Web-programozó Web-programozó

OEP Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat. Elemzés 1

Programozás Minta programterv a 1. házi feladathoz 1.

Gyakorlati vizsgatevékenység A

A Java nyelv. Dialógus ablakok. Elek Tibor

Programozási nyelvek II.: JAVA

HTML ÉS PHP ŐSZI FÉLÉV

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

OOP: Java 4.Gy: Java osztályok

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

A C++ öröklés. (Előfeltétel: 12. tétel ismerete)

Listák, szótárak, fájlok Listák, szótárak, fájlok

XML / CSV specifikáció

Java és web programozás

A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján.

Objektum orientált kiterjesztés A+ programozási nyelvhez

Programozási nyelvek Java

Bevezetés a programozásba I.

7. gyakorlat Sorozatok, Fájlkezelés

ELTE SAP Excellence Center Oktatóanyag 1

7. K: JAVA alapok Konzultáció

BASH script programozás II. Vezérlési szerkezetek

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Programozási technológia I. 1. beadandó feladatsor

HVK Adminisztrátori használati útmutató

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

Java Programozás 1. Gy: Java alapok. Ismétlés ++

OOP #14 (referencia-elv)

Programozási nyelvek Java

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Regionális forduló november 19.

Regionális forduló november 19.

Tájékoztató. Használható segédeszköz: -

A következő táblázat tartalmazza az egyes fajták jellemzőit.

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

3. modul - Szövegszerkesztés

Regionális forduló november 18.

InCash számlázó program és a Webshop Hun rendszer összekötése

AWK programozás, minták, vezérlési szerkezetek

Java és web programozás

INFORMATIKAI ALAPISMERETEK

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Tájékoztató. Használható segédeszköz: -

Java programozási nyelv 6. rész Java a gyakorlatban

INFORMATIKAI ALAPISMERETEK

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

XML / CSV specifikáció

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

C# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18

Operációs rendszerek. 3. gyakorlat. Jogosultságkezelés, linkelés, csővezeték UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Programozás I gyakorlat

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

OE.Prog2.Jatek.Jatekter névtéren belül készítsük el az alábbiakat: Új osztály: JatekElem. A JatekElem osztályt egészítsük ki az alábbiakkal:

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk

Átírás:

Programozási nyelvek II. JAVA 8. gyakorlat 2017. november 6-10.

Általános tudnivalók A feladatmegoldás során fontos betartani az elnevezésekre és típusokra vonatkozó megszorításokat, illetve a szövegek formázási szabályait. Segédfüggvények létrehozhatóak, a feladatban nem megkötött adattagok és elnevezéseik is a feladat megoldójára vannak bízva. Törekedjünk arra, hogy az osztályok belső reprezentációját a lehető legjobban védjük, tehát csak akkor engedjünk, és csak olyan hozzáférést, amelyre a feladat felszólít, vagy amit azt osztályt használó kódrészlet megkíván! A feladat megoldása során be kell tartani a kódolási konvenciókat.

A feladat összefoglaló leírása A feladatban egy piac nagyon leegyszerűsített működését fogjuk szimulálni. A piacon gyümölcsöket árulnak, amelyeknek nyilvántartjuk a nevüket és az árukat. Nyilvántartjuk, hogy a piacon milyen gyümölcsöket lehet kapni.

A feladat részletes ismertetése (gyömölcs) Készítsd el a market.fruit osztályt, ami egy gyümölcsöt reprezentál. Az osztálynak két rejtett adattagja van: egy szöveges típusú name, amely a gyümölcs nevét tárolja és egy egész szám típusú price, ami a gyümölcs árát tárolja. Az osztálynak legyen egy rejtett konstruktora, amely paraméterben megkapja a nevet és az árat, és beállítja a megfelelő adattagokat. Legyen egy paraméter nélküli getprice, ami visszaadja a gyümölcs árát. Az osztály tartalmazzon egy cheaperthan metódust, ami eldönti, hogy az aktuális gyümölcs olcsóbb-e, mint a paraméterben kapott gyümölcs.

A feladat részletes ismertetése (gyömölcs) Legyen egy statikus make metódus, amely szintén egy nevet és egy árat kap. A metódusnak ellenőriznie kell a paramétereket, és amennyiben azok megfelelőek, akkor hozza létre, és adja vissza a paramétereknek megfelelő Fruit objektumot. Ha a paraméterek nem jók, akkor a metódus null-t adjon vissza. A nevet tartalmazó paraméter akkor megfelelő, ha csak betűt tartalmaz és legalább 2 karakter hosszú. Az árat tartalmazó paraméter pedig akkor helyes, ha pozitív, de legfeljebb 5000, továbbá és 0-ra vagy 5-re végződik.

A feladat részletes ismertetése (gyömölcs) Az osztályban legyen egy paraméter nélküli show metódus, amely visszaadja az objektum szöveges reprezentációját. A formátum legyen a következő: név (ár-ezres-tagolással Ft) (ha az ár 1000-nél nagyobb, akkor ezres tagolásként egy szóközt kell használni, pl. 3 065).

A feladat részletes ismertetése (gyömölcs) Az osztály tartalmazzon egy cheapestfruit nevű osztályszintű adattagot, ami a legolcsóbb gyümölcsöt tartalmazza, amit valaha létrehoztak (ha több ilyen van, akkor ezek közül az elsőt). Ha még nem hoztak létre Fruit objektumot, akkor az adattag értéke legyen null. Figyelj rá, hogy a konstruktor mindig aktualizálja ezt az objektumot, amikor az összes eddiginél olcsóbb gyümölcsöt hoz létre. Legyen egy osztályszintű getcheapestfruit metódus, ami visszaadja az előbbi Fruit objektumot.

A feladat részletes ismertetése (piac) Készítsd el a market.market osztályt, ami egy egyszerűsített piacot reprezentál. Az osztály egy rejtett láncolt lista típusú adattagban tartsa nyilván, hogy milyen gyümölcsöket lehet kapni a piacon (Fruit típusú objektumok).

A feladat részletes ismertetése (piac) Az osztálynak egy publikus konstruktora legyen, ami egy fájlnevet kap paraméterként, amely gyümölcsöket tartalmaz. A metódus dolgozza fel a fájlt, szűrje ki belőle a hibás adatokat, majd töltse fel a gyümölcsöket a láncolt listába. Ha a fájl nem létezik, vagy nem olvasható, akkor a gyümölcsök listája legyen üres, a konstruktor pedig ne engedje ki a keletkező kivételt. Az inputfájl minden sora egy gyümölcsöt tartalmaz név,ár formában. Ha a sor nem ilyen szerkezetű, vagy az ár nem konvertálható számmá, vagy a megadott adatokból a Fruit objektum nem hozható létre, akkor a sort figyelmen kívül kell hagyni és a feldolgozást a következő sorral kell folytatni.

A feladat részletes ismertetése (piac) Legyen egy numberoffruits metódus, amely visszaadja a piacon még kapható gyümölcsök számát. Kezdetben az összes gyümölcs kapható. Legyen egy paraméter nélküli show metódus, ami szöveges típusban visszaadja a még kapható gyümölcsöket. A szöveg összeállításakor a gyümölcsök olyan sorrendben szerepeljenek, amilyen sorrendben a konstruktor beolvasta őket, és olyan formában, ahogy a Fruit show metódusa előállítja, a gyümölcsök között pedig legyen egy sortörés. Figyeljünk rá, hogy az utolsó gyümölcs után már ne legyen sortörés!

A feladat részletes ismertetése (piac) Legyen egy cheaperthan publikus metódus, ami egy Fruit típusú objektumot vár, és ilyen objektumok láncolt listáját adja vissza. A metódus gyűjtse össze azokat a gyümölcsöket, amelyek olcsóbbak, mint a paraméterben kapott gyümölcs. A gyümölcsök a visszaadott listában olyan sorrendben szerepeljenek, ahogy a konstruktor beolvasta őket. Legyen egy average publikus metódus, ami egy valós számot (double) adjon vissza, azt, hogy mennyi a gyümölcsök átlagos ára. Ha nincsenek gyümölcsök, akkor a metódus adjon vissza -1-et. Figyelem: ha két egész számot osztunk egymással, akkor az eredmény mindig egész lesz (lefelé kerekít).

A feladat részletes ismertetése (piac) Legyen egy buycheapestfruit publikus metódus, aminek nincs paramétere, és egy vásárlást szimulál. Egy vásárló mindig a legolcsóbb terméket veszi meg. Ha a legolcsóbb gyümölccsel azonos árú is van, akkor azt, amelyiket a konstruktor korábban vett fel a listába. A megvásárolt gyümölcsöt el kell távolítani a listából, és ez a gyümölcs lesz a metódus visszatérési értéke is. Ha a vásárlás elején egyetlen gyümölcs sem volt már a piacon, akkor a metódus null-t adjon vissza.

A feladat részletes ismertetése (piac) Legyen egy sale publikus metódus, aminek nincs paramétere és egy kiárusítást szimulál. A kiárusítás addig tart, amíg el nem fogy az összes gyümölcs. A metódus egy gyümölcsöket tartalmazó láncolt listába gyűjtse össze, hogy a gyümölcsöket milyen sorrendben vásárolták meg. Ez a lista lesz a metódus visszatérési értéke.

A feladat részletes ismertetése (főprogram) Készítsünk egy Main osztályt, amelyben legyen egy főprogram. A főprogram egy paramétert vár: az inputfájl nevét. Ennek a segítségével hozzon létre egy Market objektumot. Ha a program nem kapott paramétert, akkor írjon ki hibaüzenetet. Hívja meg a Market objektum sale metódusát és a visszakapott lista minden egyes elemét írja ki a képernyőre (a show metódus segítségével).

Tesztelés Ha a program paraméterének a LINK-en található minta-inputot adjuk meg, akkor a következő kimenetet kell kapnunk: barack (55 Ft) korte (130 Ft) szilva (130 Ft) dinnye (2 015 Ft)