OO praktikum - 09.04.1999
Failitöötlus
-
Kes neljapäeval loengus ei käinud, see võiks tutvuda Jaanus
Pöiali loengumaterjalidega
teemal "Töö failidega".
-
Kes loengus toodud näiteid läbi ei ole proovinud, see võiks
seda nüüd teha:
-
Failid.java
-
Torud.java
-
Ülesande lahendamise käigus tekkivatele tehnilistele probleemidele
saab vastuseid JDK
1.2 dokumentatsioonist.
Ülesanne
Manitsev sissejuhatus
Tänases praktikumis tegeleme jälle ainult ühe "suure" ülesandega.
Eelmise praktikumi kogemuste põhjal soovitaksin kõigil järgida
järgnevaid näpunäiteid:
-
Enne, kui Te midagi tegema hakkate, mõelge mida Te teha tahate.
Ärge hakake kohe kodeerima!
-
Enne kodeerimise juurde asumist tasuks vähemalt:
-
enda jaoks probleemi lahendamise algoritm välja mõelda;
-
välja mõelda need klassid, mida Te looma peate;
-
välja mõelda klasside meetodid ja nende parameetrid, tagastatavad
väärtused, erindid (ingl.k. exception) jne.
Ülesande kirjeldus
Meil on tarvis realiseerida üks väikene osa MänguPanga
infosüsteemist. MänguPangas kasutatakse arveldusteks mitut
liiki erinevaid valuutasid (loomulikult EEK, USD, FIM, SEK, DEM jne.).
Panga juhtkonnal tuli idee integreerida infosüsteemi ka võimalus
valuutakursside
üle arvepidamiseks. Valuutakurss on
MänguPangas
mingi välisvaluuta kurss Eesti krooni suhtes mingil ajahetkel (lihtsuse
mõttes eeldame, et müügi- ja ostukurss on samad).
Realiseerida klass, mis võimaldab:
-
Lisada faili valuutakursse. Valuutakurss koosneb valuuta nimest, kehtimise
kuupäevast ja kursist. Kui failis antud valuutaga kurss juba leidub
ja lisatava valuutakursi aeg on uuem kui olemasoleva valuutakursi aeg,
siis uuendada kuupäeva ja kurssi. Kui lisatava valuutakursi aeg on
vanem kui olemasoleva valuutakursi aeg, siis tekitada erind. Kui lisatavale
valuutale vastavat kurssi ei leidunud, siis uus kurss lihtsalt faili lõppu
kirjutada.
-
Otsida failist valuuta nime järgi talle vastavat valuutakurssi. Kui
otsitavale valuutale vastavat kurssi ei leidu, siis tekitada erind.
-
Näidata kõikide failis olevate valuutade kursse.
Näpunäide: mõistlik oleks ülesande lahendamiseks
kasutada klassi RandomAccessFile.
NB! Erinditöötlust (ingl.k. exception handling)
tuleks kasutada ka kõikide võimalike sisend- ja väljundoperatsioonide
korral.
Gunnar Kudrjavets [gk@aprote.ee]
Tõravere, 04.04.1999