Pääteohjaus 1
Tämän pääteohjauksen tarkoituksena on opetella demojen siirtämistä
verkkoon ja tutustua Ohjelmointi
-kurssin malliohjelmina olevien KERHO ja TULKKI -ohjelmien
toimintaan. Näistä voi saada joitakin ideoita oman harjoitustyön suunnitelmaan.
Seuraavat harjoitukset on parasta tehdä Command Promptissa.
Etsi työpöydältä tai Start Menusta Command Prompt W ja
käynnistä se.
Aivan ensimmäiseksi tee kiintolevylle (esim. C) oma hakemisto
(C:\MyTemp\ohj2\tunnus, missä tunnus on oma
käyttäjätunnuksesi).
Niiden jotka eivät koskaan ole käyttäneet Javaa, kannattaa
pitää huoli että ehtivät myös kohtaan 6. Java-alkeet.
0. N-levy
Lähes kaiken kurssilla tapahtuvan edellytyksenä on, että N-levy on olemassa
- kirjoita komnetorivillä dir n:
- jos toimii, hyvä
- jos ei toimi, paina työpöydällä kuvaketta "Yhdistä N"
1. Demot ja HT
1. Demojen siirtäminen webbiin
Käytä NettiDemoWWW:tä : https://www.mit.jyu.fi/demowww/ohj2
- Tehdään "leikkidemot". Kirjoita kolme tekstitiedostoa.
Nimeä ne vaikka teht1.txt, teht2.txt ja teht3.txt ja
kirjoita niiden sisällöksi tiedoston nimi tai jotakin muuta "soopaa".
- Nyt, siirrä ne nettiin näiden ohjeiden mukaisesti.
Oletetaan että demojen numero on 15 ja että 1. tehtävästä
saa 2 pistettä ja kahdesta muusta yhden pisteen (ja että
olet mielestäsi tehnyt ne täysien pisteiden arvoisesti).
- Paina linkkiä files.txt niin näet miten antamasi pisteet ovat menneet tiedostoon
jonka automaatti aikanaan hakee. Tutustu halutessasi files.txt:n
syntaksiin (huomaa että NettiDemoWW pitää huolen T-kirjaimen lisäämisestä).
- Paina Päivitä index..html-nappia, niin näet minkälaisen sisällystiedoston
järjestelmä tekee. Jos tuossa näkyvät kaikki palauttamasi demot ja
niitä klikkailemalla vastaukset tulevat oikeaan ikkunaan, pitäisi kaikki
olla kunnossa. index.html eu ole välttämätön demon palautukseen,
mutta erityisesti 1. demokerralla se helpottaa ohjaajien työtä.
2.2 HT ja SVN
Harjoitustyöt palautetaan aikanaan SVN:ään ja omille WWW-sivuille.
- Kokeile ohjeen
https://trac.cc.jyu.fi/projects/ohj2/wiki/svnkomentojonoilla mukaan
siirtää "leikkiharjoitustyö" versionhallintaan. Tiedostoon suunitelma.txt
voit kirjoittaa oikeastaan melkein mitä haluat, toki kaikki omaan ht:n liittyvä
on kotiinpäin.
- Muista että tuo on Wiki-sivu ja jos sinulla on selkeitä parannusehdotuksia,
niin toki sivujen sisältöä voi muuttaa. Jopa itsekin saman tien.
- Tuloksenhan näet
Wikin Browse Source-linkistä.
- Kokeile ohjeen mukaan myös WWW-version tekemistä. Tulos näkyy
silloin http://users.jyu.fi/~USERNAME/ohj2
- Katso malliohjelmaa ja sen vaiheita: http://users.jyu.fi/~vesal/ohj2/
2. Hakemistot
2.1 Kerho
KERHO -ohjelma tullaan kurssin aikana toteuttamaan TOP-DOWN
suunnittelua käyttäen ja kehityksen eri vaiheita on seuraavissa hakemistoissa:
Directory of N:\kurssit\ohj2\kerho
17.11.2007 14:15 <DIR> vaihe1
17.11.2007 14:15 <DIR> vaihe2
27.12.2002 15:31 <DIR> esisuunnitelma_1
17.11.2007 14:14 <DIR> menut_3
17.11.2007 14:16 <DIR> tietorakenne_4
17.11.2007 14:17 <DIR> raken_5
14.01.2004 11:52 <DIR> yhteis_51
18.03.2004 14:02 <DIR> talletus_6
23.03.2004 11:49 <DIR> lukemine_71
04.04.2003 00:40 <DIR> tarkistu_72
30.09.2007 20:54 <DIR> etsilaj_73
13.01.2010 23:16 <DIR> malli
06.05.2007 23:34 <DIR> jsp
Hakemiston nimessä oleva loppu 1-7 viittaa harjoitustyön vaiheeseen. Kuhunkin alihakemistoon on käännetty valmiiksi ohjelma,
yleensä nimeltä
naytto.class. Tarkoituksena on katsoa eri vaiheissa olevan ohjelman toimintaa.
2.2 Tulkki
Tulkki-ohjelma on toteutettu 3 vaiheessa. Tulkki-osan harjoitukset on
ohjelman toteutuksen C- pohjalta,
koska Java-versiot eivät vielä(kään) ole valmiina. Harjoituksissa
ei kuitenkaan tarvita yhtään C-osaamista, joten ei huolta.
Directory of N:\KURSSIT\C\TULKKI
. <DIR> 30.12.91 11.05
.. <DIR> 30.12.91 11.05
VALITES 1 <DIR> 30.12.91 11.05
SANASLUK 2 <DIR> 30.12.91 11.05
VALMIS 3 <DIR> 30.12.91 11.05
Eri vaiheiden testaaminen vaatii debuggerin käytön osaamista, ja tässä pääteohjauksessa tutustutaan vain viimeiseen
vaiheeseen eli alihakemistoon VALMIS.3, josta löytyy "valmis" tulkki-ohjelma nimeltä TULKKI.EXE.
3. Kerho
3.1 Päämenu
Kerho ohjelman ensimmäisessä vaiheessa on tehty ohjelma, joka tulostaa vain pelkän ohjelman päävalikon.
- Siirry alihakemistoon N:\kurssit\ohj2\kerho\menut_3
- Jotta ohjelmien ajaminen olisi jatkossa helpompaa, asetetaan polku, josta
Java etsii tiedostoja:
N:\kurssit\ohj2\kerho\menut_3>set CLASSPATH=n:\kurssit\ohj2\ali\Ali.jar;.[RET]
- Käynnistä päämenu-ohjelma kirjoittamalla
N:\kurssit\ohj2\kerho\menut_3>java vaihe3/Paamenu[RET]
3.2 Menut
Seuraavassa vaiheessa on toimivat valikot, mutta mikään
alakohta ei toimi.
- Käynnistä ohjelma kirjoittamalla
N:\kurssit\ohj2\kerho\menut_3>java vaihe3/Naytto[RET]
3.3 Runko
Seuraava vaihe on lisätä ohjelmaan niin paljon koodia, että
tietorakenteet saadaan toimiviksi. Mitään järkevää ei vielä
saada aikaan, mutta rakenteiden toimivuus voidaan todeta.
- Siirry alihakemistoon N:\kurssit\ohj2\kerho\raken_5
- Käynnistä Naytto-ohjelma (java vaihe5/Naytto)
- Kokeile tulostusta (3).
- Lisää jäsen pari kertaa.
- Kokeile tulostusta.
- Kokeile muita toimintoja.
- Lopeta ohjelma.
- Käynnistä ohjelma uudelleen.
- Kokeile tulostusta.
- Lopeta ohjelma
Tässä vaiheessa eri tietorakenteet eivät vielä toimineet. Lisäämme vielä
rakenteiden yhteistyön.
- Siirry alihakemistoon N:\kurssit\ohj2\kerho\yhteis_51
- Käynnistä Naytto-ohjelma
- Kokeile edellisen esimerkin mukaan tulostusta, lisäystä useamman kerran ja
taas tulostusta. Tarkkaile erityisesti harrastusten käyttäytymistä.
3.4 Talletus
Seuraavana ohjelmaan lisätään talletus, jotta syöttöaineistoa on riittävästi käytössä myöhemmin, kun muita toimintoja
lisätään. Ohjelma ei vieläkään osaa lukea päätteeltä, mutta se osaa lukea ja kirjoittaa tiedoston, jossa jäsenistö
on.
- Siirry alihakemistoon N:\kurssit\ohj2\kerho\talletus_6
- Siirry C-levyn omaan hakemistoosi (jollei ole, tee se).
- Kopioi N-levyn *.DAT -tiedostot
C:\MyTemp\ohj\VESAL>copy n:*.dat
- Kopioi N-levyn *.class -tiedostot
C:\MyTemp\ohj\VESAL>copy n:*.class
- Käynnistä KERHO-ohjelma java Naytto[RET]
- Kokeile tulostusta (3).
- Lisää jäsen.
- Kokeile tulostusta.
- Kokeile muita toimintoja.
- Lopeta ohjelma.
- Käynnistä ohjelma uudelleen.
- Kokeile tulostusta. Onko lisätty jäsen tallessa?
- Lopeta ohjelma.
- Käynnistä vaikkapa ConTEXT-editori ja editoi sillä tiedostoa KELMIT.DAT:
C:\MyTemp\ohj\VESAL>ct kelmit.dat[RET]
- Lisää tiedostoon jokin uusi jäsen ja poista pari muuta.
- Siirry takaisin Command Promptiin ([Alt-Tab]).
- Käynnistä KERHO-ohjelma jälleen kerran (siis Naytto-luokka).
- Kokeile tulostusta. Onko muutokset kunnossa?
- Lopeta ohjelma.
3.5 Päätesyöttö
Kun tiedot osataan tallettaa tiedostoon, voidaankin ohjelmaan jo lisätä päätesyöttö.
Tässä vaiheessa ei vielä huolehdita oikeellisuustarkistuksista.
- Siirry alihakemistoon N:\kurssit\ohj2\kerho\lukemine_71
- Siirry omaan hakemistoosi ja kopioi jälleen N:*.DAT ja N:*.class
- Käynnistä KERHO-ohjelma (siis Naytto-luokka)
- Kokeile tulostusta (3).
- Lisää jäsen.
- Kokeile tulostusta.
- Lisää toinen jäsen, ja vastaa kysymyksiin mielettömiä arvoja. Kelpaavatko?
- Kokeile tulostusta.
- Lopeta ohjelma.
3.6 Oikeellisuustarkistukset
Kun päätesyöttö toimii luotettavasti, voidaan lisätä syöttöön oikeellisuustarkistukset.
Jos pääteohjauksessa aika on käynyt vähiin, siirry kohtaan 3.9
Seuraavat harjoitukset on ohjelman toteutuksen C++ pohjalta,
koska Java-versiot eivät vielä ole valmiina. Harjoituksissa
ei kuitenkaan tarvita yhtään C++-osaamista, joten ei huolta. Tätä varten käynnistä ensin tavallinen Command Prompt, siis ei se W:n loppuva.
Vaihda vielä puskurin vieritys pois (ohjelma on tehty kiinteän kokoiselle ikkunalle): Oikealla napilla ikkunan vasenta yläkulmaa, Properties, Layout ja korkeudeksi 25 riviä, OK.
- Siirry alihakemistoon N:\KURSSIT\CPP\KERHO\TARKISTU.4
- Siirry omaan hakemistoosi ja kopioi jälleen N:*.DAT sekä N:*.HLP
- Käynnistä KERHO-ohjelma (Huom! Nyt ajetaan C++:lla tehty .exe) n:kerho
- Vastaa kerhon nimeksi KELMIT
- Kokeile tulostusta (3).
- Lisää jäsen.
- Kokeile tulostusta.
- Lisää toinen jäsen, ja vastaa kysymyksiin mielettömiä arvoja. Kelpaavatko?
- Kokeile tulostusta.
- Lopeta ohjelma.
3.7 Etsiminen ja korjailu
Seuraavaksi lisätään vielä ohjelmasta puuttuvia toimintoja.
Esimerkiksi tietojen etsiminen ja korjailu.
- Siirry alihakemistoon N:\KURSSIT\CPP\KERHO\ETSILAJ.5
- Siirry omaan hakemistoosi ja kopioi jälleen N:*.DAT, N:*.HLP
- Käynnistä KERHO-ohjelma (n:kerho)
- Vastaa kerhon nimeksi KELMIT
- Kokeile tulostusta (3).
- Kokeile tietojen etsimistä (2).
- Valitse kysymysmerkki (?) jotta näet mitä kenttiä on käytössä.
- Valitse vaikkapa nimikenttä (1).
- Etsi kaikki A:lla alkavat nimet (a*).
- Selaile löytyneitä nimiä (+ ja -).
- Palaa päävalintaan ([Ret]).
- Koeta muuttaa James Bondin tietoja.
- Lopeta ohjelma.
3.8 Yleistystä
Seuraavat ohjelmankehitysvaiheet liittyvät rakenteen yleistämiseen, eivätkä
tarjoa mitään ulospäin näkyviä toiminnallisia muutoksia. Viimeinen kehitysvaihe
ylittää jo ohjelmointikurssin vaatimustason; siinä yleistys on viety niin
pitkälle, että rekisterin tietueiden tiedot on talletettu
.RAK -nimisiin tiedostoihin.
Näin jokainen voi periaatteessa kokeilla voiko hän saada oman harjoitustyönsä aikaiseksi
muuttamalla tiedostoa OLETUS.RAK.
- Siirry alihakemistoon N:\KURSSIT\C\KERHO\VAPAATYY.8
- Siirry omaan hakemistoosi ja kopioi nyt N:*.DAT, N:*.HLP ja N:*.RAK
- Käynnistä KERHO-ohjelma (n:kerho).
- Vastaa kerhon nimeksi KELMIT
- Kokeile avustusta (?).
- Kokeile tulostusta (3).
- Kokeile tietojen etsimistä (2).
- Valitse vaikkapa nimikenttä (1).
- Etsi kaikki nimet jotka ovat aakkosissa ennen nimeä KISSA (<kissa).
- Kokeile etsiä kaikki joilla ei ole työpuhelinta (hakuehdoksi puhelinkenttään ==).
- Laita kaikkien henkilöiden maksettu maksu kenttään 0 mk.
- (Voit kokeilla avustusta ? missä kohti vaan).
Muutetaan muuttamisessa käytettävät kentät.
Kentät >B[RET]
Maksettu maksu mk >0.0[RET]
2 = täytä kentät..
Valitse kenttä... :1
Jäsenen nimi ...>*
- Kokeile muuttaa jäsenmaksuksi 10 mk kaikille niille, jotka ovat liittyneet ennen vuotta 1986.
- Lopeta ohjelma.
- Käynnistä KERHO-ohjelma (n:kerho).
- Vastaa kerhon nimeksi KOULU
- Kokeile tulostusta (3).
- Kokeile lisätä koululaisia.
- Lopeta ohjelma.
- Kopioi KOULU.RAK nimelle OLETUS.RAK
C:\MyTemp\ohj\VESAL>COPY KOULU.RAK OLETUS.RAK[RET]
- Muokkaa tiedostoa OLETUS.RAK vastaamaan osittain omaa harjoitustyötäsi. Ohjeita rakennetiedoston kirjoittamiseen löydät tiedostoston KERHOLRA.C alkukommenteista.
C:\MyTemp\ohj\VESAL>ct OLETUS.RAK[RET]
- Vaihda takaisin Command Promptiin ([Alt-Tab]).
- Käynnistä KERHO-ohjelma (n:kerho).
- Vastaa tiedoston nimeksi OMA ja kokeile toimiiko.
Harjoitustyöksi ei kuitenkaan kelpaa tämän hakemiston tiedostojen listaaminen!
3.9 Graafinen versio
Kokeillaan Java-ohjelman graafista versiota
- Kopioi hakmeisto: N:\kurssit\ohj2\kerho\malli
- Kirjoita komentoriviltä: KerhoWin.jar
- Jos ei toimi, kirjoita komentoriviltä: java -jar KerhoWin.jar
- Kokeile kirjoittaa hakukenttään jotakin
- Kokeile lisätä uusi jäsen (oikeellisuustarkistuksessa on vain että hetun pitää alkaa numerolla - kokeile kirjainta, ja jäsenmaksut)
4. Kurssin WWW-sivut
Tutki kursin WWW-sivuja
http://www.mit.jyu.fi/vesal/kurssit/ohjelmointi2009/
ja sieltä erityisesti kohtaa Harjoitustyö ja palautusohjeet.
5. Tulkki
Tulkki-ohjelmasta kokeilemme vain "valmista" ohjelmaa.
Jos pääteohjauksessa on aikaa alla 15 min, tee ensin kohta 6. Java-alkeet
- Kopioi hakemisto N:\KURSSIT\C\TULKKI\VALMIS.3 omaan hakemistoosi (tee vaikka uusi TULKKI-alihakemisto ensin).
- Sanasto on talletettu tiedostoon SANASTO.DAT. Katso mitä sanoja on sanastossa.
- Käynnistä TULKKI-ohjelma
C:\MyTemp\ohj\VESAL>TULKKI[RET]
- Paina kysymysmerkkiä ja return-näppäintä (?[RET]).
- Kokeile tulkkaamista vaikkapa seuraaville sanoille
HÄN suomi -> englanti
HE englanti -> ruotsi
- Kokeile muitakin käännöksiä (muista, että myös jokerimerkki * toimii, ja että sanaston koko on rajallinen!).
- Lopeta ohjelma ([Ret]).
- Käynnistä ohjelma jollakin sanalla:
C:\MyTemp\ohj\VESAL>TULKKI sukka[RET]
- Lopeta ohjelma.
- Kopioi sanasto omaan hakemistoosi ja lisää sanastoon savon-kieli ja kokeile toimintaa. Iso kirjain tarkoittaa kielen valintaa käännöksessä. Miten siis lisäät savon kielen?
6. Java-alkeet
Tee Sunin Tutorialin mukaan ensimmäinen Java-ohjelmasi.
Tutoriaalista poiketen pysy kuitenkin koko ajan omassa
hakemistossasi. Helpointa homma on kun annat olla Command
Promptin koko ajan auki. Ohjeessa mainitun Notepadinkin voi (itse asiassa kannattaa)
korvata ConTEXTilla ja avata Command Promptissa kirjoittamalla ct HelloWorldApp.java[RET]
http://java.sun.com/docs/books/tutorial/getStarted/cupojava/win32.html#2
Sama (HelloWorldApp => Olen) lyhyesti ja ytimekkäästi:
Luentomonisteen luku 6