Skip to content
Snippets Groups Projects
Commit 3b1433d4 authored by Jaakko Nurminen's avatar Jaakko Nurminen
Browse files

Add initial exercise implementation

parent c58b9e06
Branches main
No related tags found
No related merge requests found
...@@ -34,4 +34,11 @@ public class Kirja { ...@@ -34,4 +34,11 @@ public class Kirja {
public void setJulkaisuVuosi(int julkaisuVuosi) { public void setJulkaisuVuosi(int julkaisuVuosi) {
this.julkaisuVuosi = julkaisuVuosi; this.julkaisuVuosi = julkaisuVuosi;
} }
@Override
public String toString() {
return "Kirja: " + kirjanNimi + "\n"
+ "Kirjailija: " + kirjailijanNimi + "\n"
+ "Julkaisuvuosi: " + julkaisuVuosi;
}
} }
package fi.utu.tech.ooj.exercise0; package fi.utu.tech.ooj.exercise0;
import java.io.PrintStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
public class KirjaKokoelma { public class KirjaKokoelma {
private String kokoelmanOmistaja; private String kokoelmanOmistaja;
...@@ -22,4 +24,52 @@ public class KirjaKokoelma { ...@@ -22,4 +24,52 @@ public class KirjaKokoelma {
public void setKokoelmanOmistaja(String kokoelmanOmistaja) { public void setKokoelmanOmistaja(String kokoelmanOmistaja) {
this.kokoelmanOmistaja = kokoelmanOmistaja; this.kokoelmanOmistaja = kokoelmanOmistaja;
} }
public void lisaaKirja(Kirja kirja) {
kirjaListaus.add(kirja);
}
public void tulostaKokoelma(PrintStream out) {
if (kirjaListaus.size() == 0) {
out.println("Kirjakokoelma on tyhjä");
}
for (Kirja kirja : kirjaListaus) {
out.println(kirja.toString());
}
}
public List<Kirja> etsiKirjat(String hakusana, KirjanTiedot kentta) throws IllegalArgumentException {
if (hakusana == null || hakusana == "") {
throw new IllegalArgumentException("Hakusana ei voi olla tyhjä tai null!");
}
if (kentta == null) {
throw new IllegalArgumentException("Kenttä ei voi olla null!");
}
List<Kirja> hakutulokset = new ArrayList<>();
for (Kirja kirja : kirjaListaus) {
if (kentta.equals(KirjanTiedot.NIMI)) {
if (kirja.getKirjanNimi().contains(hakusana)) {
hakutulokset.add(kirja);
}
}
if (kentta.equals(KirjanTiedot.KIRJAILIJA)) {
if (kirja.getKirjailijanNimi().contains(hakusana)) {
hakutulokset.add(kirja);
}
}
if (kentta.equals(KirjanTiedot.JULKAISUVUOSI)) {
if (Integer.toString(kirja.getJulkaisuVuosi()).contains(hakusana)) {
hakutulokset.add(kirja);
}
}
}
return hakutulokset;
}
} }
...@@ -12,9 +12,21 @@ public class Main { ...@@ -12,9 +12,21 @@ public class Main {
* Kirjoita tähän tehtävän 4 ratkaisu. Rutiinin signatuuria ei saa muuttaa. Aloita tehtävä poistamalla * Kirjoita tähän tehtävän 4 ratkaisu. Rutiinin signatuuria ei saa muuttaa. Aloita tehtävä poistamalla
* kommenttimerkit alla olevan rutiinin rungon ympäriltä. * kommenttimerkit alla olevan rutiinin rungon ympäriltä.
*/ */
/*public static ArrayList<String> kysyTietoja(String[] kysyttavat, String lopetusmerkki) { public static ArrayList<String> kysyTietoja(String[] kysyttavat, String lopetusmerkki) {
Scanner lukija = new Scanner(System.in);
ArrayList<String> vastaukset = new ArrayList<>();
}*/ for (String kysymys : kysyttavat) {
System.out.print(kysymys + ": ");
String vastaus = lukija.nextLine();
if (vastaus.equals(lopetusmerkki)) {
break;
}
vastaukset.add(vastaus);
}
return vastaukset;
}
/* /*
...@@ -22,9 +34,26 @@ public class Main { ...@@ -22,9 +34,26 @@ public class Main {
* kommenttimerkit alla olevan rutiinin rungon ympäriltä. * kommenttimerkit alla olevan rutiinin rungon ympäriltä.
*/ */
/*public static KirjaKokoelma luoKokoelma(String lopetusmerkki) { public static KirjaKokoelma luoKokoelma(String lopetusmerkki) {
String[] kokoelmanOmistaja = new String[] {"Kirjakokoelman omistaja"};
ArrayList<String> omistaja = kysyTietoja(kokoelmanOmistaja, lopetusmerkki);
}*/ KirjaKokoelma kirjaKokoelma = new KirjaKokoelma(omistaja.get(0));
String[] kirjanKysyttavat = new String[] {"Kirjan nimi", "Kirjailijan nimi", "Ilmestymisvuosi"};
while (true) {
ArrayList<String> kirjanTiedot = kysyTietoja(kirjanKysyttavat, lopetusmerkki);
if (kirjanTiedot.size() != 3) {
break;
}
Kirja kirja = new Kirja(kirjanTiedot.get(0), kirjanTiedot.get(1), Integer.valueOf(kirjanTiedot.get(2)));
kirjaKokoelma.lisaaKirja(kirja);
}
return kirjaKokoelma;
}
/** /**
* Main class. * Main class.
...@@ -35,16 +64,18 @@ public class Main { ...@@ -35,16 +64,18 @@ public class Main {
/* /*
* Testin jälkeen alla olevan rivin voi joko kommentoida tai poistaa. * Testin jälkeen alla olevan rivin voi joko kommentoida tai poistaa.
*/ */
System.out.println("*** Harjoitustyöpohja käynnistyy ***");
//Luo ensin uusi KirjaKokoelma olio, Käytä tehtävän 5 rutiinia
//Luo ensin uusi KirjaKokoelma olio, Käytä tehtävän 5 rutiinia
KirjaKokoelma omaKokoelma = luoKokoelma("!lopeta");
//Sen jälkeen tulosta kokoelma näyttöön käyttämällä tehtävän 6 rutiinia //Sen jälkeen tulosta kokoelma näyttöön käyttämällä tehtävän 6 rutiinia
omaKokoelma.tulostaKokoelma(System.out);
//Lopuksi hae jokin kirja kokoelmasta käyttäen tehtävän 7 rutiinia //Lopuksi hae jokin kirja kokoelmasta käyttäen tehtävän 7 rutiinia
//Tulosta hakutulos. Sen voit tehdä suoraan main-metodissa. //Tulosta hakutulos. Sen voit tehdä suoraan main-metodissa.
System.out.println(omaKokoelma.etsiKirjat("1337", KirjanTiedot.JULKAISUVUOSI));
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment