Ilmoittautumisten profiloija (jatkoprojekti) Ilpo2
|
|
- Jari Toivonen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 TIETOJENKÄSITTELYTIETEEN LAITOS Ohjelmistotuotantoprojekti Ilmoittautumisten profiloija (jatkoprojekti) Ilpo2 Suunnitteludokumentti 2.0 Hemminki Samuli Herranen Mikko Hinkkanen Tero Mäkelä Ari Piuva Tero Töyli Terhi
2 Ohjaaja Asiakas Sinerma Olli Taina Juha Tekninen yhteyshenkilö Taina Juha Vastuuhenkilö Verkamo Inkeri Versiohistoria Versio Päiväys Muutokset versio korjauksia korjauksia ja lisäyksiä korjauksia ja lisäyksiä pienet korjaukset korjauksia korjauksia korjauksia korjauksia ja luokkakaavioiden lisäys korjauksia lisätty liitteitä muokattu ulkoasua korjauksia lisätty lisätyt luokat korjauksia lisätty luokkakaavioselitykset korjauksia korjauksia lisätty Javadoc korjauksia, ulkonäön muokkausta, muutettu vähän versionumerointia jäädytetty versio
3 Sisältö 1 Johdanto Termit ja määritelmät Arkkitehtuurin kuvaus Yleisarkkitehtuuri Järjestelmän tekninen kuvaus Vaatimusten toteutus Luokkarakenne Model Control View IO Käyttöliittymä LIITE 1 Luokkakaaviot LIITE 2 Poistetut luokat LIITE 3 Lisätyt luokat LIITE 4 Toteutusehdotuksista poikkeavat toteutukset LIITE 5 Javadoc
4 1 Johdanto Ohjelmistotuotantoprojekti-kurssilla opiskelijat jaetaan pienryhmiin kurssille ilmoittautumisen yhteydessä annettujen taustatietojen ja ryhmätoiveiden mukaisesti. Tavoitteena ryhmäjaossa on muodostaa mahdollisimman tarkoituksenmukaisia, tasakokoisia ja täysiä ryhmiä ja toisaalta täyttää opiskelijoiden esittämiä toiveita mahdollisuuksien mukaan. Ohjelmistotuotantoprojekti-kurssilla samaan ryhmään on valittava eri tavoin suuntautuneita henkilöitä. Tällä hetkellä kurssin vastuuhenkilö tekee tämän jaottelun olemassa olevalla Ilpo-ohjelmalla. Tarkoitus on kehittää Ilpoohjelmaa versioon 2, joka helpottaa jaottelijan tehtävää entisestään. Suunnitteludokumentti esittää tulevan Ilpo2-ohjelman. 1.1 Termit ja määritelmät AWT: Javan matalan tason käyttöliittymäkirjasto, johon korkeamman tason alustariippumaton Swing perustuu. Asetustiedosto: Ohjelman käyttöasetukset sisältävä tiedosto Dialogi: Vuorovaikutteinen käyttöliittymäelementti, jonka avulla käyttäjälle annetaan tai häneltä pyydetään tietoa. Heuristiikka: Heuristiikka tarkoittaa keksimistaitoa. Näin ollen, heuristinen algoritmi on sellainen, joka saamastaan syötteestään osaa "päätellä" halutun lopputuloksen. Algoritmin tuottama lopputulos ei välttämättä ole optimaalinen, mutta se on riittävän hyvä jonkin kriteerin perusteella arvioituna. Ilmo ( Kurssi-ilmoittautumisjärjestelmä opiskelijoille. Järjestelmä on tarkoitettu tietojenkäsittelytieteen laitoksen kursseille ilmoittautumiseen. Ilmolla ilmoittaudutaan myös matematiikan kursseille, mutta sillä ei ole tämän projektin kannalta juuri mitään merkitystä. Ilmoittautujatiedosto: Tiedosto, joka pitää sisällään tiedot kurssille ilmoittautuneista opiskelijoista ja heidän antamista vastauksistaan Ilmo-järjestelmän esittämiin kysymyksiin. Ilpo: Ilpo-ryhmän keväällä 2005 tuottama ja myöhemmin Juha Tainan muokkaama ohjelma kurssi-ilmoittautumisten profilointiin Ilpo2: Ilpon pohjalta kesällä 2006 kehitettävä jatkoprojekti. JAR (Java Archive file format): JAR:n avulla voidaan pakata useita tiedostoja yhteen JAR-tiedostoon. Tyypillisesti JAR-tiedosto sisältää luokkatiedostoja sekä sovelluksiin ja sovelmiin liittyviä lisäresursseja. Järjestyskriteeri: Järjestyskriteerit ovat Ilmo-lomakkeen yksittäisiä vastauksia: esimerkiksi suuntautumislinja, kieli tai esitiedot. Kalenteri: Graafinen käyttöliittymäkomponentti, joka ilmaisee Ohjelmistotuotantoprojekti-kurssin ryhmien tapaamisajat 1
5 Kovakoodaus: Arvojen upottaminen ohjelman lähdekoodiin Kurssi: Kurssi on opintojakson ilmentymä. Kurssi määritellään erikseen kyseessä olevalle periodille, lukukaudelle ja -vuodelle. Käyttäjä: Ilpolla ja Ilpo2:lla ryhmittelyä suorittava henkilö. Lukitus: Yhden opiskelijan kiinnittäminen pysyvästi tiettyyn ryhmään siten, että opiskelija ei näy enää muissa ryhmissä. Oodi ( Opiskelun ja opetuksen tuen tietojärjestelmä. Oodista löytyvät muun muassa opiskelijoiden opintosuoritukset. Opintojakso: Opintojakso määrittelee opetettavalle aihepiirille nimen ja laajuuden sekä muut yleiset luentokerrasta riippumattomat tiedot. Opiskelija: Kurssille ilmoittautunut henkilö, jota sijoitetaan Ilpolla ryhmiin. Opiskelijanäkymä: Ohjelmaikkunan vasemmanpuoleisen osan yläosa, jossa opiskelijat esitetään valitun järjestelyperusteen mukaan ryhmiteltyinä. Opiskelijapallo: Opiskelijaa kuvaava ympyränmuotoinen graafinen elementti Parsiminen: (tässä yhteydessä) Arvojen lukeminen ohjelman syötetiedostosta Prioriteetti: Tässä dokumentissa prioriteetilla ilmaistaan vaatimusten tärkeyttä ja järjestystä jolla ne toteutetaan. Dokumentissa käytettävät prioriteetit ovat seuraavat: matala, normaali ja korkea. Ryhmittely (Ryhmiin jako): Opiskelijoiden jakaminen ryhmiin. Ryhmä: Kokonaisuus mihin Ilpo-ohjelmalla siirretään opiskelijoita. Ryhmässä on opiskelijoita ja henkilökunnan jäseniä. Ryhmälukitus: Ryhmän lukitseminen siten, että kaikki ryhmässä olevat opiskelijat eivät enää näy muissa ryhmissä. Ryhmänäkymä: Ohjelmaikkunan oikeanpuoleinen osa, jossa projektiryhmät esitetään. Sarjallistuvuus: Sarjallistuvan Java-luokan ilmentymä osaa kirjoittaa oman sisäisen tilansa muodossa, joka soveltuu esimerkiksi levylle tallentamista varten. Sisäinen tietorakenne: Oliorakenne, joka on pelkästään Ilpon ja Ilpo2:n sisäisessä käytössä ja mihin on tallennettu tietoja. 2
6 Säännöllinen lauseke: Tietyn syntaksin mukainen merkkijono, joka määrittelee joukon merkkijonoja. Tietyn säännöllisen lausekkeen määrittelemien merkkijonojen sanotaan vastaavan tätä säännöllistä lauseketta. Säännöllisiä lausekkeita voidaan käyttää esimerkiksi löytämään kaikki tiettyä säännöllistä lauseketta vastaavat merkkijonoesiintymät tekstistä. Swing: Javan korkeamman tason käyttöliittymäkomponentteja sisältävä pakkaus Tavallinen TKTL:n pöytäkone: Käyttöjärjestelmänä Linux graafisella ikkunointiympäristöllä, näyttö 1280x1024 resoluutiolla sekä vähintään 1.5 GHz suoritin ja vähintään 512Mt keskusmuistia. Tietonäkymä: Ohjelmaikkunan vasemmanpuoleisen osan alaosa, jossa esitetään tietoja esimerkiksi valituista opiskelijoista. Tilapalkki: Käyttöliittymän graafinen elementti, josta suoritetut työvaiheet käyvät ilmi. TKTL: Helsingin yliopiston Tietojenkäsittelytieteen laitos. Tulosryhmä: Järjestyskriteerin mukaisesti tehty järjestely jakaa opiskelijat tulosryhmiin. 3
7 2 Arkkitehtuurin kuvaus Tässä luvussa kuvataan ohjelman sisäistä arkkitehtuuria. Sisäiset rakenteet ovat niitä, jotka luomme tai muutamme jo olemassa olevasta Ilpo-järjestelmästä. 2.1 Yleisarkkitehtuuri Ilpo2 on jaettu pakkauksiin siten, että fi.helsinki.cs.ilpo pakkauksessa on modelluokat, fi.helsinki.cs.ilpo.view pakkauksessa on view-luokat ja fi.helsinki.fi.control pakkauksessa on control-luokat. Luokkien välisiä yhteyksiä tarkastellaan liitteessä 1. Syy jaotteluun on ohjelmiston helpompi käsiteltävyys varsinkin päivitystilanteissa. Model vastaa kaikkia ydinosia, joilla muodostetaan muun muassa Opiskelija- ja Kurssioliot. Model:n luokilla on vastuullaan kaikki looginen toiminnallisuus. View:n luokilla luodaan käyttäjälle tarjottava käyttöliittymä. Control:n luokat huolehtivat käyttöliittymän toiminnallisuudesta. Haluttaessa käyttää ohjelmaa, Control käsittelee käyttäjän syötteet. IO:n luokat käsittelevät kaikki tulostuspyynnöt. Ilpo-järjestelmästä poistetut luokat ovat liitteessä 2 ja koodiin lisätyt uudet luokat ovat listattuina liitteessä Järjestelmän tekninen kuvaus Ohjelma toimii Java-sovelluksena graafisella käyttöliittymällä terästettynä. Laitteistovaatimuksina on, että sovellus toimii tavallisessa TKTL:n pöytäkoneessa. Ohjelma toimii sekä Linux että Windows käyttöjärjestelmissä. Vaadittava Java Runtime Environment -versio on
8 3 Vaatimusten toteutus Seuraavassa on lueteltu joidenkin vaatimusten toteutusehdotuksia. Numerointi viittaa määrittelydokumentin vastaaviin kohtiin. Ehdotukset ovat alustavia, eivätkä välttämättä vastaa lopullista toteutusta. Ehdotuksista poikkeavat toteutukset on lueteltu liitteessä 4. Vaatimus Tietorakenteet on alustettava uudelleen uutta kurssia luotaessa Luodaan fi.helsinki.cs.ilpo.kurssi-luokan uusi ilmentymä ja renderöidään käyttöliittymä uudelleen. Vaatimus Tallenna-toiminto tulee tehdä Luokan Ilpo pitkähkössä konstruktorissa luodaan menuun "Tallenna"-valinta. Siitä voi ottaa mallia. Itse tallennus tehdään tällä hetkellä luokassa fi.helsinki.cs.ilpo.control:kurssintallennus. Vaatimus Ohjelman asetuksia on pystyttävä muuttamaan asetustiedostosta Luodaan luokka io.asetustiedostolukija, joka lukee ja käsittelee xml-muotoisen asetustiedoston. Asetustiedostosta poimitut vastaukset tallennetaan staattisiin muuttujiin luokan sisälle. Niitä voidaan kysellä aksessorimetodeilla. Luokka sisältää myös järkevät oletusarvot kaikille asetuksille, joille sellaisten tallentaminen on järkevää. Vaatimus Työvaiheiden tulee näkyä käyttäjälle Menujen sisältöä pitää muuttaa, kun työvaihetilanne muuttuu. Joko menujen sisältöä muutetaan samalla kun tehty työvaihe kirjataan tai sitten niitä muutetaan myöhemmin. Jos niitä muutetaan myöhemmin, niin tehdään joku tarkistamenut() tai vastaava metodi. Sitä kutsutaan joko aina jossakin tietyssä kohdassa tai sitten työvaiheita tehdessä sen ajaminen skeduloidaan myöhemmin tehtäväksi (javax.swing.swingutilities.invokelater()). Vaatimus Ryhmätoiveen on näyttävä opiskelijapallossa Luokkaa Pallo muutetaan siten, että se piirtää palloon liitetyn opiskelijan tietojen perusteella opiskelijan ensimmäisen ryhmätoiveen pallon sisään. Kaikki symbolin '1' tai '+' sisältäneet pallokuvat poistetaan. Alkuperäisessä Ilpossa jokainen pallokuva on oma kuvatiedostonsa (esim. musta pallo, valittu musta pallo, symbolin '+' sisältävä musta pallo, symbolin '+' sisältävä valittu musta pallo, punainen pallo jne...) Kuvatiedostojen määrää vähennetään, ja kuvat tullaan piirtämään toistensa päälle kerroksittain. Ainoastaan valituista palloista jää edelleen omat kuvatiedostonsa. Pallon sisään piirrettävät numerot 0-9 ovat omina kuvatiedostoinaan. 10 ja suuremmat luvut muodostetaan yhdistelemällä kuvatiedostoja. Vaatimus Usean opiskelijan yhtäaikainen siirtäminen Lisätään uusi luokka SiirtyvatKomponentit, joka sisältää tietoa siirtyvistä komponenteista (pallot, ryhmät, aihelaatikot). 5
9 Vaatimus Opiskelijoita tulee pystyä lisäämään kurssin perustamisen jälkeen Toteutetaan kurssi-menussa oleva "lisää opiskelija". Kurssi-luokasta löytyy Collection opiskelijat. Ilpo-luokassa oleva metodi lisaaopiskelija() lisää opiskelijan tietorakenteisiin, ja KurssiLisaaOpiskelija toimii kutsuvana luokkana. Luokan sisällä lisätään opiskelijan ryhmätoiveet ja haetaan opintosuoritukset. Lopuksi lisätään opiskelijapallo opiskelijanäkymään. Vaatimus Ryhmien tietojen käsittelyn tulee olla mahdollista Lisätään JInternalFrameen kontekstimenu ja tehdään dialogi. Luokka on nimeltään IlpoRyhma. Päivitetään ryhmän RyhmaNakyma mikäli se on tarpeellista. RyhmaNakyma on siis ryhmän graafinen esitys. Vaatimus Esitiedot tulee varmistaa automaattisesti Poistetaan UupuvaOpintojakso-luokka ja luetaan esitietovaatimukset XML-tiedostosta. Jonkin verran asioita pitää kuitenkin pitää koodissa kovakoodattuina. Vaatimus Projektiaiheita tulee pystyä lisäämään kurssin perustamisen jälkeen Lisätään aiheen lisääminen kurssimenuun ja päivitetään "Aiheet" -tab. Kurssi-luokan aihesort-olioon pitänee myös koskea. Vaatimus Opiskelijoita tulee pystyä poistamaan Lisätään kurssi-menuun "Poista opiskelija" ja toteutetaan poistodialogi. Opiskelija pitää poistaa Kurssit, IlpoRyhmä ja Vastausvaihtoehto-olioista. Lisäksi opiskelijaa kuvaava opiskelijapallo poistetaan opiskelijanäkymästä ja tarvittaessa myös ryhmänäkymästä. Mikäli poistettava pallo oli valittuna, päivitetään tietonäkymän sisältö. Vaatimus Ilmoittautumisjärjestelmän kysymykset tulee hakea asetustiedostosta Luokka control.kurssilisaaoppilaat pyytää ne io.asetustiedostolukijalta käsitellessään luokan io.ilmoittautujatiedostolukija antamat ilmoittautujatiedot. Vaatimus Heuristiikka Opiskelijoiden jakamisen algoritmi toteutetaan heuristiikan omien ryhmä- ja opiskelijaluokkien sisällä. Vasta valmista jakoa sovelletaan Ilpon ryhmä- ja opiskelijaluokkiin. Ensimmäisenä heuristiikka selvittää järjestelmään kirjatut opiskelijat, jotka eivät ole vielä missään ryhmässä. Saaduista opiskelijoista tehdään heuristiikan opiskelijaluokan, HOpiskelija, ilmentymiä. Seuraavaksi selvitetään järjestelmän ryhmänäkymään luodut ryhmät ja tehdään näistä heuristiikan ryhmäluokan, HRyhmä, ilmentymiä. Mikäli ryhmänäkymässä ei ole yhtään ryhmää, luodaan ilmentymät kaikista järjestelmään kirjatuista aiheista. 6
10 Jokaisesta luodusta HOpiskelija ilmentymästä luodaan viitteet kolmeen opiskelijan ryhmätoiveiden perusteella saatuun HRyhmään. Mikäli opiskelijalla ei ole yhtään ryhmätoivetta, tai viitteiden tekeminen ei jostain syystä onnistu, luodaan HOpiskelijasta viitteet jokaiseen ryhmään. Saadut viitteet järjestetään kekoon HOpiskelijan arvon mukaan. Arvo lasketaan opiskelijan ilmo-vastauksista HRyhmä-luokan sisällä ja se on erillinen jokaiselle ryhmälle. Näin saadaan luotua jokaiselle Hryhmälle keko HRyhmään pyrkiviä HOpiskeljoita, järjestettynä HOpiskelijan arvon mukaan siten että korkeimman arvon omaava HOpiskelija on keon päällimmäisenä. Jokaisen HRyhmän keon päällimmäistä HOpiskelijaa verrataan keskenään ja näistä suuriman arvon omaava sijoitetaan sen viittaamaan ryhmään. Mikäli HOpiskelija on kertautuvat, eli se on jo sijoitettu johonkin ryhmään, poistetaan HOpiskelija keosta ja aloitetaan suoraan uusi vertailu. Kun jostain keosta on saatu lisättyä HOpiskelija johonkin HRyhmään, keko lukitaan ja aloitetaan uusi vertailu. Lukitusta keosta ei valita pyrkijää, ellei muut ryhmät ole joko tyhjiä tai lukittuja. Kun kaikki keot ovat tulleet lukituiksi, poistetaan lukot. Jokaisesta keosta valitaan siis yksi pyrkyri jokaisella kierroksella. Jakoa jatketaan, kunnes kaikki HOpiskelijat on jaettu HRyhmiin. Kun heuristiikka on tehnyt tehtävänsä, tehdään Ilpo2:ssa tarvittavat ryhmien luomiset ja jaetaan opiskelijat ryhmiin heuristiikan tuloksen mukaisesti. Heuristiikka määrittelee opiskelijan arvon seuraavasti: 1. Ohjelmointikokemuksesta (1-6): Kun ryhmän kokemus on alle 15: arvo +(kokemus-1)^2 *1 Kun ryhmän kokemus on yli 20, mutta alle 25: arvo +(kokemus-1)^2 *0.5 Kun ryhmän kokemus on yli 25: arvo +(kokemus-1)^2* Työtilanteesta (1-8) Kun ryhmän työmäärä on alle 10: ei pisteitä Kun ryhmän työmäärä on yli 10, mutta alle 20: arvo -(työtilanne*1.5) Kun ryhmän työmäärä on yli 20: arvo -(työtilanne*3) 3. Ryhmätoiveesta (1-3) Ensisijainen ryhmätoive: +15 Toinen ryhmätoive: +8 Kolmas ryhmätoive: Ohtukiinnostuksesta (1-7) Jos ryhmässä ei ole vielä samasta aiheesta kiinnostunutta: Ryhmätyöstä (1-6) Jokaisesta 1p. erosta opiskelijan ja jonkin toisen opiskelijan ryhmätoiveissa: -2. 7
11 Vaatimus Hakutoimintoa pitää parantaa Hakutoimintoa parannetaan siten, että käyttäjä voi valita ne hakukentät joihin haku kohdistetaan. Hakutoiminnossa voidaan käyttää vertailuoperaattoreita. Erikseen hakukenttään ei tarvitse syöttää mitään kirjainta indikoimaan kenttää johon vertailu kohdistetaan. Suoritettaessa hakua ilmaistaan boolean-muuttujilla ne kentät joihin haku kohdistetaan. Vaatimus Ohjelman tulee tulostaa raportteja Ohjelma tulostaa seuraavat raportit vaatimusmäärittelyssä kuvatun kaltaisina: ryhmäjako oppilaille, ryhmäjako ohjaajille, ilmoittautuneet, puuttuvat sopimukset ja puutteelliset esitiedot. Näistä kaikki muut raportit ovat TXT-muotoisia paitsi ryhmäjako oppilaille, joka on HTML-muotoinen. Vaatimus Tallennusformaatin on oltava tekstipohjainen Etsitään javalle XML:ää serialisointiin käyttävä kirjasto, jonka lisenssi on GPLyhteensopiva. Jos sellaista ei löydy niin sitten täytyy tehdä jotain itse, mutta Effective XML -kirjassa on tästä esimerkki. Vaatimus Ohjelman sen hetkinen tilanne on oltava tallennettavissa, vaikka sovellus kaatuisikin Laitetaan Ilpo.main(String[]):n sieppaamaan Exceptionin alaluokat ja ja catchiin laitetaan datan tallettaminen johonkin tiedostoon, jolla on eri nimi kuin työtiedostolla. Kun Ilpo käynnistetään seuraavan kerran niin ohjelma huomaa, että crash-kopio olemassa. Vaatimus Raportit tulee tulostaa aakkosjärjestykseen Tämä toteutetaan siten, että IlpoRyhmä-collectionista luetaan raporttiin haluttavat tiedot String-taulukkoon, joka järjestetään ja tulostetaan raporttiin. Vaatimus Tietonäkymä tulee lajitella aakkosjärjestykseen Järjestämätön opiskelijalista järjestetään ennen tulostusta luokassa view.henkilotietosolumonikko. Vaatimus Koodin on oltava siistiä ja ylläpidettävää Ilpo-luokan erittäin pitkä konstruktori pienennetään hallittaviin private-metodeihin ja Ilpoon lisätään aliluokat, jotka perivät javax.swing.jmenubarin ja javax.swing.jtoolbarin. Lisäksi poistetaan turhia luokkia, siistitään import-lauseet ja poistetaan käyttämättömiä muuttujia. Vaatimus Ohjelmassa ei saa olla turhia toimintoja Poistetaan valikoista toiminnot, joita ei ole toteutettu tai jotka ovat tarpeettomia Vaatimus Ilmoittautujatiedoston parsijan korjaus [Kysymysnumeroiden yli 9 ymmärtäminen ja virheilmoitus tiedoston virheistä] Tainan parseri kirjoitetaan kokonaan uudelleen. Toiminnallisuus jaetaan kahteen eri luokkaan: io.ilmoittautujatiedostolukija ja control.kurssilisaaoppilaat. Näistä ensimmäinen lukee ja analysoi ilmoittautujatiedoston jälkimmäisen pyynnöstä ja välittää tiedot takaisin sille. 8
12 Ylimääräinen vaatimus: Opiskelijapallot näkyviin heti kun mahdollista Ilpo-luokan tekemä käyttöliittymäalustus pilkotaan pienempiin osiin, joita kutsutaan asianmukaisista paikoista. Metodin Ilpo.alustaKurssinKali() kutsu siirretään pois nykyisestä paikastaan. 9
13 4 Luokkarakenne Tässä luvussa kuvataan ohjelmiston luokkarakenne. Luokat on jaoteltu pakkauksiin ja pakkauksia on luotu neljä kappaletta. Luokkaryhmät, joita pakkaukset pitävät sisällään, ovat nimeltään Model, Control, View ja IO. Kaikki ryhmät käsitellään seuraavissa aliluvuissa. Tarkempi kuvaus jokaisesta pakkauksesta löytyy APIkirjastosta, joka on liitteessä 5 Javadoc muodossa. 4.1 Model Model-luokat sijaitsevat fi.helsinki.cs.ilpo pakkauksessa. Kyseessä on järjestelmän sisäiseen tietorakenteeseen liittyvät luokat, joissa on myös kaikki niihin liittyvä looginen toiminnallisuus. Kurssi ja Opiskelija luokat ovat ne millä pääsääntöisesti operoidaan. Niillä muodostetaan Kurssi, - Ilporyhmä, - ja Opiskelija olioita. Opiskelija-olioita sijoitellaan Ilporyhmä-olioihin. Muut luokat ovat avusteisia näille luokille. Ne liittyvät kursseihin, opiskelijoihin ja ryhmiin kuuluvien tietojen käsittelyyn. 4.2 Control Control- luokat sijaitsevat fi.helsinki.cs.ilpo.control pakkauksessa. Kyseessä on käyttäjän syötteiden prosessoinnin hoitavat luokat. 4.3 View View-luokat sijaitsevat fi.helsinki.cs.ilpo.view pakkauksessa. Kyseessä on graafisen käyttöliittymän komponentit sisältävät luokat. View-luokat muodostuvat kahdenlaisista luokista: valmiista Swing-komponenteista perittävistä luokista sekä puhtaasti grafiikalla tehtävistä luokista. 4.4 IO Tiedostoja käsittelevät luokat ovat omassa pakkauksessaan fi.helsinki.cs.ilpo.io. Pakkauksessa on luokat tulostiedostojen kirjoitusta vasten sekä työvälineet, joilla keskeneräisiä ryhmäjakoja voidaan tallentaa ja ladata. 10
14 5 Käyttöliittymä Tässä dokumentissa käsitellään käyttöliittymän toteutusta. Käyttöliittymä on suurilta osin jo toteutettu alkuperäisen Ilpon toimesta. Ilpo2 keskittyy toteuttamaan uudet toiminnot mahdollisimman käyttäjäystävällisesti ja siistii Ilpoon jääneitä epäjohdonmukaisuuksia ja turhia toimintoja. Käyttöliittymän fyysinen rakenne koostuu kolmesta osasta: vasemmalla ylhäällä olevasta opiskelijanäkymästä, vasemmalla alhaalla olevasta tietonäkymästä ja oikealla olevasta ryhmänäkymästä. Opiskelijanäkymä koostuu kolmesta tab-lehdestä: opiskelijat, aiheet ja rajausehdot. ja. Opiskelijanäkymä sisältää opiskelijapalloja, ja tässä pysytään Ilpon menetelmässä toteuttaa osio kokonaan grafiikalla. Tietonäkymässä on joko tarkkaa tietoa yhdestä valitusta opiskelijasta tai yleisempää tietoa useasta valitusta opiskelijasta. Nämä on toteutettu swing-komponenteilla. Ryhmänäkymä on toteutettu kokonaan grafiikalla. Se sisältää ryhmiä sekä opiskelijapalloja ja aiheita kuvaavia komponentteja. Käyttöliittymäsuunnittelun pohjalla on erityisesti alkuperäinen Ilpo ja tämän tulkinta model-view-control (MVC) ratkaisusta. MVC on suunnittelumalli, jonka idea on jakaa järjestelmän toiminnallisuus kolmeen osaan: model-osassa on järjestelmän looginen toiminnallisuus (sekä tietosisältö), view-osassa on käyttäjälle esitettävä osa (eli graafisen käyttöliittymän komponentit, kuten napit ja muut napiskuukkelit) ja control-osassa on käyttäjän syötteiden prosessointi. 11
15 LIITE 1 Luokkakaaviot Ilpo2 luokkakaavioissa kuvataan vain ohjelman tärkeimmät luokat sillä ohjelman kuvaaminen täydellisesti, niin että luokkakaaviot olisivat vielä ohjelmaa kuvaavia, on mahdotonta. 1/3 1 Ilpo IlpoToolbar IlpoMenuBar OpiskelijaSolu RyhmaSolu * * 1 1 ActionListener SoluMouseListener OpiskelijaSortSoluMouseListener RyhmaSoluMouseListener Ilpo2:n käyttöliittymä kootaan Ilpo-luokassa. Sen aliluokat IlpoToolBar ja IlpoMenuBar kokoavat valikot ja työkalupalkin yhteen ja kytkevät niihin Actionit. Hiiren liikkeitä OpiskelijaSolussa ja RyhmäSolussa kuuntelevat OpiskelijaSortSoluMouseListener ja RyhmaSoluMouseListener yhdessä SoluMouseListenerin kanssa.
16 2/3 Ilpo 1 1 Kurssi 1 * IlpoRyhma 1 1 * Opiskelija * Ilpo-luokka kokoaa Ilpon tärkeimmät kontrolliluokat Kurssi, IlpoRyhma ja Opiskelija yhteen.
17 3/3 Ilpo OpiskelijaSortSolu 1 RyhmaSolu * * ValintaOsa SortOsa NakymaKomponentti Pallo NakymaRyhma KopioituvaPallo SiirtyvaPallo NakymaVanhaRyhma NakymaUusiRyhma OpiskelijaSortsolu toteuttaa Ilpo2:n opiskelijanäkymän ja Ryhmäsolu puolestaan ryhmänäkymän. OpiskelijaSortSolun ValintaOsa näyttää tiedot yhdestä tai useammasta opiskelijasta. RyhmaSoluun sijoitetaan opiskelijaryhmät NakymaKomponentin avulla. Nakymakomponentin perivät luokat Pallo, KopioituvaPallo, SiirtyvaPallo, NakymaRyhma, NakymaVanhaRyhma ja NakymaUusiRyhma.
18 LIITE 2 Poistetut luokat Listassa on lueteltuina kaikki ne luokat, jotka on poistettu alkuperäisestä Ilposta. AboutIkkuna AiheBoksiMouseListener AiheLaatikko AutentikointiIkkuna Henkilokuntalainen HKBoxiMouseListener HKLaatikko HKSortSolu HTMLKirjoitin HTMLKirjoitus HTMLKirjoitusikkuna IlmoRyhma IsoAiheBoksi IsoHKBoxi KeskeneraistenRyhmienKasittelija KurssiLueRyhmat KurssinLatausikkuna KurssinTallennusikkuna Kurssintuonti KurssinTuontiikkuna KurssinVienti KurssiUusiOhjaaja LisaaHenkilokuntalainenDialog LueOppilaatDialog LueRyhmatDialog OpiskelijanumeroTulostin PaivitaTiedot Parseri PieniHKBoxi Puukottaja RaporttiHenkilotunnukset SekoitaPuolukat Sivuaine SorttausPerusteSekoita SuoritettuSivuainekurssi TarkistaTallennusehdot TestHenkilokuntalainen TestIlmoRyhma TestIlpoRyhma TestKurssiLisaaOpintosuoritukset TestKurssiLisaaOppilaat TestKysymys TestOpintojakso TestOpiskelija TestOpiskelijaSortSolu TestSuoritettuOpintojakso TestUupuvaOpintojakso TestVapaakysymys TestVapaavastaus TestVastausvaihtoehto Tiedostokirjoittaja Tietokantakyselija Tietokantayhteys UupuvaOpintojakso Vapaakysymys
19 LIITE 3 Lisätyt luokat Listassa on lueteltuina kaikki ne luokat, jotka ovat uusia lisäyksiä Ilpo2:en AiheSortSoluMouseListener ApuDialogeja AsetustiedostoLukija AsetustiedostoLukijaTest EsitietojenTarkastaja FileUtilities Heuristiikka HeuristiikkaTest IlmoittautujatiedostoLukija IlmoOpiskelija IlpoGlassPane KurssiLueAiheet KurssinLatausDialog KurssinTallennusDialog KurssiPoistaOpiskelija LisaaAiheDialog LueAiheetDialog LueOpiskelijatDialog PoistaOpiskelijaDialog ProjektiAihe RajausSortSolu RaporttiPuutteellisetEsitiedot RaporttiPuuttuvatSopimukset SiirtyvatKomponentit SoluMouseListener TiedostonKasittelyVirhe
20 LIITE 4 Toteutusehdotuksista poikkeavat toteutukset Vaatimus Esitiedot tulee varmistaa automaattisesti XML-pohjainen toteutus osoittautui tarpeettoman monimutkaiseksi ja esitiedot tarkistetaan nyt kovakoodatusti luokassa fi.helsinki.cs.ilpo.control.esitietojentarkastaja.
21 LIITE 5 Javadoc Tässä liitteessä Ilpo2 luokkien Javadoc:t ovat järjestettyinä pakkauksittain. Täydellinen Javadoc on tallennettu ohjelman CD:lle HTML-muodossa. 1. Pakkaus fi.helsinki.cs.ilpo Luokat Ilpo IlpoRyhma Kurssi Kysymys Opintojakso Opiskelija ProjektiAihe SuoritettuOpintojakso UupuvaOpintojakso Vapaavastaus Vastausvaihtoehto Ilpo-ohjelmiston graafisen ja rakenteellisen puolen ydin. Ilpon sisäisen ryhmäjaon ryhmät. Järjestelmän kannalta keskeinen tietorakenne, johon liittyy kaikki yhden kurssin ryhmittelyn kannalta olennainen tieto. Ilmon monivalintakysymys ilpossa. TKTL:n kurssi, jonka opiskelija on saattanut suorittaa. Edustaa yhtä kurssille ilmoittautunutta opiskelijaa. Yhtä projektiaihetta kuvaava luokka. Yhdistää opiskelijan ja tämän suorittaman tktl:n opintojakson toisiinsa. Kurssin esitietoihin kuuluva opintojakso, jota opiskelija ei ole suorittanut. Opiskelijan vastaus vapaakysymykseen. Vastausvaihtoehto sellaisen kysymyksen, johon on valmiit vastausvaihtoehdot.
22 1.1 Luokka Ilpo Kuvaus public class Ilpo extends javax.swing.jframe Ilpo-ohjelmiston graafisen ja rakenteellisen puolen ydin. Ilpo-luokka toimii model- ja viewosat yhdistävänä komponenttina Konstruktorien tiedot public Ilpo() Konstruktorin ajamisen jälkeen, on ilpon graafinen puoli alustettu, jolloin tarvittava toiminnallisuus kurssien tai kurssijärjestelyjen suorittamiseen on kunnossa. Konstruktori huolehtii myös autentikoinnista Metodien tiedot annahakuehtonimi public boolean annahakuehtonimi() annahakuehtohetu public boolean annahakuehtohetu() annahakuehtoopnro public boolean annahakuehtoopnro() annahakuehto public boolean annahakuehto () annahakuehtopaaaine public boolean annahakuehtopaaaine() annahakuehtokayttajatunnus public boolean annahakuehtokayttajatunnus() annahakuehtoopkaikki public boolean annahakuehtoopkaikki() annahakuehtooptktl public boolean annahakuehtooptktl() annahakuehtoika public boolean annahakuehtoika() annahakuehtosukupuoli public boolean annahakuehtosukupuoli() annahakuehtoaloitusvuosi public boolean annahakuehtoaloitusvuosi() enabloiryhmajakooppilaille public void enabloiryhmajakooppilaille()
23 enabloiryhmajakoohjaajille public void enabloiryhmajakoohjaajille() enabloiilmoittautuneet public void enabloiilmoittautuneet() enabloipuuttuvatsopimukset public void enabloipuuttuvatsopimukset() enabloipuutteellisetesitiedot public void enabloipuutteellisetesitiedot() alustakurssinkali public void alustakurssinkali() Kutsuttava uutta kurssia ladattaessa grafiikan luomiseksi. Siis kutsutaan sekä uuden kurssin haussa että vanhan ryhmittelyn tallennuksessa. lisaaopiskelija public void lisaaopiskelija(opiskelija o) lisaaprojektiaihe public void lisaaprojektiaihe(projektiaihe aihe) annaaiheidenlukum public int annaaiheidenlukum() asetajarjperusteetvalikkoon public void asetajarjperusteetvalikkoon() Asettaa järjestelyperusteet valikkoon. annakurssi public Kurssi annakurssi() Palauttaa kurssi-olion, joka on järjestelyn alaisena. Järjesteltävä kurssi. annaanimaatiosaie public AnimaatioSaie annaanimaatiosaie() Palauttaa ikkunoiden animoinnista huolehtivan animaatio-säikeen. AnimaatioSaie, joka animoi ikkunat. annaglasspane public java.awt.component annaglasspane() Palauttaa Ilpon JFramen GlassPanen. GlassPane. annaaihesortsolu public AiheSortSolu annaaihesortsolu() Palauttaa AiheSortSolun. AiheSortSolu.
24 annasolukuuntelija public SoluMouseListener annasolukuuntelija() poistavalinnat public void poistavalinnat() Poistaa kaikki opiskelijat valittujen opiskelijoiden listalta. asetavalittu public void asetavalittu(opiskelija opiskelija) Poistaa kaikki opiskelijat valittujen listalta ja asettaa annetun opiskelijan valituksi. opiskelija - Opiskelija, joka asetetaan ainoaksi valituksi. lisaavalittu public void lisaavalittu(opiskelija opiskelija) Lisää annetun opiskelijan valittujen listalle poistamatta aiemmin valittuina olleiden opiskelijoiden valintaa. opiskelija - Opiskelija, joka lisätään valituksi. setkurssi public void setkurssi(kurssi kurssi) Asettaa järjesteltävän kurssin. kurssi - Uusi, asetettava kurssi. tuhoakurssi public void tuhoakurssi() Kutsuttava mikäli jokin kurssi on olemassa, ja silti tuodaan uusi kurssi. Tällöin tietorakenne ja kaikki järjestelyyn liitettävät käyttöliittymäelementit tuhotaan. annaryhmasolu public RyhmaSolu annaryhmasolu() Palautta RyhmaSolun. RyhmaSolu. annasortsolu public OpiskelijaSortSolu annasortsolu() Palauttaa SortSolun. SortSolu. annaasetustiedosto public static java.lang.string annaasetustiedosto() Antaa asetustiedosto ja alustaa asetushakemiston hakemistorakenteen jos sitä ei ole. Asetustiedoston nimi polkuineen.
25 annapoikkeustalletustiedosto public static java.lang.string annapoikkeustalletustiedosto() main public static void main(java.lang.string[] args) poistaopiskelija public void poistaopiskelija(opiskelija o) Hoitaa poistettavan opiskelijan tietojen poistot kälistä. 1.2 Luokka IlpoRyhma Kuvaus public class IlpoRyhma extends java.lang.object Ilpon sisäisen ryhmäjaon ryhmät Konstruktorien tiedot IlpoRyhma public IlpoRyhma() Luo uuden IlpoRyhma-olion Metodien tiedot annanimi public java.lang.string annanimi() Palauttaa ryhmälle asetetun nimen. the value of nimi asetanimi public void asetanimi(java.lang.string uusinimi) Set the value of nimi lukittu public boolean lukittu() Jos ryhmä on lukossa. true - jos ryhmä on lukossa. lukitse public void lukitse() Asettaa IlpoRyhma-olion lukituksi. avaa public void avaa() Avaa IlpoRyhma-olion lukituksen. poistaprojektiaihe public void poistaprojektiaihe() Poistaa viitteen ProjektiAihe-olioon ja ProjektiAihe-oliossa olevan viitteen IlpoRyhma-olioon (jonka pitäisi olla tämä).
26 annaprojektiaihe public ProjektiAihe annaprojektiaihe() Palauttaa kannassa olevan ryhmän, joka kyseiseen ryhmään on liitetty. ProjektiAihe, joka on liitetty kyseiseen ryhmään. annaopiskelijat public java.util.linkedlist<opiskelija> annaopiskelijat() Palauttaa arvonaan ilporyhma:ssa olevat opiskelijat Opiskelija-oliota linkitetyssä listassa. voidaanpoistaa public boolean voidaanpoistaa() Palauttaa true, mikäli ryhmä ja kaikki sen opiskelijat ovat lukitsematta. liikaaopiskelijoita public boolean liikaaopiskelijoita() True, mikäli ryhmään on sijoitettu enemmän opiskelijoita kuin.kurssitiedostossa on määritelty siihen mahtuvaksi. liianvahanopiskelijoita public boolean liianvahanopiskelijoita() ture, mikäli ryhmässä on vähemmän opiskelijoita kuin.kurssi-tiedostossa on määritelty siihen tarvittavaksi lisaaopiskelija public boolean lisaaopiskelija(opiskelija lisattava) Lisää opiskelijan Ilporyhma-olioon, mikäli opiskelija ei ole jo valmiiksi kyseisessä ryhmässä. Lisäksi lisää opiskelijan ilporyhmä tietorakenteeseen itsensä. Opiskelijaa, joka on jollain lailla lukittu, ei voida lisätä. Päivittää myös yhteyden Opiskelijasta tähän IlpoRyhmaan. lisattava - Opiskelija, joka lisataan ryhmään True, mikäli lisäys onnistui poistaopiskelija public boolean poistaopiskelija(opiskelija poistettava) Poistaa opiskelijan IlpoRyhma:sta. poistettava - Opiskelija, josta halutaan eroon. True, jos poisto onnistui. poistaopiskelijat public void poistaopiskelijat() Poistaa kaikki IlpoRyhma:ssa olevat opiskelijat.
27 asetaprojektiaihe public void asetaprojektiaihe(projektiaihe aihe) Asettaa ProjektiAiheen. Rakentaa kaksisuuntaisen yhteyden myös ProjektiAiheesta kyseiseen IlpoRyhmaan. aihe - Asetettava ProjektiAihe. ok public boolean ok() Luokkainvariantti: tarkistaa ensinnäkin, onko yhteys ProjektiAiheeseen kunnossa. true - jos IlpoRyhma on oikeellisessa tilassa. ok public boolean ok(opiskelija opiskelija) Luokan Opiskelija käyttöön luokkine välisen yhteyden tarkastamiseksi tostring public java.lang.string tostring() Overrides: tostring in class java.lang.object 1.3 Luokka Kurssi Kuvaus public class Kurssi extends java.lang.object Järjestelmän kannalta keskeinen tietorakenne, johon liittyy kaikki yhden kurssin ryhmittelyn kannalta olennainen tieto Konstruktorien tiedot Kurssi public Kurssi(java.lang.String kurssikoodi, java.lang.string kurssinimi, java.lang.string lukuvuosi, java.lang.string lukukausi) Metodien tiedot annaopintojakso public Opintojakso annaopintojakso(java.lang.string kurssikoodi) annatallennustiedosto public java.io.file annatallennustiedosto() Tiedosto johon järjestetelytilanne talletetaan tai null jos sitä ei vielä ole. asetatallennustiedosto public void asetatallennustiedosto(java.io.file tiedosto) Asettaa tallennustiedoston.
28 tallenna public void tallenna(java.io.file tiedosto) Tallentaa kurssin XML:na kayttaen XStream-kirjastoa lataa public static Kurssi lataa(java.lang.string tiedosto) throws java.io.filenotfoundexception, java.io.ioexception, com.thoughtworks.xstream.io.streamexception XML-tiedostosta ladatun kurssin. Throws: java.io.filenotfoundexception java.io.ioexception com.thoughtworks.xstream.io.streamexception lisaaopiskelija public void lisaaopiskelija(opiskelija opiskelija) lisaaprojektiaihe public void lisaaprojektiaihe(projektiaihe aihe) poistaprojektiaiheet public void poistaprojektiaiheet() asetaopintojaksot public void asetaopintojaksot (java.util.hashtable<java.lang. String,Opintojakso> opintojaksot) annaopiskelijat public java.util.collection<opiskelija> annaopiskelijat() Palauttaa kaikki opiskelijat. Collection annaopiskelijat public java.util.collection<opiskelija> annaopiskelijat(java.lang.string syote, java.lang.boolean nimi, java.lang.boolean hetu, java.lang.boolean opnro, java.lang.boolean , java.lang.boolean paaaine, java.lang.boolean kayttajatunnus, java.lang.boolean opkaikki, java.lang.boolean optktl, java.lang.boolean ika, java.lang.boolean sukupuoli, java.lang.boolean aloitusvuosi) Palauttaa kokoelmaolion, joka sisältää kaikki hakuehdon täyttävät opiskelijat. Kokoelma, jossa hakuehdot täyttävät opiskelijat. annanimi public java.lang.string annanimi() Palauttaa Kurssin nimen. kurssin nimi
29 annakurssikoodi public java.lang.string annakurssikoodi() Palauttaa ryhmiteltävän kurssin kurssikoodin Kurssikoodi merkkijonona annalukuvuosi public int annalukuvuosi() Palauttaa lukuvuoden, jolloin ryhmiteltävä kurssin pidetään. Lukuvuosi kokonaislukuna annalukukaudennimi public java.lang.string annalukukaudennimi() Palauttaa ryhmiteltävän kurssin lukukauden nimen suomeksi Merkkijono, joka on lukukauden nimi suomeksi annaprojektiaiheet public java.util.collection<projektiaihe> annaprojektiaiheet() Palauttaa kurssiin liittyvät ProjektiAihe-oliot. Kurssin ProjektiAihe-oliot. annakysymykset public java.util.collection<kysymys> annakysymykset() Palauttaa kokoelmaolion, joka koostuu kaikista kurssin kysymyksistä. kokoelma joka sisältää kysymys-olioita annakysymys public Kysymys annakysymys(int ilponumero) Palauttaa arvonaan sen Kysymys-olion, jossa on parametrin mukainen Ilpojärjestysnumero. ilponumero - Järjestelmän sisäinen järjestysnumero kysymykselle. Haluttu Kysymys-olio. annavapaakysymys public Kysymys annavapaakysymys(int ilponumero) Palauttaa sen vapaakysymyksen, jolla on haluttu Ilpo- järjestysnumero. ilponumero - Järjestelmän sisäinen järjestysnumero. Haluttu Kysymys-olio.
30 lisaakysymys public void lisaakysymys(kysymys uusikysymys) Lisää Kurssi-olioon kysymyksen, johon on olemassa valmiit vastausvaihtoehdot. uusikysymys - Vaihtoehdollinen kysymys. annailporyhmat public java.util.collection<ilporyhma> annailporyhmat() Palauttaa viitteen Ilpo-ryhmiin eli tehtyyn ryhmittelyyn Collection-olio, joka sisältää Ilpo-ryhmät lisaailporyhma public void lisaailporyhma(ilporyhma lisattava) Lisää IlpoRyhma-olion kurssin tietorakenteeseen. lisattava - Kurssin tietorakenteisiin lisätträvä IlpoRyhma-olio. annailporyhmienmaara public int annailporyhmienmaara() Palauttaa arvonaan luotujen IlpoRyhmien lukumäärän. IlpoRyhma-olioden määrä. poistailporyhma public boolean poistailporyhma(ilporyhma poistettava) Poistaa ryhmän ja kaikki viitteet siihen. Poisto onnistuu ainoastaan silloin, kun sitä ei ole lukittu ja sen opiskelijat eivät ole lukittu siihen. poistettava - Ryhmä josta halutaan eroon True, jos ryhmän poisto onnistui. poistaopiskelija public void poistaopiskelija(opiskelija o) Poistaa kurssilta opiskelijan. o - poistettava opiskelija ok public boolean ok() Luokkainvariantti. true - jos olio oli ehjä (ja on yhä sitä). 1.4 Luokka Kysymys Kuvaus public class Kysymys extends java.lang.object Ilmon monivalintakysymys ilpossa.
31 1.4.2 Konstruktorien tiedot Kysymys public Kysymys(java.lang.String kysymys, int kysymysnumeroilpossa) Luo uuden monivalintakysymys-olion. kysymys - Kysymys tekstimuodosso. kysymysnumeroilpossa - Järjestelmän sisäinen ID kysymykselle. radiokysymys - Lippu, joka ilmoittaa onko kysymys radiobutton-tyyppinen Metodien tiedot annakysymys public java.lang.string annakysymys() Palauttaa arvonaan kysymyksen lyhenteen tekstinä Kysytty asia. annakysymysnumeroilpossa public int annakysymysnumeroilpossa() Palauttaa arvonaan kysymyksen järjestelmän sisäisen järjestysnumeron. Järjestysnumero yksilöi kysymyksen. Yksilöivä kysymyksen järjestysnumero. lisaavastausvaihtoehto public void lisaavastausvaihtoehto(vastausvaihtoehto vaihtoehto) TÄTÄ METODIA SAA KUTSUA AINOASTAAN LUOKASTA Vastausvaihtoehto, ja tarkemmin ottaen sen konstruktorista!!! vaihtoehto - vastausvaihtoehto, joka halutaan liittää tähän kysymykseen. annavastausvaihtoehto public Vastausvaihtoehto annavastausvaihtoehto(java.lang.string vastaus) Palauttaa vastauksen vastaus - tekstimuotainen vastaus vastausvaihtoehto annavastausnumerot public java.util.enumeration<java.lang.string> annavastausnumerot() Palauttaa vastausvaihtoehtojen numerot. Numerot tekstinä.
32 tostring public java.lang.string tostring() Palauttaa arvonaan kyseisen Opintojakson kurssikoodin tekstimuodossa. Overrides: tostring in class java.lang.object kurssikoodi. ok public boolean ok() Luokkainvariantti: true - jos olio on ehjä. 1.5 Luokka Opintojakso Kuvaus public class Opintojakso extends java.lang.object TKTL:n kurssi, jonka opiskelija on saattanut suorittaa Konstruktorien tiedot Opintojakso public Opintojakso(java.lang.String nimi, java.lang.string kurssikoodi, double opintoviikot) Luo uuden opintojakso-olion nimi - Opintojakson nimi kurssikoodi - Opintojakson kurssikoodi opintoviikot - Opintojakson laajuus opintoviikoissa Opintojakso public Opintojakso(java.lang.String nimi, java.lang.string kurssikoodi) Luo uuden opintojakso-olion nimi - Opintojakson nimi kurssikoodi - Opintojakson kurssikoodi Metodien tiedot annanimi public java.lang.string annanimi() Palauttaa arvonaan opintojakson suomenkieliesen nimen. Kurssin nimi suomeksi, peräisin Ilmo-kannasta.
33 annakurssikoodi public java.lang.string annakurssikoodi() Palauttaa arvonaan opintojakson kurssikoodin. kurssikoodi merkkijonona. annaopintoviikot public double annaopintoviikot() Palauttaa opintojaksosta myönnetyt opintoviikot. opintoviikkojen määrä. tostring public java.lang.string tostring() Palauttaa kirjallisen esityksen Opintojakso-oliosta. Overrides: tostring in class java.lang.object Merkkijono, muotoa "kurssikoodi nimi (X ov)" 1.6 Luokka Opiskelija Kuvaus public class Opiskelija extends java.lang.object Edustaa yhtä kurssille ilmoittautunutta opiskelijaa Konstruktorien tiedot Opiskelija public Opiskelija(java.lang.String hetu, java.lang.string opiskelijanumero, java.lang.string nimi, java.lang.string sahkoposti, int aloitusvuosi, java.lang.string paaaine) Luo uuden Opiskelija-olion hetu - Opiskelijan henkilötunnus opiskelijanumero - Opiskelijan opiskelijanumero nimi - Opiskelijan nimi sahkoposti - Opiskelijan sähköpostiosoite aloitusvuosi - Vuosi, jolloin opiskelija on opintonsa aloittanut paaaine - Opiskelijan pääaineen lyhenne Opiskelija public Opiskelija(java.lang.String hetu, java.lang.string nimi) Opiskelija public Opiskelija(java.lang.String hetu, java.lang.string nimi, java.lang.string kayttajatunnus)
34 1.6.3 Metodien tiedot annavastausvaihtoehdot public java.util.collection<vastausvaihtoehto> annavastausvaihtoehdot() annavastausvaihtoehtokysymykseen public Vastausvaihtoehto annavastausvaihtoehtokysymykseen(int kysnro) Palauttaa opiskelijan vastausvaihtoehtovastauksen kysymysnumeron perusteella. kysnro - Kysymys, jonka vastaus palautetaan. Vastaus tai null, jos annetulla kysymysnumerolla ei löydy vastausta. annaryhmatoive public java.lang.string annaryhmatoive(int n) Palauttaa opiskelijan n:nnen ryhmätoiveen. n - Määrää monennellako sijalla oleva ryhmätoive halutaan. Ryhmätoive tai null, jos ei annettua n:ää vastaavaa toivetta. poistettukurssilta public boolean poistettukurssilta() Kertoo, onko opiskelija poistettu kurssilta. True jos poistettu, muuten false. asetapoistettukurssilta public void asetapoistettukurssilta(boolean poistettu) Asettaa opiskelijan kurssilta poistettu -tilan. poistettu - Opiskelijan tila. asetasopimus public void asetasopimus(boolean sopimus) onsopimus public boolean onsopimus() asetaarvosteltu public void asetaarvosteltu(boolean arvosteltu) arvosteltu public boolean arvosteltu() asetaopintopisteet_kaikki public void asetaopintopisteet_kaikki(double opintopisteet_kaikki) annaopintopisteet_kaikki public double annaopintopisteet_kaikki()
35 asetaopintopisteet_tktl public void asetaopintopisteet_tktl(double opintopisteet_tktl) annaopintopisteet_tktl public double annaopintopisteet_tktl() annasukupuoli public java.lang.string annasukupuoli() annaika public int annaika() asetaopiskelijanumero public void asetaopiskelijanumero(java.lang.string opiskelijanumero) asetaaloitusvuosi public void asetaaloitusvuosi(java.lang.string aloitusvuosi) asetapaaaine public void asetapaaaine(java.lang.string paaaine) asetasuoritetutopintojaksot public void asetasuoritetutopintojaksot(java.util.linkedlist<suoritettuopintojakso> suoritetutopintojaksot) annahetu public java.lang.string annahetu() Palauttaa arvonaan opiskelijan henkilötunnuksen Opiskelijan henkilötunnus annaopiskelijanumero public java.lang.string annaopiskelijanumero() Palauttaa arvonaan opiskelijan opiskelijanumeron. Opiskelijan opiskelijanumero annauupuvatopintojaksot public java.util.collection<uupuvaopintojakso> annauupuvatopintojaksot() Palauttaa opiskelijan uupuvat opintojaksot Collection, joka sisältää UupuvaOpintojakso-olioita annasuoritetutopintojaksot public java.util.collection<suoritettuopintojakso> annasuoritetutopintojaksot() Palauttaa opiskelijan suoritetut opintojaksot. Collection, joka sisältää SuoritettuOpintojakso-olioita
36 annakayttajatunnus public java.lang.string annakayttajatunnus() Palauttaa arvonaan opiskelijan käyttäjätunnuksen. Opiskelijan käyttäjätunnus sisaltaa public boolean sisaltaa(java.lang.string etsittava, java.lang.boolean bnimi, java.lang.boolean bhetu, java.lang.boolean bopnro, java.lang.boolean b , java.lang.boolean bpaaaine, java.lang.boolean bkayttajatunnus, java.lang.boolean bopkaikki, java.lang.boolean boptktl, java.lang.boolean bika, java.lang.boolean bsukupuoli, java.lang.boolean baloitusvuosi) Etsii, löytyykö opiskelijan tiedoista haluttua tietoa. Haku toimii andperiaatteella, eli annettu String pilkotaan yksittäisiksi sanoiksi välilyöntien kohdalta, ja suoritetaan näillä and-haku. etsittava - Etsittävä String-pätkä. true, jos etsittävä löytyi. annanimi public java.lang.string annanimi() Palauttaa opiskelijan nimen. nimi annasahkoposti public java.lang.string annasahkoposti() Palauttaa opiskelijan sähköpostiosoitteen. sähköpostiosoite. annaaloitusvuosi public int annaaloitusvuosi() Antaa opiskelijan aloitusvuoden. aloitusvuosi. annapaaaine public java.lang.string annapaaaine() Antaa opiskelijan pääaineen. pääaine.
37 annavapaateksti public java.lang.string annavapaateksti() Antaa opiskelijaan liitetyyn vapaan tekstin, elikä post-it-lapun sisällön. Syötetty vapaa luonnehdinta. annailporyhmienmaara public int annailporyhmienmaara() Antaa IlpoRyhmien, johon opiskelija parhaillaan on sijoitettuna, määrän. IlpoRyhmien määrä. onkovalittu public boolean onkovalittu() Tarkistaa onko käyttäjä valinnut opiskelijan hiirellään. true - jos on. valitse public void valitse() Valitsee tämän Opiskelijan kaikkien Opiskelijoiden joukosta. poistavalinta public void poistavalinta() Poistaa valinnan tästä opiskelijasta. peruutalukitus public void peruutalukitus() Mikäli Opiskelija-olio oli vain ryhmälukossa, poistaa ryhmälukon ja palauttaa Opiskelija-olion aktiiviseksi kaikkiin ryhmiin, joihin se on liitetty. Mikäli Opiskelija-olio oli sekä ryhmälukittu että omalukittu, poistaa vain ryhmälukon ja jättää omalukon päälle. Mikäli Opiskelija-olio oli vain omalukittu, poistaa omalukon ja palauttaa Opiskelija-olion aktiiviseksi kaikkiin ryhmiin, joihin se on liitetty. peruutalukitus public void peruutalukitus(ilporyhma r) Mikäli Opiskelija-olio oli vain ryhmälukossa, poistaa ryhmälukon ja palauttaa Opiskelija-olion aktiiviseksi kaikkiin ryhmiin, joihin se on liitetty. Mikäli Opiskelija-olio oli sekä ryhmälukittu että omalukittu, poistaa vain ryhmälukon ja jättää omalukon päälle. Mikäli Opiskelija-olio oli vain omalukittu, poistaa omalukon ja palauttaa Opiskelija-olion aktiiviseksi kaikkiin ryhmiin, joihin se on liitetty. r - IlpoRyhma, joka ei enää ole lukittuna. teeomalukko public void teeomalukko(ilporyhma i) Lukitsee Opiskelija-olion IlpoRyhma i:hin ja piilottaa opiskelijan muista ryhmistä, joihin hänet on liitetty. i - IlpoRyhma, johon opiskelija lukitaan.
38 teeryhmalukko public void teeryhmalukko(ilporyhma i) Lukitsee Opiskelija ryhmälukolla annettuun IlpoRyhma-olioon. i - Ilporyhmä, johon opiskelija lukitaan. Mikäli Opiskelija on jo omalukittu johonkin ryhmään, tämän IlpoRyhmän täytyy olla sama, mihin Opiskelija on omalukittu. lisaasuoritettuopintojakso public void lisaasuoritettuopintojakso(suoritettuopintojakso s) Lisää SuoritettuOpintojakso-olion Opiskelija-olion tietoihin. Päivittää myös yhteyden SuoritettuOpintojakso-oliosta tähän Opiskelijaan. s - SuoritettuOpintojakso-olio joka vastaa opiskelijan suoritusta. lisaavastausvaihtoehto public void lisaavastausvaihtoehto(vastausvaihtoehto v) Lisää uuden Vastausvaihtoehdot. Päivittää myös yhteyden toiseen suuntaan. v - Vastausvaihtoehto lisaavapaavastaus public void lisaavapaavastaus(vapaavastaus v) Lisää opiskelijan vastaaman vapaavastauksen. v - Vapaavastaus-olio onkominkaanlaisiapuutteita public boolean onkominkaanlaisiapuutteita() Palauttaa tiedon siitä, onko opiskelijalla puuttuvia opintosuorituksia (tämän palauttamaan arvoon ei vaikuta se, onko puutteet mahdollisesti ylenkatsottu). Tosi, jos on puutteita. onkopuutteita public boolean onkopuutteita() Palauttaa tiedon siitä, onko opiskelijalla puuttuvia opintosuorituksia (tämän palauttamaan arvoon vaikuttaa se, onko puutteet ylenkatsottu). Tosi, jos on puutteita. tarkastaonkopuutteita public void tarkastaonkopuutteita() Tätä pitäisi kutsua, kun opiskelijan opintosuorituksia päivitetään tai kun uupuvia opintosuorituksia ylenkatsotaan onkolukittu public boolean onkolukittu() Palauttaa arvonaan tiedon siitä, onko opiskelija lukittu mihinkään ryhmään. True, mikäli opiskelija on oma- tai ryhmälukittu.
39 onkoryhmalukittu public boolean onkoryhmalukittu(ilporyhma ryhma) Palauttaa arvonaan tiedon siitä, onko opiskleija lukittu joko oma tahi ryhmälukolla parametrinan annettavaan ryhmään. ryhma - IlpoRyhma-olio, jonka lukitusta testataan. True, mikäli opiskelija on jollain tavoin lukittu parametrien mukaiseen ryhmään. muokkaavapaatekstia public void muokkaavapaatekstia(java.lang.string uusiteksti) Muokkaa opiskelijassa olevaa hänen tilaansa kuvaavaa tekstiä. Jos lisättävä teksti on tyhjä merkkijono asetetaan arvoksi null; uusiteksti - Tekstihuomio, joka lisätään opiskelijaan lisaailporyhma public void lisaailporyhma(ilporyhma lisattava) TÄTÄ KUTSUTAAN AINOASTAAN ILPORYHMÄN lisaaopiskelija- METODISTA KÄSIN!! lisattava - IlpoRyhma, johon nykyään kuulutaan. poistailporyhmasta public void poistailporyhmasta(ilporyhma poistettava) TÄTÄ KUTSUTAAN AINOASTAAN ILPORYHMÄ:stä KÄSIN!! poistettava - IlpoRyhma, johon ei nykyään kuuluta. tostring public java.lang.string tostring() Tekstiesitys opiskelijasta Overrides: tostring in class java.lang.object nimi hetu/opnro/käyttäjätunnus annavapaavastaukset public java.util.collection<vapaavastaus> annavapaavastaukset() Palauttaa viitteen kokoelmaan, jossa Opiskelijan vapaasti mietiskellyt ilmovastaukset ovat. ilmovastaukset lisaakuuntelija public void lisaakuuntelija(opiskelijalistener kuuntelija) Lisää Opiskelija-oliolle tämän tilaa kuuntelevan kuuntelijan. kuuntelija - Lisättävä kuuntelija.
40 poistakuuntelija public void poistakuuntelija(opiskelijalistener kuuntelija) Poistaa Opiskelija-oliosta tämän tilaa kuuntelevat kuuntelijan, kuuntelija - Poistettava kuuntelija. ilmoitakuuntelijoille public void ilmoitakuuntelijoille() Ilmoittaa kaikille tämän Opiskelijan kuuntelijoille tilan muutoksesta. ok public boolean ok() Luokkainvariantti: true - jos luokka on ehjä. annailporyhma public IlpoRyhma annailporyhma() poistakurssilta public void poistakurssilta() Poistaa opiskelijan ryhmistä ja vastausvaihtoehdoista. 1.7 Luokka ProjektiAihe Kuvaus public class ProjektiAihe extends java.lang.object Yhtä projektiaihetta kuvaava luokka Konstruktorien tiedot ProjektiAihe public ProjektiAihe(int aihenumero, java.lang.string aihenimi) Metodien tiedot annaaihenumero public int annaaihenumero() Palauttaa aiheen numeron. Projektiaiheen numero. annaaihenimi public java.lang.string annaaihenimi() Palauttaa projektiaiheen nimen. Projektiaiheen nimi.
Ilmoittautumisten profiloija (jatkoprojekti) Ilpo2
TIETOJENKÄSITTELYTIETEEN LAITOS Ohjelmistotuotantoprojekti 04.09.2006 Ilmoittautumisten profiloija (jatkoprojekti) Ilpo2 Ylläpitodokumentti 1.0 Hemminki Samuli Herranen Mikko Hinkkanen Tero Mäkelä Ari
Ilmoittautumisten profiloija (jatkoprojekti) Ilpo2
TIETOJENKÄSITTELYTIETEEN LAITOS Ohjelmistotuotantoprojekti 18.07.2006 Ilmoittautumisten profiloija (jatkoprojekti) Ilpo2 Määrittelydokumentti 2.2 Hemminki Samuli Herranen Mikko Hinkkanen Tero Mäkelä Ari
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
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
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
Suunnitteludokumentti
Suunnitteludokumentti ilpo-ryhmä Helsinki 6.4.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti 6 ov) Projektiryhm Arttu Eloranta
Käyttöohje. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Käyttöohje Boa Open Access Helsinki 5.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari Heikkinen
Ilmoittautumisten profiloija (jatkoprojekti) Ilpo2
TIETOJENKÄSITTELYTIETEEN LAITOS Ohjelmistotuotantoprojekti 04.09.2006 Ilmoittautumisten profiloija (jatkoprojekti) Ilpo2 Käyttöohje 2.0 Hemminki Samuli Herranen Mikko Hinkkanen Tero Mäkelä Ari Piuva Tero
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
Määrittelydokumentti. ilpo-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Määrittelydokumentti ilpo-ryhmä Helsinki 17.2.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Arttu Eloranta
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.
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
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
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
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
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ä
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ä
A274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen
Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:
Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus
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).
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)
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
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
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
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
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ä
Määrittelydokumentti. ilpo-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Määrittelydokumentti ilpo-ryhmä Helsinki 7.3.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhm Arttu Eloranta
Lohtu-projekti. Testaussuunnitelma
Lohtu-projekti Testaussuunnitelma Versiohistoria: 1.0 19.2.2003 1. versio Mari 1.1 20.2.2003 Muutoksia Mari 1.2 25.2.2003 Katselmoinnissa esiin tulleet Mari muutokset 1.3 17.3.2003 2. syklissä tehtävät
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
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
Algoritmit 2. Luento 2 To Timo Männikkö
Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento
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ä
Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2
Subversion-ohje Linux Traffic Control-käyttöliittymä Ryhmä paketti2 Helsinki 1.11.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti
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ä).
List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen
1 List-luokan soveltamista List-luokan metodeja Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan metodeja List-luokan
Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä
Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.
Action Request System
Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet
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:
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
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
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
Testivetoinen ohjelmistokehitys
Testivetoinen ohjelmistokehitys Ohjelman luominen pienin askelin 1. Kirjoita testi, joka testaa ohjelmalle myöhemmin lisättävää toiminnallisuutta. 2. Suorita testi. Testin ei tule mennä läpi. Mikäli testi
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
Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti
Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi
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
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
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
Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4
Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.
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
opiskelijan ohje - kirjautuminen
opiskelijan ohje - kirjautuminen estudio on Edupolin kehittämä e-oppimisympäristö koulutusryhmän verkkoalustana perinteisen luokkaopetuksen tukena. etäopiskelussa ja -opetuksessa kotoa tai työpaikalta.
12. Näppäimistöltä lukeminen 12.1
12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet Pakkaukset ja määreet Toisiinsa liittyvät luokkatiedostot voidaan koota pakkauksiksi. Luo hierarkiaa ja järjestystä ohjelmistotuotteeseen.
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.
812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Testausraportti Orava Helsinki 5.5.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Juhani Bergström Peter
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)
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:
7. Oliot ja viitteet 7.1
7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin
Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje
Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje Sisällysluettelo VIP Laajennettu raportointi... 3 Luo raportti Laajennetun raportoinnin työkaluilla... 4 Avaa Laajennettu raportointi... 4 Valitse
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
5. HelloWorld-ohjelma 5.1
5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2
Interaktiivinen tarinankerronta
Interaktiivinen tarinankerronta Tehtävä 1: Tarinan alku pääohjelmaan Main. java ei tehdä muutoksia tulostusrivit tiedostoon Kayttoliittyma.java tulostus lyhyesti sout + tab komennolla Tiedoston Kayttoliittyma.java
Ohjelmointi 1 Taulukot ja merkkijonot
Ohjelmointi 1 Taulukot ja merkkijonot Jussi Pohjolainen TAMK Tieto- ja viestintäteknologia Johdanto taulukkoon Jos ohjelmassa käytössä ainoastaan perinteisiä (yksinkertaisia) muuttujia, ohjelmien teko
4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
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,
KYMP Webmail -palvelu
KYMP Webmail -palvelu Sisältö 1. Kirjautuminen... 3 2. Viestin merkinnät... 4 3. Viestien lukeminen... 4 Viestiin vastaaminen... 4 Viestin välittäminen edelleen / uudelleen ohjaus... 5 4. Viestin kirjoittaminen...
Testausdokumentti. Sivu: 1 / 10. Ohjelmistotuotantoprojekti Sheeple Helsingin yliopisto. Versiohistoria
Sivu: 1 / 10 Testausdokumentti Ohjelmistotuotantoprojekti Sheeple Helsingin yliopisto Versiohistoria Versio Päivitykset 0.4 Lisätty mod_form.php -tiedostoon liittyvät testit 0.5 Lisätty johdanto 1.0 Dokumentti
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
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.
ELM GROUP 04. Teemu Laakso Henrik Talarmo
ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................
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ä
Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)
Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,
Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }
Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.
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)
Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori
Testitapaukset - Koordinaattieditori Sisällysluettelo 1. Johdanto...3 2. Testattava järjestelmä...4 3. Toiminnallisuuden testitapaukset...5 3.1 Uuden projektin avaaminen...5 3.2 vaa olemassaoleva projekti...6
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ä
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)
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.
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,
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
Muuttujien määrittely
Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa
Opintokohteen Haku ja Käsittely
Helsingin yliopisto WinOodi Sivu 1/8 Opintokohteen Haku ja Käsittely Opintokohteen käsittely aloitetaan Perustiedot -valikon Opintokohteen käsittely -kohdasta. Olemassa olevan opintokohteen haku: Opintokohteen
Opinto-oppaan tekeminen
1 Opinto-oppaan tekeminen Näiden ohjeiden avulla hahmottuu kuinka opinto-oppaita voidaan luoda WebOodin OpasOodissa. Ohje on suunnattu käyttäjille, joilla on WebOodiin OpasVastuuhenkilö-oikeudet. WebOodin
13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
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
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
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.
Käyttöohje. Versiohistoria: 1.0 7.5.2003 1. versio Mari 1.1 9.5.2003 Kommenttien perusteella korjattu versio
Otus- projektinhallintatyökalu Käyttöohje Versiohistoria: 1.0 7.5.2003 1. versio Mari 1.1 9.5.2003 Kommenttien perusteella korjattu versio Mari Tampere 9. toukokuuta 2003 Kimmo Airamaa, Andreas Asuja,
Opetustapahtumien hakeminen (Hae - Opetustapahtuma)
Helsingin yliopisto WinOodi 1 (5) Opetustapahtumien hakeminen (Hae - Opetustapahtuma) Opetustapahtumien hakua tarvitaan sekä opetustapahtumien käsittelyssä että raporttien tulostamisessa. Ohjeessa käsitellään
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.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap Tietorakenneluokkia ja -rajapintoja Java tarjoaa laajan kokoelman tietorakennerajapintoja ja - luokkia. Aiemmin
Vianova Systems Finland Oy:n Novapoint käytön tuki
Vianova Systems Finland Oy:n Novapoint käytön tuki Yleistä Vianova Systems Finland Oy:n Novapoint ylläpitosopimus sisältää ohjelmiston käytön tukipalvelun. Asiakas on oikeutettu saamaan kohtuullisessa
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ä
Sähköposti ja uutisryhmät 4.5.2005
Outlook Express Käyttöliittymä Outlook Express on windows käyttöön tarkoitettu sähköpostin ja uutisryhmien luku- ja kirjoitussovellus. Se käynnistyy joko omasta kuvakkeestaan työpöydältä tai Internet Explorer
Java-kielen perusteita
Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa
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
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
Java ja grafiikka. Ville Sundberg 12.12.2007
Java ja grafiikka Ville Sundberg 12.12.2007 What happen Viritetty JPanel Graphics ja Graphics2D ImageIO ja BufferedImage Animaatio ja ajastus Optimoinnista Kehykset import javax.swing.jframe; public class
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..................................
Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla
Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään