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 

  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. 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ä).
  4. 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.

  1. 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.
  2. Muista että tuo on Wiki-sivu ja jos sinulla on selkeitä parannusehdotuksia, niin toki sivujen sisältöä voi muuttaa. Jopa itsekin saman tien.
  3. Tuloksenhan näet Wikin Browse Source-linkistä.
  4. Kokeile ohjeen mukaan myös WWW-version tekemistä. Tulos näkyy silloin http://users.jyu.fi/~USERNAME/ohj2
  5. 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.

  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 vaihe3/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 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.

  1. Siirry alihakemistoon N:\kurssit\ohj2\kerho\raken_5
  2. Käynnistä Naytto-ohjelma (java vaihe5/Naytto)
  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.

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.

  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!

3.9 Graafinen versio

Kokeillaan Java-ohjelman graafista versiota

  1. Kopioi hakmeisto: N:\kurssit\ohj2\kerho\malli
  2. Kirjoita komentoriviltä: KerhoWin.jar
  3. Jos ei toimi, kirjoita komentoriviltä: java -jar KerhoWin.jar
  4. Kokeile kirjoittaa hakukenttään jotakin
  5. 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

  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 (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