From ca89b6fd661c952939646ac81927b17b3443d0b3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Koivisto=20Ida=20Maria=20Hannuntyt=C3=A4r?=
 <ida.m.koivisto@student.jyu.fi>
Date: Fri, 21 Mar 2025 10:29:08 +0200
Subject: [PATCH] =?UTF-8?q?lis=C3=A4tty=20TODO=20ralleille?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/RalliJava/Ralli.java     | 23 ++++++++++++++------
 src/RalliJava/Rallit.java    | 42 +++++++++++++++++++++++-------------
 src/RalliJava/Rekisteri.java | 26 ++++++++++++++++++++++
 3 files changed, 70 insertions(+), 21 deletions(-)

diff --git a/src/RalliJava/Ralli.java b/src/RalliJava/Ralli.java
index ba6f997..bcc9a7e 100644
--- a/src/RalliJava/Ralli.java
+++ b/src/RalliJava/Ralli.java
@@ -19,6 +19,7 @@ public class Ralli {
      *
      */
     private int     tunnusNro;
+    private int     htunnusNro;
     private String  rallinNimi                = "";
     private String  sijainti            = "";
     private int     osallistujienMaara;
@@ -32,19 +33,23 @@ public class Ralli {
     private static int seuraavaNro = 0;    
         
         /**
+         * @return rallille seuraava identifioiva tunnusnumero
          * 
          */
-        public void rekisteroi() {
+        public int rekisteroi() {
             this.tunnusNro = seuraavaNro;
             seuraavaNro++;
+            return tunnusNro;
         }
         
         
         /**
          * Vastaa randomisti eri henkilöiden tietoja
+         * @param nro tunnusnumero
          */
-        public void vastaaRalli() {
+        public void vastaaRalli(int nro) {
             
+            htunnusNro = nro;
             Random r = new Random();
             int n = r.nextInt(4);
             int sr = r.nextInt(5);
@@ -78,9 +83,10 @@ public class Ralli {
         
         
         /**
+         * Kun halutaan tietää jonkun rallin identifioiva tunnusnumero
          * @return tunnusnro
          */
-        public  int getTunnusNro() {
+        public int getTunnusNro() {
             return tunnusNro;
         }
         
@@ -91,6 +97,7 @@ public class Ralli {
             //ei välttämättä tarttis
         }
         
+ 
         /**
          * @param tunnusNro id
          * @param rNimi nimi
@@ -99,6 +106,7 @@ public class Ralli {
          * @param osallistujienMaara määrä
          * @param ilmottautumismaksu koko
          */
+        /*
         public Ralli(int tunnusNro, String rNimi, String sijainti, String jarjestaja, int osallistujienMaara, int ilmottautumismaksu) {
         this.tunnusNro = tunnusNro;
         this.rallinNimi = rNimi;
@@ -108,6 +116,8 @@ public class Ralli {
         this.ilmottautumismaksu = ilmottautumismaksu;
         }
         
+        */
+        
         /**
          * @param tulostettava tietovirta mitä tulostetaan
          */
@@ -122,12 +132,13 @@ public class Ralli {
         
         
         /**
-         * @return henkilön nimi
+         * @return rallin nimi
          */
         public String getNimi() {
             return this.rallinNimi;
         }
         
+        
         /**
          * @param args ei käytössä
          */
@@ -135,10 +146,10 @@ public class Ralli {
             Ralli kuopio = new Ralli();
             Ralli pohjanmaa = new Ralli();
             kuopio.rekisteroi();
-            kuopio.vastaaRalli();
+            kuopio.vastaaRalli(0);
             kuopio.tulosta(System.out);
             pohjanmaa.rekisteroi();
-            pohjanmaa.vastaaRalli();
+            pohjanmaa.vastaaRalli(1);
             pohjanmaa.tulosta(System.out);
             //elfyn.rekisteroi();
             //elfyn.vastaahlo();
diff --git a/src/RalliJava/Rallit.java b/src/RalliJava/Rallit.java
index 2b62505..2a64bcc 100644
--- a/src/RalliJava/Rallit.java
+++ b/src/RalliJava/Rallit.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
+
 /**
  * @author idamk
  * @version 12.2.2025
@@ -11,7 +12,6 @@ import java.util.List;
  */
 public class Rallit {
     
-    //private static final int MAX_RALLIT = 5;
     private Collection<Ralli> alkiot = new ArrayList<Ralli>();
     
     int lkm = 0;
@@ -24,20 +24,19 @@ public class Rallit {
     }
 
     
-    /*public List<Ralli> annaRallit(int tunnusNro){
-        List<Ralli> loydetyt = new ArrayList<Ralli>();
-        for (Ralli ralli:alkiot)
-            if(ralli.getHenkiloNro() === tunnusNro) loydetyt.add()
-    
-   */
-
-
     /**
-     * @return lkm
+     * Haetaan kaikki henkilön osallistumat rallit
+     * @param tunnusNro rallin tunnusnumero
+     * @return lista ralleista johon haluttu henkilö on osallistunut
      */
-    public int getLkm() {
-        return lkm;
+    public List<Ralli> annaRallit(int tunnusNro) {
+        List<Ralli> loydetyt = new ArrayList<Ralli>();
+        for (Ralli ralli:alkiot) //ITERAATTORI
+            if(ralli.getTunnusNro() == tunnusNro) loydetyt.add(ralli);
+        return loydetyt;
+    
     }
+
     
    
     /**
@@ -58,16 +57,29 @@ public class Rallit {
             Ralli kuopio = new Ralli();
             Ralli secto = new Ralli();
             pohjanmaa.rekisteroi();
-            pohjanmaa.vastaaRalli();
+            pohjanmaa.vastaaRalli(0);
             kuopio.rekisteroi();
-            kuopio.vastaaRalli();
+            kuopio.vastaaRalli(1);
             secto.rekisteroi();
-            secto.vastaaRalli();
+            secto.vastaaRalli(1);
             
             rallit.lisaa(pohjanmaa);
             rallit.lisaa(kuopio);
             rallit.lisaa(secto);
+            pohjanmaa.tulosta(System.out);
+            kuopio.tulosta(System.out);
+            secto.tulosta(System.out);
+
+            System.out.println("======================== Rallit testi ========================");
+            
+            List<Ralli> rallit2 = rallit.annaRallit(2);
+            
             
+            // Tulostaa halutun (yläällä indeksi) rallin luoduista
+            for (Ralli ral : rallit2) {
+                System.out.print(ral.getTunnusNro() + " ");
+                ral.tulosta(System.out);
+            } 
             
    
             
diff --git a/src/RalliJava/Rekisteri.java b/src/RalliJava/Rekisteri.java
index ff6983d..2bc2674 100644
--- a/src/RalliJava/Rekisteri.java
+++ b/src/RalliJava/Rekisteri.java
@@ -8,6 +8,7 @@ package RalliJava;
 public class Rekisteri {
 
     private final Henkilot henkilot = new Henkilot();
+    //TODO: pitää pohjustaa rallit samalla tavalla
     
     
     /**
@@ -27,6 +28,8 @@ public class Rekisteri {
         henkilot.lisaa(henkilo);
     }
     
+    //TODO: lisää ralli
+    
     
     /**
      * @param i indeksi
@@ -36,6 +39,8 @@ public class Rekisteri {
         return henkilot.anna(i);  
     }
     
+    //TODO: palauta lista kaikista ralleista, johon henkilö on osallistunut
+    
     
     /**
      * @param args ei käytössä
@@ -48,6 +53,24 @@ public class Rekisteri {
             Henkilo rovis = new Henkilo();
             Henkilo asunmaa = new Henkilo();
             Henkilo elfyn = new Henkilo();
+            
+            /*Ralli pohjanmaa = new Ralli();
+            Ralli kuopio = new Ralli();
+            Ralli secto = new Ralli();
+            pohjanmaa.rekisteroi();
+            pohjanmaa.vastaaRalli(0);
+            kuopio.rekisteroi();
+            kuopio.vastaaRalli(1);
+            secto.rekisteroi();
+            secto.vastaaRalli(1);
+            
+            rekisteri.lisaa(pohjanmaa);
+            rekisteri.lisaa(kuopio);
+            rekisteri.lisaa(secto);
+            pohjanmaa.tulosta(System.out);
+            kuopio.tulosta(System.out);
+            secto.tulosta(System.out); */
+            
             rovis.rekisteroi();
             rovis.vastaahlo();
             asunmaa.rekisteroi();
@@ -64,6 +87,9 @@ public class Rekisteri {
         
         for (int i=0; i<rekisteri.getHenkiloita(); i++) {
             Henkilo henkilo = rekisteri.annaHenkilo(i);
+            //Ralli ralli = rekisteri.annaRallit(henkilo);
+            //TODO: käytä rallilistaa
+            // tulosta iteraation avulla tietyn henkilön rallit
             henkilo.tulosta(System.out);
         } 
         
-- 
GitLab