OS3 Toteutusdokumentti

Koko: px
Aloita esitys sivulta:

Download "OS3 Toteutusdokumentti"

Transkriptio

1 OS3 Toteutusdokumentti Teemu Ajalin Lauri Jokipii Anu Määttä Juho Peltonen Nuutti Rintala Mikko Suonio Helsinki 28. toukokuuta 2003 Ohjelmistotuotantoprojekti Toteutusdokumentti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

2 Dokumentin versiohistoria Dokumenttipohjan ensimmainen versio, kopio suunnitteludokumentista poistettu opintokokonaisuuslomakkeen dynaaminen osa Lisätty opintojen tilan visualisoinnin javadocit lisätty liitteisiin create-table-lauseet Javadocien liittämiseen rakenteellinen muutos (->rakenne_visu.tex). Muita pieniä muutoksia Kuvatiedostojen valinnat ja sijoittelut. toteutusdokumentti.tex:iin lähteet Koostettu, yhtenäistetty ja oikoluettu versio

3 Sisältö 1 Johdanto (Teemu) 1 2 Opintojen tila (Lauri) Yleiskuvaus (Lauri) Muutokset suunnitteludokumenttiin OpintojenTilanVisualisointi-servlet (Lauri) Piirto-luokka (Anu) VerkkoPlus-luokka (Teemu) Verkko-luokka (Lauri) Solmu-luokka (Lauri) Kaari-luokka (Lauri) Luokka OpintojenTilanVisualisointi Esittely Kenttien yhteenveto Metodien yhteenveto Kentät Metodit Luokka Piirto Esittely Kenttien yhteenveto Konstruktorien yhteenveto Metodien yhteenveto Kentät Konstruktorit Metodit Luokka VerkkoPlus Esittely Kenttien yhteenveto Konstruktorien yhteenveto Metodien yhteenveto Kentät Konstruktorit Metodit Luokalta os3.visualisointi.verkko perityt jäsenet in 2.6, page Luokka Verkko Esittely Kenttien yhteenveto Konstruktorien yhteenveto Metodien yhteenveto Kentät Konstruktorit Metodit Luokka Solmu Esittely

4 2.7.2 Kenttien yhteenveto Konstruktorien yhteenveto Metodien yhteenveto Kentät Konstruktorit Metodit Luokka Kaari Esittely Kenttien yhteenveto Konstruktorien yhteenveto Metodien yhteenveto Kentät Konstruktorit Metodit Havaitut puutteet ja ongelmat OpintojenTilanVisualisointi-servlet (Lauri) Piirto-luokka (Anu) Verkko-luokka (Lauri) Opintokokonaisuuslomake (Juho, Mikko, Nuutti) Yleiskuvaus (Juho) Muutokset suunnitteludokumenttiin (Mikko) Muutokset tietokantaan Muutokset ohjelman rakenteeseen Luokka KurssiPidike Esittely Kenttien yhteenveto Konstruktorien yhteenveto Metodien yhteenveto Kentät Konstruktorit Metodit Luokka Lomake Esittely Kenttien yhteenveto Konstruktorien yhteenveto Metodien yhteenveto Kentät Konstruktorit Metodit Luokka LomakeTietokantaOperaatiot Esittely Kenttien yhteenveto Konstruktorien yhteenveto Metodien yhteenveto Kentät Konstruktorit

5 3.5.7 Metodit Luokka Paallekkaisyys Esittely Kenttien yhteenveto Konstruktorien yhteenveto Kentät Konstruktorit Luokka OpintokokonaisuusLomakeServlet Esittely Kenttien yhteenveto Metodien yhteenveto Kentät Metodit Jäsenet, jotka on peritty luokalta opintosu.tietokanta.opintosu Jäsenet, jotka on peritty luokalta javax.servlet.http.httpservlet Jäsenet, jotka on peritty luokalta javax.servlet.genericservlet Muutokset Oodi-otteen sisäänlukuun (Nuutti) Tietokanta Havaitut puutteet, ongelmat ja kehitysideoita Käsitteistö (kaikki) Yhteenveto (Teemu) 134 Lähteet 136 Liitteet A Liite 1. Tietokannan luontiskriptit Tietokannan luontiskriptit

6 1 Johdanto (Teemu) 1 OS3-projekti toteutti Helsingin yliopiston tietojenkäsittelytieteen laitoksen kevään 2003 ohjelmistotuotantoprojekti -kurssina laajennukset Desmond-järjestelmään. Projektin asiakkaita olivat Anni Rytkönen ja Vilho Raatikka. Ohjaajana toimi Jaakko Nurro. Desmond-järjestelmä on kevään 2002 Opintosu- ja syksyn 2002 OS2- ohjelmistotuotantoprojektien tuotteista Juhani Haaviston tammikuussa 2003 integroima järjestelmä, jonka avulla opiskelija voi suunnitella opintojaan. Lisätietoja projekteista on niiden suunnitteludokumenteissa [Haa02, Aho02] ja integroinnista sen toteutusdokumentissa [Haa03]. OS3-projekti toteutti järjestelmään opintojen tilan visualisointiin ja opintokokonaisuuslomakkeen suunnitteluun tarkoitetut toiminnallisuudet. Ne on määritelty tarkemmin projektin vaatimusanalyysissä [Aj103]. Toteutuksen suunnittelu dokumentoitiin suunnitteludokumenttiin [Aj203]. Teemu Ajalin, Lauri Jokipii ja Anu Määttä ovat toteuttaneet opintojen tilan visualisointiin liittyvät toiminnallisuudet. Juho Peltonen, Nuutti Rintala ja Mikko Suonio ovat toteuttaneet opintokokonaisuuslomakkeen toiminnallisuudet. Projektin alkuvaiheessa järjestelmään tehdyistä korjauksista on laadittu oma dokumentti [Pel03]. Tähän dokumenttiin on koottu toteutuksen muutokset verrattuna suunnitteludokumenttiin. Dokumenttien sisältöjä voi siis pahimmassa tapauksessa joutua vertailemaan; kuitenkin, jollei toteutusdokumentista löydy mainintaa muutoksesta suunnitteluun, on se toteutettu suunnitteludokumentin mukaisesti. Etuna tässä ratkaisussa on se, että toteutusdokumentin rakenne pysyi selkeänä. Muutosten määrä on lisäksi vähäinen. Suurin osa tätä dokumenttia koostuu TEXDoclet:lla [XOS03] koostetuista Javadoc-dokumentaatiosta. 2 Opintojen tila (Lauri) Tässä kappaleessa kuvataan opintojen tilan visualisointi-osajärjestelmän toteutettu rakenne. Aluksi selvitetään osajärjestelmän arkkitehtuuria, ja muutosten suunnitteluun kautta kuvauksiin kaikista luokista, metodeista ja kentistä. Lopuksi vielä maininnat toteutuksessa havaituista puutteista ja ongelmista.

7 2 2.1 Yleiskuvaus (Lauri) Opintojen tilan visualisointi -osajärjestelmä koostuu yhdestä servlet-luokasta ja kuudesta muusta luokasta. Luokkakaavio on esitetty kuvassa 1. OpintojenTilanVisualisointiservletistä on erillinen luokkakaaviokuva kuvassa 2, samoin kuin Piirto-luokasta kuvassa 3.

8 Kuva 1: Opintojen tilan luokkakaavio. 3

9 Kuva 2: OpintojenTilanVisualisointi-servletin luokkakaavio. 4

10 Kuva 3: Piirto-luokan luokkakaavio. 5

11 6 Pelkistetysti selitettynä opintojen tilan visualisointi -osajärjestelmä hakee tietokannasta, Desmond-järjestelmään opiskelijan syöttämien tietojen perusteella, opiskelijan suorittamia opintoja ja Desmond-järjestelmässä suunniteltuja opintoja. Opintojen tilan visualisointi -osajärjestelmä esittää nämä tiedot HTML-sivulla visuaalisesti. Pakolliset cum laude approbatur -opinnoista osajärjestelmä luo graafin, kuvan opintojen esitietovaatimusverkosta, osajärjestelmän luokkien avulla. Muut opinnot, kuten valinnaiset cum laude approbatur -opinnot ja laudatur-opinnot, esitetään HTML-sivulla listoina ja tiedot kaikille näille muille osa-alueille haetaan suoraan OpintojenTilanVisualisointi-servletistä käsin. Kaikissa asian omaisissa listoissa näytetään opiskelijan suorittamat ja suunnitellut opintojaksot. Laudatur-opintoihin liittyvissä listoissa, jotka perustuvat opiskelijan valitsemaan suuntautumisvaihtoehtoon ja erikoistumislinjaan, näytetään vielä asian omaisissa listoissa listaan kuuluvia pakollisia opintojaksoja, olivat ne sitten suoritettuja, suunniteltuja tai ei kumpaakaan. 2.2 Muutokset suunnitteludokumenttiin OpintojenTilanVisualisointi-servlet (Lauri) Koska muutokset suunnitteluun ovat valtaisat, muutoksien selvittäminen erikseen olisi lähes koko servletin selostamista uudestaan myöhemmin esitettävän javadoc-listauksen lisäksi, joten selvitys yksityiskohtaisesti sivuutetaan. Sen sijaan hieman perinpohjaisempi selostus OpintojenTilanVisualisointi-servletin toiminnasta lienee paikallaan. Servletin toiminta Servletin toiminta alkaa dokysely-metodista. Metodi asettaa ensin tietorakenteisiin tiedon käyttäjästä (henkilo), sekä tietokantayhteydestä (yhteys). Luo pohjakkeen OpintoSuryhmän tekemän opintosu.kayttoliittyma.pohjake-luokan avulla, sekä asettaa pohjakkeeseen Desmond-järjestelmän tyylitiedoston (css) osoitteen. Lukee asetuksia asetukset -tiedostosta, jälleen OpintoSu-ryhmän tekemän luokan, tällä kertaa opintosu.yleiset.asetukset, avulla ja pohjustaa muut tietorakenteet. Sitten metodi aloittaa tietojen selvittämisen käyttäjän tekemistä valinnoista. Valintojen (parametrit) käyttämisen periaate on, että asetetaan ensin tietorakenteisiin käyttäjän tietokantaan tallentamat arvot, ja vasta sitten parametreina syötetyt arvot, jotta viimeksi mainittu jäisi voimaan mahdollisessa päällekkäisessä tapauksessa.

12 7 Näytettävän osion (cumu, lavi, kaikki) on käyttäjä voinut valita, ja pyyntöön vastataan metodissa asetaopintojentilanne, joka sitten kutsuu vain tarvitut metodit halutun osion tietojen keräämistä varten. Otsikko Otsikko-osaan servlet tulostaa otsikon lisäksi mm. jonkin verran JavaScript-koodia. JavaScriptiä käytetään HTML-sivulla eri vuosien tutkintovaatimusten vaihtamiseen valintalistalla. HTML-sivu toimii kyllä ilmankin JavaScriptiä, mutta eri vuosien tutkintovaatimusten hakemiseen tarvitaan tällöin uusi lataus. Otsikon tulostus riippuu myös valitusta osiosta. Mikäli valittuna on cumu tai lavi, niin otsikkoon tulostetaan valitun osion nimi: Cum laude tai Laudatur. Cum laude approbatur Cum laude approbatur -opintojen tulostamisesta erityisen maininnan vaatii kaksi asiaa. Ensiksi pakollisten cum laude approbatur -kurssien verkkokuvan muodostaminen. Jos servletiä ladataan ensimmäistä kertaa, niin kuva joudutaan luonnollisesti muodostamaan tietokannasta löytyvillä opiskelijaa koskevilla tiedoilla. Kuvan muodostamisen hoitaa os3.visualisointi.piirto-luokka. Mutta jos servletiä ladataankin toista tai useampaa kertaa (sama opiskelija, sama istunto), eli käytännössä servletin kutsu on lähtenyt servletin tulostamalta sivulta, niin silloin muistetaan ensimmäisellä latauskerralla luotu kuva, joka näytetään opiskelijalle vain uudestaan. Riski tässä viimeksi mainitussa on, että opiskelijalla on useampi selainikkuna samaan aikaan auki, joista yhdessä opiskelija esimerkiksi suunnittelee opintojaan (ts. tekee muutoksia tietokantaan suunnitelmiinsa tai suorituksiinsa) ja toisessa katselee muuttuvaa tilannetta lataamalla sivua uudestaan, jolloin tilanne ei pääse muuttumaan, tehdyn ominaisuuden vuoksi. Toinen erityisen maininnan vaativa on pakollisten cum laude approbatur -kurssien opintoviikkojen hakeminen metodilla haecumupakvaaditutopintoviikot. Metodissa oleva tietokanta haku hakee siis opiskelijan suorittamat pakolliset vanhat approbatur ja cum laude approbatur -kurssit. Äskeiseen joukkoon lisätään (yhdistetään) kurssit joita luennoidaan nyt, tulevana tai sitä seuraavana lukukautena, ja jotka kuuluvat myös pakollisiin cum laude approbatur -kursseihin. Viimeksi mainitusta luennoitavien kurssien joukosta leikataan pois ennen yhdistämistä opiskelijan suorittamat kurssit sekä niitä vastaavat kurssit. Maininta on erityisen tärkeä, sillä varsinaisten näytettävien kurssien joukko haetaan sa-

13 8 manlaisella metodilla luokassa os3.visualisointi.verkko. Vain palautusarvot ovat näissä metodeissa eriävät, joten jos toiseen tekee muutoksia, on toiseenkin syytä tehdä samat muutokset. Laudatur Laudatur-opintojen tulostuskin vaatii muutaman erityisen maininnan. Ensiksi pro gradu -tutkielman tulostaminen, joka on koodissa isoilla näkyvillä kommenteilla erotettu muusta koodista. Tulostaminen tehdään nyt ns. kovakoodauksena, eli tietoja ei haeta tietokannasta. Tämä siksi, että tiedot yksinkertaisesti puuttuvat tietokannasta, ainakin nyt meidän toteutusvaiheen aikaan. Sen verran taustatöitä asian eteen kuitenkin tein, että selasin vanhoja opinto-oppaita aina vuoteen 1996 asti ja huomasin pro gradu -tutkielmasta saatavien opintoviikkojen olevan vakiot. Opettajien suuntautumisvaihtoehdoissa 10 opintoviikkoa ja muilla 16, mutta riski tiedon muuttumiselle on tietenkin olemassa. Toinen huonopuoli kovakoodauksessa on, että pro gradun esitietoja ei saada mistään jolloin oletukseksi tekemäni "ei voi vielä suorittaa"on aina voimassa, vaikka todellinen tilanne ei niin olisikaan. Toisena valinnaisten cum laude approbatur -kurssien tulostaminen laudaturin valinnaisten yhteydessä. Näitä kursseja määritelmän mukaan on siis sellaiset kurssit, joita ei ole valittu mukaan haettuun ja saatuun cum laude approbatur -opintokokonaisuusmerkintään. Tällaista tietoa ei tietääkseni tietokannasta vielä saanut, joten ko. kentän tiedot jäävät nyt tyhjäksi (kenttää ei myöskään tulosteta HTML:ään, niinkuin ei muitakaan tyhjiä ei vaadittuja kenttiä). Koodista kyseenomainen kohta löytyy selvällä kommentoinnilla, sekä hassulla if(0==0) -vertailulla Piirto-luokka (Anu) Toteuttamatta jätetyt muuttujat private ArrayList suunnitelmat private ArrayList suoritukset Suoritukset ja suunnitelmat luetaan Verkko-luokassa. private fileoutputstream tulostusputki

14 9 Kuvaa ei lähetetä servletille tulostusputkessa, vaan se tallennetaan palvelimelle. Muuttuneet muuttujat private PngEncoder enkoodaaja -> koodaaja muuttujan nimi vaihdettiin paremmin suomenkieltä vastaavaksi. private Image kuva -> private BufferedImage kuva Kuvan tyyppi muutettiin sillä BufferedImagen rajapinta on helpompi piirtelyssä. Uudet muuttujat Asetustiedostosta luettavia muuttujia on tullut lisää paljon, jotta kuvan ulkonäköä olisi mahdollisimman vaivatonta säädellä. Muita apumuuttujia on myös lisätty, niiden ennakointi suunnitteluvaiheessa oli vaikeaa. Asetuksista luettavat private static int PUNAISENKOODI private static int VIHREANKOODI private static int LAATIKONLEVEYS private static int LAATIKONKORKEUS private static int MERKKILAATIKONLEVEYS private static String KUVAHAKEMISTO private static String KUVAHTMLHAKEMISTO private final float VIIVANPAKSUUS private final float VIIVANVALI private static int FONTINKOKO private static String FONTINTYYPPI private static int MERKKIFONTINKOKO private static String MERKKIFONTINTYYPPI private static int KUVANLEVEYS private static int KUVANKORKEUS private static int LEGENDANKORKEUS private static int KESALUKUKAUSI_ALKAA

15 10 private static int SYYSLUKUKAUSI_ALKAA Koordinaatistoon liittyvät private int enitenoikealla private int enitenvasemmalla private int alintaso private int matriisinskaalaus private static int VERKONLEVEYSSOLUINA private static int VERKONKORKEUSSOLUINA Kurssien tilat private static final int SUORITETTU = 0 private static final int SUUN_ESITIEDOT = 1 private static final int EISUUN_ESITIEDOT = 2 private static final int SUUN_EIESITIEDOT = 3 private static final int EISUUN_EIESITIEDOT = 4 private static final int VOIOSALLISTUA = 5 private static final int VOITULEVAISUUDESSAOSALLISTUA = 6 private String[] merkit private String[] selitykset private boolean verkontekoonnistui = false private boolean verkonkoodausonnistui = false Debuggauksen apumuuttujat private int[][] tilavarausmatriisi private static boolean tulostetaankodebuggausviestit = false private static boolean testaus = false private static boolean piirretaankoapuviivat = false

16 11 Uudet konstruktorit public Piirto(Henkilo henkilo, YhteysSailio yhteys) public Piirto(Henkilo henkilo, YhteysSailio yhteys, String file) Toteuttamatta jääneet metodit public fileoutputstream annakuva() Servletille ei anneta kuvaa tulostusputkessa, joten metodi jäi tarpeettomaksi. private boolean haesuoritukset(string opiskelijantunnus) Toteutettiin Verkko-luokassa. Piirto-luokan ei siis itse tarvitse hakea näitä tietoja itse. Uudet metodit public String annakuvanurl() tarjoaa lähes saman rajapinnan selaimelle, kuin toteuttamatta jäänyt metodi public FileOutputStream annakuva(). Selaimelle tarjotaan kuvan URL sen sijaan, että kuva annettaisiin suoraan tulostusvirrassa. Tämän ansiosta on helpompi myöhemmin toteuttaa vanhan kuvan tarjoaminen opiskelijalle. private void lueasetukset() throws Exception, NumberFormatException Asetusten lukua varten toteutettu apumetodi, jota kutsutaan konstruktorista. private String arvotiedostonnimi() Arpoo muodostettavalle kuvatiedostolle nimen. private void selvitakuvanulottuvuudet Apumetodi, joka selvittää muodostettavan kuvan korkeuden ja leveyden verkon tietojen perusteella. private int annakurssintila(kurssi k) Apumetodi, joka selvittää annetun kurssin tilan (SUORITETTU,...). Toteutettiin, jotta kurssin tilojen käsittely olisi mahdollisimman keskitettyä.

17 12 private int annastringinleveys(string str) Apumetodi, joka palauttaa annetun merkkijonon leveyden pikseleinä kuvan grafiikkakontekstissa, kulloisellakin fontin koolla. Toteutettii, jotta fontin muodostuskontekstia ei tarvitsisi erikseen tarvittaessa kutsua. private int rivita() Apumetodi, joka rivittää annetun tekstin annettuun leveyteen. Toteutettiin, jotta kurssin nimien ja legendan tekstien käsittely, eri riveille jakautuminen voitaisiin tehdä keskitetysti. private int piirralaatikontekstit() Apumetodi, joka piirtää yhden (kurssi)laatikon sisältämät tekstit private voi piirramerkkilaatikko() Apumetodi, joka piirtää merkkilaatikon sekä legendassa että kurssiverkossa. Toteutettiin, jotta merkkilaatikoiden piirtäminen tapahtuisi ainoastaan yhdessä paikassa. public String annakuvanpaikka() Apumetodi, joka palauttaa muodostetun kuvan hakemistopolun. private void piirraapuviivat() Apumetodi sijoittelun debuggaukseen. Piirtää kuvaan ruudukon, asteikkona solun leveys ja korkeus, rivi- ja sarakeindeksit sekä piirrettävän verkon tilavarausmatriisin tiedot. private void debug Apumetodi debugfaukseen. Tulostaa määrämuotoisia debug-viestejä (alkaa: "Piirto."jos luokan ajoparametreissä on asetettu päälle muuttuja debug.

18 VerkkoPlus-luokka (Teemu) AsetaJuurienPaikka()-metodin toteutukseen tuli muutos suunniteltuun. Juuret käydään juuri-listalta kerran läpi sijoittaen ne kahteen metodin sisäiseen listaan (ylikahdentason- Solmut ja allekahdentasonsolmut) sen perusteella, kuinka pitkä on solmun pisin seuraajakaari. Kahden tai yli kahden pituiset kaaret sijoitetaan ylikahdentasonsolmut-listaan ja muut allekahdentasonsolmut listaan. Laskettaessa pisintä kaarta paljonesitietoja-listalla olevia seuraaja-solmuja ei huomioida. Kun juurten paikat asetetaan, sijoitetaan ylikahdentasonsolmut-listan juuret ja niiden jälkeen allekahdentasonsolmut-listan juuret. Lisäksi juuria ei aseteta kahden solmun päähän toisistaan, vaan vierekkäin. Solmujen paikanvaraussääntöihin tehtiin muutoksia. Kaikki säännöt on esitetty kuvissa 4-8. Jos lisätty solmu kuuluu paljonesitietoja-listaan, ei tilaa varata edellä mainittujen sääntöjen mukaan. Tilaa varataan vain Verkko-luokan annapieninpaljonesitietojataso()-metodin palauttamasta tasosta suoraan ylös-alas -suunnassa solmun saakka. Tämä sen vuoksi, että Piirto-luokka piirtää laatikon ulkopuoliset kaaret suoraan laatikon reunaan. Jos solmu tai kaari yritetään sijoittaa paikkaan, jonka tilanvarauksen tarkistamiselle ei ole olemassa sääntöä, aiheutetaan poikkeus, joka välitetään luokkaa kutsuneelle. jne... Kuva 4: Kaaren varaamat alkiot, kun solmujen tasojen erotus on yksi.

19 14 varaa varaa varaa varaa varaa varaa Kuva 5: Kaaren varaamat alkiot, kun solmujen tasojen erotus on kaksi. varaa varaa varaa varaa varaa varaa Kuva 6: Kaaren varaamat alkiot, kun solmujen tasojen erotus on kolme.

20 15 varaa varaa varaa varaa varaa Kuva 7: Kaaren varaamat alkiot, kun solmujen tasojen erotus on neljä.

21 16 varaa varaa varaa varaa varaa varaa varaa varaa Kuva 8: Kaaren varaamat alkiot, kun solmujen tasojen erotus on viisi.

22 17 Toteuttamatta jätetty muuttuja public static final int PALJONESITIETOJA_LKM - siirrettiin Verkko-luokkaan. Muuttuneet muuttujat protected int[][] tilavarausmatriisi - muutettiin pakettinäkyvyydeksi, jotta Piirto-luokka voi lukea arvoja. private LinkedList yksitaso - muutettiin List-tyypistä LinkedList-tyyppiseksi. private LinkedList useataso - muutettiin List-tyypistä LinkedList-tyyppiseksi. Uudet muuttujat private static boolean tulostetaankodebuggausviestit - muuttujan arvo on tosi, jos VerkkoPlus-luokan debuggaus-viestit ovat päällä. Oletusarvo on false. private static boolean luokkaatestataan - muuttujan arvo on tosi, jos VerkkoPlus-luokkaa testataan. Oletusarvo on false. Muutokset konstruktoriin public VerkkoPlus(Henkilo henkilo, YhteysSailio yhteys) throws Exception - Lisättiin parametri Yhteyssäiliö-oliolle, jota kutsuttava Verkko-luokka tarvitsee tietokantahakuja varten. Lisättiin myös keskeytysten välitys kutsujalle. Toteuttamatta jääneet metodit Ei toteuttamatta jääneitä metodeita. Muuttuneet metodit private void asetajuurienpaikka() throws Exception - Metodi välittää keskeytyksen kutsujalle. private void asetapaikat() throws Exception - Metodi välittää keskeytyksen kutsujalle. private void asetasolmunpaikka(solmu solmu, Kaari kaari) throws Exception - Metodi välittää keskeytyksen kutsujalle. Uudet metodit

23 18 private void asetaylikahdenpituisetkaaret(solmu tamasolmu) throws Exception - metodi asettaa yli kahden tason pituisten kaarten seuraajasolmut rekursiivisesti itseään kutsuen. private void varaapaikkakaarelle(kaari kaari) throws Exception - metodi varaa paikan tilavarausmatriisista parametrina saamalleen kaarelle. Poikkeukset välitetään kutsujan käsiteltäväksi. private Solmu annasolmutasosta() - palauttaa Solmun, jonka taso on pienin yksitasoja useataso-listoista. private void asetalapikaytavienlistaan(solmu tamasolmu, Solmu seuraaja) - asettaa parametrina saamansa seuraaja-solmun yksitaso- tai useataso-listaan. public static void main (String[] args) - päämetodi luokan testausta varten Verkko-luokka (Lauri) Toteuttamatta jätetty muuttuja private List seuraavaksiasetettavatsolmut - ajatus, että Verkko-luokka hoitaisi solmujensa läpikäymisen poistettiin, joten tästä muuttujasta tuli tarpeeton. Muuttuneet muuttujat protected Collection solmut - tyyppi muutettiin List:stä abstraktiin Collection:iin. Näkyvyys muutettiin pakkaukselle. protected Collection juuret - tyyppi muutettiin List:stä abstraktiin Collection:iin. Näkyvyys muutettiin pakkaukselle. Uudet muuttujat protected Collection paljonesitietoja - lista, johon lisätään solmut, joilla on paljon esitietoja. Siirrettiin VerkkoPlus-luokasta. Verkko-luokka huolehtii joka tapauksessa solmujen tasojen asetuksen jolloin sen on helppo asettaa myös solmut ko. listaan.

24 19 public final int PALJONESITIETOJA_LKM - vakio, joka kuvaa esitietojen määrää, jolla solmu asetetaan paljonesitietoja-listaan. Siirrettiin VerkkoPlus-luokasta. private int tasojenlkm - kertoo verkossa olevien solmujen tasojen lukumäärän. Muuttuja lisättiin, sillä tiedon etsiminen myöhemmin (useaan kertaan VerkkoPlus- ja Piirtoluokista) läpikäymällä solmut, olisi turhan raskas operaatio. Uudet konstruktorit public Verkko() - oletus konstruktori ilman parametreja. Verkon voi luoda, mutta kutsujan täytyy kutsua luoverkko-metodia parametreineen, jotta varsinainen verkko muodostuisi. public Verkko(Henkilo henkilo, YhteysSailio yhteys) - konstruktori jolle voi antaa myös avatun tietokantayhteyden. Toteuttamatta jääneet metodit private void haekurssit(henkilo henkilo, YhteysSailio yhteys) - metodi pilkottiin pienemmiksi metodeiksi (luosolmut, selvitaesitiedot ja haecumupakolliset). public List annasolmut() - solmut-muuttujan näkyvyys muutettiin pakkaukselle ja aksessorista tuli turha. public List annajuuret() - juuret-muuttujan näkyvyys muutettiin pakkaukselle ja aksessorista tuli turha. private void lisaaesitieto(solmu seuraaja, Solmu uusiesitieto) - poistettiin turhana. public Kurssi annakurssi(solmu solmu) - solmut-muuttujan pakkausnäkyvyyden muuttamisen jälkeen tämä metodi jäi turhaksi. public List annaseuraajat(solmu solmu) - solmut-muuttujan pakkausnäkyvyyden muuttamisen jälkeen tämä metodi jäi turhaksi.

25 20 private Solmu annaseuraavaksiasetettavatsolmut() - solmujen läpikäymisen siirtyminen asianomaisille luokille jätti tämän turhaksi. private void lisaseuraavaksiasetettavatsolmut(solmu seuraavaksiasetettavasolmu) - solmujen läpikäymisen siirtyminen asianomaisille luokille jätti tämän turhaksi. Uudet metodit public void luoverkko(henkilo henkilo) - usean konstruktorin kanssa käytettävä apumetodi. Tämä metodi luo YhteysSailio-olion ja kutsuu kuormitettua luoverkko-metodia. public void luoverkko(henkilo henkilo, YhteysSailio yhteys) - usean konstruktorin kanssa käytettävä apumetodi yhteys-oliolla kuormitettuna. Tämä metodi käytännössä tekee verkko-olion kutsumalla tarvittavat metodit. private void luosolmut(henkilo henkilo, YhteysSailio yhteys) - metodi haetuttaa haecumupakolliset, opintosu.suunnittelu.suoritus.haepaaainesuoritukset ja opintosu.suunnittelu.suunnittelu.haepaaainesuunnitelma -metodien avulla opiskelijan pakolliset cum laude approbatur -kurssit, sekä luo näille solmu-oliot. private void selvitaesitiedot(yhteyssailio yhteys) - metodi haetuttaa metodien os2.ljk.kyselyt.haeesitiedot ja os2.ljk.kyselyt.haevastaavuudet avulla solmut-listalla olevien kurssien esitiedot ja luo saatujen tietojen perusteella kaari-oliot solmujen välille. private ArrayList[] haecumupakolliset(henkilo henkilo, YhteysSailio yhteys) - metodi hakee tietokannasta opiskelijan (henkilo parametri) tietojen perusteella pakolliset cum laude approbatur -kurssien tiedot. public int annapieninpaljonesitietojataso() - metodi joka palauttaa tason, jonka yläpuolella ei ole enää paljonesitietoja-listan solmuja. Eli tämän metodin palauttaman tason yläpuolelle piirretään "esitietolaatikon"alareuna. Metodia kutsuu Verkkoa käyttävä luokka (nyt VerkkoPlus ja/tai Piirto). private void asetapaljonesitietojalistaan(solmu solmu) - asettaa parametrina saamansa

26 21 solmu paljonesitietoja-listaan. Siirrettiin VerkkoPlus-luokasta. public int annatasojenlkm() - palauttaa luokan tietorakenteessa säilötyn tasojen lukumäärän. private void asetatasot() - asettaa tasot juurille (=0). Metodi asetuttaa tasot myös muille solmuille käyttäen apunaan rekursiivista metodia asetasolmujentasotalkaen, joka palauttaa suurimman asettamansa tason, jonka tämä metodi sitten asettaa tasojenlkmmuuttujaan. private int asetasolmujentasotalkaen(solmu solmusta) - metodi asettaa solmujen tasot parametrina saamastaan solmusta alkaen. Parametrina saadun solmun seuraajille asetetaan taso, joka on yhden suurempi kuin taso parametrina saadussa solmussa, mikäli seuraajalla (asetettavalla) ei ole tasoa vielä (= -1) tai taso on pienempi kuin asetettava taso (kaaren pituus edelliselle asetukselle kasvaa) Solmu-luokka (Lauri) Toteuttamatta jätetty muuttuja private Kurssi kurssi - kurssi-oliosta tarvittiin vain tiedot kurssikoodi, nimi ja opintoviikot. Tämä muuttuja poistettiin siksikin, että kaikkien verkkoon asetettavien solmujen kurssien tiedot eivät tule OpintoSu- ja OS2-ryhmien tekemistä koodeista kurssi-olioina, vaan myös suoritus- ja suunnittelu-olioina. Muuttuneet muuttujat private Collection esitiedot - tyyppi muuttui List:stä Collection:ksi. private Collection seuraajat - tyyppi muuttui List:stä Collection:ksi. Uudet muuttujat private final String KURSSIKOODI - solmun kuvaaman kurssin kurssikoodi, joka on vakio koko solmu-olion elinajan.

27 private final String NIMI - solmun kuvaaman kurssin nimi, joka on vakio koko solmuolion elinajan. 22 private final double OPINTOVIIKOT - solmun kuvaamasta kurssista saatavat opintoviikot, joka on vakio koko solmu-olion elinajan. private Date suoritettupvm - mahdollisesti suoritetun kurssin suorituspäivämäärä. private String arvosana - mahdollisesti suoritetun kurssin arvosana. private Date suunniteltupvm -mahdollisesti suunnitellun kurssin suunniteltu käymisen päivämäärä. Poistettu metodi public Kurssi annakurssi() - koska solmun kuvaaman kurssin tietojen tallennustapa muutettiin kurssikoodin, nimen ja opintoviikkojen tallennukseen, ja kurssi-muuttuja poistettiin, aksessorista tuli turha ja se poistettiin. Muuttuneet metodit public Collection annaesitiedot() - tietorakenteen tyypin muuttumisen myötä aksessorinkin tyyppi muuttui. public Collection annaseuraajat() - tietorakenteen tyypin muuttumisen myötä aksessorinkin tyyppi muuttui. public Kaari lisaakaari(solmu esitieto) - palautusarvoksi viite uuteen kaari-olioon. Näin ei luotua kaari-oliota tarvitse heti etsiä. Uudet metodit public String annakurssikoodi() - tietorakenteelle oma aksessori. public String annanimi() - tietorakenteelle oma aksessori.

28 23 public double annaopintoviikot() - tietorakenteelle oma aksessori. public Date annasuoritettupvm() - tietorakenteelle oma aksessori. public String annaarvosana() - tietorakenteelle oma aksessori. public Date annasuunniteltupvm() - tietorakenteelle oma aksessori. public void asetasuoritettupvm(date suoritettupvm) - tietorakenteelle oma aksessori. Asettaa parametrina saadun päivämäärän tietorakenteeseen. public void asetaarvosana(string arvosana) - tietorakenteelle oma aksessori. Asettaa parametrina saadun merkkijonon tietorakenteeseen. public void asetasuoritettu(date suoritettupvm, String arvosana) - aksessori suoritusta kuvaavien tietorakenteiden yhteiselle asetukselle. Kutsuu oikeat aksessorit. public void asetasuunniteltupvm(date suunniteltupvm) - tietorakenteelle oma aksessori. Asettaa parametrina saadun päivämäärän tietorakenteeseen. public void asetasuunniteltu(date suunniteltupvm) - yhtenäinen nimitys suorituksen ja suunnitellun asettamiselle. Kutsuu oikean aksessorin. public boolean onkosuoritettu() - palauttaa totuusarvona onko solmun kuvaama kurssi suoritettu. public boolean onkosuunniteltu() - palauttaa totuusarvona onko solmun kuvaama kurssi suunniteltu käytäväksi. public boolean onkoesitiedotsuoritettu() - palauttaa totuusarvona onko solmun kuvaaman kurssin kaikki esitiedot suoritettu.

29 Kaari-luokka (Lauri) Ei muutoksia suunniteltuun.

30 Luokka OpintojenTilanVisualisointi Opintojen tilan visualisointi -sivulla opiskelija näkee kokonaisuutena, miten hänen opintonsa ovat edenneet. Opiskelija voi sivulla valita joko cum laude -opinnot tai haluamansa suuntautumisvaihtoehdon laudatur-opinnot. Sivulta opiskelija näkee mitä kursseja hän on jo suorittanut, mitä hänellä on suunnitelmissaan sekä pakollisista kursseista ne joihin hän ei ole vielä koskenut. Käytössä olevat tiedot Servletillä on aina tiedossa henkilön käyttäjätunnus. Lisäksi servletti voi saada tietoja parametrin avulla. Parametria käytetään silloin, kun opiskelija valitsee katsottavakseen toisen suuntautumisvaihtoehdon ja/tai kun opiskelija valitsee katsottavakseen cumun, lavin tai kaikki -opinnot. Servletin parametrit on kuvattu luokan vakioiden kuvauksessa. Käytettävät luokat opintosu.kayttoliittyma.pohjake Pohjake-luokkaa käytetään sivun HTML:n sisältävän pohjaketiedoston muokkaamiseen. Luokan muokkaama pohjaketiedosto on nimeltään OpintojenTilanVisualisointi.html opintosu.yleiset.asetukset Asetukset-luokan avulla luetaan palvelimelta löytyvää asetustiedostoa, jossa on mm. värikoodauksien asetuksia, sekä muita tulostukseen ja yleisiin asioihin liittyviä asetuksia. opintosu.kayttajat.henkilo Henkilo-luokan ilmentymä Servletille parametrina annettu kuvaa järjestelmää käyttävää opiskelijaa. Luokalta pyydetään tarvittaessa opiskelijan tietoja ja tallennuksia liittyen opintoihin. opintosu.tietokanta.tkapu Luokan avulla suoritetaan tietokantaan SQL-kyselyt. opintosu.tietokanta.yhteyssailio Servletiä kutsuttaessa saadaan tämän luokan ilmentymä parametrina (yhteys), ja olion kautta tapahtuu kaikki liikenne tietokantaan. opintosu.suunnittelu.suoritus Luokan metodin haepaaainesuoritukset avulla haetaan tietokannasta opiskelijan suorittamat pääainesuoritukset.

31 26 os2.ljk.kyselyt Käytetään hakemaan esitiedot tietylle kurssille. Tämä luokka palauttaa Collection:n os2.ljk.esitieto olioita. os2.ljk.esitietokurssit Luokan ilmentymät kuvaavat os2.ljk.kyselyt.haeesitiedot-metodin palauttamia kursseja. Luokan kuvaamien kurssien tiedoista kaivataan vain kurssikoodia. os3.visualisointi.piirto Piirto-luokka luo Servletin tunteman käyttäjän (henkilo) ja tietokantayhteyden (yhteys) avulla pakollisten cum laude approbatur -kurssien esitietovaatimusverkon kuvaksi Esittely public class OpintojenTilanVisualisointi extends java.lang.object Kenttien yhteenveto asetukset ASETUSTIEDOSTO cumupaksuor Opiskelijan suorittamien cum laude approbatur -tasoisten pakollisten opintojaksojen opintoviikot. cumupaksuun Opiskelijan suunnittelemien cum laude approbatur -tasoisten pakollisten opintojaksojen opintoviikot. cumupakvaad Vaaditut cum laude approbatur -tasoisten pakollisten opintojaksojen opintoviikot. cumuvaad Tutkintoon vaadittavat cum laude approbaturin opintoviikot. cumuvalsuor Opiskelijan suorittamien cum laude approbatur -tasoisten valinnaisten opintojaksojen opintoviikot. cumuvalsuun Opiskelijan suunnittelemien cum laude approbatur -tasoisten valinnaisten opintojaksojen opintoviikot. EISUUN_EIESITIEDOT Kurssin tila: suoritettu / suunniteltu / esitiedot käyty erilaisina yhdistelminä EISUUN_ESITIEDOT Kurssin tila: suoritettu / suunniteltu / esitiedot käyty erilaisina yhdistelminä henkilo Kutsujaa kuvaavan henkilön olio. kuvatiedosto Ensimmäisellä latauskerralla luodon kuvatiedoston nimi.

32 27 lavipaksuor Opiskelijan suorittamien laudatur-tason pakollisten opintojaksojen opintoviikot. lavipaksuun Opiskelijan suunnittelemien laudatur-tason pakollisten opintojaksojen opintoviikot. lavipakvaad Tutkintoon vaadittavat laudaturin opintoviikot. lavivaad Tutkintoon vaadittavat laudaturin opintoviikot. lavivalsuor Opiskelijan suorittamien laudatur-tason valinnaisten opintojaksojen opintoviikot. lavivalsuun Opiskelijan suunnittelemien laudatur-tason valinnaisten opintojaksojen opintoviikot. lavivalvaad Tutkintoon vaadittavat laudaturin valinnaisten opintojaksojen opintoviikot. linja Opiskelijan valitsema erikoistumislinja (tietojenkäsittelyn suuntautumisvaihtoehdossa). merkit nayta Opiskelijan valitsema näytettävä opintojen kokonaisuus (cumu (oletus), lavi tai kaikki). PARAMETRI_KUVATIEDOSTO Ensimmäisellä latauskerralla luodun pakollisten cum laude approbatur -kurssien esitietovaatimusverkon kuvan tiedostonimi annetaan tällä parametrilla. PARAMETRI_NAYTA Minkä oppimäärien opinnot näytetään (cumu, lavi, kaikki). PARAMETRI_SUUNTA Valittu suuntautumisvaihtoehto tai erikoistumislinja. PARAMETRI_VUOSI Minkä vuoden tutkintovaatimuksien mukaisia suuntautumisvaihtoehtoja ja erikoistumislinjoja näytetään. PUNAINENKURSSI Asetuksista saatava HTML-värikoodi kurssin suoritusta kuvaavalle värille. selitykset Legendan selitystekstit pelkän laudaturin näyttöä varten. sivu Pohjake, johon kirjoitetaan tulostusmetodeissa. SUORITETTU Kurssin tila: suoritettu / suunniteltu / esitiedot käyty erilaisina yhdistelminä SUUN_EIESITIEDOT Kurssin tila: suoritettu / suunniteltu / esitiedot käyty erilaisina yhdistelminä SUUN_ESITIEDOT Kurssin tila: suoritettu / suunniteltu / esitiedot käyty

33 28 erilaisina yhdistelminä suunta Opiskelijan valitsema suuntautumisvaihtoehto. VIHREAKURSSI Asetuksista saatava HTML-värikoodi kurssin suoritusta kuvaavalle värille. vuosi Opiskelijan valitsema tutkintovaatimusten vuosi. yhteys Tietokantayhteyksiä Metodien yhteenveto asetaopintojentilanne() Asettaa näytettävälle sivulle otsikon, näytettävät osiot, kuva ja/tai listat kursseista ja mahdollisen yhteenvedon opintoviikoille. dokysely(httpservletrequest, HttpServletResponse, YhteysSailio, Henkilo) Vastaa selaimen tekemään kutsuun. haecumupakvaaditutopintoviikot() Hakee cum laude approbatun -oppimäärän pakollisten kurssien opintoviikkomäärän tietokannasta. haecumuvaaditutopintoviikot() Hakee cum laude approbatur -oppimäärään vaaditut opintoviikot tietokannasta. haelinjatsuuntautumiselle(string) Metodi hakee tietokannasta parametrina annetun suuntautumisvaihtoehdon erikoistumislinjojen tiedot. haemuutpakolliset(string) Metodi hakee tietokannasta valitulla parametrilla opiskelijan muiden laudatur-oppimäärän pakollisten kurssien tiedot. haesuoritetut(string, boolean, String) Metodi hakee tietokannasta valituilla parametreilla opiskelijan suorittamien kurssien tiedot. haesuunnitellut(string, boolean, String) Metodi hakee tietokannasta valituilla parametreilla opiskelijan suunnittelemien kurssien tiedot. haesuuntautuminenlinjalle(string) Metodi hakee tietokannasta parametrina annetun erikoistumislinjan suuntautumisvaihtoehdon. haesuuntautumiset(string) Metodi hakee tietokannasta valitulla parametrilla tietyn tutkintovaatimusvuoden suuntautumisvaihtoehtojen tiedot. haetutkintovaatimusvuodet() Metodi hakee tietokannasta kaikki eri henkilölle sopivat tutkintovaatimusvuodet. haevaaditutopintoviikot(string) Hakee parametrina annetun kokonaisuuden minimiopintoviikkomäärän tietokannasta. suoritettupvm(date) Metodia käytetään suoritettujen kurssien suorituspäivämäärän muuttamiseksi tulostettavaan muotoon.

34 29 suunniteltupvm(date) Metodia käytetään suunniteltujen kurssien käymistä kuvaavan tietokannasta saadun alkamisajankohdan päivämäärän muuttamiseksi tulostettavaan muotoon. tulostacumu() Tulostaa näytettävälle sivulle cum laude approbatur -opinnot. tulostalavi() Tulostaa näytettävälle sivulle opiskelijan valitsemien tietojen mukaan opiskelijan laudatur-opinnot. tulostamuutpakolliset(pohjake, String) Tulostaa parametrilla valitun laudatur osan opintojaksoja, jotka ovat osassa pakollisia, mutta eivät ole opiskelijan huomioimia vielä. tulostaopintoviikot(pohjake, int, int) Tulostaa parametrein saadut opintoviikot parametrina annettuun lohkoon. tulostaotsikko() Tulostaa halutunlaisen otsikon näytettävälle sivulle. tulostaovsumma() Tulostaa näytettävälle sivulle kaikkien osioiden (cumu ja lavi) opintoviikkojen yhteenvedon. tulostasuoritetut(pohjake, String, boolean, String) Tulostaa valituin parametrein opiskelijan suorittamia opintojaksoja. tulostasuunnitellut(pohjake, String, boolean, String) Tulostaa valituin parametrein opiskelijan suunnittelemia opintojaksoja. tulostasuuntautumiset(pohjake, String, String) Tulostaa suuntautumisvaihtoehdot ja erikoistumislinjat näytettävään sivuun valintalistaan. tulostatutkintovaatimusvuodet(pohjake) Tulostaa kannasta löytyvät tutkintovaatimusvuodet valintalistaan Kentät public static final java.lang.string PARAMETRI_NAYTA Minkä oppimäärien opinnot näytetään (cumu, lavi, kaikki). public static final java.lang.string PARAMETRI_SUUNTA Valittu suuntautumisvaihtoehto tai erikoistumislinja. Arvot annetaan muodossa suunta# tai linja# ja "suunnan_tai_linjan_id". public static final java.lang.string PARAMETRI_VUOSI

35 30 Minkä vuoden tutkintovaatimuksien mukaisia suuntautumisvaihtoehtoja ja erikoistumislinjoja näytetään. public static final java.lang.string PARAMETRI_KUVATIEDOSTO Ensimmäisellä latauskerralla luodun pakollisten cum laude approbatur -kurssien esitietovaatimusverkon kuvan tiedostonimi annetaan tällä parametrilla. Parametri on tarkoitettu annettavaksi vain Servletin itse, jolloin mahdolliset suunnitelmien tai suoritusten muutokset eivät jää huomioitta kuvassa. private java.lang.string suunta Opiskelijan valitsema suuntautumisvaihtoehto. On tyhjä merkkijono tai "eivalittu", jos opiskelija ei ole valinnut suuntautumistaan. private java.lang.string linja Opiskelijan valitsema erikoistumislinja (tietojenkäsittelyn suuntautumisvaihtoehdossa). On tyhjä merkkijono tai "VALITTAVAENSIN", jos opiskelija ei ole valinnut erikoistumislinjaa. private java.lang.string nayta Opiskelijan valitsema näytettävä opintojen kokonaisuus (cumu (oletus), lavi tai kaikki). private java.lang.string vuosi Opiskelijan valitsema tutkintovaatimusten vuosi. private java.lang.string kuvatiedosto Ensimmäisellä latauskerralla luodon kuvatiedoston nimi. private static opintosu.yleiset.asetukset asetukset ASETUSTIEDOSTO private static final int SUORITETTU Kurssin tila: suoritettu / suunniteltu / esitiedot käyty erilaisina yhdistelminä private static final int SUUN_ESITIEDOT Kurssin tila: suoritettu / suunniteltu / esitiedot käyty erilaisina yhdistelminä

36 31 private static final int EISUUN_ESITIEDOT Kurssin tila: suoritettu / suunniteltu / esitiedot käyty erilaisina yhdistelminä private static final int SUUN_EIESITIEDOT Kurssin tila: suoritettu / suunniteltu / esitiedot käyty erilaisina yhdistelminä private static final int EISUUN_EIESITIEDOT Kurssin tila: suoritettu / suunniteltu / esitiedot käyty erilaisina yhdistelminä private static final java.lang.string merkit private static final java.lang.string selitykset Legendan selitystekstit pelkän laudaturin näyttöä varten. Cumu tehdään Piirtoluokassa suoraan kuvaan. Itse tekstit haetaan asetukset-tiedostosta private static java.lang.string VIHREAKURSSI Asetuksista saatava HTML-värikoodi kurssin suoritusta kuvaavalle värille. private static java.lang.string PUNAINENKURSSI Asetuksista saatava HTML-värikoodi kurssin suoritusta kuvaavalle värille. private opintosu.kayttajat.henkilo henkilo Kutsujaa kuvaavan henkilön olio. private opintosu.tietokanta.yhteyssailio yhteys Tietokantayhteyksiä. private opintosu.kayttoliittyma.pohjake sivu Pohjake, johon kirjoitetaan tulostusmetodeissa. private int cumupaksuor Opiskelijan suorittamien cum laude approbatur -tasoisten pakollisten opintojaksojen opintoviikot. private int cumupaksuun Opiskelijan suunnittelemien cum laude approbatur -tasoisten pakollisten opintojaksojen opintoviikot.

37 32 private int cumupakvaad Vaaditut cum laude approbatur -tasoisten pakollisten opintojaksojen opintoviikot. Haetaan tietokannasta haecumpakvaaditutopintoviikot-metodilla. private int cumuvalsuor Opiskelijan suorittamien cum laude approbatur -tasoisten valinnaisten opintojaksojen opintoviikot. private int cumuvalsuun Opiskelijan suunnittelemien cum laude approbatur -tasoisten valinnaisten opintojaksojen opintoviikot. private int cumuvaad Tutkintoon vaadittavat cum laude approbaturin opintoviikot. Haetaan tietokannasta haecumuvaaditutopintoviikot-metodilla. private int lavipaksuor Opiskelijan suorittamien laudatur-tason pakollisten opintojaksojen opintoviikot. private int lavipaksuun Opiskelijan suunnittelemien laudatur-tason pakollisten opintojaksojen opintoviikot. private int lavipakvaad Tutkintoon vaadittavat laudaturin opintoviikot. private int lavivalsuor Opiskelijan suorittamien laudatur-tason valinnaisten opintojaksojen opintoviikot. private int lavivalsuun Opiskelijan suunnittelemien laudatur-tason valinnaisten opintojaksojen opintoviikot. private int lavivalvaad Tutkintoon vaadittavat laudaturin valinnaisten opintojaksojen opintoviikot.

38 33 private int lavivaad Tutkintoon vaadittavat laudaturin opintoviikot. Haetaan tietokannasta haevaaditutopin metodilla Metodit asetaopintojentilanne private void asetaopintojentilanne( ) throws java.lang.exception Asettaa näytettävälle sivulle otsikon, näytettävät osiot, kuva ja/tai listat kursseista ja mahdollisen yhteenvedon opintoviikoille. Kutsuu tarvittavat metodit. Tulostaa lopuksi vielä ensimmäisellä latauskerralla luodun kuvatiedoston nimen koko sivun kattavaan form:iin hidden-kenttään. dokysely public void dokysely( HttpServletRequest request, HttpServletResponse response, opintosu.tietokanta.yhteyssailio yhteys, opintosu.kayttajat.henkilo henkilo ) throws java.lang.exception Vastaa selaimen tekemään kutsuun. Ensimmäiseksi metodi avaa tulostusvirran tulostamista varten. Valituin ja saaduin parametrein siirrytään tulostamaan sivua ja haetaan tunnusta vastaavat opiskelijan kurssit. Metodi hakee sivun pohjakkeen ja asettaa tiedot pohjakkeeseen. Lopuksi tulostetaan tulostusvirtaan sivu pohjakkeen tulostusmetodilla sekä suljetaan tulostusvirta. haecumupakvaaditutopintoviikot private int haecumupakvaaditutopintoviikot( ) throws java.lang.exceptio Hakee cum laude approbatun -oppimäärän pakollisten kurssien opintoviikkomäärän tietokannasta. Tässä otetaan huomioon siis opiskelijan suorittamat kurssit joiden vastaavuudet karsitaan nykyisin luennoitavista kursseista pois.

39 Palauttaa pakollisten cum laude approbatur -oppimäärän kurssien opintoviikkomäärän int-arvona. 34 haecumuvaaditutopintoviikot private int haecumuvaaditutopintoviikot( ) throws java.lang.exception Hakee cum laude approbatur -oppimäärään vaaditut opintoviikot tietokannasta. Hakeminen tehdään mahdollisesti kolmiosaisena, ja seuraavassa järjestyksessä: Mikäli ensimmäinen, henkilön suuntautumisvaihtoehtoon perustuva haku, ei palauta tietokannasta yhtään riviä, niin suoritetaan toinen haku, joka perustuu henkilön valitsemaan (tai annettuun) tutkintovaatimukseen. Jos toinenkaan haku ei palauta riviäkään, niin haetaan henkilöstä riippumaton kolmas vaihtoehto, joka palauttaa uusimman tktl cumun minimiopintoviikkomäärän, ja siten aina yhden rivin, jos vain tietokannassa tietoja yleensä on siis. Palauttaa cum laude approbatur -oppimäärän minimiopintoviikkomäärän int-arvona. haelinjatsuuntautumiselle private java.util.arraylist[] haelinjatsuuntautumiselle ( java.lang.string suunta ) throws java.lang.exception Metodi hakee tietokannasta parametrina annetun suuntautumisvaihtoehdon erikoistumislinjojen tiedot. suunta Suuntautumisvaihtoehdon id. Palauttaa erikoistumislinjojen tiedot ArrayList[]:nä, jossa yksi ArrayList sisältää solut: kokonaisuus_id ja nimi. Jos linjoja ei ole, niin palautus on null. haemuutpakolliset private java.util.arraylist[] haemuutpakolliset

40 35 ( java.lang.string osa ) throws java.lang.exception Metodi hakee tietokannasta valitulla parametrilla opiskelijan muiden laudaturoppimäärän pakollisten kurssien tiedot. Siis ei opiskelijan suorittamat tai suunnittelemat. osa Merkkijono, jolla kerrotaan metodille mitä laudatur-kursseja haetaan (suunta,linja,semin). Palauttaa kurssien tiedot ArrayList[]:nä, jossa yksi ArrayList sisältää solut: kurssikoodi, nimi_suomi, opintoviikot. haesuoritetut private java.util.arraylist[] haesuoritetut ( java.lang.string taso, boolean pakolliset, java.lang.string osa ) throws java.lang.exception Metodi hakee tietokannasta valituilla parametreilla opiskelijan suorittamien kurssien tiedot. taso Yksi kirjain haettavien kurssien oppimäärän tasolle (C umu tai L audatur tai S eminaari). Jos taso on Cumu, niin kannasta haetaan myös Approbatur suoritukset. pakolliset Haetaanko kannasta pakollisten vai valinnaisten kurssien opintoviikot (totuusarvo). Vaikka seminaarit ovatkin tutkintovaatimuksissa pakollisia, niin yksikään seminaari itsessään ei ole pakollinen. osa Merkkijono, jolla kerrotaan metodille mitä laudatur-kursseja haetaan (suunta,linja,semin). Palauttaa kurssien tiedot ArrayList[]:nä, jossa yksi ArrayList sisältää solut: kurssikoodi, nimi_suomi, opintoviikot, hyvaksymis_pvm ja arvosana. haesuunnitellut private java.util.arraylist[] haesuunnitellut

41 ( java.lang.string taso, boolean pakolliset, java.lang.string osa ) throws java.lang.exception Metodi hakee tietokannasta valituilla parametreilla opiskelijan suunnittelemien kurssien tiedot. taso Yksi kirjain haettavien kurssien oppimäärän tasolle (C umu tai L audatur tai S eminaari). Jos taso on C_umu, niin kannasta haetaan myös A_pprobaturin suunnitellut (turhaa, mutta ei haittaakaan). pakolliset Haetaanko kannasta pakollisten vai valinnaisten kurssien opintoviikot (totuusarvo). Vaikka seminaarit ovatkin tutkintovaatimuksissa pakollisia, niin yksikään seminaari itsessään ei ole pakollinen. osa Merkkijono, jolla kerrotaan metodille mitä laudatur-kursseja haetaan (suunta,linja,semin). Palauttaa kurssien tiedot ArrayList[]:nä, jossa yksi ArrayList sisältää solut: kurssikoodi, nimi_suomi, opintoviikot ja alku_pvm. 36 haesuuntautuminenlinjalle private java.lang.string haesuuntautuminenlinjalle( java.lang.string linja ) throws java.lang.exception Metodi hakee tietokannasta parametrina annetun erikoistumislinjan suuntautumisvaihtoehdon. Palauttaa suuntautumisvaihtoehdon id:n String:nä tai null, jos haulla ei löytynyt suuntautumisvaihtoehtoa. haesuuntautumiset private java.util.arraylist[] haesuuntautumiset( java.lang.string vuodelle ) throws java.lang.exception Metodi hakee tietokannasta valitulla parametrilla tietyn tutkintovaatimusvuoden suuntautumisvaihtoehtojen tiedot.

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita. Arkkitehtuurikuvaus Käytössä olevat java-luokat: Kansio: /WEB_INF/classes/ - käännetyt luokat Kansio: /WEB_INF/src/ - lähdekoodi custom_pojos: Kurssi.java Java-luokka, jonka sisältö vastaa tietokannassa

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu JÄRJESTELMÄN KÄYTTÖOHJE LiKe Liiketoiminnan kehityksen tukiprojekti Versio: 1.1 Tila: hyväksytty Päivämäärä: 13.2.2001

Lisätiedot

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta.

Myös opettajaksi aikova voi suorittaa LuK-tutkinnon, mutta sillä ei saa opettajan kelpoisuutta. Tietojenkäsittelytiede Tutkintovaatimukset Perustutkinnot LUONNONTIETEIDEN KANDIDAATIN TUTKINTO (VÄHINTÄÄN 120 OV) 1. Tietojenkäsittelytieteen cum laude approbatur -oppimäärä (vähintään 55 ov) ja kypsyysnäyte

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public) Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä

Lisätiedot

7. Näytölle tulostaminen 7.1

7. Näytölle tulostaminen 7.1 7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

Lisätiedot

Luokan sisällä on lista

Luokan sisällä on lista 1 Luokan sisällä on lista Luokan sisällä lista Listan sisältävä luokka Konstruktorit get-metodi Lista muissa metodeissa addxx-metodi Yksinkertainen pääohjelma Kertauksen List-luokan metodeja 1 Luokan sisällä

Lisätiedot

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Tehtävä 1: Metodit, listat, alkuluvut (4p) Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Alkuluvut ovat lukuja, jotka ovat suurempia kuin yksi ja jotka ovat jaollisia

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely

Lisätiedot

16. Javan omat luokat 16.1

16. Javan omat luokat 16.1 16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

20. Javan omat luokat 20.1

20. Javan omat luokat 20.1 20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Luokat ja oliot. Ville Sundberg

Luokat ja oliot. Ville Sundberg Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.

Lisätiedot

Java-API, rajapinnat, poikkeukset, UML,...

Java-API, rajapinnat, poikkeukset, UML,... Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004 Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;

Lisätiedot

Opintojensuunnittelujärjestelmä Vaatimusanalyysi

Opintojensuunnittelujärjestelmä Vaatimusanalyysi Opintojensuunnittelujärjestelmä Vaatimusanalyysi Teemu Ajalin Lauri Jokipii Anu Määttä Juho Peltonen Nuutti Rintala Mikko Suonio Helsinki 11. helmikuuta 2003 Ohjelmistotuotantoprojekti Vaatimusanalyysi

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

Ohjelmoinnin perusteet, kurssikoe

Ohjelmoinnin perusteet, kurssikoe Ohjelmoinnin perusteet, kurssikoe 18.6.2014 Kirjoita jokaiseen konseptiin kurssin nimi, kokeen päivämäärä, nimi, TMC-tunnus ja opiskelijanumero tai henkilötunnus. Vastaukset palautetaan tehtäväkohtaisiin

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) 1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1 17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Ohjelmointi 2, välikoe

Ohjelmointi 2, välikoe Ohjelmointi 2, välikoe 21.3.2014 Vastaa neljään tehtävään kuudesta siten, että jokainen tehtävä tulee omalle konseptilleen. Mikäli vastaat useampaan kuin neljään tehtävään, pisteiden laskussa huomioidaan

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä keskustelualuetta simuloiva olioperustainen ohjelma (Simple Oope Board, S.O.B). Linkitetystä listasta perittyä omaa listaa käytetään muun muassa

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Hakemistojen sisällöt säilötään linkitetyille listalle.

Hakemistojen sisällöt säilötään linkitetyille listalle. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ

Lisätiedot

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöteja tulostusvirtojen avulla. Tiedostoja voidaan

Lisätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki Tehtävä 1 Koherentti selitys Koherentti esimerkki ½p ½p Tehtävä 2 Täysiin pisteisiin edellytetään pelaajien tulostamista esimerkin järjestyksessä. Jos ohjelmasi tulostaa pelaajat jossain muussa järjestyksessä,

Lisätiedot

Poikkeustenkäsittely

Poikkeustenkäsittely 1 Poikkeustenkäsittely Mitä poikkeustenkäsittely tarkoittaa? Poikkeuksen käsitteleminen Poikkeusluokkien hierarkia Poikkeuksen heittäminen 1 Mitä poikkeustenkäsittely tarkoittaa? Poikkeus (Exception) on

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Mikä yhteyssuhde on?

Mikä yhteyssuhde on? 1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String

Lisätiedot

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................

Lisätiedot

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja

Lisätiedot

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2

Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja voidaan

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

OS3 Vaatimusanalyysi

OS3 Vaatimusanalyysi OS3 Vaatimusanalyysi Teemu Ajalin Lauri Jokipii Anu Määttä Juho Peltonen Nuutti Rintala Mikko Suonio Helsinki 17. helmikuuta 2003 Ohjelmistotuotantoprojekti Vaatimusanalyysi HELSINGIN YLIOPISTO Tietojenkäsittelytieteen

Lisätiedot

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa(); Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio

Lisätiedot

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin. TIETOKANTA MERIKOTKIEN SEURANTAAN Käyttöohje Versiohistoria: Versio Päivämäärä Kuvaus Tekijä 1.0 11.12.2007 Ensimmäinen luonnos Janne Piippo 2.0 13.12.2007 Virallinen verio Janne Piippo HELSINGIN YLIOPISTO

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

AIKAISEMPIEN OPINTOJEN TUNNUSTAMINEN YLEISET HAKUOHJEET

AIKAISEMPIEN OPINTOJEN TUNNUSTAMINEN YLEISET HAKUOHJEET 1 AIKAISEMPIEN OPINTOJEN TUNNUSTAMINEN YLEISET HAKUOHJEET Opiskelija täyttää itse hakemansa opintojakson tiedot eli mitä opintojaksoa tai opintojakson osaa hän hakee tunnustettavaksi. Samoin opiskelija

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance) Sisällys JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys Periytyminen (inheritance) Näkyvyys (visibility) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E. Hyvönen: Java Osa

Lisätiedot

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. 1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1 17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 26. Tiedostot 26.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja

Lisätiedot

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma. Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

HYVÄKSILUKEMISEN TEKEMINEN ILMAN ENNAKKOPÄÄTÖSTÄ

HYVÄKSILUKEMISEN TEKEMINEN ILMAN ENNAKKOPÄÄTÖSTÄ HYVÄKSILUKEMISEN TEKEMINEN ILMAN ENNAKKOPÄÄTÖSTÄ Valitse Opintojen rekisteröinti -valikosta komento. Ikkuna aukeaa. Voit valita Näytettävät opinnot - osiosta, mitkä opiskelijan suorituksista näkyvät aktiivisina

Lisätiedot

Opintokohteiden muokkaus

Opintokohteiden muokkaus 1 Opintokohteiden muokkaus Näiden ohjeiden avulla hahmottuu kuinka opintokohteita voidaan muokata Opinto-oppaassa. Ohje on suunnattu käyttäjille, joilla on WebOodiin OpasMuokkaaja-oikeudet. WebOodin käyttölupia

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Poikkeukset Poikkeuksella tarkoitetaan yllättävää ajonaikaista tilannetta, joka

Lisätiedot

HumakPro-uudistuksia ja -parannuksia / kevät 2013:

HumakPro-uudistuksia ja -parannuksia / kevät 2013: HumakPro-uudistuksia ja -parannuksia / kevät 2013: Pikavalikon hallinnointi koskien HALLINTO-osion toimintoja: Henkilöstöllä on mahdollisuus luoda itselleen valikko josta pääsee navigoimaan suoraan tiettyyn

Lisätiedot

ehops Henkilökohtainen opintosuunnitelma

ehops Henkilökohtainen opintosuunnitelma ehops Henkilökohtainen opintosuunnitelma Hopsin tekeminen WebOodin ehops-toiminnolla KTK-tutkinto Mikä on ehops? ehops on WebOodin toiminto, jolla voit laatia sähköisen henkilökohtaisen opintosuunnitelman

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

Lisätiedot

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu

Lisätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

Kuva: Ilpo Okkonen

Kuva: Ilpo Okkonen OodiHOPS OHJAAJAN OHJE 14.2.2017 Kuva: Ilpo Okkonen OodiHOPS Oulun yliopistossa Oulun yliopiston koulutusneuvosto on päättänyt, että OodiHOPS-toiminto otetaan käyttöön vähintään aloittavilla opiskelijoilla

Lisätiedot