Extra feladatok
Órai gyakorló feladatok I.¶
-
A múlt órán elkészült a
Kurzusosztály. A hallgato-kurzus-1.cpp fájlban található az osztály megvalósítása, illetve van egyHallgatoosztá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
Kurzusokra 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
Kurzusosztálynak!- Lehessen módosítani az adott elemet!
constobjektumra 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
Dokumentumosztály:cimmel (str)tartalommal (str, default param: "")szerzovel (str, default param: "anonym")megnyitasokkal (unsigned, kezdő érték 0)
-
Készítsünk hozzá gettert a tanult módon!
- minden getter növelje a
megnyitasokat eggyel! (Kivéve az azt lekérdező) (itt ugye muszáj, hogymutablelegyen)
- minden getter növelje a
- Valósítsuk meg a pre és post incremental operátort!
- növelje a
megnyitasok 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
Dokumentumkonvertá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
Dokumentumnegá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
Memeosztá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
MemeGyujtemenyosztályt. Ez maximum tízMeme-t tud letárolni egy tömbben! Mivel kell kiegészíteni aMemeosztá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 aMemeGyujtemenyosztályban úgy, hogy a baloldali operandus egyMemeGyujtemenylegyen, a jobboldali pedig egyMeme! AMemeGyujtemenytömbjében az első üres helyre kerüljön be az új meme! Ennek megfelelően módosítsd úgy aMemeGyujtemenyosztályt, hogy le tudja tárolni, aktuálisan hány meme-t tárol!MemeGyujtemeny & Memeművelet esetén ne legyen módosítva egyik operandus sem, a visszatérési érték pedig egy lemásolt, bővítettMemeGyujtemenyobjektum legyen!MemeGyujtemeny &= Memeművelet esetén a bal oldaliMemeGyujtemenyobjektum módosuljon, ahhoz adjuk hozzá az új elemet!MemeGyujtemenyreferencia 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 aMemeGyujtemenyosztá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_gyujtemenyfüggvényt, amely konstansMemeGyujtemenyparamétert vár és egyforciklusban kiíratja aprint_memesegí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
Zeneosztályt! Adattagjai:hossz(egész szám, másodpercben értve),nev. Anevdefault é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 ahosszt lehet állítani (anevpedig a deafult értékét kapja)! Ne lehessenintet implicitenZeneosztályra konvertálni!Részmegoldás
- A megoldás menete: https://youtu.be/bjJHeHcIh1A
-
Legyen megvalósítva a
Zene+intoperátor, ami az előzőZenealapjá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+Zeneoperátor, ami ugyanazt csinálja, mint aZene+intoperátor!Részmegoldás
- A megoldás menete: https://youtu.be/0sHq6Xq_Eok
-
Legyen megvalósítva a
Zene+=intoperátor, mely a paraméterben kapott értékkel növeli a zene hosszát! Az aktuálisZeneobjektum legyen módosítva, ennek megfelelőenZenereferencia legyen a visszatérési érték!Részmegoldás
- A megoldás menete: https://youtu.be/Y_jFBAuiEJE
-
Legyen megvalósítva a
Zeneosztá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