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

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

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

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

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

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

Lisätiedot

1. Omat operaatiot 1.1

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

Lisätiedot

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

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

Lisätiedot

Javan perusteita. Janne Käki

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

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

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

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten

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

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

KOHDELUOKAN MÄÄRITTELY

KOHDELUOKAN MÄÄRITTELY KOHDELUOKAN MÄÄRITTELY Kohdeluokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Taulukon alkiona

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

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

Lisätiedot

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

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,

Lisätiedot

815338A Ohjelmointikielten periaatteet

815338A Ohjelmointikielten periaatteet 815338A Ohjelmointikielten periaatteet 2015-2016 VIII Poikkeusten ja tapahtumien käsittely Sisältö 1. Poikkeusten käsittelyn käsitteitä ja suunnittelukriteerejä 2. Poikkeusten käsittely C++:ssa 3. Poikkeusten

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

Poikkeustenkäsittely

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

Lisätiedot

Periytyminen (inheritance)

Periytyminen (inheritance) 1 Periytyminen (inheritance) Mitä periytyminen on? Yli- ja aliluokka Konstruktorit Get- ja set-metodi Muut metodit tostring Yksinkertainen pääohjelma 1 Mitä periytyminen on? Periytymisen avulla olemassa

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

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

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

Lisätiedot

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

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

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

HYVÄKSILUETTUJEN SUORITUSTEN REKISTERÖIMINEN

HYVÄKSILUETTUJEN SUORITUSTEN REKISTERÖIMINEN 1 HYVÄKSILUETTUJEN SUORITUSTEN REKISTERÖIMINEN Valitse Opintojen rekisteröinti -valikosta Hyväksilukeminen. Voit valita Näytettävät opinnot -osiosta, mitkä opiskelijan suorituksista näkyvät aktiivisina

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

19. Olio-ohjelmointia Javalla 19.1

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

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

Olio-ohjelmointi Virhetilanteiden käsittely

Olio-ohjelmointi Virhetilanteiden käsittely Olio-ohjelmointi 2016 Virhetilanteiden käsittely Poikkeustilanteet n Java-järjestelmässä voidaan ottaa kiinni ohjelman suoritusaikana tapahtuvia virhetilanteita, joita ei saada kiinni tavanomaisilla ohjausrakenteilla

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

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

10 Lock Lock-lause

10 Lock Lock-lause 10 Lock Avainsanan lock (Lock keyword) avulla voidaan toteuttaa prosessien ja säikeiden välisessä keskinäisessä kommunikoinnissa käytettäviä synkronointi- ja poissuljentarakenteita. Tämän niin sanotun

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

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

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

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet Metodit Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin return; -lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua Metodi voi palauttaa alkeistyypin tai olion Tällöin

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

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

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

Lisätiedot

UML ja luokkien väliset suhteet

UML ja luokkien väliset suhteet UML ja luokkien väliset suhteet -Luokan kuvaaminen UML-tekniikalla -Yhteyssuhde ja koostumussuhde 1 Luokan kuvaaminen UML-tekniikalla : Luokka - attribuutti1 : tietotyyppi # attribuutti2 : tietotyyppi

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

Dialogit. Juha Järvensivu 2008

Dialogit. Juha Järvensivu 2008 Dialogit Juha Järvensivu juha.jarvensivu@tut.fi 2008 Yleistä 2 vaihtoehtoista toteutusmekanismia Layoutteihin perustuva dialogi Absoluuttisiin koordinaatteihin perustuva dialogi Haasteita 1. Dialogin selkeä

Lisätiedot

7. Oliot ja viitteet 7.1

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

Lisätiedot

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

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

Lisätiedot

VSP webmail palvelun ka yttö öhje

VSP webmail palvelun ka yttö öhje VSP webmail palvelun ka yttö öhje Kirjaudu webmailiin osoitteessa https://webmail.net.vsp.fi Webmailin kirjautumissivu, kirjoita sähköpostiosoitteesi ja salasanasi: Sähköpostin päänäkymä: 1: Kansiolistaus

Lisätiedot

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

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

Lisätiedot

Lumme-verkkokirjaston tiedonhaun opas Pieksämäen kaupunginkirjasto

Lumme-verkkokirjaston tiedonhaun opas Pieksämäen kaupunginkirjasto Lumme-verkkokirjaston tiedonhaun opas Pieksämäen kaupunginkirjasto Tervetuloa Lumme-kirjastojen verkkokirjastoon! Ilman kirjautumista voit selata aineistotietokantaa tarkistaa onko teos hyllyssä vai lainassa

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

ITKP102 Ohjelmointi 1 (6 op)

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

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

GEOS 1. Ilmastodiagrammi Libre Office Calc ohjelmalla

GEOS 1. Ilmastodiagrammi Libre Office Calc ohjelmalla GEOS 1 Ilmastodiagrammi Libre Office Calc ohjelmalla Libre Office Calc ohjelman saat ladattua ilmaiseksi osoitteesta: https://fi.libreoffice.org/ Tässä ohjeessa on käytetty Libre Office Calc 5.0 versiota

Lisätiedot

1. Taustatietoa näppäimistönkuuntelusta

1. Taustatietoa näppäimistönkuuntelusta Muilla kielillä: English Suomi Pong-peli, vaihe 5 Tämä on Pong-pelin tutoriaalin osa 5/7. Tämän vaiheen aikana Lisäämme peliin näppäimet Laitetaan mailat liikkumaan pelaajien ohjaamina Näin ohjelmaamme

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")

Lisätiedot

Invalidiliiton Kilta-rekisteri

Invalidiliiton Kilta-rekisteri Invalidiliiton Kilta-rekisteri Invalidiliitolla on käytössään Internet-selaimella käytettävä Kilta-rekisterisovellus. Rekisterisovellus löytyy osoitteesta https://kilta.invalidiliitto.fi, se on suojattu

Lisätiedot

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi olioperustainen sokkeloseikkailu peli Javakielellä. Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen

Lisätiedot

Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy

Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy Opiskelijoiden OneDriveohje Kaakkois-Suomen Ammattikorkeakoulu Oy Mikkelin Ammattikorkeakoulu Oy Kymenlaakson Ammattikorkeakoulu Oy Ohjeen nimi Opiskelijoiden OneDrive-ohje Vastuuhenkilö Mari Jokiniemi

Lisätiedot

LIITE 1 1. Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa.

LIITE 1 1. Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa. LIITE 1 1 HARJOITUS 1 Kitara Tehtävänä on mallintaa kitara ohjeiden mukaan käyttäen Edit Poly-tekniikkaa. Käsiteltävät asiat Edit Poly Muokkaus kuvan mukaan TurboSmooth Extrude 1. Tarkistetaan että mittayksiköt

Lisätiedot

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

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.

Lisätiedot

Webmail on monipuolinen työkalu jolla voi tehdä paljon muutakin kuin lukea sähköpostia. Tässä ohjeessa on lyhyesti esitelty joitakin sen ominaisuuksia. Peruspostilaatikossa ei ole kaikkia ominaisuuksia,

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

Kopiodaksesi, leikataksesi ja liittääksesi helpointa on käyttää näppäimistön pikavalintoja:

Kopiodaksesi, leikataksesi ja liittääksesi helpointa on käyttää näppäimistön pikavalintoja: Ohjeita järjestöpankin käytön tueksi Huomioitavaa:... 1 1 Sisäänkirjautuminen... 2 2 Sivun/henkilökortin muokkaaminen... 2 3 Uutisen/sivun/tapahtuman, tms. lisääminen... 3 4 Uutisen/tapahtuman saaminen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä

Lisätiedot

Painonhallinta. Kirjaudu sovellukseen antamalla käyttäjätunnus ja salasana.

Painonhallinta. Kirjaudu sovellukseen antamalla käyttäjätunnus ja salasana. Painonhallinta Sisäänkirjautuminen Kirjaudu sovellukseen antamalla käyttäjätunnus ja salasana. Kuva 1 Sisäänkirjautuminen Yleistä Painonhallinta toimii internet-selaimella, mutta liikuttaessa sovelluksessa,

Lisätiedot

Varmenteiden asentaminen & WLAN Nokian puhelimille

Varmenteiden asentaminen & WLAN Nokian puhelimille Tietohallintokeskus Varmenteiden asentaminen & WLAN Nokian puhelimille Datainfon toimittamiin vakioituihin henkilökunnan Nokian puhelimiin E5, E6 ja E7 on esiasennettu tarvittavat varmenteet, joten yleensä

Lisätiedot

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai ) Tehtävä do while + Viikko 1 Tehtävä 27. Salasana (MOOC) Viikko 1 Tehtävä 28. Lämpötilat (MOOC) Tehdään ohjelma, joka kysyy käyttäjältä lukua. Luku kerrotaan aina seuraavalla käyttäjän antamalla luvulla

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

Olio-ohjelmointi Syntaksikokoelma

Olio-ohjelmointi Syntaksikokoelma C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

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

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

Lisätiedot

Avaa sovellus (PERUSAURORA)

Avaa sovellus (PERUSAURORA) 23.12.2010. Päivitetty 12.01.2011. Täydennetty 01.02.2011 Kaarina Karjalainen 1 Tehdyn numeron kopioiminen omalle osastolle Tämä on ohje numeroiden kopioimista varattaville/lainattaville lehdille. Pääsääntönä

Lisätiedot

5. HelloWorld-ohjelma 5.1

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

Lisätiedot

Office Video, pikaopas

Office Video, pikaopas Office 365 - Video, pikaopas Sisällys Palvelu... 2 Kanavan luonti... 3 Kuinka kanava kannattaa nimetä?... 4 Kanavan käyttöoikeudet... 4 Käyttöoikeustasot... 5 Videoiden lisääminen kanavalle... 6 Videon

Lisätiedot

Ohjelmoinnin perusteet, kurssikoe

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

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

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

Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat:

Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat: 1. Luokan jäsenet Luokassa määriteltävät jäsenet ovat pääasiassa tietojäseniä tai aliohjelmajäseniä. Luokan määrittelyyn liittyvät varatut sanat: class luokan_nimi tyypit: enum, struct, class, typedef

Lisätiedot

Ohjelman virheet ja poikkeusten käsittely

Ohjelman virheet ja poikkeusten käsittely Ohjelman virheet ja poikkeusten käsittely 17 Ohjelman virheet ja poikkeusten käsittely Poikkeukset ovat tapa ilmoittaa virheistä ja odottamattomista tilanteista C++-ohjelmassasi. Poikkeusten käyttö virheiden

Lisätiedot

C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi

C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi 1 C++11 Syntaksi Jari-Pekka Voutilainen 13.4.2012 2 Range-for Iteroi säiliön kaikki alkiot for-silmukassa. Säiliöltä vaaditaan begin- ja end-iteraattorit. Pätee kaikille C++11 STL-säiliöille, taulukoille,

Lisätiedot

C++11 lambdat: [](){} Matti Rintala

C++11 lambdat: [](){} Matti Rintala C++11 lambdat: [](){} Matti Rintala bool(*)(int) Tarve Tarve välittää kirjastolle/funktiolle toiminnallisuutta Callback-funktiot Virhekäsittely Käyttöliittymät Geneeristen kirjastojen räätälöinti STL:n

Lisätiedot

- Jalkapalloa jokaiselle -

- Jalkapalloa jokaiselle - Kauden vaihto Ohjeita ylläpitäjille Arto Kalliola - Jalkapalloa jokaiselle - KAUDEN VAIHTAMINEN JOPOX-JÄRJESTELMÄSSÄ Yleistä Kun toimintakausi lähestyy loppuaan, luodaan Jopox-järjestelmään seuraavaa kautta

Lisätiedot

Office_365_loppukäyttäjän ohje. 15.5.2015 Esa Väistö

Office_365_loppukäyttäjän ohje. 15.5.2015 Esa Väistö Office_365_loppukäyttäjän ohje 15.5.2015 Esa Väistö 2 Sisällysluettelo Kuvaus... 3 Kirjautuminen Office_365:een... 3 Valikko... 4 Oppilaan näkymä alla.... 4 Opettajan näkymä alla... 4 Outlook (Oppilailla)...

Lisätiedot

Outlook Web Access 1(7) 9.9.2011 OUTLOOK WEB ACCESS (OWA) SÄHKÖPOSTIN KÄYTTÖ

Outlook Web Access 1(7) 9.9.2011 OUTLOOK WEB ACCESS (OWA) SÄHKÖPOSTIN KÄYTTÖ Outlook Web Access 1(7) OUTLOOK WEB ACCESS (OWA) SÄHKÖPOSTIN KÄYTTÖ Pääset OWA-sähköpostiin selaimella (esim. Internet Explorer, Mozilla Firefox). Tässä ohjeessa on käytetty Internet Exploreria, jonka

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

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

Lisätiedot

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

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

Pakkauksen kokoaminen

Pakkauksen kokoaminen 13. Pakkaukset 13.1 Sisällys Pakkauksen kokoaminen (package). Pakkaukset ja hakemistorakenne. Pakkauksen luokkien käyttö muissa pakkauksissa (import). Pakkaukset ja näkyvyys. 13.2 Pakkauksen kokoaminen

Lisätiedot

Mitä poikkeuskäsittely tarkoittaa?

Mitä poikkeuskäsittely tarkoittaa? Poikkeuskäsittely Mitä poikkeuskäsittely tarkoittaa? Poikkeuskäsittelyluokkien hierakkia Poikkeuksen sieppaaminen Mihin järjestykseen try-catch-lauseen ExceptionType-poikkeukset laitetaan? Poikkeuksen

Lisätiedot

5. Valitse Skannauslähde Skannaa-painike (etupaneeli) -ikkunasta Kuva tiedostoon.

5. Valitse Skannauslähde Skannaa-painike (etupaneeli) -ikkunasta Kuva tiedostoon. 1 Kuvien ja asiakirjojen skannaus HP Scanjet G4050 (PIKAOHJE!) VALOKUVIEN SKANNAUS 1. Käynnistä skanneri virtapainikkeesta 2. Avaa skannerin kansi ja aseta kuva seuraavasti: kuvapuoli, eli skannattava

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

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6 1 INTERBASE 5.0 PÄIVITYS VERSIOON 5.6 HUOM: Tämä ohje on tarkoitettu yksittäisen koneen päivittämiseen, mikäli InterBase on asennettu serverille ota yhteys DL Software Tukeen. HUOM: Mikäli koneessasi on

Lisätiedot

Käyttöohje kansalaisopiston opettajille

Käyttöohje kansalaisopiston opettajille Populus matkojen hallinta Käyttöohje kansalaisopiston opettajille Päivitetty 8.2.2017 Sisältö: 1. Populukseen kirjautuminen ja käyttäjätunnukset 2. Useammat ajot samalle matkalaskulle 3. Yksittäisen matkalaskun

Lisätiedot