From fa340622490ba0c68693c49dba546b75c8b5766d Mon Sep 17 00:00:00 2001 From: aichinos <aichinos@jyu.fi> Date: Thu, 27 Feb 2025 13:27:34 +0200 Subject: [PATCH] tapaaminen luokka vaihe 5 valmis? --- mmkurssit/src/apumetodit/RandomNumero.java | 22 +++ mmkurssit/src/mmkurssit/Kurssi.java | 42 +++--- mmkurssit/src/mmkurssit/Tapaaminen.java | 156 ++++++++++++++++++--- 3 files changed, 173 insertions(+), 47 deletions(-) create mode 100644 mmkurssit/src/apumetodit/RandomNumero.java diff --git a/mmkurssit/src/apumetodit/RandomNumero.java b/mmkurssit/src/apumetodit/RandomNumero.java new file mode 100644 index 0000000..0dff8df --- /dev/null +++ b/mmkurssit/src/apumetodit/RandomNumero.java @@ -0,0 +1,22 @@ +package apumetodit; + +/** + * Luodaan random-numero, vaihe 5 tehtäessä + * Tarkoituksena tarkistetaan, että ei ole sama kurssi on luotu yms. + * @author aichi + * @version 27 Feb 2025 + * + */ +public class RandomNumero { + /** + * Arvotaan satunnainen kokonaisluku välille [ala,yla] + * @param ala arvonnan alaraja + * @param yla arvonnan yläraja + * @return satunnainen luku väliltä [ala,yla] + */ + public static int rand(int ala, int yla) { + double n = (yla-ala)*Math.random() + ala; + return (int)Math.round(n); + } + +} diff --git a/mmkurssit/src/mmkurssit/Kurssi.java b/mmkurssit/src/mmkurssit/Kurssi.java index 3a20823..4150048 100644 --- a/mmkurssit/src/mmkurssit/Kurssi.java +++ b/mmkurssit/src/mmkurssit/Kurssi.java @@ -1,6 +1,7 @@ package mmkurssit; import java.io.OutputStream; +import apumetodit.RandomNumero; import java.io.PrintStream; /** @@ -98,23 +99,11 @@ public class Kurssi { /** * Apumetodi, jolla saadaan täytettyä testiarvot kurssille. - * Visibility muutettu "package:ksi" * TODO: POISTA, kun kaikki toimii!! * */ - public void tayta1() { - this.nimi = "Japani 4"; - this.opeEtunimi = "Ken"; - this.opeSukunimi = "Manninen"; - - } - /** - * Apumetodi, jolla saadaan täytettyä testiarvot kurssille. - * TODO: POISTA, kun kaikki toimii!! - * - */ - void tayta2() { - this.nimi = "Ohjelmointi 2"; + void tayta() { + this.nimi = "Ohjelmointi 2, nro: " + RandomNumero.rand(1,100); this.opeEtunimi = "Vesa"; this.opeSukunimi = "Kokko"; @@ -129,21 +118,26 @@ public class Kurssi { // luento 24.2.2025 // Käytetään fxMMKurssi-mainissa oleva main koko ohjelmaa varten, mutta Java sallii, //että ohjelman sisällä tavallaan monta main-methodia. - Kurssi japani4 = new Kurssi(); - Kurssi ohjelmointi2 = new Kurssi(); + System.out.println(nextID); + System.out.println("--------------"); - japani4.rekisteroi(); - ohjelmointi2.rekisteroi(); + Kurssi ohjelmointi1 = new Kurssi(); + ohjelmointi1.rekisteroi(); + ohjelmointi1.tulosta(System.out);//tulostetaan ilman mitään täytetty tietoa + + ohjelmointi1.tayta(); + ohjelmointi1.tulosta(System.out); - japani4.tulosta(System.out); - ohjelmointi2.tulosta(System.out); - System.out.println(nextID); + System.out.println("-------------------"); - japani4.tayta1(); - ohjelmointi2.tayta2(); + Kurssi ohjelmointi2 = new Kurssi(); + ohjelmointi2.rekisteroi(); + ohjelmointi2.tulosta(System.out); - japani4.tulosta(System.out); + ohjelmointi2.tayta(); ohjelmointi2.tulosta(System.out); + + System.out.println("NextID on: " + nextID); } diff --git a/mmkurssit/src/mmkurssit/Tapaaminen.java b/mmkurssit/src/mmkurssit/Tapaaminen.java index 11de69d..7357bd4 100644 --- a/mmkurssit/src/mmkurssit/Tapaaminen.java +++ b/mmkurssit/src/mmkurssit/Tapaaminen.java @@ -1,7 +1,10 @@ package mmkurssit; +import java.io.OutputStream; import java.io.PrintStream; +import apumetodit.RandomNumero; + /** * Yksittäiset tapaaminen-oliot * @author aichi @@ -25,44 +28,151 @@ public class Tapaaminen { private static int nextmID = 1;//next tapaaminen ID + //========================================================================= + + /** - * @param args ei käytössä + * Apumetodi, jolla saadaan täytettyä testiarvot kurssille. + * TODO: POISTA, kun kaikki toimii!! + * */ - public static void main(String[] args) { - - Tapaaminen japani4_1 = new Tapaaminen(); - Tapaaminen ohjelmointi2_1 = new Tapaaminen(); + void tayta() { + this.kID = RandomNumero.rand(1,100); + this.paiva = 16; + this.kkausi = 3; + this.vuosi = 2025; + this.hour = 16; + this.min = 30; + this.kesto = 90; + this.paikka = "B248"; + this.muu = "Välipala mukaan"; - japani4_1.rekisteroi(); - ohjelmointi2_1.rekisteroi(); - - japani4_1.tulosta(System.out); - ohjelmointi2_1.tulosta(System.out); - System.out.println(nextmID); - - japani4_1.tayta(); - ohjelmointi2_1.tayta(); - - japani4_1.tulosta(System.out); - ohjelmointi2_1.tulosta(System.out); + } + + /** + * Tulostetaan tapaamisen tiedot + * @param os teitovirta johon tulostetaan + */ + public void tulosta(OutputStream os) { + //tulsota(new PrintStream(os)); + } + + + /** + * Tulostetaan tapaamisen tiedot + * @param out tietovirta johon tulostetaan + */ + public void tulosta(PrintStream out) { + out.println(String.format("Meeting ID: %03d", tapaaminenID) + String.format(" randon nro: ", RandomNumero.rand(1, 100))); + out.println(milloin()); + out.println("Aloitusaika: " + aloitusaika()); + out.println("Loppuu: "+ lopetusaika()); + out.println("Paikka: " + missa()); + out.println("HUOM! "+muu); } + /** + * @return tapaamisen paikka + */ + private String missa() { + return this.paikka; + } - private void tayta() { - // TODO Auto-generated method stub + + /** + * @return tapaamisen lopetusaika laskettuna ja string-muotona + */ + private String lopetusaika() { + int loppuh = 0; + int loppumin = this.min + this.kesto; + while(loppumin >= 60){ + loppumin = loppumin -60; + loppuh++; + } + loppuh = loppuh + this.hour; + //return String.format("%02d", loppuh)+":"+String.format("%02d", loppumin); + return String.format("%02d:%02d", loppuh, loppumin); } - private void tulosta(PrintStream out) { - // TODO Auto-generated method stub + + /** + * @return tapaamisen päivämäärät stringina + */ + private String milloin() { + //TODO: lisaa pv ja kk takistuskoodi + if (this.paiva > 31 || kkausi >12) return "Wrong date or month"; + return this.paiva +"."+this.kkausi+"."+this.vuosi; } + + + /** + * @return tapaamisen aloitusaika stringina + */ + private String aloitusaika() { + if (hour>22 || min >60) return "Check the time"; + return this.hour+":"+this.min; + } + - private void rekisteroi() { - // TODO Auto-generated method stub + /** + * Antaa tapaamiselle seuraavan tunnusnumeron + * @example + * <pre name="test"> + * Tapaaminen saksa_1 = new Tapaaminen(); + * saksa_1.getmID() === 0; + * saksa_1.rekisteroi(); + * Tapaaminen ohjelmointi_1 = new Tapaaminen(); + * ohjelmointi_1.rekisteroi(); + * int n1 = saksa_1.getmID(); + * int n2 = ohjelmointi_1.getmID(); + * n1 === 1; + * n2 === 2; + * </pre> + */ + public void rekisteroi() { + this.tapaaminenID = nextmID; + nextmID++; + } + + + /** + * @return kyseisen tapaamisen ID + */ + public int getmID() { + return this.tapaaminenID; + } + + + /** + * @return kyseisen tapaamisen kID (eli kurssin ID), joka kertoo mihin kurssiin kyseinen tapaaminen liittyy + */ + public int getkID() { + return this.kID; + } + + + //========================================================================== + /** + * @param args ei käytössä + */ + public static void main(String[] args) { + + Tapaaminen japani4_1 = new Tapaaminen(); + Tapaaminen ohjelmointi2_1 = new Tapaaminen(); + japani4_1.rekisteroi(); + japani4_1.tayta(); + + ohjelmointi2_1.rekisteroi(); + ohjelmointi2_1.tayta(); + + japani4_1.tulosta(System.out); + ohjelmointi2_1.tulosta(System.out); + } } -- GitLab