Skip to content
Snippets Groups Projects
Commit d30c3094 authored by Eemil Hartikainen's avatar Eemil Hartikainen
Browse files

Loput

parent 41506960
No related branches found
No related tags found
No related merge requests found
package fi.utu.tech.ooj.exercise0;
public class Kirja {
public class Kirja
{
private String kirjanNimi;
private String kirjailijanNimi;
private int julkaisuVuosi;
public Kirja(String kirjanNimi, String kirjailijanNimi, int julkaisuVuosi) {
public Kirja(String kirjanNimi, String kirjailijanNimi, int julkaisuVuosi)
{
this.kirjanNimi = kirjanNimi;
this.kirjailijanNimi = kirjailijanNimi;
this.julkaisuVuosi = julkaisuVuosi;
......@@ -37,8 +39,8 @@ public class Kirja {
@Override
public String toString() {
return "Kirja: " + kirjanNimi + '\n' +
"Kirjailija: " + kirjailijanNimi + '\n' +
"Julkaisuvuosi: " + julkaisuVuosi + '\n';
return "Kirja: " + kirjanNimi + "\n" +
"Kirjailija: " + kirjailijanNimi + "\n" +
"Julkaisuvuosi: " + 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)
{
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.isEmpty())
{
out.println("Kokoelma on tyhjä!");
return;
}
for (Kirja kirja : kirjaListaus)
{
out.println(kirja.toString());
}
}
public List<Kirja> etsiKirjat(String hakusana, KirjanTiedot kentta) throws IllegalArgumentException
{
if (hakusana == null || hakusana.isBlank() || kentta == null)
{
throw new IllegalArgumentException();
}
List<Kirja> tulokset = new ArrayList<>();
for (Kirja kirja : kirjaListaus)
{
if (kentta == KirjanTiedot.NIMI) {
if (kirja.getKirjanNimi().contains(hakusana))
{
tulokset.add(kirja);
}
}
if (kentta == KirjanTiedot.KIRJAILIJA) {
if (kirja.getKirjailijanNimi().contains(hakusana))
{
tulokset.add(kirja);
}
}
if (kentta == KirjanTiedot.JULKAISUVUOSI) {
if (("" + kirja.getJulkaisuVuosi()).contains(hakusana))
{
tulokset.add(kirja);
}
}
}
return tulokset;
}
}
\ No newline at end of file
......@@ -12,19 +12,42 @@ public class Main {
* 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ä.
*/
/*public static ArrayList<String> kysyTietoja(String[] kysyttavat, String lopetusmerkki) {
public static ArrayList<String> kysyTietoja(String[] kysyttavat, String lopetusmerkki) {
ArrayList<String> vastaukset = new ArrayList<String>();
Scanner lukija = new Scanner(System.in);
for (String kysyttava : kysyttavat) {
System.out.print(kysyttava + ": ");
String vastaus = lukija.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
* kommenttimerkit alla olevan rutiinin rungon ympäriltä.
*/
public static KirjaKokoelma luoKokoelma(String lopetusmerkki) {
String[] kysyttäväOmistaja = {"Omistaja"};
String omistaja = kysyTietoja(kysyttäväOmistaja, "/loppu").toString();
KirjaKokoelma kokoelma = new KirjaKokoelma(omistaja);
while (true) {
String[] kirjantiedot = {"Kirjan nimi: ", "Kirjailijan nimi: ", "Julkaisuvuosi:"};
ArrayList<String> kirjanTiedot = kysyTietoja(kirjantiedot, lopetusmerkki);
if (kirjanTiedot.size() < 3) {
break;
}
Kirja kirja = new Kirja(kirjanTiedot.get(0), kirjanTiedot.get(1), Integer.valueOf(kirjanTiedot.get(2)));
kokoelma.lisaaKirja(kirja);
}
return kokoelma;
}
/*public static KirjaKokoelma luoKokoelma(String lopetusmerkki) {
}*/
/**
* Main class.
......@@ -38,13 +61,13 @@ public class Main {
System.out.println("*** Harjoitustyöpohja käynnistyy ***");
//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
kokoelma.tulostaKokoelma(System.out);
//Lopuksi hae jokin kirja kokoelmasta käyttäen tehtävän 7 rutiinia
//Tulosta hakutulos. Sen voit tehdä suoraan main-metodissa.
System.out.println(kokoelma.etsiKirjat("eemil",NIMI));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment