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
  1. 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".
  2. 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).
  3. Muista tarkistaa että kaikki toimii.
  4. 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.
  1. Siirry alihakemistoon N:\kurssit\ohj2\kerho\menut_3
  2. 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]
    
  3. 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.
  1. 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.
  1. Siirry alihakemistoon N:\kurssit\ohj2\kerho\raken_5
  2. Käynnistä Naytto-ohjelma
  3. Kokeile tulostusta (3).
  4. Lisää jäsen pari kertaa.
  5. Kokeile tulostusta.
  6. Kokeile muita toimintoja.
  7. Lopeta ohjelma.
  8. Käynnistä ohjelma uudelleen.
  9. Kokeile tulostusta.
  10. Lopeta ohjelma
Tässä vaiheessa eri tietorakenteet eivät vielä toimineet.  Lisäämme vielä rakenteiden yhteistyön.
  1. Siirry alihakemistoon N:\kurssit\ohj2\kerho\yhteis_51
  2. Käynnistä Naytto-ohjelma
  3. 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.
  1. Siirry alihakemistoon N:\kurssit\ohj2\kerho\talletus_6
  2. Siirry C-levyn omaan hakemistoosi (jollei ole, tee se).
  3. Kopioi N-levyn *.DAT -tiedostot
    C:\MyTemp\ohj\VESAL>copy n:*.dat
    
  4. Kopioi N-levyn *.class -tiedostot
    C:\MyTemp\ohj\VESAL>copy n:*.class
    
  5. Käynnistä KERHO-ohjelma java Naytto[RET]
  6. Kokeile tulostusta (3).
  7. Lisää jäsen.
  8. Kokeile tulostusta.
  9. Kokeile muita toimintoja.
  10. Lopeta ohjelma.
  11. Käynnistä ohjelma uudelleen.
  12. Kokeile tulostusta. Onko lisätty jäsen tallessa?
  13. Lopeta ohjelma.
  14. Käynnistä vaikkapa ConTEXT-editori ja editoi sillä tiedostoa KELMIT.DAT:
    C:\MyTemp\ohj\VESAL>ct kelmit.dat[RET]
    
  15. Lisää tiedostoon jokin uusi jäsen ja poista pari muuta.
  16. Siirry takaisin Command Promptiin ([Alt-Tab]).
  17. Käynnistä KERHO-ohjelma jälleen kerran (siis Naytto-luokka).
  18. Kokeile tulostusta. Onko muutokset kunnossa?
  19. 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.
  1. Siirry alihakemistoon N:\kurssit\ohj2\kerho\lukemine_71
  2. Siirry omaan hakemistoosi ja kopioi jälleen N:*.DAT ja N:*.class
  3. Käynnistä KERHO-ohjelma (siis Naytto-luokka)
  4. Kokeile tulostusta (3).
  5. Lisää jäsen.
  6. Kokeile tulostusta.
  7. Lisää toinen jäsen, ja vastaa kysymyksiin mielettömiä arvoja. Kelpaavatko?
  8. Kokeile tulostusta.
  9. 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.
  1. Siirry alihakemistoon N:\KURSSIT\CPP\KERHO\TARKISTU.4
  2. Siirry omaan hakemistoosi ja kopioi jälleen N:*.DAT sekä N:*.HLP
  3. Käynnistä KERHO-ohjelma (Huom! Nyt ajetaan C++:lla tehty .exe)  n:kerho
  4. Vastaa kerhon nimeksi KELMIT
  5. Kokeile tulostusta (3).
  6. Lisää jäsen.
  7. Kokeile tulostusta.
  8. Lisää toinen jäsen, ja vastaa kysymyksiin mielettömiä arvoja. Kelpaavatko?
  9. Kokeile tulostusta.
  10. Lopeta ohjelma.

3.7 Etsiminen ja korjailu

Seuraavaksi lisätään vielä ohjelmasta puuttuvia toimintoja. Esimerkiksi tietojen etsiminen ja korjailu.
  1. Siirry alihakemistoon N:\KURSSIT\CPP\KERHO\ETSILAJ.5
  2. Siirry omaan hakemistoosi ja kopioi jälleen N:*.DAT, N:*.HLP
  3. Käynnistä KERHO-ohjelma (n:kerho)
  4. Vastaa kerhon nimeksi KELMIT
  5. Kokeile tulostusta (3).
  6. Kokeile tietojen etsimistä (2).
  7. Valitse kysymysmerkki (?) jotta näet mitä kenttiä on käytössä.
  8. Valitse vaikkapa nimikenttä (1).
  9. Etsi kaikki A:lla alkavat nimet (a*).
  10. Selaile löytyneitä nimiä (+ ja -).
  11. Palaa päävalintaan ([Ret]).
  12. Koeta muuttaa James Bondin tietoja.
  13. 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.
  1. Siirry alihakemistoon N:\KURSSIT\C\KERHO\VAPAATYY.8
  2. Siirry omaan hakemistoosi ja kopioi nyt N:*.DAT, N:*.HLP ja N:*.RAK
  3. Käynnistä KERHO-ohjelma (n:kerho).
  4. Vastaa kerhon nimeksi KELMIT
  5. Kokeile avustusta (?).
  6. Kokeile tulostusta (3).
  7. Kokeile tietojen etsimistä (2).
  8. Valitse vaikkapa nimikenttä (1).
  9. Etsi kaikki nimet jotka ovat aakkosissa ennen nimeä KISSA (<kissa).
  10. Kokeile etsiä kaikki joilla ei ole työpuhelinta (hakuehdoksi puhelinkenttään ==).
  11. Laita kaikkien henkilöiden maksettu maksu kenttään 0 mk.
  12. (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 ...>*
    
  13. Kokeile muuttaa jäsenmaksuksi 10 mk kaikille niille, jotka ovat liittyneet ennen vuotta 1986.
  14. Lopeta ohjelma.
  15. Käynnistä KERHO-ohjelma (n:kerho).
  16. Vastaa kerhon nimeksi KOULU
  17. Kokeile tulostusta (3).
  18. Kokeile lisätä koululaisia.
  19. Lopeta ohjelma.
  20. Kopioi KOULU.RAK nimelle OLETUS.RAK
    C:\MyTemp\ohj\VESAL>COPY KOULU.RAK OLETUS.RAK[RET]
    
  21. 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]
    
  22. Vaihda takaisin Command Promptiin ([Alt-Tab]).
  23. Käynnistä KERHO-ohjelma (n:kerho).
  24. 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.
  1. Kopioi hakemisto N:\KURSSIT\C\TULKKI\VALMIS.3 omaan hakemistoosi (tee vaikka uusi TULKKI-alihakemisto ensin).
  2. Sanasto on talletettu tiedostoon SANASTO.DAT. Katso mitä sanoja on sanastossa.
  3. Käynnistä TULKKI-ohjelma
    C:\MyTemp\ohj\VESAL>TULKKI[RET]
    
  4. Paina kysymysmerkkiä ja return-näppäintä (?[RET]).
  5. Kokeile tulkkaamista vaikkapa seuraaville sanoille
    HÄN suomi -> englanti
    HE  englanti -> ruotsi
    
  6. Kokeile muitakin käännöksiä (muista, että myös jokerimerkki * toimii, ja että sanaston koko on rajallinen!).
  7. Lopeta ohjelma ([Ret]).
  8. Käynnistä ohjelma jollakin sanalla:
    C:\MyTemp\ohj\VESAL>TULKKI sukka[RET]
    
  9. Lopeta ohjelma.
  10. 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 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