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



Samankaltaiset tiedostot
Ohjelmoinnin jatkokurssi, kurssikoe

Mikä yhteyssuhde on?

Rajapinta (interface)

Metodien tekeminen Javalla

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

Java kahdessa tunnissa. Jyry Suvilehto

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

Tietokannat II -kurssin harjoitustyö

Olio-ohjelmointi Javalla

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Luokat ja oliot. Ville Sundberg

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

14. Poikkeukset 14.1

Lista luokan sisällä

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

public static void main (String [] args)

14. Poikkeukset 14.1

YHTEYSSUHDE (assosiation)

1 Tehtävän kuvaus ja analysointi

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

Listarakenne (ArrayList-luokka)

Ohjelmointi 2 / 2010 Välikoe / 26.3

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

Ohjelmistotekniikan menetelmät, koe

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

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 )

Periytyminen (inheritance)

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

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

Ohjelmoinnin perusteet, kurssikoe

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

Poikkeustenkäsittely

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Javan GUI Scratchaajalle

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Interaktiivinen tarinankerronta

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

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

Vahva koostumussuhde (Composition)

Taulukoiden käsittely Javalla

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

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Ohjelmointityö 3. Mikko Laamanen

Rinnakkaisohjelmointi, Syksy 2006

12. Näppäimistöltä lukeminen 12.1

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

Olio-ohjelmointi Virhetilanteiden käsittely

Luokan sisällä on lista

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

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

Tietorakenteet, laskuharjoitus 7,

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Ohjelmointi 2, välikoe

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on.

Metodien tekeminen Javalla

1. Omat operaatiot 1.1

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

Liite 1. Projektin tulokset (Semaforit Javassa) Jukka Hyvärinen Aleksanteri Aaltonen

Java-kielen perusteita

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

1. Mitä tehdään ensiksi?

Java-kielen perusteita

Luokkakirjastot. esiintymämetodien käytöstä:

TIETORAKENTEET JA ALGORITMIT

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

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

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

Java ja grafiikka. Ville Sundberg

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

Ohjelmointi 2 / 2011 Välikoe / 25.3

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

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

Ohjelmistojen mallintaminen, sekvenssikaaviot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Javan perusteita. Janne Käki

9. Periytyminen Javassa 9.1

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Projekti 1 Säikeet ja kriittisen vaiheen kontrollointi javalla

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

Mitä poikkeuskäsittely tarkoittaa?

Luokkamalli LUOKKAKAAVIO. Tämän osan sisältö. Luokkamalli. Luokka ja olio. Luokkakaavio (class diagram)

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

KOHDELUOKAN MÄÄRITTELY

2. Olio-ohjelmoinista lyhyesti 2.1

4. Luokan testaus ja käyttö olion kautta 4.1

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;

Interaktiivinen tarinankerronta

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

Luento 6. T Ohjelmoinnin jatkokurssi T1 & T Ohjelmoinnin jatkokurssi L1. Luennoitsija: Otto Seppälä

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Olio-ohjelmointi Käyttöliittymä

9. Periytyminen Javassa 9.1

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

OutputStream ja InputStream. Tietovirrat ja niiden suunnat. Tietovirtojen käyttö. FileInputStream esimerkki. DataOutputStream ja DataInputStream

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

3. Binääripuu, Java-toteutus

Transkriptio:

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ä, on tehtävän maksimipistemäärä 6. Toimiva järjestäminen Tiedoston lukeminen Saman henkilön pisteet Toimiva koodi, tulostus ja poikkeuksien käsittely

Mallivastaus Ohjelma.java public class Ohjelma { public static void main(string[] args) { Scanner lukija = new Scanner(System.in); System.out.print("tiedosto: "); String tiedostonimi = lukija.nextline(); try { Scanner tiedostolukija = new Scanner(new File(tiedostonimi)); List<Pelaaja> pelaajat = luetiedot(tiedostolukija); Collections.sort(pelaajat); System.out.println("pistepörssi:"); for (Pelaaja pelaaja : pelaajat) { System.out.println(pelaaja); catch (FileNotFoundException ex) { System.out.println("tiedostoa ei voida lukea"); private static List<Pelaaja> luetiedot(scanner tiedostolukija) { Map<String, Pelaaja> pelaajat = new HashMap<String, Pelaaja>(); while (tiedostolukija.hasnextline()) { String rivi = tiedostolukija.nextline(); String[] palat = rivi.split(";"); String nimi = palat[0]; int maaleja = Integer.parseInt(palat[1]); int syottoja = Integer.parseInt(palat[2]); if (!pelaajat.containskey(nimi)) { pelaajat.put(nimi, new Pelaaja(nimi)); pelaajat.get(nimi).lisaapisteita(maaleja + syottoja); return new ArrayList<Pelaaja>(pelaajat.values());

Pelaaja.java public class Pelaaja implements Comparable<Pelaaja> { private String nimi; private int pisteita; public Pelaaja(String nimi) { this.nimi = nimi; this.pisteita = 0; public void lisaapisteita(int pisteita) { this.pisteita += pisteita; public String tostring() { return nimi + " " + pisteita; public int compareto(pelaaja o) { return o.pisteita - this.pisteita; Tehtävä 3 Tehtävä keskittyi perintään, joten siihen liittyvistä virheistä sakotettiin melko ankarasti. Jos tehtävä oli muuten oikein, mutta tostring-metodi korvattiin turhaan, menetti 1-2 pistettä. Override-merkintöjä ei vaadittu, mutta jos niitä käytti, niin väärästä käytöstä menetti pisteitä. Turhista luokkamuuttujista menetti pisteen. Muista virheistä menetti 0,5 pistettä per metodi, paitsi yläluokan konstruktorin kutsun puutteesta, josta meni kokonainen piste. Mallivastaus Harjoittelija.java public class Harjoittelija extends Tyontekija { public Harjoittelija(String nimi) { return 0; return "harjoittelija";

Viranhaltija.java public class Viranhaltija extends Tyontekija { private int palkka; public Viranhaltija(String nimi, int palkka) { this.palkka = palkka; return palkka; return "virka"; Sivutoiminen.java public class Sivutoiminen extends Tyontekija { private int tuntipalkka; private int tunnit = 0; public Sivutoiminen(String nimi, int tuntipalkka) { this.tuntipalkka = tuntipalkka; return tuntipalkka * tunnit; return "sivutoiminen " + tuntipalkka + " euroa/h"; public void lisaatunteja(int t) { this.tunnit += t;

Tehtävä 4 a) (1p) Toimiva luokka, (1p) yleinen tyyli b) (1p) Instanssimuuttuja ja konstruktori, (1p) laske-metodin toimivuus, (1p) yleinen c) (1p) instanssimuuttuja, (1p) laske-metodin toimivuus, (1p) yleinen (myös arraylist-pohjaiset ratkaisut saivat täydet pisteet jos toimi) d) (1p) instanssimuuttujat ja konstruktori, (1p) laske-metodin toimivuus, (1p) yleinen Mallivastaus Itseisarvo.java public class Itseisarvo implements Funktio { return Math.abs(luku); Kertoja.java public class Kertoja implements Funktio { private int kertoja; public Kertoja(int kertoja) { this.kertoja = kertoja; return luku*kertoja; Summaaja.java public class Summaaja implements Funktio { private int summa = 0; summa += luku; return summa; Yhdistelma.java public class Yhdistelma implements Funktio { private Funktio funktio1, funktio2; public Yhdistelma(Funktio f1, Funktio f2) { funktio1 = f1; funktio2 = f2; return funktio2.laske(funktio1.laske(luku));