Ohjelmointi 2 (kesä 2006) --- 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. Anna vielä komento cp, jonka ansiosta skandit
rupeavat näkymään oikein.
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.
1. Demojen siirtäminen webbiin
Käytä joko NettiDemoWWW:tä : https://www.mit.jyu.fi/demowww/ (ohje) tai lue Windows-version ohjeet osoitteesta
http://www.mit.jyu.fi/vesal/kurssit/bin/DemoWWW.html
- 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).
- Muista tarkistaa että kaikki toimii.
- Muista laittaa Korppiin myös oikea URL
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
27.12.2002 15:31 <DIR> esisuunnitelma_1
11.02.2003 20:12 <DIR> menut_3
28.12.2002 00:37 <DIR> tietorakenne_4
25.02.2003 10:24 <DIR> raken_5
21.03.2003 00:04 <DIR> yhteis_51
01.04.2003 09:16 <DIR> talletus_6
02.04.2003 21:38 <DIR> lukemine_71
04.04.2003 01:40 <DIR> tarkistu_72
08.04.2003 16:23 <DIR> etsilaj_73
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ä 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 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 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
- 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.
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!
4. Kurssin WWW-sivut
Kesäkurssin WWW-sivut tullaan kustomoimaan tulevan viikonlopun aikana.
Harjoitustyön palautusohje tullee olemaan aika samanlainen kuin Vesan kurssilla.
Voit katsoa sivua
http://www.mit.jyu.fi/vesal/kurssit/ohjelmointi2006/
ja sieltä erityisesti kohtaa Harjoitustyö ja palautusohjeet.
Vastaavanlaisia käytäntöjä tulemme noudattamaan.
5. Tulkki
Tulkki-ohjelmasta kokeilemme vain "valmista" ohjelmaa.
- 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?
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
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