2. kontrolltöö näidisülesanded
Järgnevad ülesanded ei moodusta ühte tervet komplekti, vaid annavad
teatud ettekujutuse võimalikest ülesannetest. Tegelikult on
ühes konkreetses kontrolltöös rida erinevaid
ülesandeid, mille lahendusteks tuleb luua hulk klasse. Erinevate
isendite loomist ja meetodite rakendamist jms. tuleb demonstreerida
peaklassis, mis on kogu
kontrolltöö jaoks ühine.
Kontrolltöö põhineb järgmistel praktikumidel
- 9. Erindite töötlemine. Erindite tüübid.
- 10. Vood. Binaarne I/O. Puhverdatud ja puhverdamata voogude
töötlemine.
- 11. Kogumid.
Kindlasti on taustaks vaja ka teadmisi ja oskusi
praktikumidest 1-6.
Näidisülesannetena võib käsitleda ka kõiki nende praktikumide
harjutusülesandeid.
Ülesanne
Koostada
erindiklass BaidistSuuremaTaisarvuErind,
mis seatakse siis, kui klaviatuurilt sisestatud täisarv on suurem kui
maksimaalne Byte-tüüpi
väärtus. (Klass Byte
on mähisklass.)
Peaklassis näha ette selle erindi püüdmine ja vastava teate
väljastamine.
Ülesanne
Koostada
erindiklass EiTasuParandadaErind.
Luua klass Auto,
mis sisaldab String-tüüpi
isendivälja auto
registrinumbri jaoks, int-tüüpi
isendivälja auto vanuse (aastates) jaoks ning boolean-tüüpi
välja, mis näitab, kas
auto on katki. Samuti on konstruktor, mis väärtustab vastavad väljad.
Võiks
olla ka meetod toString.
Konstruktoris seatakse EiTasuParandadaErind,
kui auto on katki ja selle
vanus on suurem kui 15 aastat. Ühise peaklassi peameetodis luua
vähemalt kaks Auto
isendit, püüda tekkinud
erindid kinni ning kuvada nende (nii autode kui ka erindite) info.
Ülesanne
Koostada
klass, milles on meetodid etteantud tekstifailist kõigi
"ma"-ga lõppevate sõnade arvu leidmiseks. (Alternatiiv: tekst võetakse
veebilehelt.) Peaklassis
demonstreerida nende meetodite rakendamist.
Ülesanne
Ühisesse
peaklassi koostada meetod, mis argumendina antud failis asendab paarisarvulise indeksiga
baidid väärtustega 0xff ja
paarituarvulise
indeksiga baidid väärtustega 0x00. Näide
baidi väärtustamisest
byte
paarisArvuline = (byte) 0xff;
Faili
modifitseerimiseks kasutada RandomAccessFile, mille
meetodiga seek saab muuta
loetava/kirjutatava
baidi indeksit.
Ülesanne
Veebilehel
seatakse iga kasutaja
e-maili aadressiga vastavusse kasutajakonto. Koostada klass Kasutajakonto,
millel on String-tüüpi
isendiväljad kasutaja ees- ja
perekonnanime jaoks, konstruktor ja toString
meetod. Valida sobiv andmestruktuur e-mail-konto vastavuse
realiseerimiseks
(aadresside jaoks eraldi klassi pole vaja luua, need on String
tüüpi muutujad). Luua vähemalt kolm kasutajakontot ja sisestada need
loodud
andmestruktuuri, igaüks oma aadressi juurde. Kontrollida ja väljastada
ekraanile, kas e-mailile "oop@ut.ee" vastav konto leidub struktuuris.
Võtta andmestruktuurist oma valitud aadressi järgi üks kasutajakonto ja
väljastada selle andmed.
Ülesanne
Sadam
on nii väike, et seal on ainult üks randumiskoht.
Järgmised paadid kinnituvad järjest eelmise külge. Esimesena saab
lahkuda
viimasena tulnu, teisena eelviimasena jne. Koostada klass Paat,
milles on String-tüüpi
isendiväli paadi
nime jaoks. Ühises peaklassis luua vähemalt neli paati. Valida sadama
tarbeks
sobiv andmestruktuur ja luua peaklassis üks sadam. Paigutada paadid
sadamasse.
Väljastada kõige maapoolsema paadi andmed. Kaks viimasena tulnud paati
lahkuvad. Väljastada sadamas olevate paatide arv.