Web järjestelmän ohjelmointi Kevät 2012 Hans Nieminen

Koko: px
Aloita esitys sivulta:

Download "Web järjestelmän ohjelmointi Kevät 2012 Hans Nieminen"

Transkriptio

1 Harjoitus 1 Käsiteltävät aiheet: C# kielen kertaus luokat, oliot ja periytyminen poikkeukset ja niiden käsittely tapahtumat ja niiden käsittely C# 3.0 uudet ominaisuudet Visual Studio projektin kansiot Visual Studio 2010 projekteihin liittyvät tiedostot tallentuvat kansioihin, jotka on määriteltävissä käyttäjäkohtaisesti toiminnolla Tools Opons: Projektitiedostojen (.sln ja.suo) sijaintikansio. Projekti Tehdään uusi Windows ohjelma WJOH1. File New Project Valitse Windows Forms Application ja anna nimeksi WJOH1. Tallenna projekti C levyn johonkin kansioon. Anna Solution name: kenttään sama nimi WJOH1. 1

2 Luokat Lisää nyt Solutioniin WJOH1 uusi projekti, johon toteutetaan harjoituksen luokat. Valitse Solution Explorer ikkunassa Solution WJOH1 ja avaa hiiren oikealla sen pikavalikko. Valitse vaihtoehto Add New Project... Valitse Class Library ja anna nimeksi WJOH1Luokat. 2

3 Poista WJOH1Luokat projektista sinne oletuksena tehty luokka Class1.cs ( hiiren oikealla pikavalikko, josta Delete). Toteuta WJOH1Luokat projektiin seuraavan luokkakaavion mukaiset luokat Henkilo, Tyontekija ja Osasto. 3

4 Uusi luokka lisätään projektiin toiminnolla Project Add Class... (tai Solution Explorer ikkunassa pikavalikosta Add Class...): Henkilo luokassa: Luokan näkyvyysmääreenä public. Kenttien näkyvyysmääreenä protected. Ominaisuudet EtuNimi, SukuNimi ja SyntymaAika kapseloivat vastaavat kentät. Ominaisuudessa Ika vain get metodi palauttaen syntymäajan ja kuluvan päivän perusteella lasketun iän vuosina. Konstruktoria ei tarvitse koodata. ToString() ylikirjoitetaan (override) palauttamaan henkilön nimen muodossa etunimi sukunimi. Tyontekija luokassa: Luokan näkyvyysmääreenä public. Periytetään luokasta Henkilo. Kenttien näkyvyysmääreenä private. Ominaisuudet Palkka, PalkkausPvm ja PaattymisPvm kapseloivat vastaavat kentät. Konstruktoreita kaksi: o kolme parametria, joiden arvot sijoitetaan ominaisuuksiin EtuNimi, SukuNimi ja SyntymaAika. o neljä parametria, joiden arvot sijoitetaan ominaisuuksiin EtuNimi, SukuNimi, SyntymaAika ja Palkka. Lisäksi ominaisuuteen PalkkausPvm sijoitetaan arvoksi kuluva päivämäärä. ToString() ylikirjoitetaan (override) palauttamaan työntekijän tiedot muodossa etunimi sukunimi ( syntymäpäivä). Osasto luokassa: Luokan näkyvyysmääreenä public. Ominaisuudet Nimi ja Tyontekijat kapseloivat vastaavat kentät. Ominaisuudessa HenkiloLkm on vain get metodi palauttaen Tyontekijat ominaisuuden sisältämän listan alkioiden määrän. Konstruktori, jonka parametri n sijoitetaan Nimi ominaisuuteen. Lisäksi ominaisuuteen Tyontekijat sijoitetaan uusi List<Tyontekija> olio. 4

5 ToString() ylikirjoitetaan (override) palauttamaan osaston nimen ja henkilömäärän muodossa nimi (henkilömäärä). Metodi Palkkaa(), jonka parametri h (Tyontekija olio) lisätään ominaisuuden Tyontekijat listalle ja parametri p sijoitetaan parametrin h sisältämän olion ominaisuuteen Palkka. Lisäksi sijoitetaan parametrissa välitetyn Tyontekija olion PalkkausPvm ominaisuuteen kuluva päivä. Metodi Erota(), jonka parametri h (Tyontekija olio) poistetaan ominaisuuden Tyontekijat listalta. Lisäksi sijoitetaan parametrissa välitetyn Tyontekija olion PaattymisPvm ominaisuuteen kuluva päivä. Poikkeusluokka ja poikkeuksen nostaminen Työntekijällä on palkka, jonka tulee olla ei negatiivinen desimaaliluku. Luodaan oma poikkeus NegatiivinenPalkkaException, joka synnytetään, jos palkaksi annetaan negatiivinen arvo. Lisää WJOH1Luokat projektiin luokka, joka periytetään luokasta ApplicationException ja joka sisältää neljä konstruktoria: public class NegatiivinenPalkkaException : ApplicationException public NegatiivinenPalkkaException() public NegatiivinenPalkkaException(string message) public NegatiivinenPalkkaException(string message, System.Exception inner) public NegatiivinenPalkkaException( System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) Muuta Tyontekija luokan Palkka ominaisuuden set metodin logiikka seuraavaksi: Jos uusi palkka on ei negatiivinen, sijoita arvo kenttään _palkka, muuten nosta (throw) NegatiivinenPalkkaException poikkeus luomalla olio konstruktorilla, johon argumentiksi merkkijono Palkka ei saa olla negatiivinen. Tapahtumat Luokkaan Osasto lisätään tapahtuma Palkkaaminen, joka syntyy aina uuden työntekijän palkkaamisen yhteydessä. tapahtuma Erottaminen, joka syntyy aina työntekijän erottamisen yhteydessä. Tavoitteena on mahdollistaa Osasto oliokohtainen reagointi palkkaamiseen ja erottamiseen. Tapahtumien määrittely Tee tiedostoon Osasto.cs seuraavat lisäykset: 5

6 Ota käyttöön nimiavaruus System.ComponentModel (tarvitaan luokan CancelEventArgs käytön takia). Määrittele ennen luokan Osasto määrittelyä tapahtumien tarvitsemat delegaattityypit näkyvyysmääreellä public: o delegaattityyppi PalkkaaminenHandler, joka määrittelee tapahtumakäsittelijöiden rakenteeksi: paluuarvo: ei ole parametrit: object tyyppinen sender, Tyontekija tyyppinen t ja CancelEventArgstyyppinen e o delegaattityyppi ErottaminenHandler, joka määrittelee tapahtumakäsittelijöiden rakenteeksi: paluuarvo: ei ole parametrit: object tyyppinen sender, Tyontekija tyyppinen t ja EventArgstyyppinen e Määrittele luokkaan Osasto tapahtumat: o Palkkaaminen, jonka tyyppinä on PalkkaaminenEventHandler o Erottaminen, jonka tyyppinä on ErottaminenEventHandler Tapahtumien synnyttäminen Lisää luokan Osasto metodin Palkkaa() olemassa olevan koodin eteen seuraava koodi: Jos tapahtumalla Palkkaaminen on arvo (vertaa arvoon null), o Määrittele paikallinen CancelEventArgs tyyppinen muuttuja ja sijoita sen arvoksi ko. tyypin olio. o Kutsu tapahtumaan sijoitettua metodia viittaamalla tapahtuman nimeen Palkkaaminen ja antamalla argumenteiksi nykyinen Osasto olio (eli merkintä this), palkattava Tyontekija olio (saatu argumenttina metodiin Palkkaa()) ja edellä luotu CancelEventArgs olio. o Jos CancelEventArgs olion ominaisuuden Cancel arvoksi on tullut tosi (true), lopeta metodin Palkkaa() suoritus tähän lauseella return. Tällöin varsinaista palkkaamista ei siis tapahdu. Näin tapahtumakäsittelijä voi estää metodin varsinaisen toiminnan. Lisää luokan Osasto metodin Erota() olemassa olevan koodin eteen seuraava koodi: Jos tapahtumalla Erottaminen on arvo (vertaa arvoon null), o Kutsu tapahtumaan sijoitettua metodia viittaamalla tapahtuman nimeen Erottaminen ja antamalla argumenteiksi nykyinen Osasto olio (eli merkintä this), erotettava Tyontekija olio (saatu argumenttina metodiin Palkkaa()) ja tässä luomasi EventArgs olio. Muokkaa vielä ToString() metodia niin, että sen palauttaman merkkijonon loppuun lisätään merkkijono PI, jos tapahtumalla Palkkaaminen on arvo ja merkkijono EI, jos tapahtumalla Erottaminen on arvo. Käyttöliittymä Lisää projektiin WJOH1 (eli Windows ohjelma) viittaus edellä tehtyyn luokkakirjastoon WJOH1Luokat: Valitse Solution Explorer ikkunassa WJOH1 projektin References kohdan pikavalikosta (hiiren oikea) Add Reference... 6

7 Valitse Add Reference ikkunassa projekti WJOH1Luokat ja paina OK. Siirry Windows ikkunan muokkaamiseen (välilehti Form1.cs[Design]*). Suurenna ikkunan kokoa vetämällä sitä reunoista ( muuta lisää tarpeen mukaan myöhemmin). 7

8 Siirry Properties ikkunaan (oletuksena oikessa reunassa) ja vaihda siinä ikkunan ominaisuuden Text arvoksi: Työntekijät Osastot. Tällöin muutos näkyy heti: Siirry sitten Toolbox ikkunaan (oletuksena vasemmassa reunassa). Toolbox ikkunan saa jäämään näkyviin nasta painikkeesta, josta ikkuna voidaan myös poistaa näkyvistä. Vedä ikkunaan seuraavat kontrollit: 8

9 TextBox Label Button ListBox CheckBox Siirry ikkunaa vastaavaan C# tiedostoon Form1.cs (esimerkiksi valitsemalla Design ikkunassa pikavalikosta View Code). Tarkasteltaessa koodia huomataan, että Windows ikkunaa vastaa Form luokasta (System.Windows.Forms.Form) periytetty luokka Form1. Luokan määrittely on jaettu kahteen eri tiedostoon (partial class): o Toiseen tiedoistoista kirjoitetaan omat koodit (Form1.cs) ja o toiseen muodostaa Visual Studio koodin (Form1.Designer.cs). Konstruktorissa kutsutaan metodia InitializeComponent(), jonka määrittely löytyy luokan toisesta tiedostosta (Form1.Designer.cs). Tutki myös tiedoston Form1.Designer.cs sisältöä. Huomaa, että jokainen lisätty kontrolli on Form1 luokan kenttä. InitializeComponent metodissa luodaan kenttiin oliot ja asetetaan olioiden ominaisuuksia ja tapahtumia. 9

10 Tarkastele myös Program.cs tiedoston sisältöä. Täältä huomaat, että ohjelman suoritus (= Program luokan staattisen Main metodin suoritus) sisältää muutaman Application luokan metodin kutsumisen, joista viimeistä kutsuttaessa luodaan Form1 olio. Osasto olioiden tapahtumakäsittelijät Ohjelmoi kaksi metodia, joita voidaan käyttää Osasto olioiden tapahtumien Palkkaaminen ja Erottaminen yhteydessä. Tapahtumalle Palkkaaminen mahdollisesti käytettävä metodi (paluuarvo ja parametrit on säädetty delegaattityypillä aiemmin) o_palkkaaminen: Metodin otsikko osa: private void o_palkkaaminen(object sender, Tyontekija h, CancelEventArgs e) Jos työntekijän (parametrissa h) sukunimi on Aaltonen, ei palkkausta suoriteta. Tällöin asetetaan CancelEventArgs olion ominaisuus Cancel arvoon tosi (true), mikä aiheuttaa Tyontekija luokan Palkkaa() metodissa (koodattiin aikaisemmin) toiminnan keskeytymisen. Muuten lisää ilmoitustaululle (ListBox) uusi rivi (Items.Add() metodilla), jossa tekstinä o vakio Osastolle o osaston nimi, joka saadaan metodin parametrista sender (sisältää Osasto olion) o vakio palkattu o henkilön tiedot, jotka saadaan metodin parametrin h (Tyontekija olio) metodilla ToString() Tapahtumalle Erottaminen mahdollisesti käytettävä metodi (paluuarvo ja parametrit on säädetty delegaattityypillä aiemmin) o_palkkaaminen: Metodin otsikko osa: private void o_erottaminen(object sender, Tyontekija h, EventArgs e) Lisää ilmoitustaululle (ListBox) uusi rivi (Items.Add() metodilla), jossa tekstinä o vakio Osastolta o osaston nimi, joka saadaan metodin parametrista sender (sisältää Osasto olion) o vakio erotettu o henkilön tiedot, jotka saadaan metodin parametrin h (Tyontekija olio) metodilla ToString() Ikkunan tapahtumakäsittelijät Windows Forms ohjelmassa itse ikkuna on Form luokasta periytetyn luokan (esim. Form1) olio. Tämä olio sisältää kenttiensä arvoina kaikki siihen sisällytetyt kontrollit. Jokaista kontrollia vastaa siis yksi kenttä ja sen arvona oleva olio. Jokaisella kontrollioliolla on valmiina monia eri tapahtumia, joille voidaan ohjelmoida tarpeen mukaan tapahtumakäsittelijöitä. Esimerkiksi ikkunan painikkeet ovat (System.Windows.Forms.)Button olioita. Button oliolla on Clicktapahtuma, joka syntyy käyttäjän napsauttaessa painiketta. Toteutetaan tapahtumakäsittelijä jokaiseen ikkunan viidestä painikkeesta. Tee Osasto olio Lisää painikkeen Tee Osasto olio Click tapahtumalle käsittelijä kaksoisnapsauttamalla sitä Design ikkunassa. Tällöin Form1.cs tiedostoon ilmestyy uusi metodi: private void button1_click(object sender, EventArgs e) 10

11 Lisäksi Form1.Designer.cs tiedostoon on button1 kentän sisältämän olion tapahtumalle Click sijoitettu arvoksi edellä mainittu metodi: this.button1.click += new System.EventHandler(this.button1_Click); Ohjelmoi tapahtumakäsittelijään seuraava toiminta: Määrittele paikallinen Osasto tyyppinen muuttuja o ja sijoita sen arvoksi uusi Osasto olio käyttäen konstruktorissa argumenttina TextBox kontrollin ominaisuutta Text (esim. textbox1.text = kontrollissa textbox1 näkyvä teksti). Ole tarkka, että viittaat oikeaan TextBox kontrolliin. Jos vaihtoehto Näytä palkkaukset ilmoitustaululla on valittuna (CheckBox kontrollin ominaisuus Checked), sijoita Osasto olion o tapahtumalle Palkkaaminen arvoksi uusi tapahtumakäsittelijä: o.palkkaaminen += new PalkkaaminenHandler(o_Palkkaaminen); Jos vaihtoehto Näytä erottamiset ilmoitustaululla on valittuna (CheckBox kontrollin ominaisuus Checked), sijoita Osasto olion o tapahtumalle Erottaminen arvoksi uusi tapahtumakäsittelijä: o.erottaminen += new ErottaminenHandler(o_Erottaminen); Lisää Osastot kontrollin (ListBox) Items kokoelmaan uusi olio metodilla Add() (esim. listbox1.items.add(o)). Poista teksti Osaston nimi TextBox kontrollista. Poista valinnat molemmista CheckBox kontrolleista. Tee Tyontekija olio Kaksoisnapsauta jälleen painiketta saadaksesi tapahtumakäsittelijän Click tapahtumalle. Ohjelmoi tapahtumakäsittelijään seuraava toiminta: Koska Tyontekija olion tekemisessä tarvitaan DateTime oliota ja koska arvo annetaan kuitenkin merkkijonona (olisi voitu käyttää myös Calendar kontrollia), voi käyttäjä antaa syntymäajaksi mitä tahansa. Mahdollisen virhetilanteen takia toteuta seuraavat try catch lauseella: o Määrittele paikallinen Tyontekija tyyppinen muuttuja t ja sijoita sen arvoksi uusi Tyontekija olio käyttäen konstruktorissa argumenttina TextBox kontrolleihin Työntekijän etunimi, Työntekijän sukunimi ja Syntymäaika syötettyjä arvoja. Huomaa, että syntymäaika tulee aikaansaada DateTime olioksi metodilla DateTime.Parse(). o Lisää ikkunan Työntekijät kontrollin (ListBox) Items kokoelmaan edellä tehty uusi Tyontekija olio metodilla Add(). o Jos edellisissä tuli jokin virhe (poikkeus), näytä viesti ikkunassa virheilmoituksena teksti Työntekijää ei voida tehdä: ja itse virheen syy. Viesti ikkuna saadaan näytettyä luokan MessageBox luokkametodilla Show antamalla esitettävä teksti argumenttina. Virheen syy saadaan catch osan Exception tyyppisen parametrin ominaisuudesta Message (esim. ex.message). Poista teksti Työntekijän etunimi, Työntekijän sukunimi ja Syntymäaika TextBox kontrolleista. Palkkaa Kaksoisnapsauta jälleen painiketta saadaksesi tapahtumakäsittelijän Click tapahtumalle. 11

12 Ohjelmoi tapahtumakäsittelijään seuraava toiminta: Määrittele paikallinen Osasto tyyppinen muuttuja o ja aseta sen arvoksi Osastot listalla valittuna oleva osasto, johon pääset käsiksi ListBox kontrollin SelectedItem ominaisuuden kautta. Huomaa, että SelectedItem on object tyyppinen, joten se täytyy tyyppimuuntaa Osasto tyyppiseksi. Määrittele vastaavasti paikallinen Tyontekija tyyppinen muuttuja t ja sen arvoksi Tyontekijat listalla valittuna oleva työntekijä. Koska palkka annetaan TextBox kontrollin avulla, voi käyttäjä jälleen syöttää mitä tahansa. Varaudutaan jälleen virheeseen kirjoittamalla toiminta try catch lauseeseen. try osassa: o kutsu Osasto olion Palkkaa() metodia antamalla argumenteiksi Tyontekija olio ja palkka (TextBox kontrollin Text ominaisuudesta muodostettu double arvo > Double.Parse()). o poista Osastot listalta käsiteltävänä oleva Osasto olio ja lisää se sitten heti takaisin listalle ( näin saadaan Osasto olion työntekijämäärä päivittymään). catch osia on nyt kaksi: o käsittele poikkeus NegatiivinenPalkkaException, joka syntyy yritettäessä sijoittaa Palkkaominaisuuteen negatiivista arvoa (ks. Tyontekija luokka). Käsittelynä tulostetaan viestiikkunaan teksti Palkka ei saa olla negatiivinen.. o käsittele kaikki muut poikkeukset (yleisesti Exception). Käsittelynä tulostetaan viestiikkunaan teksti Palkkaus epäonnistui: ja varsinainen virheen syy (ominaisuus Message). Poista teksti Palkka TextBox kontrollista. Erota Kaksoisnapsauta jälleen painiketta saadaksesi tapahtumakäsittelijän Click tapahtumalle. Ohjelmoi tapahtumakäsittelijään seuraava toiminta: Määrittele paikallinen Osasto tyyppinen muuttuja o ja aseta sen arvoksi Osastot listalla valittuna oleva osasto (samoin kuin painikkeen Palkkaa kohdalla). Määrittele vastaavasti paikallinen Tyontekija tyyppinen muuttuja t ja sen arvoksi Tyontekijat listalla valittuna oleva työntekijä. try osassa: o Jos Osasto olion o Tyontekijat ominaisuuden sisältämässä geneerisessä listassa (List<Tyontekija>) on Tyontekija olio t (o.tyontekijat.contains(t)) kutsu Osasto olion o metodia Erota antamalla argumentiksi Tyontekiija olio t. poista Osastot listalta käsiteltävänä oleva Osasto olio ja lisää se sitten heti takaisin listalle ( näin saadaan Osasto olion työntekijämäärä päivittymään). o Muuten tulosta viesti ikkunaan ilmoitus: Työntekijä x ei ole osastolla y, missä x on Tyontekija olion t metodi ToString() ja y on Osasto olion o ominaisuus Nimi. catch osassa: o käsittele kaikki poikkeukset (yleisesti Exception). Käsittelynä tulostetaan viesti ikkunaan teksti Erottaminen epäonnistui: ja varsinainen virheen syy (ominaisuus Message). Näytä työntekijät Kaksoisnapsauta jälleen painiketta saadaksesi tapahtumakäsittelijän Click tapahtumalle. Ohjelmoi tapahtumakäsittelijään seuraava toiminta: 12

13 Määrittele paikallinen Osasto tyyppinen muuttuja o ja aseta sen arvoksi Osastot listalla valittuna oleva osasto (samoin kuin edellä). Jos muuttuja sisältää arvon (vertaa arvoon null), o aseta otsikkoteksti Label kontrolliin (Text ominaisuuteen) yhdistämällä vakioteksti Osasto ja Osasto olion metodi ToString(). o Tyhjennä ListBox kontrollin aiempi sisältö kutsumalla Items kokoelman metodia Clear(). o Lisää Osasto olion o sisältämät Tyontekija oliot ListBox kontrolliin. Käytä esimerkiksi foreach lausetta. Ohjelman toiminta Lisää ensin uusi osasto antamalla nimi ja rastimalla molemmat kohdat sekä napsauttamalla lopuksi Tee Osasto olio: Lisää vielä toinen osasto niin, että rastit vain ylemmän vaihtoehdon. Esimerkiksi: Lisää sitten työntekijöitä antamalla nimi ja syntymäaika sekä napsauttamalla lopuksi Tee Työntekijä olio: Tee vielä kolme muuta työntekijää: 13

14 Palkkaa osastolle työntekijä valitsemalla osasto ja työntekijä sekä antamalla palkka: sekä napsauttamalla Palkkaa, jolloin ilmoitustaululle ilmestyy tieto palkkaamisesta (tapahtuma Palkkaa syntyy ja sen tapahtumakäsittelijä o_palkkaaminen suorittuu): Palkkaa muutkin työntekijät. Anna jonkun työntekijän kohdalla negatiivinen palkka, jolloin tulee virheilmoitus: Näytä osaston työntekijät valitsemalla osasto ja napsauttamalla Näytä työntekijät: Erota sitten lopuksi yksi työntekijä molemmista osastoista valitsemalla osasto ja työntekijä sekä napsauttamalla Erota: 14

15 Huomaa, että vain toisen osaston erottamiset näkyvät ilmoitustaululla: Toinen Windows ohjelmaprojekti (LinqTesti) Lisää ensin WJOH1Luokat projektin luokkiin Osasto ja Tyontekija konstruktori, jossa ei ole parametreja eikä suoritettavia lauseita. Tämä tehdään C# 3.0:n olion uutta alustustapaa varten. Lisää Solutioniin toinen Windows ohjelma: Valitse Solution Explorer ikkunassa Solution WJOH1 ja avaa hiiren oikealla sen pikavalikko. Valitse vaihtoehto Add New Project... Valitse Windows Forms Application ja anna nimeksi LinqTesti. Aseta tämä Windows ohjelma käynnistyväksi ohjelmaksi valitsemalla Solution Explorer ikkunassa projektin LinqTesti pikavalikosta (hiiren oikea) vaihtoehto Set as Startup Project. 15

16 Lisää LinqTesti projektin viittauksiin (References) viittaus projektiin WJOH1Luokat. o Valitse Solution Explorer ikkunassa LinqTesti projektin References kohdan pikavalikosta (hiiren oikea) Add Reference... o Valitse Add Reference ikkunassa projekti WJOH1Luokat ja paina OK. Olioiden ja kokoelmien alustus Lisää LinqTesti ohjelmaan Form_Load tapahtumakäsittelijä: Valitse Properties ikkunassa Form1. Valitse sitten Events välilehti. Kaksoisnapsauta Load tapahtuman vieressä olevaa ruutua. Tällöin syntyy Form1_Load tapahtumakäsittelijä (metodi) ja avautuu Form1.cs koodi ikkunaan. Lisää Form1.cs tiedostoon nimiavaruus WJOH1Luokat. Lisää Form1.cs tiedoston luokkaan tyyppiä List<Osasto> oleva kenttä osastot. 16

17 Kirjoita Form1_Load metodiin seuraava koodi: luo kenttään osastot uusi List<Osasto> olio käyttäen C# 3.0:n olioiden ja kokoelmien alustamistapaa: osastot = new List<Osasto> new Osasto Nimi = "Hallinto", Tyontekijat = new List<Tyontekija> new Tyontekija EtuNimi = "Matti", SukuNimi = "Mainio", Palkka = 2100, SyntymaAika = new DateTime(1965,3,13), PalkkausPvm = new DateTime(1990,7,1), new Tyontekija EtuNimi = "Jussi", SukuNimi = "Juonio", Palkka = 2500, SyntymaAika = new DateTime(1964,9,7), PalkkausPvm = new DateTime(1988,5,1), new Tyontekija EtuNimi = "Matti", SukuNimi = "Meikäläinen", Palkka = 1990, SyntymaAika = new DateTime(1972,3,13), PalkkausPvm = new DateTime(1997,7,1), new Tyontekija EtuNimi = "Jussi", SukuNimi = "Juurela", Palkka = 2500, SyntymaAika = new DateTime(1974,12,29), PalkkausPvm = new DateTime(1997,5,1), new Osasto Nimi = "Varasto", Tyontekijat = new List<Tyontekija> new Tyontekija EtuNimi = "Matti", SukuNimi = "Mattila", Palkka = 1800, SyntymaAika = new DateTime(1958,3,13), PalkkausPvm = new DateTime(1985,7,1), new Tyontekija EtuNimi = "Maija", SukuNimi = "Mattila", Palkka = 1850, SyntymaAika = new DateTime(1961,9,7), PalkkausPvm = new DateTime(1983,5,1), 17

18 ; new Tyontekija EtuNimi = "Matti-Pekka", SukuNimi = "Mattila", Palkka = 1690, SyntymaAika = new DateTime(1981,3,13), PalkkausPvm = new DateTime(2005,9,1), new Tyontekija EtuNimi = "Kaija", SukuNimi = "Mattila", Palkka = 1500, SyntymaAika = new DateTime(1983,12,29), PalkkausPvm = new DateTime(2008,1,1), new Tyontekija EtuNimi = "Pentti", SukuNimi = "Pekkala", Palkka = 1850, SyntymaAika = new DateTime(1966,9,7), PalkkausPvm = new DateTime(1985,5,1), new Tyontekija EtuNimi = "Eija", SukuNimi = "Laakso-Pekkala", Palkka = 1690, SyntymaAika = new DateTime(1971,3,13), PalkkausPvm = new DateTime(2000,9,1), new Tyontekija EtuNimi = "Mikael", SukuNimi = "Pekkala", Palkka = 1100, SyntymaAika = new DateTime(1993,12,29), PalkkausPvm = new DateTime(2010,1,1) Lisää Form1 ikkunaan kontrollit: LinkLabel kontrolli, johon teksti Kaikki osastot. DataGridView kontrolli, jonka Anchor ominaisuus asetetaan seuraavasti: 18

19 Lisää sitten LinkLabel kontrollille tapahtuman Click käsittelijä ( toimi samalla idealla kuin Form_Loadkäsittelijän kanssa): aseta DataGridView kontrollin ominaisuuden DataSource arvoksi osastot kentän sisältämä lista Testaa. Linq kyselyt Lisää Form1 ikkunaan Label, johon tekstiksi Osasto TextBox LinkLabel kontrolli, johon teksti Hae osasto (LINQ). LinkLabel kontrolli, johon teksti Hae osasto (laajennusmetodein). Lisää sitten molemmille LinkLabel kontrolleille tapahtuman Click käsittelijä. Hae osasto (LINQ) linkin tapahtumakäsittelijässä: if (textbox1.text.length > 0) var q = (from o in osastot where o.nimi.toupper() == textbox1.text.toupper() 19

20 select o).tolist(); datagridview1.datasource = q; else MessageBox.Show("Osaston nimi puuttuu."); huomaa implisiittinen tietotyyppi var kyselylauseke from where select tuloksen muuttaminen listaksi ToList() metodilla o IEnumerable rajapinnan metodi voidaan kutsua kaikkien LINQ kyselyjen yhteydessä Hae osasto (laajennusmetodein) linkin tapahtumakäsittelijässä: if (textbox1.text.length > 0) var q = osastot.where(o => o.nimi.toupper() == textbox1.text.toupper()).tolist(); datagridview1.datasource = q; else MessageBox.Show("Osaston nimi puuttuu."); huomaa laajennusmetodin Where() käyttäminen huomaa metodin Where() argumentti: lambda lauseke (parametri on siis delegaattityyppinen: metodi, joka palauttaa totuusarvon) o kääntäjä osaa päätellä parametrin o tyypin o koska lauseita on vain yksi, se tulkitaan automaattisesti return lauseeksi o käy läpi oliokokoelman (tässä tapauksessa Osasto listan osastot) oliot ja suorittaa jokaiselle lambda lausekkeen, jos paluuarvo on tosi, lisää olion uudelle Osasto listalle valitsee siis oliot ehtolausekkeen perusteella. Lisää Form1 ikkunaan LinkLabel kontrolli, johon teksti Osaston työntekijät. LinkLabel kontrolli, johon teksti Kaikki työntekijät. 20

21 Lisää sitten molemmille LinkLabel kontrolleille tapahtuman Click käsittelijä. Osaston työntekijät linkin tapahtumakäsittelijässä: if (textbox1.text.length > 0) var q = (from o in osastot from t in o.tyontekijat where o.nimi.toupper() == textbox1.text.toupper() select t).tolist(); datagridview1.datasource = q; else MessageBox.Show("Osaston nimi puuttuu."); huomaa kaksi peräkkäistä from osaa ristiliitos Kaikki työntekijät linkin tapahtumakäsittelijässä: var q = (from o in osastot from t in o.tyontekijat orderby t.ika descending select new OsastoNimi = o.nimi, TyöntekijäNimi = t.etunimi + " " + t.sukunimi, Ikä = t.ika ).ToList(); datagridview1.datasource = q; huomaa olioiden järjestäminen eli orderby osa huomaa select osan anonyymin tyypin käyttö 21

22 Lisää taas Form1 ikkunaan LinkLabel kontrolli, johon teksti Osastokohtainen keski ikä. Tee tälle Click tapahtuman käsittelijä, jossa var q = (from o in osastot from t in o.tyontekijat group t by o.nimi into osastogroup select new Osasto = osastogroup.key, KeskiIka = osastogroup.average(t => t.ika) ).ToList(); datagridview1.datasource = q; huomaa ryhmittelyn käyttäminen eli group osa anonyymissä tyypissä keski iän laskemiseen käytetään laajennusmetodia Average, jossa lambdalauseke Lisää jälleen Form1 ikkunaan LinkLabel kontrolli, johon teksti Yli 30 vuotiaita työntekijöitä. Tee Click tapahtuman käsittelijässä, jossa var q = (from o in osastot select new Osasto = o.nimi, 22

23 Yli30v = o.tyontekijat.count(t => t.ika > 30) ).ToList(); datagridview1.datasource = q; 23

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

Web Services tietokantaohjelmoinnin perusteet

Web Services tietokantaohjelmoinnin perusteet ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...

Lisätiedot

C# Windows ohjelmointi perusopas

C# Windows ohjelmointi perusopas Paavo Räisänen C# Windows ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

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

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

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

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

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

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

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

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

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

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

Microsoft Visual Studio 2005

Microsoft Visual Studio 2005 Sovelluksen jako palvelimiksi: Palvelin on sille annettuun vastuulliseen tehtävään erikoistunut sovellusosa. Käyttöliittymäpalvelin (Web-palvelin) vastaa käyttöliittymän toteuttamisesta. Web-palvelin toteuttaa

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

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

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

JUnit ja EasyMock (TilaustenKäsittely)

JUnit ja EasyMock (TilaustenKäsittely) OHJELMISTOJEN TESTAUS JA HALLINTA Syksy 2015 / Auvo Häkkinen JUnit ja EasyMock (TilaustenKäsittely) Tehtävässä tarvittava koodi löytyy osoitteella http://users.metropolia.fi/~hakka/oth/mockesimerkki.zip

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja

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

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

Ohjelmoinnin perusteet Y Python

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

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

Graafisen käyttöliittymän ohjelmointi

Graafisen käyttöliittymän ohjelmointi TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 2 Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa Sisältö Tapahtumapohjainen ohjelmointi Tapahtumakuuntelijoiden

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

Interaktiivinen tarinankerronta

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

Lisätiedot

Ajokorttimoduuli Moduuli 2. - Laitteenkäyttö ja tiedonhallinta. Harjoitus 1

Ajokorttimoduuli Moduuli 2. - Laitteenkäyttö ja tiedonhallinta. Harjoitus 1 Ajokorttimoduuli Moduuli 2 - Laitteenkäyttö ja tiedonhallinta Harjoitus 1 Tämän harjoituksen avulla opit alustamaan levykkeesi (voit käyttää levykkeen sijasta myös USBmuistitikkua). Harjoitus tehdään Resurssienhallinnassa.

Lisätiedot

5 Näppäimistö. 5.1 Näppäimistön eventit

5 Näppäimistö. 5.1 Näppäimistön eventit 5 Näppäimistö Näppäimistö (Keyboard) on Windows Forms -ohjelmissa keskeisessä asemassa. Erityisesti erilaisissa tekstinkäsittelyohjelmissa ja ohjelmissa, joissa tarvitaan datan syöttämistä esimerkiksi

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

Sähköposti ja uutisryhmät 4.5.2005

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

Lisätiedot

ETAPPI ry JOOMLA 2.5 Mediapaja. Artikkeleiden hallinta ja julkaisu

ETAPPI ry JOOMLA 2.5 Mediapaja. Artikkeleiden hallinta ja julkaisu ETAPPI ry JOOMLA 2.5 Artikkeleiden hallinta ja julkaisu ETAPPI ry JOOMLA 2.5 Sivu 1(16) Sisällysluettelo 1 Joomla! sivuston sisällöntuotanto... 2 2 Artikkeleiden julkaisu sivustolla... 4 3 Artikkelin julkaisemista

Lisätiedot

YHTEYSSUHDE (assosiation)

YHTEYSSUHDE (assosiation) YHTEYSSUHDE (assosiation) -Mikä on yhteyssuhde? -Miten toteutan yhteyssuhteen? 1 Mikä on yhteyssuhde? Yhteyssuhde kuvaa kahden olion välistä suhdetta: Esim. Auto Henkilö, omistussuhde Tili Asiakas, omistussuhde

Lisätiedot

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Microsoft SQL käyttö Yleistä VisualStudiosta Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen: - sovellushallintaan -

Lisätiedot

Windows Phone ohjelmointi perusteet

Windows Phone ohjelmointi perusteet Windows Phone ohjelmointi perusteet Paavo Räisänen www.ohjelmoimaan.com Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus Sisällys 19. Olio-ohjelmointia Javalla Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit

Lisätiedot

Delegaatit ja tapahtumakäsittelijät

Delegaatit ja tapahtumakäsittelijät 14 Delegaatit ja tapahtumakäsittelijät Toinen käyttökelpoinen keksintö C#-kielessä ovat delegaatit. Periaatteessa ne palvelevat samaa tarkoitusta kuin C++:n funktio-osoittimet. Delegaatit ovat kuitenkin

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet

Lisätiedot

Internet Explorer 7 & 8 pop-up asetukset

Internet Explorer 7 & 8 pop-up asetukset Sivu 1(8) Internet Explorer 7 & 8 pop-up asetukset www.procountor.com Internet Explorer 7 ja 8 sisältää pop-up ikkunoiden esto toiminnon. ProCountor -Taloushallintoohjelmistossa voidaan raportit tulostaa

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

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

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

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan

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

C# olio-ohjelmointi perusopas

C# olio-ohjelmointi perusopas Paavo Räisänen C# olio-ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

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

KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN

KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN -Mene osoitteeseen keskustanuoret.fi/user - Kirjoita saamasi käyttäjätunnus ja salasana - Klikkaa yllä olevaa piirisi logoa niin

Lisätiedot

Wilman käyttöohje huoltajille

Wilman käyttöohje huoltajille Wilman käyttöohje huoltajille Sisällysluettelo: Sisään kirjautuminen... 1 Oma etusivu... 2 Pikaviestit... 3 Tiedotteet... 5 Suoritukset... 6 Poissaolot... 6 Palaute... 8 Opettajat... 9 Salasanan vaihto...

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

Osio 4: Graafinen käyttöliittymä

Osio 4: Graafinen käyttöliittymä Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti (label) muokkausruutu (text field) komentopainike (button) yhdistelmäruutu (combo box) paneeli

Lisätiedot

12 Mallit (Templates)

12 Mallit (Templates) 12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista

Lisätiedot

Opus SMS tekstiviestipalvelu

Opus SMS tekstiviestipalvelu Opus SMS tekstiviestipalvelu Sivu 1 / 17 1. Yleistä toiminnosta Opus SMS tekstiviestipalvelun avulla voidaan Opus Dental potilashallintaohjelmasta Lähettää muistutuksia tekstiviestillä Lähettää tiedusteluita

Lisätiedot

Tilastokeskuksen rajapintapalveluiden käyttöönotto QGISohjelmistossa

Tilastokeskuksen rajapintapalveluiden käyttöönotto QGISohjelmistossa 1(13) Tilastokeskuksen rajapintapalveluiden käyttöönotto QGISohjelmistossa (QuantumGIS) Ohjeita laatiessa on käytetty QuantumGIS:n versiota 2.0.1. Ruudunkaappauskuvat ovat englanninkielisestä versiosta,

Lisätiedot

Tech Conference 28.-29.5.2015. Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI

Tech Conference 28.-29.5.2015. Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI Tech Conference 28.-29.5.2015 Visual Studio 2015, C#6,.NET4.6 Heikki Raatikainen #TechConfFI Yleistä Avoimuus Open Source ja tuki yleisesti käytetyille ei-ms työkaluille Kaikki alustat tuettuna:.net 5

Lisätiedot

Tukipyyntö-toiminnon ohje

Tukipyyntö-toiminnon ohje Tukipyyntö-toiminnon ohje Diagnoosilaitteen teknisen tukipyyntötoiminnon avulla avataan teknistä tukea koskeva asiakirja, joka sisältää tietoja ongelmatilanteen ratkaisemiseksi. Sen kautta saadaan käyttöön

Lisätiedot

Oppilaan pikaopas. Project 2013 käyttöliittymä ja näkymät

Oppilaan pikaopas. Project 2013 käyttöliittymä ja näkymät 1 Oppilaan pikaopas Project 2013 käyttöliittymä ja näkymät Kun avaat Project 2013 -ohjelman, näet ensimmäisenä pelkistetyn näkymän. Uusi Project 2013 voi auttaa projektinhallinnassa kuten esim. projektitietojen

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

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä. Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä. JUnit-ympäristö 1. Luo tests -pakkaukseen uusi luokka. Nimeä VHTestit. 2. Laita VHTestit periytymään TestCase:sta

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

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Esimerkki: Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Luo tietokanta Koulu. Tietokantaan lisätään 3 taulua. Kurssit-taulu: kurssiid not null primary key INTEGER aineid not

Lisätiedot

HARJOITUS 2: Käyttäjien ja käyttäjäryhmien luominen, Active Directory Users and Computers

HARJOITUS 2: Käyttäjien ja käyttäjäryhmien luominen, Active Directory Users and Computers HARJOITUS 2: Käyttäjien ja käyttäjäryhmien luominen, AD Users and Computers Domain Name System, DNS * Active Directory, AD * Windows Server 2008 * * Tehtävä 1 Tomi Stolpe Turun AKK 11.11.2009 SISÄLLYSLUETTELO

Lisätiedot

STS Uuden Tapahtuma-dokumentin teko

STS Uuden Tapahtuma-dokumentin teko STS Uuden Tapahtuma-dokumentin teko Valitse vasemmasta reunasta kohta Sisällöt. Sisällöt-näkymä Valitse painike Lisää uusi Tapahtuma 1 Valitse kieleksi Suomi Välilehti 1. Perustiedot Musta reunus kieliversioneliön

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

YLÄ JA ALATUNNISTE...

YLÄ JA ALATUNNISTE... Word 2013 Ylä- ja alatunniste YLÄ- JA ALATUNNISTE YLÄ JA ALATUNNISTE... 1 Ylätunnisteen tekeminen... 1 Oman ylätunnisteen tekeminen ja tallentaminen rakenneosaksi... 4 Alatunnisteen tekeminen... 4 Erilainen

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN

Lisätiedot

UML Luokkakaavio 14:41

UML Luokkakaavio 14:41 UML Luokkakaavio UML Olio-ohjelman luokkien pääpiirteet voidaan kätevähkösti esittää ns. UML-luokkakaaviona. Näin usein tehdäänkin esim. suunniteltaessa, millaisia luokkia ohjelmaan on tarkoitus laatia,

Lisätiedot

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 12.4.2010 T-106.1208 Ohjelmoinnin perusteet Y 12.4.2010 1 / 34 Graafiset käyttöliittymät Tähän asti kirjoitetuissa ohjelmissa on ollut tekstipohjainen käyttöliittymä.

Lisätiedot

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Condess ratamestariohjelman käyttö Aloitus ja alkumäärittelyt Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Kun kysytään kilpailun nimeä, syötä kuvaava nimi. Samaa nimeä käytetään oletuksena

Lisätiedot

Diacor Turku extranet

Diacor Turku extranet Diacor Turku extranet Extranet on asiakasyritystemme vastuuhenkilöille tarkoitettu sähköinen palvelukanava. Diacor Turun extranet- sivustolla yrityksen kontaktihenkilön on mahdollista kirjata työntekijöiden

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin Olio-ohjelmointi: Luokkien toteuttaminen Jukka Juslin Luokkien kirjoittaminen Tähän mennessä on käytetty valmiiksi määritettyjä luokkia. Nyt opimme kirjoittamaan omia luokkia olioiden kuvaamiseksi Seuraavaksi

Lisätiedot

Ksenos Prime Käyttäjän opas

Ksenos Prime Käyttäjän opas Ksenos Prime Käyttäjän opas Versio 11.301 Turun Turvatekniikka Oy 2011 Selaa tallenteita. Tallenteiden selaaminen tapahtuu samassa tilassa kuin livekuvan katselu. Voit raahata hiirellä aikajanaa tai käyttää

Lisätiedot

http://www.microsoft.com/expression/

http://www.microsoft.com/expression/ Verkkojulkaisuharjoitus1 TAVOITE Harjoituksen tarkoituksena on opiskella käyttämään verkkojulkaisueditoria (Microsoft Expression Web) ja käynnistämään verkkosivu internetissä. VERKKOSIVUEDITORIN KÄYTTÖOHJEITA

Lisätiedot

Java-kielen perusteita

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

Lisätiedot

Kuva 7.2 vastaustaulu harjoitukseen 7.2

Kuva 7.2 vastaustaulu harjoitukseen 7.2 Harjoitus 7. Lataa tiedosto http://users.metropolia.fi/~pasitr/opas/ran13b/data/ran13b.zip levylle Z: ja pura se. Kun olet tehnyt kaikki seuraavat 17 tehtävää palauta Tuubiin harjoituksen 7 vastauksena

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

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

Lisätiedot

Pika-aloitusopas. Sisältö: Projektin luominen Projektin muokkaaminen ja hallinnointi Projektin/arvioinnin tulosten tarkastelu

Pika-aloitusopas. Sisältö: Projektin luominen Projektin muokkaaminen ja hallinnointi Projektin/arvioinnin tulosten tarkastelu Pika-aloitusopas Sisältö: Projektin luominen Projektin muokkaaminen ja hallinnointi Projektin/arvioinnin tulosten tarkastelu Tämä asiakirja on laadittu auttamaan sinua hallinnoimaan nopeasti CEB TalentCentral

Lisätiedot

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002 JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä

Lisätiedot

TyontekijaOhjelma. +main() (käyttää) + = public - = private

TyontekijaOhjelma. +main() (käyttää) + = public - = private 1 (6) OPPIMISTEHTÄVÄT 11 (opetusviikko 15) Periytyminen, Rajapinta, Kertaus 1) Periytyminen: Periytä Henkilo-luokasta Tyontekija-aliluokka. Tyontekija-luokalla on attribuutti tuntipalkka (desimaaliluku).

Lisätiedot

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8) WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8) 1 UUDEN KILPAILUTIEDOSTON AVAUS Avaa Wcondes ohjelma tuplaklikkaamalla wcondes.lnk ikonia. Ohjelma avaa automaattisesti viimeksi tallennetun kilpailutiedoston.

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

Autokunto-ohjelmiston käyttöohjeet

Autokunto-ohjelmiston käyttöohjeet Autokunto-ohjelmiston käyttöohjeet Koskilinjat Oy Panu Toropainen SISÄLLYSLUETTELO SISÄLLYSLUETTELO...I 1. TÖIHIN SISÄÄN JA ULOS KIRJAUTUMINEN...1 1.1. Työlle kirjautuminen...2 1.2. Vikailmoituksen tekeminen...5

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

Hgin kaupungin opetusvirasto Wilma opas huoltajille 1(10) HAKE/Tiepa 28.2.2007 KKa

Hgin kaupungin opetusvirasto Wilma opas huoltajille 1(10) HAKE/Tiepa 28.2.2007 KKa Hgin kaupungin opetusvirasto Wilma opas huoltajille 1(10) :LOPD 0LNl:LOPDRQ" Wilma on internetin kautta toimiva liittymä opettajille, oppilaille ja näiden huoltajille. Se ei ole käyttäjän koneella oleva

Lisätiedot

TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE

TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE HERVANNAN KIRJASTON TIETOTORI Insinöörinkatu 38 33720 Tampere 040 800 7805 tietotori.hervanta@tampere.fi TALLENNETAAN MUISTIKULLE JA MUISTIKORTILLE 1 Muistitikun

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

Lisätiedot

Muuttujien määrittely

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

Lisätiedot

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat Microsoft Office 2010 löytyy tietokoneen käynnistävalikosta aivan kuin kaikki muutkin tietokoneelle asennetut ohjelmat. Microsoft kansion sisältä löytyy toimisto-ohjelmistopakettiin kuuluvat eri ohjelmat,

Lisätiedot

1. Uuden Ilmon käytön eroavaisuudet vanhasta Ilmosta lyhyesti

1. Uuden Ilmon käytön eroavaisuudet vanhasta Ilmosta lyhyesti Sisällysluettelo 1. Uuden Ilmon käytön eroavaisuudet vanhasta Ilmosta lyhyesti... 2 Huomattavaa kurssin tietojen täyttämisessä!... 2 2. Kurssikuvauksen ja muiden opiskelijoille näkyvien kurssitietojen

Lisätiedot

Tapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007

Tapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007 Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit

Lisätiedot

MAANMITTAUSLAITOKSEN ILMAISTEN KARTTOJEN TULOSTAMINEN QUANTUM GIS -OHJELMALLA

MAANMITTAUSLAITOKSEN ILMAISTEN KARTTOJEN TULOSTAMINEN QUANTUM GIS -OHJELMALLA 1 (6) MAANMITTAUSLAITOKSEN ILMAISTEN KARTTOJEN TULOSTAMINEN QUANTUM GIS -OHJELMALLA TEEMU SALORIUTTA 17.6.2012 Päivitetty 28.6.2013 1. Avaa Maanmittauslaitoksen latauspalvelu osoitteesta https://tiedostopalvelu.maanmittauslaitos.fi/tp/kartta.

Lisätiedot

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä.

Pikaopas. Ohjeiden etsiminen Hae ohjesisältöä napsauttamalla kysymysmerkkiä. Pikaopas Microsoft Access 2013 näyttää erilaiselta kuin aiemmat versiot. Tämän oppaan avulla pääset alkuun nopeasti ja saat yleiskuvan uusista ominaisuuksista. Näyttökoon muuttaminen tai tietokannan sulkeminen

Lisätiedot