ES Bank
A következő feladatban bankszámlákat kezelő objektumot kell előállítania. Az egyes műveletekhez készítsen függvényt, valamit oldja meg, hogy a minta alapján több objektum is előállítható legyen.
Kiegészítő és segéd függvények külön és az adott objektumokhoz írhatóak.
Feladatok
Bankszámla
- A következő feladatban egy bankszámlát kell létrehoznia az ügyfél adataiból, melyet paraméterként kap. A bankszámla számát önnek kell generálnia. A hazai számlaszámok háromszor 8 számjegyből állnak. Melyek kezül az első csoport első három jegye adott:
111Példa számlaszám:11126453-57832575-23468325A következőképpen néz ki egy bankszámla:{ acc_id: , transactions: [] } - A számla
transactionstömbjéhez adjuk hozzá a a betétet tanusító "bizonylatot" Egy bizonylat egy olyan objektun, amely tartalmazza a betett összeget, a dátumot, valamint, hogy a tranzakció"deposit"volt. példa tranzakció:{ type: "withdraw", amount: 3200, date: "2021-11-16T10:00:00" } - Az előző feladat mintájára pénzt kivenni szeretnénk. Figyeljen, hogy a kivétel tényét a
"withdraw"típus jelzi és nem a negatív összeg! - Kérdezze le a bankszámla egyenlegét. Ezt a tranzakciók megfelelő előjeles összegzésével tudja megtenni.
- Végezzen átutalást a két számla között. Figyeljen, hogy az egyik számlán ez pénz kivételt, a másikon pedig elhelyezést jelent.
- Bővítsük számla adatait létrehozás dátumával
open_datenéven és a létrehozás pillanatának időpontját tárolja, valamint azopen_balance-al, amely a kezdő egyenleget tárolja. Amennyiben a függvény nem kap kezdő egyenleget akkor ezt vegyük 0-nak. Továbbá legyen egy pénznemet jelölő mező és egy hitelkeretet jelző mezőnk, szintén megadás hiányában 0-nak veendő. - Amennyiben korábban különálló függvényként hoztad létre a tranzakciót, akkor oldd meg, hogy ez a függvény legyen a bankszámla része és bővítsd megjegyzés mezővel. A függvénynek egyen visszatérési értéke amely a sikerességet jelzi. Akkor sikeres egy tranzakció, ha két azonos pnznemű számla között történik az utálás, valamint a levonással még nem éri el a keretet az adott számla.
- Legyen egy olyan objektumunk
TRANSACTION_TYPEnéven, amely két értéket tárol: AWITHDRAWértéke legyenwithdraw, valamint ezen minta alapján a deposit. - Hozz létre egy
NATIONALITYnevű objektumot, amely a következő mintában tárolja az adatokat:HUNkulcs értékemagyar. Tartalmazza az objektum, francia, német, olasz és spanyol állampolgárságot. - Hozz létre egy
CURRENCYnevű objektumot amely a következő mintában tárolja az adatokat:HUF: magyar forint, ez alapján legyenek felvéve a következő pénznemek: euró, amerikai és ausztrál dollár, valamint svájci frank. - Készítsünk egy függvényt, amely egy olyan objektumot hoz létre, amely egy nevet tud tárolni részletekben (
firstName,middleNameéslastName) - Készíts függvényt amely egy string paraméter alapján előállít egy olyan objektumot amely egy címet tárol.
- A cím tartalmazza az irányítószámot, várost, utca nevét, jellegét, valamit egy házszámot.
- Jelenleg nem foglalkozunk a több szóból álló utca névvel valamint az emelet/ajtó számokkal.
- példa string:
"1144 Budapest, Kerepesi út 124."
- Készíts olyan factory-t amely előállítja azt az obejktumot, ami a lakcímet és a levelezési címet tartalmazza. Ezeket paraméterként kapja, amennyiben csak a lakcímhez tartozó paraméter van megadva gondoskodj róla, hogy a levelezési cím is ugyanazt kapja.
- Hozz létre egy objectumot
IDENTITY_TYPEnéven amely az idazolványok típusait tárolja.IDértéke: Személyazonosító igazolványDLértéke: Vezetői engedélyPPértéke: Útlevél
- Készíts függvényt amely létrehoz egy objektumot, amely tárolja egy igazolvány adatait: típusát, számát és lejárati dátumát.
- Hozzunk létre egy függvényt amely egy személyt hoz létre a következő adatokkal, amelyek az előző feladatok függvényiből, objektumaiból állnak elő:
nameaddressesidentitynationalityaccounts: Üres tömbként inicializáld
- Készítsd el a következő függvényeket a személyt tartalmazó objektumhoz:
findAccount(), számlaszám alapján keresse meg a számlát és adja vissza. Ha nincs a feltételnek megfelelő számla akkornullértékkel térjen vissza.addAccount()closeAccount(), számlaszám alapján töröl egy számlát. Csak akkor törölhető, ha az egyenlege legalább 0.addIdentity(), csak olyan igazolványt fogadj el ami még nem járt le.removeIdentity()
- Hozz létre egy bankot objektumot létrehozó függvényt, amely a követekző mezőkkel és tagfüggvényekkel:
nameaddressclients, tömbként tartalmazza az összes ügyfeletnationalityfindAccount(), keresse meg és adja vissza számlaszám alapján a számlátaddClient()removeClient(), csak olyan ügyfelet lehet eltávolítani akinek nincs tartozása.getAccounts(), egy olyan függgvény amely lapozással adja vissza a bankban található összes számlát. Az első paraméter tartalmazza a lapon található elemek számát, második paraméter pedig az oldalszámot.numberOfClient()numberOfAccounts()totalOfTransactions()
- Hozd létre a következő két bankot:
- Kelekótyaföldi Kereskedelmi Bank (KKB)
- 1111 Budapest, Bástya utca 9.
- magyar nemzetiségű
- Nemzeti Beruházási és Hitel Bank (NBHB)
- 2000 Szentendre, Tölgy utca 136.
- magyar nemzetiségű
- Kelekótyaföldi Kereskedelmi Bank (KKB)
- Mindkét bank rendelkezzen 4-4 ügyféllel, melyk közül legalább 1-1 magyar legyen. Valamint legalább 2 ügyfél aki legalább 2db számlával rendelkezik, amelyek különböző pénzneműek.
- Végezzen átutalást a két bank ügyfele között. Legyen olyan utalás is amely sikertelen.
\pagebreak