From ac314ff42ca576cb50f73f91cc7ce671b3b9b285 Mon Sep 17 00:00:00 2001 From: Linda <lmkaku@utu.fi> Date: Sun, 2 Apr 2023 14:21:59 +0300 Subject: [PATCH] lopullinen versio? --- .../utu/tech/ooj/exercise0/KirjaKokoelma.java | 12 +--- .../java/fi/utu/tech/ooj/exercise0/Main.java | 71 ++++++++++--------- 2 files changed, 39 insertions(+), 44 deletions(-) diff --git a/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java b/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java index 7f2b553..d154b74 100644 --- a/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java +++ b/src/main/java/fi/utu/tech/ooj/exercise0/KirjaKokoelma.java @@ -11,24 +11,16 @@ public class KirjaKokoelma { public KirjaKokoelma(String omistaja) { this.kokoelmanOmistaja = omistaja; - this.kirjaListaus = new ArrayList<Kirja>(); + kirjaListaus = new ArrayList<Kirja>(); } public void setOmistaja(String omistaja) { this.kokoelmanOmistaja = omistaja; } public String getOmistaja() { return kokoelmanOmistaja; } + public ArrayList<Kirja> getListaus() { return kirjaListaus; } public void lisaaKirja(Kirja kirja) { kirjaListaus.add(kirja); } - //TODO - public void tulostaKokoelma(PrintStream out) { - - } - //TODO - public List<Kirja> etsiKirjat(String hakusana, KirjanTiedot kentta) throws IllegalArgumentException{ - - } - } diff --git a/src/main/java/fi/utu/tech/ooj/exercise0/Main.java b/src/main/java/fi/utu/tech/ooj/exercise0/Main.java index 5c0d076..deb7a4e 100644 --- a/src/main/java/fi/utu/tech/ooj/exercise0/Main.java +++ b/src/main/java/fi/utu/tech/ooj/exercise0/Main.java @@ -36,6 +36,7 @@ public class Main { * 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 @@ -46,42 +47,44 @@ public class Main { //Lopuksi hae jokin kirja kokoelmasta käyttäen tehtävän 7 rutiinia //Tulosta hakutulos. Sen voit tehdä suoraan main-metodissa. - public static Kirja luoKirja(ArrayList<String> lista) { - Kirja kirja = new Kirja(lista.get(0), lista.get(1), Integer.parseInt(lista.get(2))); - return kirja; - } + } + public static Kirja luoKirja(ArrayList<String> lista) { + Kirja kirja = new Kirja(lista.get(0), lista.get(1), Integer.parseInt(lista.get(2))); + return kirja; + } - //Tehtävä 4 - public static ArrayList<String> kysyTietoja(String[] kysyttavat, String lopetusmerkki){ - Scanner scanner = new Scanner(System.in); - ArrayList<String> palautus = new ArrayList<String>(); - for (int i = 0; i < kysyttavat.length; i++) { - System.out.println("Syötä " + kysyttavat[i]); - String syote = scanner.nextLine(); - if (syote.equals(lopetusmerkki)) { - palautus.add(syote); - break; - } - else { palautus.add(syote); } - } - return palautus; + //Tehtävä 4 + public static ArrayList<String> kysyTietoja(String[] kysyttavat, String lopetusmerkki){ + Scanner scanner = new Scanner(System.in); + ArrayList<String> palautus = new ArrayList<String>(); //Rutiinin palauttama arraylist olio + for (int i = 0; i < kysyttavat.length; i++) { //käy läpi parametrina annetun kysyttavat string arrayn + System.out.println("Syötä " + kysyttavat[i]); //ja kysyy kaikki siinä annetut tiedot käyttäjältä. + String syote = scanner.nextLine(); + if (syote.equals(lopetusmerkki)) { //Jos käyttäjä syöttää lopetusmerkin, for loop pysähtyy + palautus.add(syote); //ja lopetusmerkki lisätään kirjan tietoihin, että + break; //luoKokoelma()-rutiini osaa jättää sen kirjan lisäämättä + } //ja lopettaa rutiini. + else { palautus.add(syote); } } - //Tehtävä 5 - public static KirjaKokoelma luoKokoelma(String lopetusmerkki) { - Scanner scanner = new Scanner(System.in); - System.out.println("Anna kirjakokoelman omistajan nimi:"); - String nimi = scanner.nextLine(); - KirjaKokoelma kokoelma = new KirjaKokoelma(nimi); - String[] kysyttavat = new String[]{"kirjan nimi", "kirjailijan nimi", "julkaisuvuosi"}; - ArrayList<String> lisattava = new ArrayList<String>(); - while(true) { - lisattava = kysyTietoja(kysyttavat, lopetusmerkki); - if (lisattava.contains(lopetusmerkki)) { break; } - else if (lisattava.size()== kysyttavat.length) { - kokoelma.lisaaKirja(luoKirja(lisattava)); - } - } - return kokoelma; + return palautus; + } + + //Tehtävä 5 + public static KirjaKokoelma luoKokoelma(String lopetusmerkki) { + Scanner scanner = new Scanner(System.in); + System.out.println("Anna kirjakokoelman omistajan nimi:"); + String nimi = scanner.nextLine(); + KirjaKokoelma kokoelma = new KirjaKokoelma(nimi); //Luodaan uusi KirjaKokoelma syötteen perusteella. + String[] kysyttavat = new String[]{"kirjan nimi", "kirjailijan nimi", "julkaisuvuosi"}; + ArrayList<String> lisattava = new ArrayList<String>(); //ArrayList uuden luotavan Kirja tiedoille. + while(true) { //Pyörii niin kauan kunnes käyttäjä syöttää lopetusmerkin. + lisattava = kysyTietoja(kysyttavat, lopetusmerkki); //Käytetään kysyTietoja -rutiinia kirjan tietojen kyselyyn. + if (lisattava.contains(lopetusmerkki)) { break; } //Jos saatu arraylist sisältää lopetusmerkin, sitä ei lisätä + else if (lisattava.size()== kysyttavat.length) { //kirjakokoelmaan, vaan while loop pysähtyy ja palauttaa + kokoelma.lisaaKirja(luoKirja(lisattava)); //tähän mennessä tallentamansa KirjaKokoelman. Muussa tapauksessa + } //kirja lisätään kokoelmaan ja loop alkaa alusta } + scanner.close(); + return kokoelma; } } -- GitLab