1.
rühmatöö
Rühmatöö
põhiline
ülesanne
on
koostöös
kaaslastega
kinnistada
esimese
kolme
praktikumi
materjali
ja
seeläbi
paremini
valmistuda
kontrolltööks.
Silmas
võiks
pidada,
et tuleb
veel
kaks
rühmatööd,
milles
võite
(aga
tingimata
ei pea)
1.
rühmatööd
edasi
arendada
(eriti
kasutajaliidese
ja
andmevahetuse
osas).
Rühma
suurus
on 2-3
üliõpilast,
kes kõik
on ühest
praktikumirühmast.
(Väga
erilisel
juhul
võib
rühmatöö
teha ka
üksinda.
Näiteks
sellisel
juhul,
kui töö
on üsna
erialane
ja/või
ajagraafik
ei
võimalda
teiste
OOP
tudengitega
mõistlikku
koostööd
tunnivälisel
ajal.
Sellisel
juhul
aga
oleks
äärmiselt
soovitatav
kaasata
rühma
OOPi
kursuse
väliseid
inimesi,
kellega
te
saaksite
vähemalt
programmeerimisest
kaugemaid
asju
arutada,
kes
saavad
testida,
ideid
pakkuda
jms.)
Arvestage
rühmade
loomisel
sellega,
et
võib-olla
tuleb
nende
inimestega
natukese
aja
pärast
omavahel
jaotada
miljoneid,
kui see
programm
hakkab
nii
palju
sisse
tooma.
(Kui
koostöö
ei suju,
siis
võib
järgmistes
rühmatöödes
teisiti
rühmituda.)
Hindamisel
peab
ülesande
lahendust
kaitsma
juhuslikult
valitud
rühmaliige.
Lahenduse
hinnet
määratakse
valemiga
L*S, kus
L on
lahenduse
korrektsus
(kuni 5
punkti)
ning S
arv
lõigust
[0,5..1],
mis
näitab
valitud
rühma
liikme
selgituste
adekvaatsust.
Kõik
kohalolevad
rühmaliikmed
saavad
lahenduse
eest
tavaliselt
võrdse
hinde.
Kui
rühmaliikmete
panus on
väga
erinev,
siis
võib
hinne
olla ka
erinev.
Esitamine
toimub
4. või
5.
praktikumi
ajal!
Programm
peab
vastama
järgmistele
tingimustele.
-
Programm
käsitleb
mingit
(inimlikku)
tegevust,
näiteks
mängimist,
kliendile
vastamist,
kodumasina
kasutamist
vm.
Eriti
tore
aga
oleks,
kui
programm
oleks
teile
kasulik
oma
erialaste
ülesannete
lahendamisel.
-
Programm
peab
kasutajalt
midagi
küsima
(võib-olla
ka
korduvalt).
Võib
eeldada,
et
kasutaja
sisestab
vastuse
nõutud
kujul.
-
Programm
peaks
olema
kasutatav
ilma,
et
programmi
kohta
oleks erilisi
eelteadmisi.
Küsimused
peavad
vajaliku
info
andma.
Hea
oleks,
kui
programm
käivitamisel
annab
vajaliku
üldtutvustava
lühiinfo.
-
Programm
peab
sisaldama
juhusliku
suuruse
kasutamist
(soovitavalt
klassi
Random
abil). Kui
programm
on
mõeldud
näiteks
erialaste
andmete
töötlemiseks,
siis
võib
sellest
ka
loobuda.
Kuigi
näiteks
sobivas
vahemikus
juhuslike
andmete
genereerimine
võib
olla
kasulik
programmi
testimiseks.
-
Programm
peab
koosnema
mitmest
klassist
(sh.
peaklass).
Andmete
kasutamine
peaks
käima
erinevate
objektide
abil.
Selleks
loodud
klassid
peaksid
sisaldama
isendivälju,
konstruktoreid,
get-
ja
set-meetodeid
ja
teisi
vajalikke
meetodeid.
-
Programm
peab
olema
koostatud
järgides
normi
http://www.oracle.com/technetwork/java/codeconv-138413.html
või
mõnda
muud
normi,
millele
sel
juhul
viidata.
Programm
peab
olema
rühmaliikmete
endi
kirjutatud.
-
Programm
peab
olema
mõistlikult
kommenteeritud.
-
Programm
ei
tohiks
olla
liiga
keeruline.
Vajadusel
konsulteerige
praktikumi
juhendajaga
enne
programmeerimist.
-
Kasutajaga
suhtlemine
peaks
olema
väga
elementaarselt
kujundatud.
Vältida
(veel)
graafilist
kasutajaliidest.
Ekraanile
kuvatav
info
(ka
näiteks
mänguseis)
võib
olla
tekstiridadena
(System.out.println).
Kasutajaga
dialoogi
võib
realiseerida
mitmeti.
Näiteks
klassi
Scanner
(vt.
praktikum
1)
kasutades
või
alltoodud
JOptionPane
meetodeid
kasutades.
Programmi
käivitamiseks
vajalikku
alginfot
võib
nõuda
ka
käsurea
argumentidena
(vt.
praktikum
2).
- Kasutajaga dialoogi korraldamisel on abiks, kui programmi algusesse, lausa enne klassi kirjelduse algust, panna rida
import javax.swing.JOptionPane;
- Kohale, kus programm peaks kasutajalt sõne küsima, tuleb panna rida
String sisestatakse = JOptionPane.showInputDialog(null, "Sisesta midagi ", "Andmete sisestamine", JOptionPane.QUESTION_MESSAGE);
Täpsemalt saate muidugi APIst vaadata!
Toome
nüüd
näiteks
mõned
võimalikud
ülesanded.
Väga
soovitav
on teil
endil
mingi
teile
huvitav
ülesanne
välja
mõelda.
Kuigi
alltoodud
nimekirjas
on
mitmed
mängud,
on
soovitav,
et
ülesanne
käsitleks
hoopis
midagi
muud
(näiteks
erialaste
andmete
töötlust)
või siis
mäng
oleks
vähetuntud
või
suisa
originaalne.
Ainult
äärmisel
inspiratsiooni
puudumisel
(mis ei
ole
tõenäoline)
kasutage
alltoodud
näiteid.
-
Tikumäng.
Programmiga
saab
mängida
mängu,
kus
laual
on
juhuslik
arv
tikku.
Mängijad
võtavad
sealt
kordamööda
ära
kas
üks,
kaks
või
kolm
tikku.
Kes
võtab
viimase
tiku,
on
kaotaja.
-
Lohede
võitlus.
Programm
simuleerib
kahe
lohe
omavahelist
võitlemist.
Klass
Täring
võiks
olla
teenusepakkuja.
-
Kalkulaator.
Koostada
klassid
nt
täisarvude
(MyInteger)
ja
reaalarvude(MyDouble)
hoidmiseks
(mis
sest,
et
vastavad
mähisklassid
on
olemas),
milles
oleksid
meetodid
lubatud
tehete
jaoks
ja
võrdlemiste
jaoks.
Testklassis
küsida
arvud
ja
tegevus,
mida
nende
arvudega
teha.
Üks
tegevus
oleks
juhuslik.
-
Mäng
15.
Kivid
(arvud)
1
kuni
15
paigutatakse
juhuslikult
4x4
ruudustikku.
Kasutades
tühja
välja
(tähistada
andmetes
0-ga)
liigutada
kive,
nii
et
tekiks
õige
järjestus.
Liigutada
saab
vaid
tühja
koha
naabrit
-
kivi,
mis
on
tühjast
kohast
vasakul,
paremal,
üleval
või
all
(max
4
naabrit).
-
Täringumäng.
Koostada
klassid
Täring
ja
Täringumäng
jäljendamaks
kahe
mängija
mängu.
Mängijate
viskevoorud kordamööda.
Ühes
viskevoorus
võib
mängija
visata
täringuid
ükskõik
mitu
korda,
aga
kui
tuleb
1,
siis
kogusumma
nullitakse
ja
viskeõigus
läheb
teisele
mängijale.
Muidu viskel
saadud
tulemus
liidetakse
kogusummale. Võidab
see,
kes
saab
enne
üle
91
punkti.
-
Trips-traps-trull.
Mängu
alustaja
valitakse
juhuslikult.
Ruudustik
on
nummerdatud
numbritega
1-9
(näiteks
nagu
mobiiltelefoni
klaviatuur).
Käigu
tegemiseks
tuleb
sisestada
ruudu
number.
Mängulaud
joonistada
kriipsudega
konsoolile
(ning
iga
käigu
järel
väljastatakse
uus
ruudustik).
-
Bussipiletide
ostmine.
Kasutajalt
küsitakse,
mitut
piletit
ta
vajab
ja
ning
pakutakse
talle
siis
vastav
arv
juhuslikke,
mis
pole
veel
ära
ostetud.
Kui
kasutaja
on
nõus
need
ostma,
siis
need
müüakse
ja
järgmisele
kasutajale
enam
neid
ei
pakuta.
Programmi
töö
lõpeb,
kui
(järjekordne)
kasutaja
küsib
rohkem
pileteid
kui
vabu
kohti
jäänud
on.