From ab1edfb1f5fcef407585e608405699a69d11019a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Koivisto=20Ida=20Maria=20Hannuntyt=C3=A4r?= <ida.m.koivisto@student.jyu.fi> Date: Tue, 25 Apr 2023 18:09:34 +0300 Subject: [PATCH] =?UTF-8?q?lis=C3=A4tty=20rallit-luokka=20ja=20t=C3=A4yden?= =?UTF-8?q?netty=20muita=20luokkia?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/rekisteri/RalliGUIController.java | 56 +++++++++++++---- src/rekisteriJAVA/Henkilo.java | 48 +++++++++++--- src/rekisteriJAVA/Henkilot.java | 20 ++++++ src/rekisteriJAVA/Ralli.java | 90 +++++++++++++++++++++++++++ src/rekisteriJAVA/Rallit.java | 28 +++++++++ src/rekisteriJAVA/Rekisteri.java | 18 +++--- src/rekisteriJAVA/SailoException.java | 18 ++++++ 7 files changed, 248 insertions(+), 30 deletions(-) create mode 100644 src/rekisteriJAVA/Ralli.java create mode 100644 src/rekisteriJAVA/Rallit.java create mode 100644 src/rekisteriJAVA/SailoException.java diff --git a/src/rekisteri/RalliGUIController.java b/src/rekisteri/RalliGUIController.java index 5037fb2..c70b47d 100644 --- a/src/rekisteri/RalliGUIController.java +++ b/src/rekisteri/RalliGUIController.java @@ -11,6 +11,9 @@ import javafx.fxml.Initializable; import javafx.scene.control.TextField; import rekisteriJAVA.Rekisteri; +import rekisteriJAVA.SailoException; +import rekisteriJAVA.Henkilo; +import rekisteriJAVA.Ralli; @@ -27,6 +30,7 @@ public class RalliGUIController implements Initializable { private String rekisterinNimi = "ralliAsia"; + @FXML private void handleHae() { hae(); } @@ -36,13 +40,14 @@ public class RalliGUIController implements Initializable { /** * Ajetaan, kun klikataan "Lisää uusi" */ - @FXML private void handleUusi() { lisaaUusi();} + @FXML private void handleUusi() { lisaaUusiHenk();} /** * Ajetaan kun klikataan menusta "Tulosta" */ @FXML private void handleTulosta() { - //TulostusController.tulosta(null); + //TulostusController tulostusCtrl = TulostusController.tulosta(null); + //tulostaValitut(tulostusCtrl.getTextArea()); } /** @@ -125,7 +130,7 @@ public class RalliGUIController implements Initializable { @Override public void initialize(URL location, ResourceBundle resources) { - // + alusta(); } //========================================================== @@ -147,17 +152,31 @@ public class RalliGUIController implements Initializable { /** * */ - public void lisaaUusi(){ + public void lisaaUusiHenk(){ + ModalController.showModal(RalliGUIController.class.getResource("uusi.fxml"), "Lisää uusi", null, ""); + Henkilo uusi = new Henkilo(); + uusi.rekisteroi(); + uusi.vastaaKalleRovanpera(); //täyttää kallerovanperä tiedoilla + try { + rekisteri.lisaa(uusi); + } catch (SailoException e) { + Dialogs.showMessageDialog("Ongelmia uuden luomisessa " + e.getMessage()); + } + hae(uusi.getTunnusNro()); + } + + public void lisaaUusiRalli() { ModalController.showModal(RalliGUIController.class.getResource("uusi.fxml"), "Lisää uusi", null, ""); - //Henkilo uusi new Henkilo(); - //uusi.rekisteroi(); - //uusi.vastaaKalleRovanpera(); //täyttää kallerovanperä tiedoilla - //try { - // rekisteri.lisaa(uusi); - //} catch (SailoException e) { - // Dialogs.showMessageDialog("Ongelmia uuden luomisessa " + e.getMessage()); - //} - //hae(uusi.getTunnusNro()); + Ralli uusi = new Ralli(); + uusi.rekisteroi(); + uusi.vastaaPohjanmaaralli(); + try { + rekisteri.lisaa(uusi); + } catch (SailoException e) { + Dialogs.showMessageDialog("Ongelmia uuden luomisessa " + e.getMessage()); + return; + } + hae(uusi.getTunnusNro()); } /** @@ -182,6 +201,17 @@ public class RalliGUIController implements Initializable { private void apua() { Dialogs.showMessageDialog("Avaa Apua-ikkunan, ei toimi vielä"); } + + private void setTitle(String title) { + //ModalController.getStage(hakuehto).setTitle(title); + } + + protected void lueTiedosto(String nimi) { + rekisterinNimi = nimi; + //setTitle("Rekisteri - " + rekisterinNimi); + String failure = "Ei osata lukea vielä"; + Dialogs.showMessageDialog(failure); + } /** * diff --git a/src/rekisteriJAVA/Henkilo.java b/src/rekisteriJAVA/Henkilo.java index af40f80..447c5c6 100644 --- a/src/rekisteriJAVA/Henkilo.java +++ b/src/rekisteriJAVA/Henkilo.java @@ -18,6 +18,8 @@ public class Henkilo { private String kotiKunta = ""; private String seura = ""; + private static int seuraavaNro = 1; + /** * Oletusmuodostaja, asettaa henkilon tiedot tyhjäksi @@ -41,29 +43,55 @@ public class Henkilo { */ public static void main(String[] args) { //ei kuuluisi olla kuin yksi kpl ohjelmassa, ajaessa kerrotaan mikä main ajetaan Henkilo kalle = new Henkilo(); //luo uuden jäsenen - //Henkilo kalle2 = new Henkilo(); + Henkilo kalle2 = new Henkilo(); - //kalle.rekisteroi(); //antaa numeron - //kalle2.rekisteroi(); + kalle.rekisteroi(); //antaa numeron + kalle2.rekisteroi(); kalle.tulosta(System.out); //tulostaa näkyville, muttei shelliin - //kalle2.tulosta(System.out); + kalle2.tulosta(System.out); - //kalle.vastaaKalleRovanpera(); //täyttää lomakkeen valmiiksi - //kalle2.vastaaKalleRovanpera(); + kalle.vastaaKalleRovanpera(); //täyttää lomakkeen valmiiksi + kalle2.vastaaKalleRovanpera(); - //kalle.tulosta(System.out); - //kalle2.tulosta(System.out); + kalle.tulosta(System.out); + kalle2.tulosta(System.out); } - + /** * */ public void vastaaKalleRovanpera() { - // + nimi = "Rovanperä Kalle "; + syntymaAika = "1.1.2000"; + tehtava = 0; + kotiKunta = "Jyväskylä"; + seura = "Toyota Kangaroo Racing"; + + + } + + + /** + * Luo tunnusnumeron henkilölle + * @return tunnusnumero + */ + public int rekisteroi() { + tunnusNro = seuraavaNro; + seuraavaNro++; + return tunnusNro; + + } + + /** + * Palauttaa henkilön tunnusnumeron + * @return tunnusnumero + */ + public Object getTunnusNro() { + return tunnusNro; } } diff --git a/src/rekisteriJAVA/Henkilot.java b/src/rekisteriJAVA/Henkilot.java index cba31ee..b49864e 100644 --- a/src/rekisteriJAVA/Henkilot.java +++ b/src/rekisteriJAVA/Henkilot.java @@ -1,5 +1,25 @@ package rekisteriJAVA; public class Henkilot { + private static final int MAX_HENKILOITA = 8; + private int lkm = 0; + private String tiedostoString = ""; + private Henkilo henkilot[] = new Henkilo[MAX_HENKILOITA]; + + + /** + * Lisää uuden henkilön tiedostoon + * @param henkilo henkilö joka halutaan lisätä + * @throws SailoException virheilmoitus + */ + public void lisaa(Henkilo henkilo) throws SailoException { + if(lkm >= henkilot.length) throw new SailoException("Liikaa tyyppejä"); + henkilot[lkm] = henkilo; + lkm++; + } + + public int getLkm() { + return lkm; + } } diff --git a/src/rekisteriJAVA/Ralli.java b/src/rekisteriJAVA/Ralli.java new file mode 100644 index 0000000..8860fa6 --- /dev/null +++ b/src/rekisteriJAVA/Ralli.java @@ -0,0 +1,90 @@ +package rekisteriJAVA; + +import java.io.PrintStream; + +public class Ralli { + + private int tunnusNro = 0; + private String nimi = ""; + private String paikkakunta = ""; + private String ajankohta = ""; // vai int? + private String jarjestaja = ""; + private String linkkiSivuille = ""; + private String linkkiOL = ""; + private String linkkiT = ""; + + private static int seuraavaNro = 1; + + + /** + * Oletusmuodostaja, asettaa henkilon tiedot tyhjäksi + */ + public Ralli() { + // ei tarvitse oletusmuodostajaa + } + + /** + * Tulostaa tietovirran, nyt "Kalle" + * @param out Kalle + */ + public void tulosta(PrintStream out) { + out.println(String.format("%03d", tunnusNro) + " " + nimi); + out.println(paikkakunta + " " + ajankohta); + out.println(jarjestaja); + out.println(linkkiSivuille); + out.println(linkkiOL); + out.println(linkkiT); + } + + /** + * @param args ei käytössä + */ + public static void main(String[] args) { //ei kuuluisi olla kuin yksi kpl ohjelmassa, ajaessa kerrotaan mikä main ajetaan + Ralli pohjanmaa = new Ralli(); //luo uuden jäsenen + Ralli pohjanmaa2 = new Ralli(); + + pohjanmaa.rekisteroi(); //antaa numeron + pohjanmaa2.rekisteroi(); + + pohjanmaa.tulosta(System.out); //tulostaa näkyville, muttei shelliin + pohjanmaa2.tulosta(System.out); + + pohjanmaa.vastaaPohjanmaaralli(); //täyttää lomakkeen valmiiksi + pohjanmaa2.vastaaPohjanmaaralli(); + + pohjanmaa.tulosta(System.out); + pohjanmaa2.tulosta(System.out); + } + + + /** + * Luo tunnusnumeron henkilölle + * @return tunnusnumero + */ + public int rekisteroi() { + tunnusNro = seuraavaNro; + seuraavaNro++; + return tunnusNro; + } + + /** + * Palauttaa henkilön tunnusnumeron + * @return tunnusnumero + */ + public Object getTunnusNro() { + return tunnusNro; + } + + /** + * Valmis vastaus rallille + */ + public void vastaaPohjanmaaralli() { + nimi = "Pohjanmaaralli"; + paikkakunta = "Seinäjoki"; + jarjestaja = "Seinäjoen ralliveikot"; + linkkiSivuille = "www.Pohjanmaaralli.fi"; + linkkiOL = "www.Pohjanmaaralli.fi/osallistujalista"; + linkkiT = "www.Pohjanmaaralli.fi/tulokset"; + + } +} diff --git a/src/rekisteriJAVA/Rallit.java b/src/rekisteriJAVA/Rallit.java new file mode 100644 index 0000000..2520ed1 --- /dev/null +++ b/src/rekisteriJAVA/Rallit.java @@ -0,0 +1,28 @@ +package rekisteriJAVA; + +public class Rallit { + private static final int MAX_RALLEJA = 8; + private int lkm = 0; + private String tiedostoString = ""; + private Ralli rallit[] = new Ralli[MAX_RALLEJA]; + + + /** + * Lisää uuden henkilön tiedostoon + * @param ralli henkilö joka halutaan lisätä + * @throws SailoException virheilmoitus + */ + public void lisaa(Ralli ralli) throws SailoException { + if(lkm >= rallit.length) throw new SailoException("Liikaa tyyppejä"); + rallit[lkm] = ralli; + lkm++; + } + + + /** + * @return lukumäärän + */ + public int getLkm() { + return lkm; + } +} diff --git a/src/rekisteriJAVA/Rekisteri.java b/src/rekisteriJAVA/Rekisteri.java index aa9448e..9e9d4e6 100644 --- a/src/rekisteriJAVA/Rekisteri.java +++ b/src/rekisteriJAVA/Rekisteri.java @@ -2,14 +2,14 @@ package rekisteriJAVA; public class Rekisteri { - Henkilot henkilot = new Henkilot(); + private final Henkilot henkilot = new Henkilot(); /**¨Lisätään uusi jäsen - * - * @param args + * @param henkilo joka lisätään + * @throws SailoException virheviesti */ - public void lisaa(Henkilo henkilo) { + public void lisaa(Henkilo henkilo) throws SailoException { henkilot.lisaa(henkilo); } @@ -22,10 +22,14 @@ public class Rekisteri { public static void main(String[] args) { // TODO Auto-generated method stub - Rekisteri rekisteri = new Rekisteri(); + //Rekisteri rekisteri = new Rekisteri(); - Henkilo henkilo1 = new Henkilo(); - Henkilo henkilo2 = new Henkilo(); + ////Henkilo henkilo2 = new Henkilo(); } + public void lisaa(Ralli ralli) { + // TODO Auto-generated method stub + + } + } diff --git a/src/rekisteriJAVA/SailoException.java b/src/rekisteriJAVA/SailoException.java new file mode 100644 index 0000000..10c620f --- /dev/null +++ b/src/rekisteriJAVA/SailoException.java @@ -0,0 +1,18 @@ +package rekisteriJAVA; + +/** + * @author idamk + * @version 25.4.2023 + * + */ +public class SailoException extends Exception { + private static final long serialVersionUID = 1L; + + /** + * Kun ei toimi + * @param message viesti mikä lähetetään + */ + public SailoException(String message) { + super(message); + } +} -- GitLab