Informatika4-2017/Gyakorlat4
(Új oldal, tartalma: „= Elõzõ gyakorlat folytatása = === 4. Kiírás === Írjatok kiíró függvényt '''print''' néven a '''Complex''' és '''ComplexVector''' osztályokhoz. Nézzen k…”) |
|||
30. sor: | 30. sor: | ||
Írjátok meg az osztás mûveletet a '''Complex''' osztályhoz, nyugodtan írjatok hozzá segéd függvényeket, a lényeg hogy minél apróbb részekre bontsátok a programokat. Továbbá írjátok meg a vektoriális szorzatát a '''ComplexVector''' osztálynak. (Feltételezhetitek, hogy 3 dimenziós vektorokra kell csak mûködnie.) | Írjátok meg az osztás mûveletet a '''Complex''' osztályhoz, nyugodtan írjatok hozzá segéd függvényeket, a lényeg hogy minél apróbb részekre bontsátok a programokat. Továbbá írjátok meg a vektoriális szorzatát a '''ComplexVector''' osztálynak. (Feltételezhetitek, hogy 3 dimenziós vektorokra kell csak mûködnie.) | ||
+ | |||
+ | |||
+ | = Új anyag = | ||
+ | |||
+ | A következő két feladatot érdemes lehet párhuzamosan oldani. | ||
+ | |||
+ | === User kiegészítése === | ||
+ | |||
+ | * Legyen jelszóváltoztatás, amihez 2 bemenet, régi jelszó, új jelszó. Használjuk a '''passwordCheck''' metódust. | ||
+ | * Legyen a usereknek jogosultságuk, ez lehet mondjuk egy String. Hogy milyen jogosultságok vannak, majd késõbb mondjuk meg. | ||
+ | * Hozzatok létre egy új osztályt '''PersonalInfo''' néven, legyen inkább a teljes név ebben tárolva, és a '''User'''nek legyen egy ilyen adattagja. Így sokkal könnyebben tudunk majd új adatokkal kiegészíteni a '''User'''ünket. Azért rakjunk is bele még pár dolgot, pl születési évet. Vegyük észre, hogy emiatt módosítani kell a '''User''' konstruktorát is. | ||
+ | * A '''PersonalInfo'''nak legyen minden adattagjához egy set függvénye. Pl: '''setBirthYear'''. | ||
+ | * Ezeket delegáljuk a '''User'''nek, eclipse-ben, jelöljük ki a '''PersonalInfo''' adattagját a '''User'''nek felül Source -> Generate Delegate methods. | ||
+ | * Legyen egy statikus adattagja a '''User'''nek, ami alapból 0 és minden konstruktor hívásnál növeljük eggyel. | ||
+ | |||
+ | === Felhasználó rendszer kiegészítése === | ||
+ | |||
+ | * A '''User''' kiegészítése miatt elképzelhető, hogy elromlott ez az osztály. Javítsátok meg. | ||
+ | * Írjatok egy metódust amivel szépen ki tudjátok iratni a kommenteket, legyen ott az is, hogy ki írta. | ||
+ | * Legyen egy olyan metódus, ami csak egy adott user kommentjeit írja ki. | ||
+ | * Tanács: a kommentek osztálynak írjatok egy kiíró metódust, hogy majd csak ezt kelljen meghívni. |
A lap jelenlegi, 2017. szeptember 25., 12:13-kori változata
Tartalomjegyzék |
Elõzõ gyakorlat folytatása
4. Kiírás
Írjatok kiíró függvényt print néven a Complex és ComplexVector osztályokhoz. Nézzen ki valahogy olvashatóan. Majd ezekkel már jól tudtok tesztelni a mainekben.
4.5. Szerkezet változtatás
Írjátok át a Complex osztályt, hogy ne két floatban tárolja az adatokat, hanem egy 2 elemû float tömbben. Majd értelemszerûen a konstruktorokat és függvényeket is írjátok át. Ha ez kész örüljetek, hogy a ComplexVector még mindig teljesen jól mûködik. Pedig valójában már õ is megváltozott ezzel.
5. Felhasználó rendszer
Írjatok egy osztályt (ti találjátok ki a nevét, de legyen beszédes és célratörõ, általában a programozásban ez a legnehezebb feladat) ami a korábban megírt User objektumokból tud sokat tárolni (tömb). Továbbá valamilyen módon tárol még kommenteket is. Egy komment az üzenetbõl és a készítõjébõl áll, aki egy User. Találjátok ki, hogyan tárolnátok a kommenteket, érdemes új osztályt bevezetni rá. A rendszernek magának legyen 2 függvénye, egyik amivel új Usert lehet felvenni és egy amivel új kommentet lehet írni.
Pár tanács:
- Hogy a tömb lefoglalással ne legyenek gondok, amikor létrejön ez a rendszer foglaljatok le mondjuk 500 Usernek helyet és egy számlálóval mentsétek, hogy pontosan mennyi is van valóban a rendszerben.
- Az elõbbihez az kell, hogy a User osztálynak legyen default konstruktora, csináljatok hát neki.
- A User felvétele függvény talán úgy a legegyszerûbb, ha egy bemente van és az a User objektum amit be akarunk rakni a tömbbe.
- A komment tárolásánál elég ha beküldõ nevét tároljátok mondjuk itt nem kell teljes Usert tárolni.
- Mivel kommentbõl is sokat kell tárolni ezért nagyon hasonló módon meg lehet oldani a tárolásukat, mint a Userekét.
Bónusz
6. Komment keresõ
Az 5. feladat rendszeréhez írjatok olyan függvényt, ami képes egy adott User össze kommentjét kiírni. Legyen mondjuk a bemenete egy String, ami a keresendõ User nickName adattagja és listázza ki az összes olyan komment tartalmát aminek õ a szerzõje.
7. Complex mûveletek
Írjátok meg az osztás mûveletet a Complex osztályhoz, nyugodtan írjatok hozzá segéd függvényeket, a lényeg hogy minél apróbb részekre bontsátok a programokat. Továbbá írjátok meg a vektoriális szorzatát a ComplexVector osztálynak. (Feltételezhetitek, hogy 3 dimenziós vektorokra kell csak mûködnie.)
Új anyag
A következő két feladatot érdemes lehet párhuzamosan oldani.
User kiegészítése
- Legyen jelszóváltoztatás, amihez 2 bemenet, régi jelszó, új jelszó. Használjuk a passwordCheck metódust.
- Legyen a usereknek jogosultságuk, ez lehet mondjuk egy String. Hogy milyen jogosultságok vannak, majd késõbb mondjuk meg.
- Hozzatok létre egy új osztályt PersonalInfo néven, legyen inkább a teljes név ebben tárolva, és a Usernek legyen egy ilyen adattagja. Így sokkal könnyebben tudunk majd új adatokkal kiegészíteni a Userünket. Azért rakjunk is bele még pár dolgot, pl születési évet. Vegyük észre, hogy emiatt módosítani kell a User konstruktorát is.
- A PersonalInfonak legyen minden adattagjához egy set függvénye. Pl: setBirthYear.
- Ezeket delegáljuk a Usernek, eclipse-ben, jelöljük ki a PersonalInfo adattagját a Usernek felül Source -> Generate Delegate methods.
- Legyen egy statikus adattagja a Usernek, ami alapból 0 és minden konstruktor hívásnál növeljük eggyel.
Felhasználó rendszer kiegészítése
- A User kiegészítése miatt elképzelhető, hogy elromlott ez az osztály. Javítsátok meg.
- Írjatok egy metódust amivel szépen ki tudjátok iratni a kommenteket, legyen ott az is, hogy ki írta.
- Legyen egy olyan metódus, ami csak egy adott user kommentjeit írja ki.
- Tanács: a kommentek osztálynak írjatok egy kiíró metódust, hogy majd csak ezt kelljen meghívni.