Extra feladatok
Órai gyakorló feladatok I.¶
-
A múlt órán elkészült a
Kurzus
osztály. A hallgato-kurzus-1.cpp fájlban található az osztály megvalósítása, illetve van egyHallgato
osztály is.- Nézzük meg, hogy milyen paraméterátadások vannak (
const string&
)! - Nézzük meg, hogy a metódus milyen módosítót kapott (
const
)!
- Nézzük meg, hogy milyen paraméterátadások vannak (
-
Valósítsuk meg, hogy a kurzushoz hozzá lehessen adni hallgatót!
- A hozzáadáshoz a
+
operátort használjuk! - Valósítsuk meg a
+=
operátort is! - A hibakezeléssel most nem kell foglalkozni, azaz ha a kurzus tele van, akkor csak írjuk ki a képernyőre, hogy nem sikerült felvenni a halgatót, és ne csináljunk semmit sem!
- A hozzáadáshoz a
-
Valósítsuk meg a kurzusok "egyesítését"!
- Lehessen összeadni két kurzust, ahol a második kurzus hallgatóit
hozzáadjuk az elsőhöz (a
+
operator alkalmazásával)! - Valósítsuk meg
Kurzus
okra a+=
operátort is! - A hibakezeléssel itt sem kell foglalkozni, azaz ha a második kurzus hallgatói nem férnek fel az elsőre, akkor csak adjunk hibaüzenetet!
- Lehessen összeadni két kurzust, ahol a második kurzus hallgatóit
hozzáadjuk az elsőhöz (a
-
Valósítsuk meg az index operátorát is a
Kurzus
osztálynak!- Lehessen módosítani az adott elemet!
const
objektumra is működjön, és ilyenkor nem módosítható módon adja vissza az i-edik elemet!- Valódi hibakezeléssel nem kell foglalkozni, elég kiírni a képernyőre, hogy nincs olyan indexű elem, és a 0. indexűt kell visszaadni (a 0. indexű biztosan létezik, legfeljebb "üres")!
Megoldások: 2.-3. feladat, 4. feladat
Órai gyakorló feladatsor II.¶
-
Legyen egy
Dokumentum
osztály:cim
mel (str)tartalom
mal (str, default param: "")szerzo
vel (str, default param: "anonym")megnyitasok
kal (unsigned, kezdő érték 0)
-
Készítsünk hozzá gettert a tanult módon!
- minden getter növelje a
megnyitas
okat eggyel! (Kivéve az azt lekérdező) (itt ugye muszáj, hogymutable
legyen)
- minden getter növelje a
- Valósítsuk meg a pre és post incremental operátort!
- növelje a
megnyitas
ok számát eggyel! (Mintha csak touch lenne vagy ilyesmi)
- növelje a
- Valósítsuk meg a
+=
operátort, mely egy stringet fűz a tartalomhoz! - Valósítsuk meg a
+
operátort, mely egy stringet fűz a tartalomhoz, de azt csak egy saved_as című dokumentumba teszi bele. (save as.. funkcionalitás) - Legyen a
Dokumentum
konvertálható unsigned típusra, mely a tartalom hosszát adja eredményül!- a konverzió ne történjen meg implicit módon!
- Valósítsuk
Dokumentum
negálása (operator!
) (unsigned visszatérési típussal)!- üres dokumentum esetén Lorem ipsum.. szöveget írja bele!
- bármilyen tartalom esetében törölje azt!
- visszatérési értékben az új tartalom hossza szerepeljen!
Otthoni gyakorló feladatok I.¶
-
Készíts egy
Meme
osztály! Két string típusú adattagja van, láthatóságuk legyen privát. Nevük:szoveg
,kep
. Legyen hozzá egy két paraméteres publikus konstruktor, amivel beállítjuk az adattagokat! Írj gettereket is!Részmegoldás
- A megoldás menete: https://youtu.be/TkY8Ua_G_iA
-
Készíts egy void
print_meme()
metódust, melynek paramétere egy ^^konstans^^ Meme referencia! Ez egy sorban kiírja a meme szövegét, majd egy rákövetkező sorban a képet is. Hogyan kell módosítani az előbb megírt gettereket?Részmegoldás
- A megoldás menete: https://youtu.be/sNxow_1KKCU
-
Készíts egy
MemeGyujtemeny
osztályt. Ez maximum tízMeme
-t tud letárolni egy tömbben! Mivel kell kiegészíteni aMeme
osztályt, hogy működjön a tömb létrehozás?Részmegoldás
- A megoldás menete: https://youtu.be/PtTbbojBDmA
-
Definiáld felül a
&
és a&=
operátorokat aMemeGyujtemeny
osztályban úgy, hogy a baloldali operandus egyMemeGyujtemeny
legyen, a jobboldali pedig egyMeme
! AMemeGyujtemeny
tömbjében az első üres helyre kerüljön be az új meme! Ennek megfelelően módosítsd úgy aMemeGyujtemeny
osztályt, hogy le tudja tárolni, aktuálisan hány meme-t tárol!MemeGyujtemeny & Meme
művelet esetén ne legyen módosítva egyik operandus sem, a visszatérési érték pedig egy lemásolt, bővítettMemeGyujtemeny
objektum legyen!MemeGyujtemeny &= Meme
művelet esetén a bal oldaliMemeGyujtemeny
objektum módosuljon, ahhoz adjuk hozzá az új elemet!MemeGyujtemeny
referencia legyen visszaadva!- Ha nincs már hely a gyűjteményben, ne legyen hozzáadás, csak történjen meg a megfelelő típusok visszadaása (módosítás nélküli másolat illetve módosítás nélküli bal oldali operandus)!
Részmegoldás
- A megoldás menete: https://youtu.be/gouhtl4Stfs
-
Definiáld felül az indexer
[]
operátort aMemeGyujtemeny
osztályban úgy, hogy adja vissza az i-edik letárolt memét! Legyen konstans és nem konstans verziója is! Túlindexelés esetén legyen kiírva a "Hiba" szöveg acout
-ra és a 0-ás indexű meme legyen visszaadva!- Hozz létre az osztályokon kívül egy
void print_gyujtemeny
függvényt, amely konstansMemeGyujtemeny
paramétert vár és egyfor
ciklusban kiíratja aprint_meme
segítségével az összes letárolt memét! Gettert csak az aktuális meme szám lekérdezéséhez írj!
Részmegoldás
- A megoldás menete: https://youtu.be/VXMOez6NgH0
- Hozz létre az osztályokon kívül egy
Teljes megoldás
- Kód: Gyakorló feladatsor
Otthoni gyakorló feladatsor II.¶
-
Készíts egy
Zene
osztályt! Adattagjai:hossz
(egész szám, másodpercben értve),nev
. Anev
default értéke legyen: "a-moll"! Legyen az osztálynak egyprint()
metódusa, amely kiíratjacout
-ra az értékeit! Legyen egy két paraméteres konstruktora, amely beállítja a két adattagot és legyen egy egy paraméteres is, amiben csak ahossz
t lehet állítani (anev
pedig a deafult értékét kapja)! Ne lehessenint
et implicitenZene
osztályra konvertálni!Részmegoldás
- A megoldás menete: https://youtu.be/bjJHeHcIh1A
-
Legyen megvalósítva a
Zene+int
operátor, ami az előzőZene
alapján készít egy új, megnövelt hosszúságú zenét. Az eredeti hosszhoz a paraméterben kapott értéket kell hozzáadni! -
Legyen megvalósítva az
int+Zene
operátor, ami ugyanazt csinálja, mint aZene+int
operátor!Részmegoldás
- A megoldás menete: https://youtu.be/0sHq6Xq_Eok
-
Legyen megvalósítva a
Zene+=int
operátor, mely a paraméterben kapott értékkel növeli a zene hosszát! Az aktuálisZene
objektum legyen módosítva, ennek megfelelőenZene
referencia legyen a visszatérési érték!Részmegoldás
- A megoldás menete: https://youtu.be/Y_jFBAuiEJE
-
Legyen megvalósítva a
Zene
osztályra prefix és a postfix++
operátor is, amik növelik 1-gyel a zene hosszát!Részmegoldás
- A megoldás menete: https://youtu.be/Xp7Nq7BdvBs
Teljes megoldás
- Kód: Gyakorló feladatsor
- A megoldás menete: https://www.youtube.com/playlist?list=PLE8moZnI5dJvzb6AwJ1aC8Udo6zf_38o3
Létrehozva: 2024-07-09