Browse Source

Clean-up

master
Pekka Helenius 4 years ago
parent
commit
6077740f77
14 changed files with 43 additions and 189 deletions
  1. +6
    -7
      10_classes-and-objects/1_AutoOhjelma.md
  2. +2
    -0
      10_classes-and-objects/2_Agentti.md
  3. +6
    -4
      10_classes-and-objects/3_VahenevaLaskuri.md
  4. +3
    -1
      10_classes-and-objects/4_Artist.md
  5. +5
    -6
      10_classes-and-objects/5_Artist_Song.md
  6. +3
    -1
      10_classes-and-objects/6_Playlist.md
  7. +4
    -156
      10_classes-and-objects/7_KirjaOhjelma.md
  8. +4
    -4
      10_classes-and-objects/8_AsuntoOhjelma.md
  9. +4
    -6
      10_classes-and-objects/9_RemonttiOhjelma.md
  10. +1
    -1
      1_basics/9_LukujenSumma.md
  11. +1
    -1
      4_strings/1_MerkkijonojenVertailu.md
  12. +1
    -1
      7_methods/4_Laskuoperaatiot.md
  13. +1
    -1
      8_lottery_bonus/2_Lotto.md
  14. +2
    -0
      README.md

+ 6
- 7
10_classes-and-objects/1_AutoOhjelma.md View File

@ -10,10 +10,11 @@ Tässä tehtävässä harjoitellaan olioiden luomista ja niiden metodien kutsumi
Huom! Koska kilometrit on yksityinen muuttuja, sen arvoa ei voida muuttaa luokan ulkopuolelta. Sinun on siis muutettava arvoa julkisen aja-metodin kautta.
**Auto.java**
```
/**
* Tallenna tämä luokka itsellesi Auto.java-nimiseen tiedostoon.
*/
// Tallenna tämä luokka itsellesi Auto.java-nimiseen tiedostoon.
public class Auto {
/*
@ -55,8 +56,6 @@ public class Auto {
}
```
Älä palauta Auto-luokkaa Viopeen, se löytyy Viopesta valmiina.
```
Example output:
Tesla, 123 km.
@ -65,9 +64,10 @@ BMW, 98 km.
------------------
**AutoOhjelma.java**
```
/*
1. Luo uusi "Tesla"-merkkinen auto ja laita viittaus tähän olioon talteen muuttujaan
2. Luo toinen "BMW"-merkkinen auto ja laita viittaus tähän olioon talteen eri muuttujaan
3. Kutsu Teslan aja-metodia arvolla 100.
@ -75,7 +75,6 @@ BMW, 98 km.
5. Kutsu Teslan aja-metodia arvolla 23.
6. Tulosta Teslan merkkijonoesitys (toString) omalle rivilleen
7. Tulosta BMW:n merkkijonoesitys (toString) omalle rivilleen
*/
public class AutoOhjelma {


+ 2
- 0
10_classes-and-objects/2_Agentti.md View File

@ -50,6 +50,8 @@ My name is English, Johnny English
------------------
**Agentti.java**
```
public class Agentti {


+ 6
- 4
10_classes-and-objects/3_VahenevaLaskuri.md View File

@ -49,15 +49,15 @@ VahenevaLaskuri-luokan konstruktorille annetaan parametrina alkuarvo. Esimerkin
--------------------
Osa 1: Metodin vahene() toteutus
**Osa 1: Metodin vahene() toteutus**
Täydennä luokan runkoon metodin vahene() toteutus sellaiseksi, että se vähentää arvo -oliomuuttujaa yhdellä. Kun olet toteuttanut metodin vahene(), edellisen esimerkin pääohjelman tulee toimia esimerkkitulosteen mukaan.
Osa 2: Laskurin arvo ei saa olla negatiivinen
**Osa 2: Laskurin arvo ei saa olla negatiivinen**
Täydennä metodin vahene() toteutus sellaiseksi, ettei laskurin arvo mene koskaan negatiiviseksi. Eli jos laskurin arvo on jo 0, ei vähennys sitä enää vähennä. Ehtolause auttaa tässä.
Osa 3: Laskurin arvon nollaus
**Osa 3: Laskurin arvon nollaus**
Tee laskurille metodi public void nollaa() joka nollaa laskurin arvon, esim:
@ -85,7 +85,7 @@ arvo: 0
arvo: 0
```
Huom! Hyödynnä tehtäväkuvauksessa annettuja Paaohjelma-esimerkkiluokkia ohjelmasi testaamisessa. VahenevaLaskuri-luokkasi ei saa sisältää main-metodia. Älä palauta Paaohjelma-luokkaa Viopeen.
Huom! Hyödynnä tehtäväkuvauksessa annettuja Paaohjelma-esimerkkiluokkia ohjelmasi testaamisessa. VahenevaLaskuri-luokkasi ei saa sisältää main-metodia.
```
Example output:
@ -109,6 +109,8 @@ arvo: 8
------------------
**VahenevaLaskuri.java**
```
public class VahenevaLaskuri {
private int arvo; // oliomuuttuja joka muistaa laskurin arvon


+ 3
- 1
10_classes-and-objects/4_Artist.md View File

@ -34,7 +34,7 @@ public class Artist {
}
```
HUOM! Ratkaisusi ei saa kysyä käyttäjältä syötteitä eikä tulostaa mitään. Koodin testaa erillinen tarkastin.
HUOM! Ratkaisusi ei saa kysyä käyttäjältä syötteitä eikä tulostaa mitään.
```
Example output:
@ -61,6 +61,8 @@ Rick Astley
------------------
**Artist.java**
```
public class Artist {


+ 5
- 6
10_classes-and-objects/5_Artist_Song.md View File

@ -23,8 +23,7 @@ Luokka Song
- setLength
- toString
Getterien ja setterien automaattiseen generointiin voit käyttää myös Eclipsen koodigeneraattoria.
Generaattori: https://www.youtube.com/results?search_query=eclipse+generate+getters+and+setters
Getterien ja setterien automaattiseen generointiin voit käyttää myös Eclipsen koodigeneraattoria: [Generaattori](https://www.youtube.com/results?search_query=eclipse+generate+getters+and+setters)
**toString-metodi**
@ -68,9 +67,9 @@ Never Gonna Give You Up by Rick Astley
------------------
```
// Artist.java
**Artist.java**
```
public class Artist {
private String name;
@ -106,9 +105,9 @@ public class Artist {
------------------
```
// Song.java
**Song.java**
```
public class Song {
private String title;


+ 3
- 1
10_classes-and-objects/6_Playlist.md View File

@ -1,4 +1,4 @@
Tässä harjoituksessa hyödynnetään edellisessä harjoituksessa kirjoittamiasi Artist- ja Song-luokkia. Tehtäväsi on hyödyntää edellä mainittuja luokkia ja kirjoittaa uusi Playlist-niminen luokka. Kirjoita Playlist-luokka omaan tiedostoonsa. Artist- ja Song-luokkia sinun ei tarvitse palauttaa, ne löytyvät Viopesta valmiina.
Tässä harjoituksessa hyödynnetään edellisessä harjoituksessa kirjoittamiasi Artist- ja Song-luokkia. Tehtäväsi on hyödyntää edellä mainittuja luokkia ja kirjoittaa uusi Playlist-niminen luokka. Kirjoita Playlist-luokka omaan tiedostoonsa. Artist- ja Song-luokat löytyvät valmiina.
Playlist-luokassa tulee olla seuraavat instanssimuuttujat, konstruktorit ja metodit:
@ -70,6 +70,8 @@ System.out.println(playlist.getTotalLength());
------------------
**Playlist.java**
```
import java.util.ArrayList;


+ 4
- 156
10_classes-and-objects/7_KirjaOhjelma.md View File

@ -19,9 +19,9 @@ Julkaisuvuosi: 2020
------------------
```
// Kirja.java
**Kirja.java**
```
public class Kirja {
private String nimi, isbn;
@ -82,32 +82,13 @@ public class Kirja {
"]";
}
}
/*
@Override
public String toString() {
ArrayList<Object> kirjaData = new ArrayList<Object>(Arrays.asList(
"nimi=" + this.getName(),
"isbn=" + this.getISBN(),
"hinta=" + this.getPrice(),
"julkaisuvuosi=" + this.getYear()
));
ArrayList<Object> kirjaData = new ArrayList<Object>(Arrays.asList(
this.getName(),
this.getISBN(),
this.getPrice(),
this.getYear()
));
return kirjaData.toString();
}
*/
```
------------------
```
// KirjaOhjelma.java
**KirjaOhjelma.java**
```
import java.text.DecimalFormat;
import java.util.InputMismatchException;
import java.util.Scanner;
@ -184,137 +165,4 @@ public class KirjaOhjelma {
}
}
//System.out.println(kirja);
//ArrayList<Object> kirjaDataArray = new ArrayList<Object>();
//kirjaDataArray.add(kirja.getNimi());
//kirjaDataArray.add("nimi=" + kirja.getNimi());
//kirjaDataArray.add(kirja.getIsbn());
//kirjaDataArray.add("isbn=" + kirja.getIsbn());
//kirjaDataArray.add(kirja.getHinta());
//kirjaDataArray.add("hinta=" + kirja.getHinta());
//kirjaDataArray.add(kirja.getJulkaisuvuosi());
//kirjaDataArray.add("vuosi=" + kirja.getJulkaisuvuosi());
//System.out.println("Kirja: " + kirjaDataArray.toString());
//this.kirjaData = kirjaDataArray;
/*
System.out.printf("Kirja: " +
"nimi=" + kirjaDataArray.get(0).toString(),
"isbn=" + kirjaDataArray.get(1).toString(),
"hinta=" + kirjaDataArray.get(2).toString(),
"vuosi=" + kirjaDataArray.get(3).toString()
);
*/
// Parametriton - Kirja
/*Kirja javaKirja = new Kirja();
javaKirja.setNimi("97 Things Every Java Programmer Should Know");
javaKirja.setIsbn("ei tietoa");
javaKirja.setHinta(26.80);
javaKirja.setJulkaisuvuosi(2020);
// Parametrillinen -Kirja
javaKirja = new Kirja(
"97 Things Every Java Programmer Should Know",
"ei tietoa",
26.80,
2020
);*/
// Parametrillinen - KirjaOhjelma
//this.javaKirja = new Kirja();
/*
// Parametrillinen konstruktori
public KirjaOhjelma(String nimi, String isbn, double hinta, int julkaisuvuosi) {
DecimalFormat r2 = new DecimalFormat(".00");
this.kirjaData = String.format(
"Nimi: %s\nIsbn: %s\nHinta: %s\nJulkaisuvuosi: %s\n",
nimi,
isbn,
r2.format(hinta),
julkaisuvuosi
);
}*/
/*
// Parametriton konstruktori
public KirjaOhjelma() {
Scanner syote = new Scanner(System.in);
ArrayList<String> kirjaDataArray = new ArrayList<String>();
Kirja kirjaInput = new Kirja();
System.out.print("Anna nimi: ");
kirjaInput.setNimi(syote.nextLine());
kirjaDataArray.add("nimi=" + kirjaInput.getNimi());
System.out.print("Anna isbn: ");
kirjaInput.setIsbn(syote.nextLine());
kirjaDataArray.add("isbn=" + kirjaInput.getIsbn());
System.out.print("Anna hinta: ");
kirjaInput.setHinta(syote.nextDouble());
kirjaDataArray.add("hinta=" + kirjaInput.getHinta());
System.out.print("Anna julkaisuvuosi: ");
kirjaInput.setJulkaisuvuosi(syote.nextInt());
kirjaDataArray.add("julkaisuvuosi=" + kirjaInput.getJulkaisuvuosi());
this.kirjaData = kirjaDataArray;
}
*/
/*
@Override
public String toString() {
//if (this.kirjaData instanceof String) {
return this.kirjaData.toString();
//} else {
// return null;
//}
}*/
//private String kirjaDataStr;
//private ArrayList<String> kirjaData = new ArrayList<String>();
/*
@Override
public String toString() {
DecimalFormat r2 = new DecimalFormat(".00");
String t = String.format(
"Nimi: %s\nIsbn: %s\nHinta: %s\nJulkaisuvuosi: %s\n",
this.kirjaInput.getName(),
this.kirjaInput.getISBN(),
r2.format(this.kirjaInput.getPrice()),
this.kirjaInput.getYear()
);
return String.format("%s\n\n%s", this.kirjaInput.toString(), t);
//return this.kirjaInput.toString();
}*/
//this.kirjaInput = kirjaUserInput;
/*this.kirjaData = new ArrayList<Object>(Arrays.asList(
"nimi=" + this.kirjaInput.getName(),
"isbn=" + this.kirjaInput.getISBN(),
"hinta=" + this.kirjaInput.getPrice(),
"julkaisuvuosi=" + this.kirjaInput.getYear()
));*/
```

+ 4
- 4
10_classes-and-objects/8_AsuntoOhjelma.md View File

@ -17,9 +17,9 @@ Kuvaus: valon keskustassa katutasossa 72 m2:n liikehuoneisto
------------------
```
// Asunto.java
**Asunto.java**
```
import java.text.DecimalFormat;
import java.util.InputMismatchException;
import java.util.Scanner;
@ -133,9 +133,9 @@ public class Asunto {
------------------
```
// AsuntoOhjelma.java
**AsuntoOhjelma.java**
```
public class Song {
private String title;


+ 4
- 6
10_classes-and-objects/9_RemonttiOhjelma.md View File

@ -1,7 +1,5 @@
Tee luokka Remontti, jolla on attribuutit vuosi (int), kuvaus (String). Tee luokkaan parametriton konstruktori, joka asettaa vuodeksi nykyisen vuoden. Nykyisen vuoden saat käyttämällä LocalDate luokkaa. Tee lisäksi set- ja get-metodit ja toString-metodi. setVuosi metodin tarkastaa, ettei remontin vuosi ole nykyistä vuotta suurempi. Metodi palauttaa true, jos vuosi pystyttiin asettamaan eli sen on nykyinen tai sitä aiempi vuosi muuten metodi palauttaa false eikä aseta vuodeksi annettua vuotta. Tee ohjelmaluokka RemonttiOhjelma, jossa tehdään yksi olio.
Kun palautat ratkaisun Viopeen, muista laittaa alkuun kaikki import komennot.
Jos ohjelman suoritus onnistuu, sen täytyy toimia seuraavasti:
```
@ -25,9 +23,9 @@ Vuosi ei voi olla tulevaisuudessa
------------------
```
// Remontti.java
**Remontti.java**
```
import java.time.LocalDate;
import java.util.InputMismatchException;
import java.util.Scanner;
@ -97,9 +95,9 @@ public class Remontti {
------------------
```
// RemonttiOhjelma.java
**RemonttiOhjelma.java**
```
public class RemonttiOhjelma {
public static void main() {


+ 1
- 1
1_basics/9_LukujenSumma.md View File

@ -4,7 +4,7 @@ Eclipsessä on kätevä näppäinyhdistelmä Ctrl + ⇧ + F (Mac: ⌘ + ⇧ + F)
Alla on esitetty luokka LukujenSumma, jonka muotoilut eivät noudata hyviä käytäntöjä. Muotoilun puutteen vuoksi myös koodissa oleva selvä syntaksivirhe voi olla vaikea havaita.
Tässä tehtävässä sinun tulee kopioida alla esitetty luokka itsellesi, muotoilla se Eclipsen muotoilusääntöjen mukaisesti, korjata syntaksivirhe ja palauttaa korjattu ja muotoiltu versio Viopeen.
Tässä tehtävässä sinun tulee kopioida alla esitetty luokka itsellesi, muotoilla se Eclipsen muotoilusääntöjen mukaisesti, korjata syntaksivirhe ja palauttaa korjattu ja muotoiltu versio.
Sinun ei tarvitse muuttaa ohjelman toiminnallisuutta lainkaan.


+ 1
- 1
4_strings/1_MerkkijonojenVertailu.md View File

@ -1,6 +1,6 @@
Alla on esitetty luokka MerkkijonojenVertailu, jonka tarkoitus on pyytää käyttäjältä kaksi merkkijonoa ja kertoa, ovatko annetut merkkijonot samat. Ohjelma ei kuitenkaan tällä hetkellä toimi halutulla tavalla.
Tallenna alla esitetty virheellisesti toimiva ohjelma itsellesi tiedostoon MerkkijonojenVertailu.java. Tutki ohjelmaa ja palauta korjattu versio ohjelmasta Viopeen:
Tallenna alla esitetty virheellisesti toimiva ohjelma itsellesi tiedostoon MerkkijonojenVertailu.java. Tutki ohjelmaa ja palauta korjattu versio ohjelmasta:
```
import java.util.Scanner;


+ 1
- 1
7_methods/4_Laskuoperaatiot.md View File

@ -1,6 +1,6 @@
Kirjoita luokka Laskuoperaatiot ja siihen kaksi julkista staattista metodia: summa ja erotus. Määrittele metodit siten, että ne saavat parametriarvoinaan 2 double-tyyppistä liukulukua ja että ne palauttavat tuloksena double-tyyppisen liukuluvun. Summa-metodin täytyy palauttaa annettujen lukujen summa ja erotus vastaavasti palauttaa erotuksen (ensimmäinen luku - toinen luku). Huomaa, että et saa tulostaa näissä metodeissa mitään, vaan tulos on palautettava pois metodista.
Voit testata kirjoittamaasi luokkaa alla olevan testiluokan avulla tai kirjoittaa vapaavalintaisen oman testiluokan. Käyttäessäsi valmista testiluokkaa, tallenna se itsellesi tiedostoon LaskuoperaatiotTest.java. Testiluokkaa ei tarvitse palauttaa, vaan koodisi tarkastetaan Viopessa valmiiksi olevalla tarkastimella.
Voit testata kirjoittamaasi luokkaa alla olevan testiluokan avulla tai kirjoittaa vapaavalintaisen oman testiluokan. Käyttäessäsi valmista testiluokkaa, tallenna se itsellesi tiedostoon LaskuoperaatiotTest.java. Testiluokkaa ei tarvitse palauttaa.
```
public class LaskuoperaatiotTest {


+ 1
- 1
8_lottery_bonus/2_Lotto.md View File

@ -7,7 +7,7 @@ Ohjelmasi tehtävä on tarkastaa, kuinka monta numeroa käyttäjän riviltä osu
Tulosta lopputulos muodossa "N oikein ja lisänumero." tai "N oikein." riippuen siitä, osuiko lisänumero käyttäjän riviin.
✂ Sinun ei tarvitse erikseen palauttaa Leikkaus-luokkaa, se löytyy Viopesta valmiina. Huomaa että tässä tehtävässä Leikkaus-luokalle ei ole määritetty pakettia, eli se on tavallaan samassa paketissa toteuttamasi Lotto-luokan kanssa. Poista siis mahdollinen import-komento, mikäli olet omassa kehitysympäristössäsi sijoittanut nämä kaksi luokkaa eri paketteihin. ✂
✂ Sinun ei tarvitse erikseen palauttaa Leikkaus-luokkaa, se on valmiina. Huomaa että tässä tehtävässä Leikkaus-luokalle ei ole määritetty pakettia, eli se on tavallaan samassa paketissa toteuttamasi Lotto-luokan kanssa. Poista siis mahdollinen import-komento, mikäli olet omassa kehitysympäristössäsi sijoittanut nämä kaksi luokkaa eri paketteihin. ✂
```
Example output:


+ 2
- 0
README.md View File

@ -6,6 +6,8 @@ Contents of this repository are based on [Java programming course material](http
**NOTE**: Assignments and their descriptions are in Finnish for meanwhile. I have a plan to translate them to English.
**NOTE**: Code indentation in markdown (`.md`) files is incorrectly rendered in Gitea. Click `Raw` to see the correct indentation.
## Contents
- [Basics](src/branch/master/1_basics)


Loading…
Cancel
Save