Skip to content
Snippets Groups Projects
Commit eb42601f authored by Niko Itänen's avatar Niko Itänen
Browse files

Completed!

Exercise Completed!
parent 46642b47
No related branches found
No related tags found
No related merge requests found
# Auto detect text files and perform LF normalization
* text=auto
package fi.utu.tech.ooj.exercise0;
public class Kirja {
private String kirjanNimi;
private String kirjailijanNimi;
private int julkaisuVuosi;
public Kirja (String kirjanNimi, String kirjailijanNimi, int julkaisuVuosi) {
this.kirjanNimi = kirjanNimi;
this.kirjailijanNimi = kirjailijanNimi;
this.julkaisuVuosi = julkaisuVuosi;
}
public String getKirjanNimi() {
return kirjanNimi;
}
public String getKirjailijanNimi() {
return kirjailijanNimi;
}
public int getJulkaisuVuosi() {
return julkaisuVuosi;
}
public void setJulkaisuVuosi(int julkaisuVuosi) {
this.julkaisuVuosi = julkaisuVuosi;
}
public void setKirjailijanNimi(String kirjailijanNimi) {
this.kirjailijanNimi = kirjailijanNimi;
}
public void setKirjanNimi(String kirjanNimi) {
this.kirjanNimi = kirjanNimi;
}
@Override
public String toString() {
return ("\nKirja: " + kirjanNimi + "\nKirjailija: " + kirjailijanNimi + "\nJulkaisuvuosi: " + julkaisuVuosi);
}
}
package fi.utu.tech.ooj.exercise0;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
public class KirjaKokoelma {
private String kokoelmanOmistaja;
private ArrayList<Kirja> kirjaListaus;
public KirjaKokoelma(String kokoelmanOmistaja, ArrayList<Kirja> kirjaListaus) {
this.kokoelmanOmistaja = kokoelmanOmistaja;
this.kirjaListaus = new ArrayList<Kirja>();
}
//Tarvittavat havainnointi- sekä asetusmetodit
public ArrayList<Kirja> getKirjaListaus() {
return kirjaListaus;
}
public String getKokoelmanOmistaja() {
return kokoelmanOmistaja;
}
public void setKokoelmanOmistaja(String kokoelmanOmistaja) {
this.kokoelmanOmistaja = kokoelmanOmistaja;
}
//Metodi kirjan lisäämiselle kirjokokoelmaan.
public void lisaaKirja(Kirja kirja) {
kirjaListaus.add(kirja);
}
//Metodi kokoelaman tulostamiselle.
public void tulostaKokoelma(PrintStream out) {
if (kirjaListaus.isEmpty()) {
out.println("Kokoelma on tyhjä...");
} else {
for(Kirja kirja: kirjaListaus) {
out.println(kirja.toString());
}
}
}
public List<Kirja> etsiKirjat(String hakusana, KirjanTiedot kentta) throws IllegalArgumentException {
if (hakusana == null || hakusana.isEmpty() || kentta == null) {
throw new IllegalArgumentException("Väärä syöte: Hakusana tai kenttä on arvoltaan tyhjä");
}
List<Kirja> palautus = new ArrayList<Kirja>();
for (Kirja kirja : kirjaListaus) {
switch(kentta) {
case NIMI:
if (kirja.getKirjanNimi().contains(hakusana)) {
palautus.add(kirja);
}
break;
case KIRJAILIJA:
if (kirja.getKirjailijanNimi().contains(hakusana)) {
palautus.add(kirja);
}
break;
case JULKAISUVUOSI:
if (Integer.toString(kirja.getJulkaisuVuosi()).contains(hakusana)) {
palautus.add(kirja);
}
break;
default:
throw new IllegalArgumentException("Väärä syöte: Tuntematon kentta" + kentta);
}
}
return palautus;
}
}
package fi.utu.tech.ooj.exercise0; package fi.utu.tech.ooj.exercise0;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner; import java.util.Scanner;
public class Main { public class Main {
...@@ -12,9 +10,21 @@ public class Main { ...@@ -12,9 +10,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) {
ArrayList<String> vastaukset = new ArrayList<>();
}*/ Scanner sc = new Scanner(System.in);
for(String kysymys : kysyttavat) {
System.out.println(kysymys + ": ");
String vastaus = sc.nextLine();
if (vastaus.equals(lopetusmerkki)) {
vastaukset.add(null);
break;
}
vastaukset.add(vastaus);
}
return vastaukset;
}
/* /*
...@@ -22,9 +32,32 @@ public class Main { ...@@ -22,9 +32,32 @@ 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) {
KirjaKokoelma palautus = new KirjaKokoelma(null, null);
String[] kysymykset = {"Kirjan nimi", "Kirjailijan nimi", "Julkaisuvuosi"};
while (true) {
Kirja lisattava = new Kirja(null, null, 0);
ArrayList<String> listaus = kysyTietoja(kysymykset, lopetusmerkki);
if (listaus.contains(null)) {
break;
}
}*/ for(int i = 0; i<3; i++) {
if (i == 0) {
lisattava.setKirjanNimi(listaus.get(0));
}
if (i == 1) {
lisattava.setKirjailijanNimi(listaus.get(1));
}
if (i == 2) {
lisattava.setJulkaisuVuosi(Integer.valueOf(listaus.get(2)));
}
}
palautus.lisaaKirja(lisattava);
}
return palautus;
}
/** /**
* Main class. * Main class.
...@@ -38,9 +71,11 @@ public class Main { ...@@ -38,9 +71,11 @@ public class Main {
System.out.println("*** Harjoitustyöpohja käynnistyy ***"); 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 testi = luoKokoelma(".");
//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
testi.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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment