Skip to content
Snippets Groups Projects
Commit b13c6872 authored by Roni Nousiainen's avatar Roni Nousiainen
Browse files

tehtävä tehty

parent ebe432e9
No related branches found
No related tags found
No related merge requests found
Pipeline #61845 passed
package fi.utu.tech.ooj.exercise0;public class Kirja { 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 void setKirjanNimi(String kirjanNimi) {
this.kirjanNimi = kirjanNimi;
}
public String getKirjailijanNimi() {
return kirjailijanNimi;
}
public void setKirjailijanNimi(String kirjailijanNimi) {
this.kirjailijanNimi = kirjailijanNimi;
}
public int getJulkaisuVuosi() {
return julkaisuVuosi;
}
public void setJulkaisuVuosi(int julkaisuVuosi) {
this.julkaisuVuosi = julkaisuVuosi;
}
@Override
public String toString() {
return "Kirja: " + this.getKirjanNimi() + "\nKirjailija: " + this.getKirjailijanNimi() + "\nJulkaisuvuosi: " + this.getJulkaisuVuosi();
}
} }
package fi.utu.tech.ooj.exercise0;public class KirjaKokoelma { 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) {
this.kokoelmanOmistaja = kokoelmanOmistaja;
kirjaListaus = new ArrayList<>();
}
public String getKokoelmanOmistaja() {
return kokoelmanOmistaja;
}
public void setKokoelmanOmistaja(String kokoelmanOmistaja) {
this.kokoelmanOmistaja = kokoelmanOmistaja;
}
public ArrayList<Kirja> getKirjaListaus() {
return kirjaListaus;
}
public void lisaaKirja(Kirja kirja) {
kirjaListaus.add(kirja);
}
public void tulostaKokoelma(PrintStream out) {
if (kirjaListaus.size() == 0) {
out.println("Kokoelma on tyhjä.");
} else {
for (Kirja k : kirjaListaus) {
out.println(k.toString());
}
}
}
public List<Kirja> etsiKirjat(String hakusana, KirjanTiedot kentta) throws IllegalArgumentException {
ArrayList<Kirja> tulokset = new ArrayList<>();
String regex = ".?" + hakusana + ".?";
if (hakusana == "" || hakusana == null) {
throw new IllegalArgumentException();
}
for (Kirja k : kirjaListaus) {
switch (kentta) {
case NIMI:
if (k.getKirjanNimi().matches(regex)) {
tulokset.add(k);
} break;
case KIRJAILIJA:
if (k.getKirjailijanNimi().matches(regex)) {
tulokset.add(k);
} break;
case JULKAISUVUOSI:
if (String.valueOf(k.getJulkaisuVuosi()).matches(regex)) {
tulokset.add(k);
} break;
}
}
return tulokset;
}
} }
...@@ -12,19 +12,36 @@ public class Main { ...@@ -12,19 +12,36 @@ 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 input = new Scanner(System.in);
}*/ ArrayList<String> vastaukset = new ArrayList<>();
for (String i : kysyttavat) {
System.out.print(i + ": ");
String vastaus = input.nextLine();
if (vastaus.equals(lopetusmerkki)) {
break;
}
vastaukset.add(vastaus);
} return vastaukset;
}
/* /*
* Kirjoita tähän tehtävän 5 ratkaisu. Rutiinin signatuuria ei saa muuttaa. Aloita tehtävä poistamalla * Kirjoita tähän tehtävän 5 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 KirjaKokoelma luoKokoelma(String lopetusmerkki) { public static KirjaKokoelma luoKokoelma(String lopetusmerkki) {
KirjaKokoelma kokoelma = new KirjaKokoelma("Omistaja");
}*/ String[] kysymykset = {"kirjan nimi","kirjailijan nimi","julkaisuvuosi"};
while (true) {
ArrayList<String> vastaukset = kysyTietoja(kysymykset, lopetusmerkki);
if (vastaukset.size() != 3) {
break;
}
Kirja kirja = new Kirja(vastaukset.get(0),vastaukset.get(1),Integer.valueOf(vastaukset.get(2)));
kokoelma.lisaaKirja(kirja);
} return kokoelma;
}
/** /**
* Main class. * Main class.
...@@ -38,12 +55,13 @@ public class Main { ...@@ -38,12 +55,13 @@ 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 kokoelma = luoKokoelma("/loppu");
//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
kokoelma.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
System.out.println(kokoelma.etsiKirjat("",KirjanTiedot.NIMI));
//Tulosta hakutulos. Sen voit tehdä suoraan main-metodissa. //Tulosta hakutulos. Sen voit tehdä suoraan main-metodissa.
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment