Harjoitustyö (TKO_2023)
|
|
- Ville-Veikko Laakso
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 Harjoitustyö (TKO_2023) Jyri Lehtonen (72039) (alkuperäinen ) päivitetty: Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee Java-appletti, joka kysyy käyttäjältä asioita Java-kielestä. Appletti esittää aina kysymyksen ja käyttäjä antaa vastauksen klikkaamalla painiketta (Kyllä/Ei). Kysymyksiä voi olla esim. 15. Kun kysymykset on käyty läpi, appletti näyttää tulokset graafisesti esim. pylväinä (oikeat/väärät) vastaukset. Kysymykset tulee ladata tekstitiedostosta palvelimelta, josta appletti on ladattu. 1.2 Tehtävänannon analysointi Harjoitustyön tehtävänä oli toteuttaa yksinkertainen tietovisasovellus. Tehtävänanto jätti ratkaisuvalintoja myös tekijän pohdittavaksi. Appletti ehdon tähden tietovisan on toimittava HTML ympäristössä. Pyrin toteuttamaan yksinkertaisen tietovisan, jossa HTML sivulle saapumisen jälkeen voi avata ohjeet peliin tai käynnistää sen. Käynnistyksen jälkeen pelaajalla on vaihtoehtoina tietovisassa valita kumpaa vastaa (kyllä tai ei) ja vastata kysymykseen. Vastauksen jälkeen pelaaja voi siirtyä eteenpäin tietovisassa. Pistetilanteensa hän saa näkyviin valitsemalla pisteet painikkeen. Pelissä on yksinkertaiset säännöt. Oikein vastaamalla pelaaja saa pisteen, väärin vastaamalla hän menettää pisteen. Pelin kysymysten päättyessä pelaaja saa näkyviin tilastot hänen suorituksestaan. Tilastoissa näkyy kuinka monta kysymystä oli oikein ja väärin, ja näiden avulla laskettavat pisteet pylväsdiagrammina. Tietovisa etenee siten, että pelaaja ensin valitsee tiedon vastaako kysymykseen kyllä tai ei. Tämän jälkeen hän valitsee vastaa painikkeen, jonka jälkeen vastaa painike katoaa hetkeksi ja seuraava painike ilmestyy tämän viereen. Seuraava painike tuo uuden kysymyksen ja palauttaa vastaa painikkeen. Pelaajalle tulostetaan tieto pelin kulusta jokaisessa valinnassa palauteruutuun, joka sijaitsee valintapainikkeiden alla. Tätä ruutua seuraamalla pelaaja tietää mitä pitää tehdä tai mitä hänen edellinen tekonsa aiheutti. Kun kierros on päättynyt, pelaaja voi aloittaa tilastojen katsomisen jälkeen uuden kierroksen. 1
2 2 Ratkaisuperiaate Lähdin ratkaisemaan tehtävää pohtimalla tehtävänannon kannalta oleellisia luokkia ja niiden välisiä relaatioita. Alustavasti sovelluksen toteuttamista varten näin tarpeelliseksi seuraavat luokat; GUI-, Kysymys- ja Vastausluokka. Alustavasti oli myös suunniteltu vastauksien sisältyvän kysymyksien kanssa samaan tiedostoon, mutta ensimmäinen valmis toteutus sisälsi vain kysymykset tiedostosta. Kuitenkin koska appletit toimivat hieman eritavalla kuten "normaalit sovellukset", eikä tehtävänanto vaatinut vastauksien kohdalla mitään konkreettista, päädyin "yhdistämään" luokat GUI-luokkaan siten, että tietovisa olisi yhden luokan mittainen sovellus kolmen sijasta. Ensimmäisessä versiossa vastaukset olivat "kovakoodattuja" ohjelmakoodin sisään alkuperäisen suunnitelman vastaisesti. Tällöin jos halusi muuttaa kysymyksiä, joutui muuttamaan ohjelmakoodiakin. Viimeisessä versiossa (1.1) tämä muutettiin siten, että tietovisan kysymykset ja vastaukset sijaitsevat alkuperäisen suunnitelman mukaisesti samassa tekstitiedostossa, erotettuna välimerkillä. Enää ei ole tarpeellista muuttaa ohjelmakoodia, jos haluaa muuttaa kysymyksiä ja vastauksia. GUI-luokka pitää sisällään tietovisan graafisen käyttöjärjestelmän, pelitekniikan, säännöt, vastauksien- ja kysymyksienkäsittelyn. Tämä luokka siis mallintaa koko tietovisan. Tehtävänannon mukaiset vastausominaisuudet kyllä ja ei, ovat mallinnettuina ympyrävalinta1 (CheckBox) ja ympyrävalinta2 (CheckBox) avulla. Kysymykset ladataan erilliseltä tiedostolta (Kysymykset.txt) sovellukseen. Tiedoston on sijaittava samassa kansiossa sovelluksen kanssa jotta kysymykset näkyisivät. Kysymyksien lukemisesta pelitekniikkaan vastaa luetiedosto()-metodi. Tämä metodi tallentaa kysymykset tietovisan sisälle tietopankkiin (ArrayList<String> kysymyslista), josta pelitekniikka esittää kysymykset yksi kerrallaan. Tiedosto, josta kysymykset haetaan, on tietovisaan määrätty kohtaan luettavatiedosto (String). Vastaukset kysymyksiin sijaitsevat samassa tiedostossa kysymyksien kanssa. Sovellus lukee vastaukset samalla muistiin, kun lukee kysymyksetkin. Metodi luetiedosto() tallettaa vastaukset toiseen tietopankkiin (ArrayList<String> vastauslista), josta pelitekniikka tarkistaa pelaajan vastatessa oikean ratkaisun kysymykseen. Tehtävänannossa ei mainittu, että kysymyksiä pitäisi sekoittaa pelikertojen välissä, joten koin tämän ratkaisun toimivaksi tässä tilanteessa. Tilastolliset tekijät tietovisaan suoritetaan piirtämällä suorakulmioita (Rectangle2D) joiden pituus vaihtelee pelaajan vastausten mukaisesti. Tilastollisuuden havainnoimisen helpottamiseksi tilastolliseen näkymään esitetään vielä rakenteita (Line2D) ja tekstiä drawstring(). Tietovisaan kehittyi heti ensimmäisestä kokonaisvaltaisemmasta testauksesta palauteruutu (TextField) graafiseen käyttöjärjestelmään. Tämän tilan avulla pystyin helposti kertomaan onnistuiko tekemäni sovellusmuutos. Tällä oli suurta vaikutusta testaamisen helpottumiseen. Tämä ruutu myös palvelee pelaajaa kertomalla hänelle toimintojensa vaikutuksen. Tietovisan etenemiseksi oli välttämätöntä lisätä kuuntelijoita painikkeisiin (ActionListener). Sovellus asettaa jokaiseen painikkeeseen (Button) kuuntelijan, ja pelaajan valitessa jonkun näistä, tapahtuma tarkastetaan actionperformed()- metodista. Metodi sisältää kutsun kaikkien painikkeiden toimintoihin. 2
3 Koin työn hyväksi harjoitukseksi, joten suoritin kaksi ylimääräistä asiaa tietovisasovellukselle. Ensin suoritin ystäväpiirissä käytettävyystestauksen, jonka avulla muutin ohjelmaa siten, ettei siinä ole enää epäselviä tilanteita käyttäjän kannalta. Toiseksi suoritin ohjelmalle uudelleenpelattavuuden, eli tietovisan voi käynnistää uudelleen pelattavaksi "Pelaa uudelleen" napista (Button). 3 Ohjelman ja sen osien kuvaaminen 3.1 Luokka GUI Luokka sisältää kaiken tarpeellisen tietovisan toiminnalle Ilmentymämuuttujat /* Harjoitustyö (TKO_2023) Kevät 2008 Tämä sovellus esittää interaktiivisen tietovisan. Sovelluksen on tarkoitus pyöriä html sivuston seassa, täten sen toteutus on Appletti, jonka luokka perii. ActionListener toteutetaan myös, jotta graafisen käyttöliittymän nappien painallukset havaittaisiin. Nappien panallus johtaa kutsun metodille actionperformed, joka selvittää jatkon mukaisen toiminnan. Sovellus lukee kysymykset erilliseltä tiedostolta (luettavatiedosto) ja esittää ne pelin edetessä aina samassa järjestyksessä. Kysymyksiä ei sekoiteta. Vastaukset kuuluvat (versio 1.1) jälkeen kysymystiedostoon, erotettuna kysymyksestä merkillä (;) -> (True/False) ohjaajan vaatimusten mukaisesti. Vastaukset eivät siis enää ole "kovakoodattuja", eli kysymyksen ja vastauksen voi helposti vaihtaa tietovisaan muuttamalla luettavatiedosto (.txt) haluamalla tavalla. Versio 1.2: Koodin ulkoasun muotoilua ja ilmentymämuuttujien suojausmääreen lisäys. actionperformed() metodin siistiminen siten, että itse toiminnot ovat omissa metodeissaan ja kyseinen metodi sisältää vain kutsun niihin. actionperformed() metodin kutsuttavien metodien uudelleen nimeäminen, ja uusien metodien siirto omaan "rypäleeseen". Tekijä: Jyri Lehtonen (72039), Versio: 1.1 ( ) Versio: 1.2 ( ) */ public class GUI extends Applet implements ActionListener { //Graafisen käyttöliittymän komponentit. private Button oknappi; private Button nextnappi; private Button pisteetnappi; private Button aloitanappi; 3
4 private Button ohjeetnappi; private Button bootnappi; private Button statistic; private TextArea kysymystila; private TextArea finaali; private TextField palautetila; private CheckboxGroup valintaryhmä; private Checkbox ympyrävalinta1; private Checkbox ympyrävalinta2; //Tietovisan kysymykset haetaan tiedostosta... private String luettavatiedosto = "Kysymykset.txt"; private StringBuffer strbuff; //Tietovisan pelitekniikkaan liittyvät komponentit. private int vipu=0; private int pisteet= 0; private int oikein=0; private int väärin=0; private int peliloppu=0; //Tietovisan käyttämät "tietopankit". private ArrayList<String> kysymyslista = new ArrayList(); private ArrayList<String> vastauslista = new ArrayList(); //Kuuntelijan vastauslistan vaihtoehdot private String oikea="true"; private String väärä="false"; Appletin alustaja /********************************************************************* * Tämä metodi ajaa appletissa itsensä, ja alustaa * ohjelman käyntiin, luoden graafisen käyttöliittymän. = selain tukee Appletteja ja riittävä Java versio. = html sivulla on alustettu GUI tietovisalle. *********************************************************************/ public void init() { //Graafisen käyttöliittymän alustukset. setlayout(null); oknappi = new Button("Vastaa"); nextnappi = new Button("Seuraava"); pisteetnappi = new Button("Pisteet"); aloitanappi = new Button("Aloita"); ohjeetnappi = new Button("Ohjeet"); bootnappi = new Button("Pelaa uudelleen"); statistic = new Button("Tilastot"); kysymystila = new TextArea(100,100); finaali= new TextArea(100,100); palautetila = new TextField("Initialisoitu...",100); valintaryhmä = new CheckboxGroup(); ympyrävalinta1 = new Checkbox("Kyllä", valintaryhmä, false); ympyrävalinta2 = new Checkbox("Ei", valintaryhmä, false); 4
5 //Graafisen käyttöliittmän sijoitukset. oknappi.setbounds(260,325,100,40); nextnappi.setbounds(150,325,100,40); pisteetnappi.setbounds(372,325,100,40); aloitanappi.setbounds(10,175,125,75); ohjeetnappi.setbounds(10,262,125,75); bootnappi.setbounds(260,355,100,40); statistic.setbounds(60,325,100,40); kysymystila.setbounds(75,50,475,100); finaali.setbounds(170,265,325,80); ympyrävalinta1.setbounds(180,120,100,100); ympyrävalinta2.setbounds(360,120,100,100); palautetila.setbounds(170,250,260,60); //Käynnistyksen yhteydessä olevat valinnat. add(aloitanappi); add(ohjeetnappi); add(kysymystila); add(palautetila); //Poistetaan pelaajan mahdollisuus muuttaa tekstejä. kysymystila.seteditable(false); palautetila.seteditable(false); finaali.seteditable(false); //Lisätään kuuntelijat Buttoneihin. oknappi.addactionlistener(this); nextnappi.addactionlistener(this); pisteetnappi.addactionlistener(this); aloitanappi.addactionlistener(this); ohjeetnappi.addactionlistener(this); bootnappi.addactionlistener(this); statistic.addactionlistener(this); setbackground(color.lightgray); vastauslista.add(null); Appletin käynnistäjä /********************************************************************* * Appletin start metodi, joka käynnistuu alustusmetodin jälkeen. = init() on suoritettu. = käynnistää kysymyksien lukemisen tiedostosta. *********************************************************************/ public void start() { palautetila.settext("initialisoitu... Käynnissä..."); kysymystila.settext("tervetuloa Javan applet tietovisaan!" + "\n"); String prhtml = this.getparameter("luettavatiedosto"); if (prhtml!= null) luettavatiedosto = new String(prHtml); 5
6 3.1.4 Kuuntelijan toiminnot ********************************************************************** * Kuuntelijan toiminnot (kaikki GUI:n buttonit) = init() on suoritettu. = oknappi: varmistaa että kysymys on oikein, * ja asettaa pelitekniikan ohjeiden mukaiseksi. * aloitanappi: Käynnistää pelin. * nextnappi: siirtyy suoraan seuraavaan kysymykseen. * pisteetnappi: palauterudussa näkyy pelaajan pisteet. * ohjeetnappi: kysymysryydyssa näkyy pelin ohjeet. * bootnappi: alustaa pelin uudelle kierrokselle. * statistic: näyttää kierroksen tilastolliset tekijät. *********************************************************************/ public void actionperformed(actionevent evt) { if (evt.getsource() == oknappi) { oknappitoiminnot(); if(evt.getsource() == aloitanappi) { aloitanappitoiminnot(); if(evt.getsource() == nextnappi) { nextnappitoiminnot(); if(evt.getsource() == pisteetnappi) { pisteetnappitoiminnot(); if(evt.getsource() == ohjeetnappi) { ohjeetnappitoiminnot(); if(evt.getsource() == bootnappi) { buuttaanappitoiminnot(); if(evt.getsource() == statistic) { tilastonappitoiminnot(); Kysymysten lukeminen tiedostosta /******************************************************************** * Kysymysten lukeminen tiedostosta, * lataa ennaltamäärätyn tiedoston sisällön riveittän * kysymyslista ArrayListin indekseihin. = (luettavatiedosto!= null) & (kysymystila!= null) = kysymyslista (ArrayList<String>) sisältää * tiedoston kysymykset. ********************************************************************/ 6
7 public void luetiedosto() { String rivi; URL url = null; try { url = new URL(getCodeBase(), luettavatiedosto); catch(malformedurlexception e){ try { InputStream in = url.openstream(); BufferedReader bf = new BufferedReader( new InputStreamReader(in)); strbuff = new StringBuffer(); for(int i=1; i < 16; i++){ String merkki=";"; rivi = bf.readline(); strbuff.append(rivi + "\n"); int erotin = rivi.indexof(merkki); String kysymys = rivi.substring(0,erotin); strbuff.append(kysymys + "\n"); kysymyslista.add(kysymys); String vastaus = rivi.substring(erotin+1,rivi.length()); strbuff.append(vastaus); vastauslista.add(vastaus); kysymystila.append("ladattu tiedosto: " + luettavatiedosto + "\n"); catch(ioexception e){ e.printstacktrace(); Uuden kysymyksen esittäminen /********************************************************************* * Esittää uuden kysymyksen. = (kysymyslista =! null) & (kysymystila!= null) = Seuraava kysymys on näkyvissä kysymystila:ssa. * ********************************************************************/ public void uusikysymys() { kysymystila.append((kysymyslista.get(vipu)).tostring()); vipu=vipu+1; 7
8 3.1.7 Nappien toiminnot /******************************************************************** * actionperformed() metodin kutsuttavat metodit. * Mitä tapahtuu, kun valitaan jokin napeista, * joihin on liitetty kuuntelija (listener) joka * kutsuu actionperformed metodia. = vaadittavaa nappia on painettu. = nappi on toteuttanut toimintansa. *******************************************************************/ void oknappitoiminnot() { if ((ympyrävalinta1.getstate() == true) && (ympyrävalinta2.getstate() == false) && (vastauslista.get(vipu).equals(oikea))) { palautetila.settext("oikein vastattu!"); pisteet=pisteet+1; oikein=oikein+1; remove(oknappi); add(nextnappi); if(vipu==15) { remove(oknappi); remove(nextnappi); add(statistic); puhdistakysymys(); palautetila.settext("peli on päättynyt!"); if ((ympyrävalinta1.getstate() == false) && (ympyrävalinta2.getstate() == true) && (vastauslista.get(vipu).equals(oikea))) { palautetila.settext("väärin vastattu!"); pisteet=pisteet-1; väärin=väärin+1; remove(oknappi); add(nextnappi); if ((ympyrävalinta1.getstate() == true) && (ympyrävalinta2.getstate() == false) && (vastauslista.get(vipu).equals(väärä))) { palautetila.settext("väärin vastattu!"); pisteet=pisteet-1; väärin=väärin+1; remove(oknappi); add(nextnappi); if ((ympyrävalinta1.getstate() == false) && (ympyrävalinta2.getstate() == true) && (vastauslista.get(vipu).equals(väärä))) { palautetila.settext("oikein vastattu!"); pisteet=pisteet+1; oikein=oikein+1; remove(oknappi); add(nextnappi); 8
9 if(vipu==15) { remove(oknappi); remove(nextnappi); add(statistic); puhdistakysymys(); palautetila.settext("peli on päättynyt!"); if ((ympyrävalinta1.getstate() == false) && (ympyrävalinta2.getstate() == false)) { palautetila.settext("valitse kyllä tai ei vastaukseksi."); void nextnappitoiminnot() { puhdistakentät(); uusikysymys(); add(oknappi); remove(nextnappi); void tilastonappitoiminnot() { remove(statistic); remove(kysymystila); remove(palautetila); remove(pisteetnappi); remove(ympyrävalinta1); remove(ympyrävalinta2); add(finaali); add(bootnappi); peliloppu=1; void pisteetnappitoiminnot() { palautetila.settext("pisteesi: " + pisteet + (" (oikein:")+oikein+(" väärin:")+väärin+")"); void ohjeetnappitoiminnot() { kysymystila.settext("ohjeet:" +("\n")+ "Valitse Aloita pelin käynnistymiseksi." +("\n")+ "Ensimmäinen kysymys tulee automaattisesti eteen,"+("\n")+ "tämän jälkeen valitse vastaukseksi kyllä tai ei,"+("\n")+ "ja paina Vastaa nappia. Sovellus kertoo miten"+("\n")+ "pärjäsit."+("\n")+ "Seuraava napilla saa uuden kysymyksen. "+("\n")+ "Pisteet napista näkee painalluksen aikaisen pistetilanteen."+("\n")+ "Pisteytys:"+("\n")+ "Oikeasta vastauksesta saa 1:n pisteen."+("\n")+ "Väärästä vastauksesta menettää 1:n pisteen."+("\n")); 9
10 void aloitanappitoiminnot() { puhdistakysymys(); add(oknappi); add(pisteetnappi); palautetila.settext("peli on aloitettu!"); luetiedosto(); uusikysymys(); remove(aloitanappi); remove(ohjeetnappi); add(ympyrävalinta1); add(ympyrävalinta2); //Asettaa pelin alkutilaan. void buuttaanappitoiminnot() { add(aloitanappi); add(ohjeetnappi); add(kysymystila); add(palautetila); add(ympyrävalinta1); add(ympyrävalinta2); remove(pisteetnappi); remove(statistic); remove(finaali); tyhjennäpisteet(); peliloppu=0; remove(ympyrävalinta1); remove(ympyrävalinta2); kysymystila.settext("tervetuloa Javan applet tietovisaan!" + "\n"); palautetila.settext("käynnistit tietovisan uudelleen!"); Pelitekniikkaan liittyvät metodit /******************************************************************** * Muut lyhyet metodit jotka liittyvät tietovisaan. ********************************************************************/ //Tyhjentää kysymys- ja palautetilaan. void puhdistakentät() { palautetila.settext(""); kysymystila.settext(""); //Tyhjentää vain kysymystilaan. void puhdistakysymys() { kysymystila.settext(""); 10
11 //Kierroksen päätyttyä, näyttää tilastoja katsellessa //lyhyen kommentin suorituksesta, ja tulokset. void näytäfinaali() { if(pisteet==15){ finaali.settext(("täydellinen suoritus!")+("\n")+ ("Pisteesi: ") +pisteet+("\n")+ ("Oikein vastatut: ")+oikein+("\n")+ ("Väärin vastatut: ")+väärin+("\n")); if((pisteet > 8) && (pisteet!= 15)){ finaali.settext(("ihan hyvin osattu!")+("\n")+ ("Pisteesi: ") +pisteet+("\n")+ ("Oikein vastatut: ")+oikein+("\n")+ ("Väärin vastatut: ")+väärin+("\n")); if(pisteet <= 8){ finaali.settext(("tiedoissasi on aukkoja...")+("\n")+ ("Pisteesi: ") +pisteet+("\n")+ ("Oikein vastatut: ")+oikein+("\n")+ ("Väärin vastatut: ")+väärin+("\n")); //Tyhjentää pelitekniset numeraaliset muuttujat. void tyhjennäpisteet() { vipu=0; oikein=0; väärin=0; pisteet=0; remove(bootnappi); Tilaston piirtämieen liittyvät metodit /******************************************************************** * Tilaston piirtämiseen liittyvät metodit = pystyy piirtämään grafiikkaa. = Tilastot pelaajan suorituksesta näkyy graafisesti. ********************************************************************/ //Pirtämisiin liittyvä pakollinen metodi. public void paint(graphics g) { annatilastot(g); //Jos havaitsee kierroksen olevan ohi, piirtää menestyksen //tietovisassa graafisesti taustalle. public void annatilastot(graphics g) { Graphics2D g2 = (Graphics2D) g; g2.setrenderinghint(renderinghints.key_antialiasing, RenderingHints.VALUE_ANTIALIAS_ON); 11
12 if (peliloppu==1) { g2.setpaint(color.red); g2.fill(new Rectangle2D.Double(100, 100, 70, oikein*10)); g2.setpaint(color.black); g2.drawstring("oikein vastattu", 100, 80); g2.setpaint(color.red); g2.fill(new Rectangle2D.Double(280, 100, 70, väärin*10)); g2.setpaint(color.black); g2.drawstring("väärin vastattu", 280, 80); g2.setpaint(color.red); g2.fill(new Rectangle2D.Double(460, 100, 70, pisteet*10)); g2.setpaint(color.black); g2.drawstring("pisteet", 460, 80); g2.setpaint(color.gray); g2.draw(new Line2D.Double(100, 100, 525, 100)); g2.drawstring("0", 80, 100); g2.setpaint(color.gray); g2.draw(new Line2D.Double(100, 150, 525, 150)); g2.drawstring("5", 80, 150); g2.setpaint(color.gray); g2.draw(new Line2D.Double(100, 200, 525, 200)); g2.drawstring("10", 80, 200); g2.setpaint(color.gray); g2.draw(new Line2D.Double(100, 250, 525, 250)); g2.drawstring("15", 80, 250); näytäfinaali(); else{setlayout(null); //end of GUI.class 12
13 4 Testausjärjestelyt 4.1 GUI-luokan testaus. Testaussuunnitelma 1. Vaihe: alustuksen testaus 2. Vaihe: käynnistymisen testaus 3. Vaihe: graafisen käyttöliittymän testaus 4. Vaihe: kuuntelijoiden testaus 5. Vaihe: kysymyksien testaus 6. Vaihe: pelitekniikan testaus 7. Vaihe: tilastojen testaus 8. Vaihe: Versio 1.2 kokonaisuuden testaus. Havainnot Testattaessa ruudulle tulostuu seuraavaa (vaiheet on merkitty kuvan viereen): Ensimmäisessä vaiheessa, jotta tietovisa alustuisi (init()), tulisi palauteruudussa lukevan "Initialisoitu ". Seuraavaksi applettien toiminnassa käsitellään start() metodi, joka ilmaisee toimintansa "Käynnissä " tekstillä palauteruudussa. Kolmais vaihe on graafisen käyttöliittymän testaus. GUI:n testaus tulee jatkumaan koko sovelluksen ajan. Havaitaan testauksen etenevän suunnitelman mukaisesti kolmen ensimmäisen vaiheen jälkeen. 13
14 Neljännessä vaiheessa tarkistetaan kuuntelijoiden toiminta. Tämä tulee jatkumaan graafisen käyttöliittymän tavoin koko sovelluksen testauksen ajan. Graafinen käyttöliittymä on oikein sijoittunut ja käynnistyksen yhteydessä olevat valinnat toimivat kuten pitikin. Myös itse tietovisan käynnistämisen jälkeen valinnat toimivat ja tekevät tehtävänsä oikein. Viidennessä vaiheessa keskitytään tietovisan kulkuun. Tarkastetaan lukeeko sovellus kysymykset ja vastaukset, ja osaako se yhdistää ne toisiinsa. Sovellus löysi kysymykset ja vastaukset oikein. Kuuntelijat toimivat oikein ja pelaaja sai palautetta toiminnoistaan. Toiseksi viimeinen vaihe keskittyy tarkastamaan, että sovellus pyörii edellä olevien havaintojen mukaisesti koko suorituksen ajan. Ongelmia ei havaittu, peli päättyi ja testaus etenee suunnitelman mukaisesti. Viimeisessä vaiheessa tarkastetaan graafisesti piirrettyjen tilastojen toiminta. Tilastot piirtyvät pelaajan menestyksen mukaan. Testaus on suoritettu ja ongelmia ei havaittu. 14
15 Uuden version testaus sujui ongelmitta. Testaus oli kokonaisvaltainen. Muutettu lähdekoodi kääntyi ongelmitta. Suoritin testauksen vaiheet 1-7 uudestaan tässä vaiheessa, eikä ongelmia ilmennyt. Päivitys onnistui. 5 Ohjelman käyttöohje Ohjelma käynnistetään siirtymällä oikealle URL osoitteelle jossa sovellus sijaitsee. HTML sivusto käynnistää tietovisan suoraan ilman mitään valintoja, vaatimuksena on tarpeeksi uusi Java versio mikä tukee Appletteja ja Appletit on oltava päällä selaimessa. Peliteknisiä käyttöohjeita saa tietovisan käynnistyttyä valitsemalla valinnan "Ohjeet". Osoite jossa ohjelma sijaitsee harjoitustyö kurssin aikana, ja samalla verkkotoiminnan testaus, on seuraava: 15
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.
Java ja grafiikka. Ville Sundberg 12.12.2007
Java ja grafiikka Ville Sundberg 12.12.2007 What happen Viritetty JPanel Graphics ja Graphics2D ImageIO ja BufferedImage Animaatio ja ajastus Optimoinnista Kehykset import javax.swing.jframe; public class
Alkuun HTML5 peliohjelmoinnissa
Paavo Räisänen Alkuun HTML5 peliohjelmoinnissa www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida ja levittää ei kaupallisissa tarkoituksissa. Sisällysluettelo 1: Alkusanat 2: Alkuun 3: Pelinäkymä
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
<applet code="simpleaudioapplet.class" width=300 height=300>
SimpleAudioApplet.java /* */ // Appletti joka soittaa käynnistyttyään oletushakemistossa // olevan sound.wav-nimisen äänitiedoston. public class
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.
EDMODO. -oppimisympäristö opettajille ja oppilaille KOONNUT: MIKA KURVINEN KANNUKSEN LUKIO
EDMODO -oppimisympäristö opettajille ja oppilaille KOONNUT: MIKA KURVINEN KANNUKSEN LUKIO HUOM! Edmodo kehittyy koko ajan, seuraavat ohjeet voivat olla jo päivityksen tarpeessa. 1 Sisällysluettelo Rekisteröityminen
Olio-ohjelmointi Käyttöliittymä
Olio-ohjelmointi 2016 Käyttöliittymä n Javalla on helppo toteuttaa yksinkertainen graafinen käyttöliittymä n AWT/Swing n JFC (Java Foundation Collection) n AWT-sisältää Javan grafiikka GUI-komponmentit
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
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
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
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
Kirkkopalvelut Office365, Opiskelijan ohje 1 / 17 IT Juha Nalli 22.12.2015
Kirkkopalvelut Office365, Opiskelijan ohje 1 / 17 Oppilaat saavat vuoden 2016 alusta käyttöönsä oppilaitoksen sähköpostin ja muita palveluita Microsoftin Office365:sta. Oppilaiden sähköposti on muotoa
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ä,
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
Graafinen käyttöliittymä, osa 1
Graafinen käyttöliittymä, osa 1 Idea, MVC-malli ja ensimmäinen ohjelma Graafinen käyttöliittymä Ensimmäisen kerran tavoitteena on oppia graafisen ohjelman perusidea sekä oppia laatimaan esimerkin mukaan
TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:
KILPAILIJAN TEHTÄVÄT Kilpailijan nimi / Nro: Tehtävän laatinut: Hannu Laurikainen, Deltabit Oy Kilpailutehtävä Kilpailijalle annetaan tehtävässä tarvittavat ohjelmakoodit. Tämä ohjelma on tehty laitteen
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,
CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0
CODEONLINE Monni Oo- ja Java-harjoituksia Version 1.0 Revision History Date Version Description Author 25.10.2000 1.0 Initial version Juha Johansson Inspection History Date Version Inspectors Approved
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
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ä.
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
Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2
26. Tiedostot 26.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja
Ohjeet asiakirjan lisäämiseen arkistoon
Ohjeet asiakirjan lisäämiseen arkistoon 1. Jos koneellesi ei vielä ole asennettu Open Office ohjelmaa, voit ladata sen linkistä joka löytyy Arkisto => Asiakirjapohjat sivulta seuran kotisivuilta. Jos ohjelma
Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.
Malli-näkym kymä-ohjain arkkitehtuurit (Model-View View-Controller, MVC) Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta. Lähtökohdat: Sovelluksen
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ä
Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.
Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi lötköjen kansoittamaa alkulimaa simuloiva olioperustainen ohjelma Java-kielellä. Lötköt säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti
Asko Ikävalko, k0201291 22.2.2004 TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen
Asko Ikävalko, k0201291 22.2.2004 TP02S-D Ohjelmointi (C-kieli) Projektityö Työn valvoja: Olli Hämäläinen Asko Ikävalko LOPPURAPORTTI 1(11) Ratkaisun kuvaus Käytetyt tiedostot Tietuerakenteet Onnistuin
Java-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero
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
Javan GUI Scratchaajalle
Javan GUI Scratchaajalle Tehtävä: Kasvukausi_1 Kun puutarha nyt näyttää oikealta, sitä olisi hyvä alkaa ohjelmoida toimivaksi. Tehdään aluksi istutukselle kuuntelija, jotta sitä klikkaamalla multaan voi
Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.
Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä
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ä
JAVA-OHJELMOINTI 3 op A274615
JAVA-OHJELMOINTI 3 op A274615 JFC & Swing, Look & Feel, Events Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
Jypelin käyttöohjeet» Ruutukentän luominen
Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen
Solteq Tekso v Versiopäivitysohje.
Solteq Tekso v. 5.0 Versiopäivitysohje www.solteq.com Sisällysluettelo TEKSON VERSIOPÄIVITYS v.5.0... 3 1.1 Ennen päivityksen ajoa 3 1.2 Käytössä olevan Tekson version tarkastaminen 3 1.3 Päivityksen lataus
Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2
6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöte- ja tulostusvirtojen avulla. Tiedostoja voidaan
Solteq Tekso v.4.0. Versiopäivitysohje.
Versiopäivitysohje Sisällysluettelo TEKSON VERSIOPÄIVITYS v.4.0... 3 1.1 Ennen päivityksen ajoa 3 1.2 Käytössä olevan Tekson version tarkastaminen 3 1.3 Päivityksen lataus omalle koneelle 4 1.4 Versiopäivityksen
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...
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
FTP -AINEISTOSIIRRON OHJE PC / MAC Ympäristö
FTP -AINEISTOSIIRRON OHJE PC / MAC Ympäristö Versio 1.0 Tiedostonsiirto FTP -menetelmällä Lahden Väriasemoinnilla on käytössä suurempien tiedostojen siirtoa varten oma FTP -yhteys. Tällä menetelmällä saadaan
Sisältö. Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2
6. Tiedostot 6.1 Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 6.2 Johdanto Tiedostoja on käsitelty uudelleenohjattujen standardisyöteja tulostusvirtojen avulla. Tiedostoja voidaan
Sovelmat. Janne Käki
Sovelmat Janne Käki 24.11.2006 Sovellus extends JFrame public static void main(string[] args), joka tyypillisesti vain luo kehysluokan ilmentymän luontimetodi Sovelma extends JApplet ei main-metodia, ei
Tekso. 3.0 version päivitysohje
Tekso 3.0 version päivitysohje Tekso päivitysohje 1 (8) TEKSON VERSIOPÄIVITYS v.3.0 Saamassanne tiedotteessa on linkki Tekson uuteen 3.0 versiopäivitykseen. Lue tämä ohje tarkkaan ennen kun aloitat versiopäivityksen.
JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++
JAVA alkeet JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ ja Javascriptin kanssa. Huom! JAVA ja JavaScript eivät silti ole sama asia, eivätkä edes sukulaiskieliä.
15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
Uutiskirjesovelluksen käyttöohje
Uutiskirjesovelluksen käyttöohje Käyttäjätuki: Suomen Golfpiste Oy Esterinportti 1 00240 HELSINKI Puhelin: (09) 1566 8800 Fax: (09) 1566 8801 E-mail: gp@golfpiste.com 2 Sisällys Johdanto... 1 Päänavigointi...
Testivetoinen ohjelmistokehitys
Testivetoinen ohjelmistokehitys Ohjelman luominen pienin askelin 1. Kirjoita testi, joka testaa ohjelmalle myöhemmin lisättävää toiminnallisuutta. 2. Suorita testi. Testin ei tule mennä läpi. Mikäli testi
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ää
Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.
1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).
Johdatus ohjelmointiin
Johdatus ohjelmointiin EXAM tentin liitetiedostojen lataaminen, käyttäminen ja palauttaminen Kerro mahdolliset puutteet tai parannusehdotukset: pietari.heino@tut.fi Tällä sivulla on selitetty lyhyesti
ASENNUS- JA KÄYTTÖOHJE
ASENNUS- JA KÄYTTÖOHJE YKSIKKÖHINTA SOPIMUKSEN TOTEUTUNEET MÄÄRÄT-SOVELLUS CMPRO5 VERSIO 2.8 PÄIVITETTY HEINÄKUU 2010 COPYRIGHT 2010 ARTEMIS FINLAND OY. ALL RIGHTS RESERVED. KÄYTTÖOHJE SIVU 2 (12) SISÄLLYSLUETTELO
2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
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
Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen
Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja
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
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
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
Ohjelmointityö 3. Mikko Laamanen 185667
Ohjelmointityö 3 Mikko Laamanen 185667 Sisällysluettelo Tehtävän määrittely ja ratkaisuperiaate... 1 Tehtävän määrittely... 1 Ratkaisuperiaate... 1 Ohjelman käyttöohje... 1 Syötteet ja tulosteet... 1 Ohjelman
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
AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML
AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen
Sähköpostitilin käyttöönotto. Versio 2.0
Sähköpostitilin käyttöönotto Versio 2.0 Sivu 1 / 10 Jarno Parkkinen jarno@atflow.fi 1 Johdanto... 2 2 Thunderbird ohjelman lataus ja asennus... 3 3 Sähköpostitilin lisääminen ja käyttöönotto... 4 3.1 Tietojen
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)...
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
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
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
Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta.
Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta. Sisäänkirjauduttuasi näet palvelun etusivulla helppokäyttöisen hallintapaneelin. Vasemmassa reunassa on esillä viimeisimmät tehdyt muutokset
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
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.
OpenJUMP ja OpenStreetMap-reititys
OpenJUMP ja OpenStreetMap-reititys Jukka Rahkonen, http://latuviitta.org Lisenssi Creative Commons Attribution 3.0 Unported Viimeksi muokattu 12. huhtikuuta 2013 Tiivistelmä Verkossa toimivat reitityspalvelut
Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).
Tehtävä 1: Metodit, listat, alkuluvut (4p) Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ). Alkuluvut ovat lukuja, jotka ovat suurempia kuin yksi ja jotka ovat jaollisia
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ä
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
Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely
Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely 1 Ominaisuudet Kun tutkimme työasemapohjaisia sovelluksiamme, tarvitaan joskus tietoa: mikä on käyttöjärjestelmä mikä on käytössä oleva
Ohjelmointi 2 / 2011 Välikoe / 25.3
Välikoe / 25.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 liittyvää tehtävää. Aikaa 4 tuntia.
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
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
Java UI-komponentit (JTable) Juha Järvensivu juha.jarvensivu@tut.fi 2007
Java UI-komponentit (JTable) Juha Järvensivu juha.jarvensivu@tut.fi 2007 JTable Datan esittäminen taulukkomuodossa Datan valitseminen taulukosta Datan muokkaaminen (lisääminen, muokkaaminen, poistaminen)
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
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
Tilastointi- ja tulospalveluohjelma
Tilastointi- ja tulospalveluohjelma Koulutus seuratoimitsijoille 11.10.2013 Suomen Jääkiekkoliitto / Etunimi Sukunimi 1 JOUKKUEENJOHTAJA JOUKKUEEN PERUSKOKOONPANO Kirjaudu joukkuetunnuksilla Palvelusivustolle
4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely
Ohje olettaa, että Java on asennettu oletuskansioonsa sekä päivitetty uusimpaan versioonsa ja että selaimen latauskansiona on oletus.
Tulospalvelu käynnistyy väärällä ohjelmalla Ohje olettaa, että Java on asennettu oletuskansioonsa sekä päivitetty uusimpaan versioonsa ja että selaimen latauskansiona on oletus. Tilastointi-nappia painaessa
Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2
4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä
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
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
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)
Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä
Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.
Tuplaturvan tilaus ja asennusohje
Tuplaturvan tilaus ja asennusohje 1. Kirjaudu lähiverkkokauppaan omilla tunnuksillasi tai luo itsellesi käyttäjätunnus rekisteröitymällä Lähiverkkokaupan käyttäjäksi. a. Käyttäjätunnus on aina sähköpostiosoitteesi.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
Muumion kirous. Pelisuunnitteludokumentti. Veikkauksen pelisuunnittelukilpailua (Peliskaba2015) varten
Pelisuunnitteludokumentti Muumion kirous Veikkauksen pelisuunnittelukilpailua (Peliskaba2015) varten Tekijä: Esko Vankka Osoite: Yliopistonkatu 39 E 51, 33500 Tampere Puh: 0400 832 907 Email: esko.pj.vankka@gmail.com
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
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Rajapinnat ja sisäluokat Rajapinnat Java-kieli ei tue luokkien moniperintää. Jokaisella luokalla voi olla vain yksi välitön yliluokka. Toisinaan olisi
Ohjelmistotekniikan menetelmät, koe 2.5.2014
Ohjelmistotekniikan menetelmät, koe 2.5.2014 Vastaa tehtävään 3 erilliselle konseptille. Tehtävät 1 ja 2 saavat olla samalla konseptilla. Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen
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
Ohjeita kirjan tekemiseen
Suomen Sukututkimustoimisto on yhdessä Omakirjan kanssa tehnyt internetiin uuden Perhekirja-sivuston. Se löytyy osoitteesta: www.omakirja.fi -> Kirjat -> Perhekirja tai http://www.omakirja.fi/perhekirja?product=6
Javan GUI Scratchaajalle
Javan GUI Scratchaajalle Kertausta Javan perusteista Java-luokan muotoilu public class Kissa { private String nimi; public Kissa(String annettunimi) { this.nimi = annettunimi; yksi class = yksi hahmo =
Luento 6. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä
Luento 6 T-106.1240 Ohjelmoinnin jatkokurssi T1 & T-106.1243 Ohjelmoinnin jatkokurssi L1 Luennoitsija: Otto Seppälä Kurssin WWW: http://www.cs.hut.fi/opinnot/t-106.1240/s2007 Oma Grafiikka Swing-käyttöliittymässä
RATKI 1.0 Käyttäjän ohje
RATKI RATKI 1.0 Käyttäjän ohje Ohje 0.5 Luottamuksellinen Vastuuhenkilö Petri Ahola Sisällysluettelo 1. Yleistä... 3 1.1. Kuvaus... 3 1.2. Esitiedot... 3 1.3. RATKIn käyttöoikeuksien hankinta... 3 1.4.